it-swarm.com.de

Sind im Speicher gespeicherte Passwörter sicher?

Ich habe gerade festgestellt, dass in jeder Sprache ein Kennwort, wenn Sie es in einer Variablen speichern, als einfacher Text im Speicher gespeichert wird.

Ich denke, das Betriebssystem macht seine Arbeit und verbietet Prozessen, auf den zugewiesenen Speicher des anderen zuzugreifen. Aber ich denke auch, dass dies irgendwie umgangen werden kann. Ich frage mich also, ob es wirklich sicher ist und ob es eine sicherere Möglichkeit gibt, Passwörter zu speichern, um sicherzustellen, dass fremde Prozesse nicht darauf zugreifen können.

Ich habe weder das Betriebssystem noch die Sprache angegeben, da meine Frage recht allgemein ist. Dies ist eher eine Frage der Computerkenntnisse als eine Frage zu einem bestimmten Zweck.

452
Antoine Pinsard

Angesichts der Tatsache, dass dies für eine Reihe von Betriebssystemen mit unterschiedlichen Schutzstufen gelten kann, sind einige Dinge zu beachten:

  1. Egal was passiert, Sie können nicht verhindern, dass sich ein Passwort irgendwann im Speicher befindet. Wenn jemand Live-Zugriff auf den Speicher Ihrer Anwendung hat, können Sie ihn nicht davon abhalten, ihn zu sehen.

  2. Passwörter sind im Allgemeinen wertvoller als nur das, was sie schützen. Benutzer verwenden Passwörter wieder. Durch das Akzeptieren der Passwortanmeldung übernehmen Sie ein gewisses Maß an Verantwortung für die Geheimhaltung ihres Passworts, selbst wenn die von ihnen geschützten Daten kompromittiert werden. Sie können den Schaden eines Angriffs auf den kalten Speicher (flüssiger Stickstoff oder Ruhezustand) etwas abmildern, indem Sie das Kennwort Ihres Benutzers mit einer langsamen Hash-Funktion (PBKDF, scrypt, bcrypt) haschen und den Hash zur Authentifizierung verwenden.

  3. Es wird empfohlen, das Kennwort Ihres Benutzers aus dem Speicher zu löschen. Es gibt viele Fallstricke, wenn Sie dies richtig machen. Stellen Sie daher sicher, dass Sie eine geeignete Bibliothek verwenden: WindowsLinux-Beispiel

0
Charles Munger