Sicherheit von crypt
Ark
- webserver
hiho
Nachdem das crypt nur die ersten 2 Zeichen Salt hat und viel Pepper dahinter,
sollte IMHO nicht nur das _eine_ Plain-Passwort auf
den crypt Wert passen, sondern recht viele Passwörter,
weil sicher mehr als nur ein Passwort den selben crypt wert hat,
oder seh ich was falsch?
Somit wäre crypt ja recht unsicher?
Oder wird es sicherer wenn man 20 Zeichen Passwörter nimmt?
Aber andererseits, das entscheidende am crypt sind immer nur 2 Buchstaben...
Ich hab das Gefühl egal wie lange das Passwort ist, crypt bleibt unsicher,
weil das Alphabet 26 Buchstaben hat,
also 26 (mathematisches zeichen) 26 Möglichkeiten gibt es insgesamt.
Dangge :P
Ark
hiho
http://aktuell.de.selfhtml.org/cgi-bin/cryptform.pl?password=pass
Wie mir vorher schon erklärt wurde,
ändert sich das crypt immer, was man bei obigem Beispiel gut
mit Reload sehen kann.
Die ersten beiden Buchstaben (Salt) sollten aber immer gleich bleiben.
Tun sie aber bei dem Beispiel nicht.
Dennoch klappt es immer bei der .htaccess
Irgendwie hab ich das immer noch nicht gerafft.
Aber wie gesagt die Hauptfrage gilt der Sicherheit von "crypt"
MD5 kann ich leider nicht verwenden wegen des IE Bugs mit den GET Urls
und das ist in der installieren Apache Version noch nicht gelöst.
Danke :P
Ark
hiho
Nachdem das crypt nur die ersten 2 Zeichen Salt hat und viel Pepper dahinter,
sollte IMHO nicht nur das _eine_ Plain-Passwort auf
den crypt Wert passen, sondern recht viele Passwörter,
weil sicher mehr als nur ein Passwort den selben crypt wert hat,
oder seh ich was falsch?Somit wäre crypt ja recht unsicher?
Oder wird es sicherer wenn man 20 Zeichen Passwörter nimmt?
Aber andererseits, das entscheidende am crypt sind immer nur 2 Buchstaben...Ich hab das Gefühl egal wie lange das Passwort ist, crypt bleibt unsicher,
weil das Alphabet 26 Buchstaben hat,
also 26 (mathematisches zeichen) 26 Möglichkeiten gibt es insgesamt.Dangge :P
Ark
Sup!
Bei gleichem Salt und gleichem Passwort kommt immer das gleiche raus.
Den "Salt" gibt es nur, damit nicht zwei User mit gleichem Passwort das sofort merken, wenn sie sich die Hashes in der Passwort-Datei ansehen.
Wenn man weiss, wie ein Passwort von irgendwem lautet, ist es relativ leicht, herauszufinden, welchem User es gehört, wenn man den Inhalt der Passwort-Datenbank kennt - man muss nur das Passwort mit dem Salt jedes Users in der Passwort-Datenbank verschlüsseln und sehen, wem es gehört; darum sollte die Passwort-Datenbank auch nur von root zu lesen sein!
Ein unbekanntes Passwort zu finden ist aber schwierig, denn die Komplexität steigt mit der Anzahl der Zeichen des Passworts und mit der Grösse des Salt.
Gruesse,
Bio
Sup!
Das siehst Du völlig falsch, den crypt macht aus 8 Buchstaben Passwort und 2 Zeichen Salt 13 Zeichen Hash (davon sind 11 Zeichen Passwort-Hash und 2 der unverschlüsselte Salt).
Die crypt-Funktion ist injektiv, es kommt also bei keinen zwei verschiedenen Passwörtern bei gleichem Salt der gleiche Passwort-Hash raus.
Ebensowenig kann bei verschiedenem Salt und gleichem Passwort der gleiche Gesamt-Hash rauskommen, weil das Salt ja unterschiedlich ist.
Und das Salt sollte schon bei möglichst allen Usern unterschiedlich sein.
Es gibt übrigens mehr Möglichkeiten als Du denkst, denn in Passwörtern können viele Zeichen (Zahlen, Buchstaben, Sonderzeichen) vorkommen, ebenso im Salt.
Wenn Du paranoid bist, kannst Du das Standard-Crypt (benutzt DES-Verschlüsselung zum Erzeugend es Passwort-Hashes) auch durch aufgebohrte Verfahren (DES mit 6 Zeichen Salt, MD5-Hash, Blowfish-Hash) ersetzen.
Gruesse,
Bio
Hi,
Die crypt-Funktion ist injektiv, es kommt also bei keinen zwei verschiedenen Passwörtern bei gleichem Salt der gleiche Passwort-Hash raus.
hä? Hier wird ein unendlicher Eingabebereich auf eine endliche Ausgabemenge festgelegt, das heißt, es gibt auch unendlich viele Passwörter, bei denen der gleiche Wert rauskommt...
Schau auch den Link an, die Ausgabelänge bleibt immer gleich ;-)
E7
Hi,
Die crypt-Funktion ist injektiv, es kommt also bei keinen zwei verschiedenen Passwörtern bei gleichem Salt der gleiche Passwort-Hash raus.
hä? Hier wird ein unendlicher Eingabebereich auf eine endliche Ausgabemenge festgelegt, das heißt, es gibt auch unendlich viele Passwörter, bei denen der gleiche Wert rauskommt...
Inwiefern ist ein 8 Zeichen langer String ein unendlicher Eingabebereich?
Schau auch den Link an, die Ausgabelänge bleibt immer gleich ;-)
Die Eingabelänge bleibt immer unter 9 Zeichen.
cu,
Andreas
Hi,
Inwiefern ist ein 8 Zeichen langer String ein unendlicher Eingabebereich?
Wer sagt denn, dass man in die Funktion nur 8 Zeichen reinhacken kann?
"mein.geheimes.passwort" -> eingabe -> CRYPT -> ausgabe -> "ABCDE"
oder auch: f(x) = x^2 --> crypt(passwort) = passwort^2
Die möglichen Ausgabewerte sind so ungefähr die Hälfte von den möglichen Eingabewerten (wobei das im Grunde wurscht ist, da Passwort unendlich ist, und die Ausgabe dann auch)
E7
Sup!
Wer sagt denn, dass man in die Funktion nur 8 Zeichen reinhacken kann?
Ist halt so beim "klassischen" Crypt.
Gruesse,
Bio
Hi,
Wer sagt denn, dass man in die Funktion nur 8 Zeichen reinhacken kann?
"mein.geheimes.passwort" -> eingabe -> CRYPT -> ausgabe -> "ABCDE"oder auch: f(x) = x^2 --> crypt(passwort) = passwort^2
Dann guck Dir mal an, wie sich die vercrypteten Versionen von z.B.
12345678 und 123456789 und 1234567890 (bei identischem salt) unterscheiden ...
Bzw. ganz allgemein von einem langen Paßwort und von den ersten 8 Zeichen des langen Paßworts.
Die möglichen Ausgabewerte sind so ungefähr die Hälfte von den möglichen Eingabewerten (wobei das im Grunde wurscht ist, da Passwort unendlich ist, und die Ausgabe dann auch)
Nein, bei crypt werden nur die ersten 8 Zeichen des Paßworts berücksichtigt, egal wie lange das angegebene Paßwort ist.
cu,
Andreas
Hi,
Nein, bei crypt werden nur die ersten 8 Zeichen des Paßworts berücksichtigt, egal wie lange das angegebene Paßwort ist.
echt? Hmmmmmm... Hätte einem ja auch früher gesagt werden können... Dann zieh ich natürlich alles zurück, und frage mich warum es hier nix bringt, ein möglichst langes Passwort zu verwenden ;-)
E7
Hi,
Nachdem das crypt nur die ersten 2 Zeichen Salt hat und viel Pepper dahinter,
2 Zeichen salt und 8 Zeichen Passwort, die in 11 Zeichen kodiert sind.
Ich hab das Gefühl egal wie lange das Passwort ist, crypt bleibt unsicher,
weil das Alphabet 26 Buchstaben hat,
Ja und? Wieviele Zeichen das Alphabet hat, ist egal - entscheidend ist, wieviele Zeichen verwendet werden.
Und das sind 64 - 26 Großbuchstaben, 26 Kleinbuchstaben, 10 Ziffern, Unterstrich und Slash.
Für das Salt gibt es also 64*64 Möglichkeiten = 4096 Möglichkeiten.
Ein und dasselbe Passwort kann also auf 4096 verschiedene Arten verschlüsselt werden.
11 Zeichen kodiertes Paßwort ergeben 64 hoch 11 = 73.786.976.294.838.206.464 Möglichkeiten.
Du mußt also ein Paßwort finden, das genau eine dieser 73 Trillionen möglichen Verschlüsselungen erzeugt. Und das bei genau diesem einen aus 4096 salts.
cu,
Andreas
hiho
Nehmen wir an der User hat das passwort "foobar"
"fo" verschlüsselt "foobar"
Es kommt wert X raus als crypt.
Ich speichere den Wert.
Beim nächstem mal wenn der user kommt gibt der sein passwort ein.
Ich vergleiche es mit de gespeicherten crypt wert.
Die beiden sind nicht identisch.
Login fehlgeschlagen.
Dieses crypt ist schwer zu verstehen.
Dangge :P
Ark
hi,
Nehmen wir an der User hat das passwort "foobar"
"fo" verschlüsselt "foobar"
Es kommt wert X raus als crypt.Ich speichere den Wert.
Beim nächstem mal wenn der user kommt gibt der sein passwort ein.
Ich vergleiche es mit de gespeicherten crypt wert.
Die beiden sind nicht identisch.
dann hat der user ein falsche passwort eingegeben.
Login fehlgeschlagen.
tja, das will man dann ja wohl auch hoffen, oder?
Dieses crypt ist schwer zu verstehen.
ich finde dein gewese, das du darum machst, schwer zu verstehen.
gruß,
wahsaga
Sup!
ich finde dein gewese, das du darum machst, schwer zu verstehen.
Auch wenn mir die Rolle als Anwalt der Noobs nicht gut zu stehen scheint: Ich hatte damals auch Verständnisprobleme in Bezug auf crypt.
Habe also Geduld mit dem jungen Jedi ;-)
Gruesse,
Bio
Sup!
Ein password-Eintrag sieht so aus:
2 Zeichen Salt - 11 Zeichen Hash.
Der Hash wird errechnet, indem man das Passwort mit den zwei Zeichen Salt DES-verschlüsselt.
Das Passwort wird überprüft, indem Du es eingibst, der Computer sucht Deinen Nutzernamen in der Passwort-Datei, liest den Passwort-Eintrag aus (13 Zeichen), nimmt die ersten beiden Zeichen (den Salt), verschlüsselt damit Dein Passwort, raus kommen 11 Zeichen Hash, die vergleicht er mit den übriggebliebenen 11 Zeichen im Passwort-Eintrag, und wenn sie übereinstimmen, dann hast Du Dein Passwort richtig eingegeben.
Der Salt ist nur dazu da, damit zwei User mit gleichem Passwort nicht den gleichen Passwort-Datei-Eintrag bekommen, weil man sonst sehen würde, dass sie den gleichen Passwort-Eintrag haben.
Gruesse,
Bio
Moin!
Nachdem das crypt nur die ersten 2 Zeichen Salt hat und viel Pepper dahinter,
sollte IMHO nicht nur das _eine_ Plain-Passwort auf
den crypt Wert passen, sondern recht viele Passwörter,
weil sicher mehr als nur ein Passwort den selben crypt wert hat,
oder seh ich was falsch?Somit wäre crypt ja recht unsicher?
Nein, _deswegen_ ist crypt nicht unsicher. crypt ist unsicher, weil es nur die ersten 8 Zeichen des Passwortes berücksichtigt und alle nachfolgenden ignoriert. Mit heutigen Rechnern könnte man dann tatsächlich in aussichtsreicher Zeit alle möglichen Kombinationen durchprobieren.
Oder wird es sicherer wenn man 20 Zeichen Passwörter nimmt?
Da crypt nach 8 Zeichen abschneidet - nein.
Aber andererseits, das entscheidende am crypt sind immer nur 2 Buchstaben...
Nein, das Salt kann irgendein Zufallswert sein, ist aber nicht weiter wichtig. Es soll nur die Ergebnisse noch etwas verwürfeln. Das benutzte Salt steht beim Ergebnis auch vorne wieder drin, damit man die Korrektheit eines Passwortes zusammen mit diesem Salt auch prüfen kann. Das Salt macht es also absolut nicht schwieriger, das System zu knacken.
Ich hab das Gefühl egal wie lange das Passwort ist, crypt bleibt unsicher,
weil das Alphabet 26 Buchstaben hat,
also 26 (mathematisches zeichen) 26 Möglichkeiten gibt es insgesamt.
Crypt ist deswegen unsicher, weil nur 8 Zeichen Passwort reingehen und deshalb auch nur relativ wenig verschiedene Ergebnisse rauskommen können. MD5 oder SHA1 sind heutzutage in jedem Falle vorzuziehen.
- Sven Rautenberg
Sup!
Crypt ist deswegen unsicher, weil nur 8 Zeichen Passwort reingehen und deshalb auch nur relativ wenig verschiedene Ergebnisse rauskommen können. MD5 oder SHA1 sind heutzutage in jedem Falle vorzuziehen.
Naja... ob ich gerade MD5 oder SHA1 empfehlen würde... die werden gerade von den Kryptologen zerlegt.
Gruesse,
Bio
Moin!
Crypt ist deswegen unsicher, weil nur 8 Zeichen Passwort reingehen und deshalb auch nur relativ wenig verschiedene Ergebnisse rauskommen können. MD5 oder SHA1 sind heutzutage in jedem Falle vorzuziehen.
Naja... ob ich gerade MD5 oder SHA1 empfehlen würde... die werden gerade von den Kryptologen zerlegt.
SHA1 soll jetzt ja plötzlich ganz böse angreifbar geworden sein, weil man die Anzahl der Versuche von 2^80 auf 2^69 senken konnte - Heise berichtete.
Andererseits: Noch hat niemand für MD5 und SHA1 einen Angriff gezeigt, der in nennenswert kurzer Zeit Ergebnisse liefert. Bei crypt hingegen lohnt es sich schon, zu warten. Kann dann zwar 14 Tage dauern, aber das ist immerhin noch kürzer, als bis halb zum Ende des Universums.
- Sven Rautenberg
hi,
Bei crypt hingegen lohnt es sich schon, zu warten. Kann dann zwar 14 Tage dauern, aber das ist immerhin noch kürzer, als bis halb zum Ende des Universums.
na ja, diese wartezeit könnte man sich ja im dortigen restaurant vertreiben ...
gruß,
wahsaga
Moin,
SHA1 soll jetzt ja plötzlich ganz böse angreifbar geworden sein, weil man die Anzahl der Versuche von 2^80 auf 2^69 senken konnte - Heise berichtete.
Nicht nur Heise, erstmal war's Schneier. Das war recht lustig als ich die Meldung beim Fachschaftsfrühstück gelesen hatte und dem ebenfalls anwesenden Dozenten der anschließend die Kryptologievorlesung hält zeigte: "Boah, das 'n Ding!" Er lief dann erstmal leicht hektisch in der Gegend rum. Später dann (wohlgemerkt mitten in der Vorlesung) klingelte sein Telefon und er ging (unter deutlichem Kichern des Auditoriums) ran und erklärte seinem Gesprächspartner offenbar den Weg zu Schneiers Weblog mit der Meldung.
Andererseits: Noch hat niemand für MD5 und SHA1 einen Angriff gezeigt, der in nennenswert kurzer Zeit Ergebnisse liefert. Bei crypt hingegen lohnt es sich schon, zu warten. Kann dann zwar 14 Tage dauern, aber das ist immerhin noch kürzer, als bis halb zum Ende des Universums.
Das würde ich gar nicht mal so hoch ansetzen, zumindest bei halbwegs schwachen Passwörtern. Ich habe mir mal zu anderer Gelegenheit (Seminar Security Engineering, Vortrag zu Passwortsicherheit) die passwd-Datei unseres Instituts genommen (rund 2000 Accounts) und durch john the ripper laufen lassen. Die ersten Passwörter fielen bereits nach Sekunden raus, und in den 10 oder so Minuten die ich es habe laufen lassen hat es 22 Passwörter ausgespuckt.
你好 Sven,
SHA1 soll jetzt ja plötzlich ganz böse angreifbar geworden sein, weil man
die Anzahl der Versuche von 2^80 auf 2^69 senken konnte - Heise berichtete.
Die Vermutung liegt aber nahe, dass man, wenn man sie auf 2^69 senken
konnte, man sie auch noch weiter senken kann.
再见,
CK