Re: Passwort Problem - Danke

From: Jens Rehsack <rehsack(at)liwing.de>
Date: Tue, 10 Jun 2003 19:14:10 +0200

On 6/10/2003 4:05 PM, Harold Gutch wrote:
> On Tue, Jun 10, 2003 at 03:34:10PM +0200, Jens Rehsack wrote:
>> On 6/10/2003 3:12 PM, Marian Hettwer wrote:
>>
>> > Tja, imho hat blowfish schon eine st?rkere Verschl?sselung. Aber vor
>> > diesem fakt muss doch die Frage stehen: Wie sicher brauche ich mein System.
>> > Wenn dir niemand die /etc/passwd klauen kann, wie soll er dann die
>> > passw?rter da drin knacken k?nnen.
>>
>> Das ist das eine, aber:
>> md5 ist ein Hashverfahren (512-Bit, IIRC), welches bei Passw?rtern bis
>
> 128 Bit.

Stimmt. SHA-1 waren 160 Bit.

>
>> mehreren hundert oder tausend Zeichen hinreichend sicher sein sollte.
>> blowfish verschl?sselt - soweit ich weiss - nur. Daher sollte md5 wegen
>> der Nicht-Umkehrbarkeit sogar besser sein. Oder verwechsle ich da grad was?
>
> Naja, wie du schon sagst, MD5 ist eine Hash-Funktion. Wenn wir
> mal einen Brute Force Ansatz machen, um den gesamten Bildraum zu
> bekommen (also zu jedem MD5-Hash ein Klartextpasswort), dann
> braucht man also zu jeder der 2^128 MD5-Hashes ein Passwort, also
> 2^128 Stueck. Wenn man als Zeichen die 52 Buchstaben, 10
> Ziffern, und dann vielleicht noch die 10 Sonderzeichen, die auf
> einer festen Tastaturbelegung ueber den Ziffern stehen nimmt, hat
> man 72 Zeichen. Um einfacher rechnen zu koennen sagen wir 64
> Zeichen (also 5 Bit). Jedes Zeichen im Passwort kann also bis zu
> 5 Bit Information ermoeglichen. Bei 128 Bit Gesamtinformation
> heisst das, dass man mit einer (sehr grossen - 2^128 Stueck)
> Liste von Passwoertern den gesamten Bildbereich von MD5 abdecken
> koennte. Das alles ist jetzt ein paar mal grob geschaetzt,
> ausserdem sagt es nicht darueber aus, ob man in dieser Liste von
> 26 Zeichen langen Passwoertern nicht schon genug Kollisionen (2
> Passwoerter, die identische MD5-Hashes ergeben) hat, aber
> irgendwas in der Groessenordnung kann man als eine Art Mass von
> Sicherheit von MD5 angeben. Ob das so Sinn macht (IMHO nicht),
> ist aber wieder eine andere Frage.

Wenn man also zum Berechnen eines md5-Hash 1µs (mikrosekunde) braucht,
sind das ca. 3*10^38 µs = 10^28 Jahre. Wenn man jetzt 64 verschiedene
Secrets benutzt, muss das Passwortsystem 64 Versuche zur Überprüfung
machen, sind ca. 64 µs, Brute Force allerdings 64 * 10^28 Jahre.

Sowohl das erste als auch das zweite liegt weit jenseits von Gut und
Böse. MD5 ist allerdings recht gut analysiert und für recht sicher befunden.

> Zu Blowfish - Blowfish ist eigentlich eine
> Verschluesselungsfunktion, ja. Damit ist sie "ohne weiteres"
> (Klartext->verschluesseltes Passwort, und das speichern) nicht
> wirklich sinnvoll zum Speichern von Passwoertern brauchbar. In
> der Implementierung um die es hier aber geht, wird wohl Blowfish
> irgendwie leicht modifiziert, und damit zu einer Hashfunktion.
> Mir faellt auf Anhieb z.B. ein, dass man ein Passwort
> verschluesseln koennte, und als Blowfish-Passwort, das Passwort
> selbst verwenden koennte. Ob das kryptographisch vielleicht
> schlecht ist, kann ich dir aber nicht sagen, da ich Blowfish
> nicht im Detail kenne. Niels Provos, von dem die urspruengliche
> Idee (und Implementation von Blowfish in libcrypt) kam, hat auf
> dem Gebiet aber genug Erfahrungen um die Implementierung
> einigermassen beurteilen zu koennen. Wobei man auch da immer
> sagen sollte, dass es schwer (bis unmoeglich) ist, zu zeigen,
> dass eine Verschluesselung besonders gut ist - man kann nur
> zeigen dass sie schlecht ist, und dann aus der Tatsache, dass ein
> Algorithmus laenger bekannt ist, und etlichen theoretischen
> Angriffen schon widerstanden hat, schliessen, dass er "vermutlich
> ziemlich stark" ist.

Blowfish kam IMHO ursprünglich von Bruce Schneier (Angewandte
Kryptografie) und war als Ersatz für DES gedacht. Allerdings sind recht
schnell einige Schwachstellen im Algorithmus gefunden worden, die jedoch
soweit ich mich erinnere nur theoretischer Natur waren.

Daher kam ja auch der Bedarf für den AES, wobei sich Rijndael aufgrund
der Überschaubarkeit durchsetzte. Auch für diese Art von Algorithmen
gibt es inzwischen Angriffstrategien, die den Aufwand um ca. 10^20
reduzieren (sind immernoch 10^8 Jahre bei 1µs für eine Operation).
Vielleicht war es auch auf 10^20 - bin mir jetzt nicht sicher...

Ob der Plaintext als Schlüssel verwendet werden kann oder nicht, hängt
sicher immens vom Verfahren ab. Es gibt auch
Schlüsselgenerierungsprotokolle, die man ggf. mit dem Plaintext
initialisieren kann und die einem vernünftige Schlüssel für einen
Algorithmus geben. Da sehe ich demzufolge kein Problem. Hab' nur wieder
den Wald vor lauter Bäumen nicht gesehen.

> Naja, das alles ist halt eine recht komplexe Angelegenheit, bei
> der man eben auch sehr leicht Trugschluesse ziehen kann (und ich
> behaupte auch nicht, dass das da oben so exakt ist - da mag
> durchaus der eine oder andere Gedankenfehler drin sein :-) ).
> Vielleicht hab ich dir das ganze aber mit dieser Mail doch ein
> wenig erklaeren koennen.

:-)
Jens

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 10 Jun 2003 - 19:14:26 CEST

search this site