(Wie) Werden Passwörter sicher gespeichert?

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
RobertDebiannutzer
Beiträge: 385
Registriert: 16.06.2017 09:52:36

(Wie) Werden Passwörter sicher gespeichert?

Beitrag von RobertDebiannutzer » 21.05.2019 15:01:50

- Wie werden Passwörter eigentlich sicher auf der Festplatte gespeichert ("sicher" selbstverständlich im Sinne von "ausreichend sicher")?
Hintergrund: Ich schreibe gerade einen kleinen IMAP-Mail-Client in Perl (mit Debianlibmail-imapclient-perl) und würde gerne verhindern, jedesmal das/die Mailbox-Passwörter einzugeben. Also möchte ich die Passwörter (wie es Thunderbird auch macht) auf meiner Festplatte speichern. Die soll natürlich nicht in Klartext geschehen. Ich habe mir überlegt, das Perl-eigene crypt() (https://perldoc.perl.org/functions/crypt.html) zu nutzen. Das Salz könnte dabei ein kleines Master-Passwort sein, welches ich bei Programmstart eingeben würde. Was meint ihr?

- In diesem Zusammenhang interessiert mich: Werden Passwörter üblicherweise eigentlich sicher auf der Festplatte gespeichert?
Wenn ich z.B. bei Thunderbird kein Master-Passwort angebe, dann kann ja die Sicherheit nicht sehr hoch sein, oder? Denn dann müsste man ja nur im Thunderbird-Quellcode nachsehen, welches Verfahren zum Speichern der Passwörter auf der Festplatte verwendet wird, und dieses dann rückwärts anwenden. Ansonsten werden lokale Computer-Passwörter ja immer in /etc/shadow gespeichert, was laut manpage "shadow" mittels der C-eigenen crypt()-Funktion geschieht - diese Datei ist dann allerdings auch nur für root lesbar. Bei Mail-Providern stelle ich mir vor, dass das Mailbox-Passwort wahrscheinlich gar nicht auf deren Servern gespeichert wird, sondern nur als "Salz" für die Verschlüsselung der ganzen Mailbox dient?

Würde mich freuen, wenn mir jemand was dazu sagen möchte!

Benutzeravatar
MSfree
Beiträge: 10757
Registriert: 25.09.2007 19:59:30

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von MSfree » 21.05.2019 15:35:06

RobertDebiannutzer hat geschrieben: ↑ zum Beitrag ↑
21.05.2019 15:01:50
Das Salz könnte dabei ein kleines Master-Passwort sein, welches ich bei Programmstart eingeben würde. Was meint ihr?
Das Salz ist dafür nicht gedacht. Als Masterpaßwort ist es jedenfalls nicht geeignet.
- In diesem Zusammenhang interessiert mich: Werden Passwörter üblicherweise eigentlich sicher auf der Festplatte gespeichert?
Jein.

Programme, wie Browser, die ohne Masterpaßwort Anmeldedaten (verschlüsselt) speichern, sind keine sicheren Paßwortspeicher. Wie man Paßörter zurückrechnet, hast du ja selbst schon erkannt.

Die Logindaten unter Linux stehen zwar in der Datei /etc/shadow und sind nur root-lesbar, das ist jedoch nicht der Grund, warum hier ein hoher Sicherheitsstandard herrscht. Die Paßwörter hier sind nicht rechnerisch entschlüsselbar, sondern nur mit roher Gewalt. Sie müssen auch gar nicht entschlüsselbar sein, denn beim Login wird das vom Nutzer getippte Paßwort verschlüsselt und mit dem verschlüsselten Paßwort aus /ect/shadow verglichen.

Bei einem Client, der sein Paßwort im Klartext an den Server übermitteln muß, damit dieser das übertragene Paßwort verschlüsseln kann und mit /etc/shadow vergleichen kann, muß das Paßwort beim Client in einer Datei symmetrisch verschlüsselt werden. Und das sollte man wirklich nur mit einem sicheren Masterpaßwort machen.

Benutzeravatar
whisper
Beiträge: 3185
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von whisper » 21.05.2019 16:23:27

Lies mal hier: https://www.datenschutzbeauftragter-inf ... -erklaert/
und hier
https://de.wikipedia.org/wiki/Hashfunktion
Nach dem Verdauen geht es hier dann endlich zu dem, was du wissen möchtest.
https://de.wikipedia.org/wiki/Kryptogra ... shfunktion

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von uname » 21.05.2019 16:35:44

@whisper
Und nachdem er alles gelesen hat wird er feststellen, dass es ihm nichts geholfen hat. Das Problem ist, dass sein IMAP-Server bzw. genauer der IMAP-Client das Passwort des Benutzer im Original benötigt, um es dem IMAP-Server Im Original bereitzustellen. Das ganze Hashen bringt somit auf dem Client herzlich wenig.

Benutzeravatar
schorsch_76
Beiträge: 2543
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von schorsch_76 » 21.05.2019 16:40:34

Für Passwortspeicher bzw. Passwort Hashes gibt es spezielle Algorithmen wie bcrypt [1] welche extra so entwickelt worden sind, dass sie nicht schnell per Brute/Force gerechnet werden können.

[1] https://de.wikipedia.org/wiki/Bcrypt

RobertDebiannutzer
Beiträge: 385
Registriert: 16.06.2017 09:52:36

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von RobertDebiannutzer » 25.05.2019 12:24:53

Sorry, dass ich mich jetzt erst melde...
Also brauche ich doch ein richtiges Master-Passwort und AES. Denn wie schon von @MSfree und @uname gesagt, muss ich das Passwort ja unverschlüsselt an den IMAP-Server übermitteln (wenigstens kann ich das über SSL machen, ansonsten würde ich mich schon fragen, was man sich bei dieser Konstruktion gedacht hat).

Benutzeravatar
whisper
Beiträge: 3185
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: (Wie) Werden Passwörter sicher gespeichert?

Beitrag von whisper » 25.05.2019 14:38:32

uname hat geschrieben: ↑ zum Beitrag ↑
21.05.2019 16:35:44
@whisper
Und nachdem er alles gelesen hat wird er feststellen, dass es ihm nichts geholfen hat. Das Problem ist, dass sein IMAP-Server bzw. genauer der IMAP-Client das Passwort des Benutzer im Original benötigt, um es dem IMAP-Server Im Original bereitzustellen. Das ganze Hashen bringt somit auf dem Client herzlich wenig.
Ja, Imap habe ich übersehen. Hast Recht

Antworten