Sicherheit ist eine relative Sache. Nichts ist völlig sicher. Die Idee mit Sicherheit besteht darin, es schwierig genug zu machen, um Ihre Sicherheit zu durchbrechen, dass es hoffentlich nicht die Zeit und Mühe wert ist, die es dauern würde. Dies hängt davon ab, wie motiviert die böswillige Person ist, die in der Regel von der Art der Informationen abhängt, die verarbeitet oder gespeichert werden, oder von den ausgeführten Diensten. Sie können es mit einem Schloss an der Haustür vergleichen. Die meisten Sperren sind nicht sehr sicher, da jemand, der trainiert wurde, um sie aufzunehmen/zu umgehen, dies typischerweise sehr einfach tun kann. Aber sie verhindern, dass die durchschnittliche Person aus zufälliger Versuchung oder Neugier die Tür öffnet.
Wenn die Art der Anwendung, die Sie machen, ist, dass es so sicher wie möglich sein muss, dann scheint es mir Electron nicht die beste Wahl ist. Personen können Ihren Code direkt anzeigen.Selbst wenn es verschleiert ist, bleiben sie mit JavaScript-Code, und wie @ Cenebyte321 darauf hinweist, kann es etwas "verschönert" werden. Obwohl eine verschönerte Version von ordnungsgemäß verschleiertem Code im Hinblick auf die von ihr dargestellten Konzepte nicht sauber oder lesbar wäre. Es wäre nicht annähernd das Original. Andernfalls könnten Sie einfach jeden funktionierenden Code nehmen und ihn lesbar und gut organisiert machen, indem Sie einfach einen Beautifier darauf ausführen. Es ist gut zu wissen, dass Sie technisch jede ausführbare Datei zurück in den Quellcode dekompilieren können. Sogar ein in C geschriebenes Programm kann in C-Code zurückverwandelt werden. In diesem Fall würde der erzeugte "verschleierte" Code wahrscheinlich sogar unklar sein, so dass ein gewisser Vorteil darin besteht. Trotzdem kann es dekompiliert werden und es sollte gültiger C-Code sein.
Sobald bösartiger Code auf einem System ist, ist es sehr schwierig, dagegen zu schützen. Wichtiger ist es, sicherzustellen, dass alle Server, mit denen die App kommuniziert, sicher sind (wiederum im relativen Sinn) und dass die API für sie sicher ist. Es sollte sicher genug sein, dass wenn Sie sich den Quellcode Ihrer App ansehen und herausfinden, wie die API Ihres Servers funktioniert, das kein Problem für Sie ist. Jede sensible Kommunikation mit einem Server sollte verschlüsselt werden. Sie möchten nicht, dass ein Administrator-Benutzername und ein Passwort im Quellcode hängen bleiben. Aber das wollen Sie nicht mit irgendeiner App, die in irgendeiner Sprache geschrieben ist.
Im Idealfall sollten alle auf dem Computer des Benutzers gespeicherten Passwörter in irgendeiner Weise vor dem Speichern transformiert werden (möglicherweise mehrfach gesalzen und gehashed oder was auch immer die coolen Kids heutzutage tun), wenn jemand Zugriff auf diese Daten erhält , sie sehen nur eine modifizierte Version davon. Wenn dies richtig gemacht wird, sollte es keine Möglichkeit geben, die Passwörter zu entschlüsseln, obwohl dort Techniken verwendet werden können, um ein Passwort zu erzeugen, das denselben Hash ergibt. Sie sollten die geänderte Version eines normalerweise eingegebenen Passworts nur mit der gespeicherten geänderten Version des tatsächlichen Passworts vergleichen. Die Prinzipien der sicheren Speicherung von Kennwörtern und sicheren APIs und Kommunikation mit einem Server sind nicht spezifisch für Electron. Jede Sprache oder jedes Framework, das Sie verwenden, erfordert die gleichen sorgfältigen Überlegungen zur Sicherheit.
Nur für den Fall, dass meine Worte irreführend waren, bedeutete ich nicht, dass es üblich wäre, Kennwörter für den Zugriff auf den Server lokal zu speichern. Idealerweise müsste der Benutzer in jeder Sitzung Kennwörter dieser Art eingeben und würde niemals lokal gespeichert werden. Aber aus praktischen Gründen können Sie in vielen Apps ein Passwort lokal speichern, sodass Sie es nicht jedes Mal neu eingeben müssen. Es hängt wirklich davon ab, wie sensibel die Daten sind, auf die diese Kennwörter zugreifen, und wie wichtig die Benutzerfreundlichkeit für sie ist.
Aber wenn bösartige Software auf den Computern Ihres Benutzers ausgeführt wird, könnte es wahrscheinlich ihre Tastatureingaben trotzdem protokollieren und Benutzernamen und Kennwörter auf diese Weise erkennen. Selbst verschlüsselte Kommunikation ist nicht narrensicher, da Sicherheitslücken in ihnen entdeckt werden und neuere Protokolle entwickelt werden. Manchmal wissen Regierungen oder andere Personen über Backdoors Bescheid, die absichtlich zu einer Art von Verschlüsselung entwickelt wurden. Ich hoffe nur, dass noch niemand diese Hintertüren gefunden hat, da es sich im Wesentlichen um Sicherheitsfehler handelt, die absichtlich in die Verschlüsselungsprotokolle eingebaut wurden. Da JavaScript-Tools immer fortschrittlicher werden, ist es möglich, dass verschleierter JavaScript-Code fast so obskur und verwirrend ist wie verschleierter C-Code, oder vielleicht gibt es bereits Tools, die dies erreichen.
oh rechts OSX nicht iOS.Vielen Dank für die Informationen, die Sie zur Verfügung gestellt haben. – Savaratkar
Antwort wird akzeptiert :) – Savaratkar