PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MD5 und SHA - Vor- oder Nachteil


Gast
2007-11-01, 13:13:45
hi

jetzt unabhängig von wirklichen Möglichkeiten einen Angriffs, wenn ich theoretisch einen Hash eines Passwort z.B. abspeichere. Es soll ja bei MD5 eher und bei SHA deutlich unwahrscheinlicher möglich sein Kollisionen zu erzeugen. Wenn ich den Hash bereits habe, ein Passwort zu erstellen, daß den gleichen Hash hat. Dies könnte ich ja umgehen, in dem ich zwei verschiedene Hashes ablege und eine Kollision auf beiden sollte ja praktisch ausgeschlossen sein.

Allerdings ist es nicht wieder ein Sicherheitsrisiko, wenn ich zwei unterschiedliche Hashes habe, die die gleichen Daten beschreiben? Wenn man noch wenig andere Daten hat (also z.b. die Länge der Eingabedaten und diese überschaubar ist) ist es dann wahrscheinlicher mit beiden Hashes eher auf die Originaldaten zu schließen als wenn man nur einen hat. Man hat ja dann die doppelten Informationen?

Gast
2007-11-01, 13:27:17
Wir hätten sha, whirlpool, ripemd-160 und vielleicht noch tiger. warum muß man sich über md5 gedanken machen?

Gast
2007-11-01, 13:40:05
Man muß sich nicht Gedankenmachen und dies hat auch keinen praktischen Hintergrund.

Gast
2007-11-01, 14:23:20
Ja toll. du machst dir keine gedanken und stellst einfach eine frage und wir müßen uns aber gedanken wegen der antwort machen ;)

sieht schlecht aus mit preis/leistung ;)

TheFallenAngel
2007-11-01, 14:31:20
hi

jetzt unabhängig von wirklichen Möglichkeiten einen Angriffs, wenn ich theoretisch einen Hash eines Passwort z.B. abspeichere. Es soll ja bei MD5 eher und bei SHA deutlich unwahrscheinlicher möglich sein Kollisionen zu erzeugen. Wenn ich den Hash bereits habe, ein Passwort zu erstellen, daß den gleichen Hash hat. Dies könnte ich ja umgehen, in dem ich zwei verschiedene Hashes ablege und eine Kollision auf beiden sollte ja praktisch ausgeschlossen sein.

Allerdings ist es nicht wieder ein Sicherheitsrisiko, wenn ich zwei unterschiedliche Hashes habe, die die gleichen Daten beschreiben? Wenn man noch wenig andere Daten hat (also z.b. die Länge der Eingabedaten und diese überschaubar ist) ist es dann wahrscheinlicher mit beiden Hashes eher auf die Originaldaten zu schließen als wenn man nur einen hat. Man hat ja dann die doppelten Informationen?

Hi!

Interessante Überlegung :)

IMHO würde man durch das Anwenden zweier verschiedener(!) Hashverfahren das Sicherheitsneveau in der Tat signifikant(?) steigern. Rückschlüsse auf die Ausgangsdaten würden dabei dennoch nicht leichter von Hand gehen da es sich bei beiden Hashverafhren ja um von einander unabhängige Einwegfunktionen handelt.

In der Praxis hat dies aber weniger Bedeutung, da man eher die Bit-Anzahl der Hahswerte erhöht als zwei unterschiedliche Verfahren anwendet (statt SHA256 + MD5 lieber gleich SHA512).

cu

Gast
2007-11-01, 14:32:53
Ja toll. du machst dir keine gedanken und stellst einfach eine frage und wir müßen uns aber gedanken wegen der antwort machen ;)

sieht schlecht aus mit preis/leistung ;)Keiner muß sich hier Gedankenmachen, wenn er nicht will, noch irgendwas. Ich habe mir über das beschriebene Szenario Gedanken gemacht und wußte darauf keine Antwort.

Gast
2007-11-01, 14:46:07
IMHO würde man durch das Anwenden zweier verschiedener(!) Hashverfahren das Sicherheitsneveau in der Tat signifikant(?) steigern. Rückschlüsse auf die Ausgangsdaten würden dabei dennoch nicht leichter von Hand gehen da es sich bei beiden Hashverfahren ja um von einander unabhängige Einwegfunktionen handelt.Aber nochmal andersrum: wenn man bei einem unsicheren Verfahren Kollisionen erzeugen kann (kann man bei sowas überlicherweise nur wenige bestimmte Kollisionen erzeugen oder dann beliebige? Bei MD5 liest sich das so) und diese Kollisionen dann wieder mit dem zweiten Verfahren hashed dann müßte man doch an die Orginaldaten kommen können, wenn der Hash der ersten Kollision dem des Zweiten entspricht? Und der Vorraussetzung, daß man überschaubare Eingabedaten hat, wie ein 8 Zeichen Passwort. Mit genügend Kollisionen des ersten Hahes könnte man dann nicht an die Originaldaten kommen - denn ein Passwort ist ja erstmal wertvoller als eine Kollision des Passworthashes?

TheFallenAngel
2007-11-01, 15:15:20
Aber nochmal andersrum: wenn man bei einem unsicheren Verfahren Kollisionen erzeugen kann (kann man bei sowas überlicherweise nur wenige bestimmte Kollisionen erzeugen oder dann beliebige? Bei MD5 liest sich das so) und diese Kollisionen dann wieder mit dem zweiten Verfahren hashed dann müßte man doch an die Orginaldaten kommen können, wenn der Hash der ersten Kollision dem des Zweiten entspricht? Und der Vorraussetzung, daß man überschaubare Eingabedaten hat, wie ein 8 Zeichen Passwort. Mit genügend Kollisionen des ersten Hahes könnte man dann nicht an die Originaldaten kommen - denn ein Passwort ist ja erstmal wertvoller als eine Kollision des Passworthashes?

Kurz zum Punkt Kollisionen: Grundsätzlich muss man zwischen 2 Arten der Kollisionsresistenz unterscheiden.

Kollision:
Ein Paar (x, x'), für welches h(x) = h(x') aber x != x' gilt, wird Kollision genannt.

schwach Kollisionsresistent:
Es ist praktisch unmöglich (d.h. derzeit zu aufwendig) für einen bestimmten Text x ein x' zu finden, sodass (x, x') eine Kollision darstellt.

stark Kollisionsresistent:
Es ist praktisch unmöglich (d.h. derzeit zu aufwendig) irgendeine Kollision der Hashfunktion h zu finden.

Ich muss gestehen dass ich deinen Gedankengang nicht ganz nachvollziehen kann, aber ich versuche mal es Punktweise zu erfassen...

1.) Wir haben ein Passwort und 2 verschiedene Hashfunktionen h1 und h2
2.) Das Passwort ist unbekannt der Hashwert H1 = h1(Passwort) ist bekannt
3.) Wir suchen und finden eine Kollision K zu H1
4.) Nun hashen wir: H2 = h2(K)
5.) Wenn H1 = H2 dann....?

Ich sehe nicht wie man aus der Bedingung H1 = H2, geschweige denn aus H1 und H2 Rückschlüsse auf das Passwort machen soll. Des Weiteren hat die Länge des Passwortes natürlich keinen Einfluss auf die Sicherheit der Hashfunktion selbst. Es ist also egal ob das Passwort 8 Bytes oder 8 GiByte groß ist.

Gruß :)

The Cell
2007-11-02, 00:30:36
Das Grundsätzliche aktuelle Problem:

Alle gängigen Hashverfahren basieren auf der Grundlagenarbeit von Merkle und Damgard.
Seit 2004 sind generische Angriffe auf dieses Design bekannt (Joux-Angriff), so dass dringend Änderungen des Designs durchgeführt werden mussten.
Stefan Lucks aus Mannheim legte 2004 einen Entwurf vor, der die Schwächen von Merkle-Damgard ausmerzte und beweisbar resistent gegen die k-fach Kollisionsangriffe von Joux ist.
Man findet in SHA2 genau diese Änderungen, aber das Design ist ja leider nicht offengelegt.

Kurzum: MD5 -> tot
SHA1 -> kaputt
Andere Hashverfahren auf Merkle-Damgard basierend -> Augen auf beim Eierkauf

Zur eigentlichen Frage: Das kaskadieren von Hashverfahren ist eine mathematisch extrem unfeine, aber in diesem Fall sehr effiziente Methode, das Sicherheitsniveau nach oben zu drücken.

Gruß,
TC