Frage:
Warum wird MD5 immer noch verwendet / empfohlen, wenn es seit 1996 geknackt wurde?
Marek Sebera
2012-06-07 20:18:45 UTC
view on stackexchange narkive permalink

Es wird immer noch allgemein empfohlen, Kennwörter zu hashen, auch wenn die Unsicherheit 1996 nachgewiesen wurde:

Daher empfehlen wir, MD5 in Zukunft nicht mehr in Anwendungen wie signa- zu implementieren. Schemata, bei denen eine kollisionssichere Hash-Funktion erforderlich ist. Nach unserem derzeitigen Kenntnisstand sind SHA-1 und RIPEMD-160 die besten Empfehlungen für Alternativen zu MD5.

(Der Status von MD5 nach einem kürzlich erfolgten Angriff, CryptoBytes, RSA Laboratories, BAND 2, NUMMER 2 - SOMMER 1996)

Auch nach dieser Studie und allen anstehenden Veröffentlichungen über ihre Mängel wurde sie seitdem als Passwort-Hashing-Funktion in Webanwendungen empfohlen

Es wird sogar in einigen digitalen Signaturen von Zertifizierungsstellen verwendet (gemäß http://rmhrisk.wpengine.com/?p=60)

Was ist der Grund, warum dieser Message Digest-Algorithmus aus Sicherheitsgründen noch nicht verboten ist?


Links, ich habe einige Minuten gebraucht, um diese

zu finden
Diese Frage kommt mir aus meiner Sicht furchtbar nahe. Können Sie es in eine sachliche Frage umformulieren? Bitte stellen Sie sicher, dass Sie alle Ihre Prämissen / Annahmen dokumentieren.
@Ramhound Wenn Sie googeln, z. 80-95% verwenden MD5, ohne darauf hinzuweisen, dass dieser Weg unsicher ist.
@MarekSebera - Ich verwende keine zufälligen Quellen, um zu lernen, wie man guten "sicheren" Code schreibt. Ich verwende Quellen, von denen ich weiß, dass sie gute Programmierkonzepte verwenden. Ich habe nach "Starter-Anleitung zum Sichern von PHP-Webanwendungen" gesucht. Der erste Artikel schlug MD5 nicht vor.
@Ramhound Der zitierte Text sagt nichts über Passwörter aus. Es ist keine Sicherheitsanfälligkeit in MD5 bekannt, die verhindern würde, dass es ** für das Passwort-Hashing ** verwendet wird.
Acht antworten:
#1
+80
Thomas Pornin
2013-03-03 23:14:44 UTC
view on stackexchange narkive permalink

Um die gute Antwort von @DW zu ergänzen: für das Passwort-Hashing ist MD5 nicht fehlerhafter als jede andere Hash-Funktion (aber verwenden Sie sie trotzdem nicht) .


Das vollständige Bild: MD5 ist eine kryptografische Hash-Funktion, von der erwartet wird, dass sie drei Merkmale erfüllt:

  • Widerstand gegen Vorbilder: Bei x ist es unmöglich, m so zu finden, dass MD5 (m) = x .
Widerstand gegen Zweitvorbilder: Bei m ist es unmöglich, m ' zu finden, das sich von m unterscheidet und so, dass MD5 (m) = MD5 (m ') .
  • Kollisionsbeständigkeit: Es ist unmöglich, m und m ', voneinander verschieden und so, dass MD5 (m) = MD5 (m') .
  • MD5 ist in Bezug auf Kollisionen gründlich defekt, jedoch nicht für Vorbilder oder Zweitvorbilder. Darüber hinaus hat der Angriff von 1996 (von Dobbertin) MD5 überhaupt nicht gebrochen; es war eine "Kollision mit der Kompressionsfunktion", d. h. ein Angriff auf eines der internen Elemente von MD5, aber nicht die volle Funktion. Kryptographen nahmen es als Warnflagge und sie hatten Recht, weil der tatsächliche Kollisionsangriff, der 2004 (von Wang) veröffentlicht wurde, auf den Erkenntnissen von Dobbertin beruhte. MD5 wurde jedoch erst 2004 und nicht 1996 beschädigt, und es handelte sich um einen Kollisionsangriff .

    Kollisionen sind für die Sicherheit von Kennwort-Hashing nicht relevant. Die meisten Verwendungen einer Hash-Funktion für das Passwort-Hashing hängen entweder vom Widerstand vor dem Bild oder von anderen Eigenschaften ab (z. B. wie gut die Hash-Funktion funktioniert, wenn sie in HMAC verwendet wird, was nicht auf eine der oben genannten Eigenschaften reduziert werden kann ). MD5 wurde in Bezug auf Vorbilder tatsächlich "geschwächt", aber nur auf theoretische Weise, da die Angriffskosten immer noch Milliarden von Milliarden zu teuer sind, um wirklich ausprobiert zu werden (so dass MD5 in Bezug auf Vorbilder nicht "wirklich" kaputt ist). nicht auf praktische Weise).

    Verwenden Sie MD5 jedoch trotzdem nicht . Nicht wegen einer kryptografischen Schwäche, sondern weil MD5 ungesalzen und sehr schnell ist. Genau das möchten Sie in einer Passwort-Hashing-Funktion nicht. Leute, die MD5 für das Passwort-Hashing "empfehlen", wissen es einfach nicht besser und sie sind ein Beweis für eine Wahrheit, die Sie immer im Auge behalten sollten: Nicht alles, was Sie im Internet finden, ist korrekt und vertrauenswürdig. Bessere Lösungen für das Passwort-Hashing sind bekannt und werden seit mehr als einem Jahrzehnt verwendet und bereitgestellt. Siehe diese Antwort für Details und Hinweise.

    Die alleinige Verwendung von MD5 zum Hashing von Kennwörtern ist keine gute Idee, da Benutzer sehr sichere Kennwörter auswählen müssen, um sicher zu sein. Es gibt jedoch eine Standardkonstruktion zum Berechnen eines gesalzenen Passwort-Hash mit MD5, und nach meinem besten Wissen ist diese noch nicht defekt.
    Ihre korrekte Aussage, dass MD5 zu schnell und ungesalzen ist (weil dies auch für die SHA-Familie gilt), würde ich aus einem nicht technischen Grund immer noch von MD5 fernhalten: Öffentlichkeitsarbeit. Es ist eine Herausforderung, Ihren Chef oder Kunden von dem zu überzeugen, was Sie erklären. Und jede Menge Techniker (deren Meinungen von denselben Leuten geschätzt werden, die Sie zu überzeugen versuchen) werden ebenfalls getäuscht. Immerhin gibt es im Internet viele "Beweise", die ihre Überzeugung stützen, dass MD5 nicht verwendet werden sollte, weil es 2004 defekt war.
    In Bezug auf den Widerstand gegen Vorbilder frage ich mich, warum Sie nicht erwähnt haben * [Yu Sasaki;Kazumaro Aoki (16. April 2009)."Finden von Vorbildern in MD5 schneller als erschöpfende Suche".Springer Berlin Heidelberg] (http://www.springerlink.com/content/d7pm142n58853467/) * ** und / oder ** [* Ming Mao und Shaohui Chen und Jin Xu (2009)."Aufbau der Ausgangsstruktur für den Preimage-Angriff von MD5".Internationale Konferenz für Computational Intelligence and Security.IEEE Computer Society] (http://ieeexplore.ieee.org/document/5376483/) *, die auf einen (theoretischen) Bruch der Vorbildresistenz von MD5 im Jahr 2009 hinweisen.
    @e-sushi Nun, das habe ich mit "theoretisch geschwächt" gemeint.
    @ThomasPornin In diesem Fall ignorieren Sie einfach meinen Kommentar und betrachten ihn als bestätigenden Zusatz, um Ihre Aussagen zu unterstreichen.;)
    #2
    +30
    D.W.
    2012-06-07 23:10:48 UTC
    view on stackexchange narkive permalink

    Was meinst du mit "verboten"? Wer würde die Verwendung von MD5 "verbieten"? Es ist nicht so, dass wir einige internationale Crypto Cops haben, die Leute verhaften, die ROT13 und andere unsichere Krypto-Schemata verwenden.

    Oder, um es etwas ernster zu machen: Kryptographen empfehlen bereits, dass neue Systeme MD5 vermeiden sollten, und sie empfehlen, dass vorhandene Systeme von MD5 weg migrieren. Ich weiß nicht, was Kryptographen Ihrer Meinung nach noch dagegen tun können.

    Sie behaupten, MD5 sei eine "allgemein empfohlene Methode zum Hashing von Passwörtern", aber Sie liefern keine Beweise für diese Behauptung. Ich denke nicht, dass die Behauptung richtig ist. Das war nicht meine Erfahrung.

    Unter dem Strich spricht die kryptografische Community bereits ziemlich deutlich mit einer Stimme zu diesem Thema, und die meisten Leute sind migriert bereits von MD5 weg. Die Fälle, in denen MD5 noch verwendet wird, sind die Ausnahme und nicht die Norm.

    Bearbeiten (6/17): Ich sehe, dass Sie einige Links hinzugefügt haben, die die Verwendung von MD5 für das Hashing erwähnen. Sie beweisen nur, dass einige Leute, von denen ich noch nie gehört habe, verwirrt sind. Na und? Sie sollten wahrscheinlich skeptisch sein, wenn Sie sich von Leuten beraten lassen, die sich in der Sicherheits- / Kryptografie-Community ohnehin keinen guten Ruf erarbeitet haben. Und ich verstehe nicht, wie Sie die Sicherheits- / Kryptografie-Community dafür kritisieren können, dass einige Leute, die nicht in der Community sind, verwirrt sind. Was genau sollen wir tun? Wir tun bereits alles, um das Wissen über den richtigen Weg zu erweitern. Ich habe das Gefühl, dass Sie wirklich die falschen Leute beschuldigen.

    Um Ihre Frage zu beantworten, warum einige Leute MD5 immer noch empfehlen: Nun, meine Güte, es liegt wahrscheinlich daran, dass diese Leute es nicht besser wissen . Ich weiß nicht, was noch jemand zu diesem Thema sagen kann oder was Sie von jemandem erwarten.

    Das Wort "verbieten" wird wahrscheinlich schlecht verwendet. Ich meine eher, einen großen Warnbildschirm darum zu legen und die Entwickler auf SHA oder Blowfish zu verweisen, da dies dem gleichen Zweck dienen kann. Und ja, es wird immer weniger verwendet, aber wir können immer noch viele Artikel auf MD5 finden, in denen die Verwendung beim Passwort-Hashing nicht abgelehnt wird. Ich habe einige Links zum Ende der Frage hinzugefügt, die MD5 als sicheren Hashing-Algorithmus bezeichnen, um meine Behauptung zu beweisen.
    @MarekSebera Im Zusammenhang mit dem Passwort-Hashing ist kein Angriff auf md5 bekannt, der nicht für Sha1 / 2 gilt. Und Blowfish ist nicht einmal eine Hash-Funktion.
    Ich habe mich mit Blowfish geirrt, aber in Bezug auf "Kollisionsangriff" ist der SHA2 immer noch sicher, und SHA1 wird nur theoretisch angegriffen. Bisher gibt es keinen schnellen Kollisionssuchalgorithmus, der die Sicherheit von SHA1 / 2 verletzen würde. Wenn Sie über SHA-Regenbogentabellen oder Bruteforce-Angriffe sprechen, sind diese Funktionen nicht gegen sie gesichert (aber welche Hashing-Funktion ist)
    @MarekSebera Mein Punkt ist, dass Kollisionsangriffe im Zusammenhang mit Passwort-Hashing völlig irrelevant sind. Sogar eine Hash-Funktion, die die Konstruktion von Kollisionen mit Stift und Papier ermöglicht, kann für das Hashing von Passwörtern völlig sicher sein, solange die ersten Vorbilder noch schwer zu finden sind.
    @CodesInChaos Warum sind Kollisionen beim Passwort-Hashing irrelevant? Ein Passwort-Hashing-Schema, bei dem zwei Passwörter mit zwei gleichen Digests gehasht werden, verletzt nicht die Sicherheit des Passwort-Hashing-Schemas? Dies bedeutet, dass ein anderer Benutzer mit einem anderen Kennwort zum Zugriff berechtigt ist
    @curious Bei einer Kollisionsanfälligkeit muss der Angreifer beide Zeichenfolgen steuern. Wen interessiert es, ob der Angreifer ein Konto erstellen kann, für das er zwei verschiedene Passwörter kennt? Es ist sowieso sein Konto. Die ordnungsgemäße Verwendung von Salting (HMAC oder vor dem Kennwort) blockiert normale Kollisionsangriffe, sodass Sie nicht einmal Kollisionen gegen PBKDF2-HMAC-MD5 finden können.
    Warum also der Passwort-Hashing-Wettbewerb? Da Passwort-Hashing-Schemata gut funktionieren?
    Ich kann mir vorstellen, dass MD5 "allgemein empfohlen" wird, weil es so viele wirklich alte Tutorials im Web gibt, die seit einem Jahrzehnt oder länger nicht mehr aktualisiert wurden. Das Problem ist, dass sie, weil sie schon so lange da sind, bei den Suchanfragen oft relativ häufig auftauchen, sodass sie viel mehr Verkehr erhalten, als sie verdienen. StackOverflow erhält ständig naive Fragen von Leuten, die sich auf alte Tutorials beziehen.
    * "Es ist nicht so, dass wir einige internationale Crypto Cops haben, die Leute verhaften, die ROT13 verwenden" * Eigentlich ja.Es wird erwartet, dass Sie angemessene Maßnahmen ergreifen, um die Daten von Personen gemäß den Datenschutzgesetzen zu schützen, zumindest in den Niederlanden ...
    #3
    +9
    user185
    2012-06-08 13:45:38 UTC
    view on stackexchange narkive permalink

    Ich denke, was Sie sehen, ist der lange Schwanz des Webs. Ich kann Artikel aus dem Jahr 2006 finden, die MD5 für das Passwort-Hashing empfehlen (z. B. http://www.pixel2life.com/publish/tutorials/118/understanding_md5_password_encryption/) - noch 10 Jahre nach Ihrem Referenzdatum.

    Wir sprechen jedoch über die Zeit, die erforderlich ist, um aus den neuesten Forschungsergebnissen in den von Experten geprüften Kryptografie-Journalen etwas zu gewinnen, um die Praxis unter alltäglichen Praktikern zu empfehlen, die keine Kryptografie-Journale lesen und nicht einmal Experten auf diesem Gebiet sind . Was wahrscheinlich passiert ist, ist, dass 1990 jeder "wusste", dass MD5 gut für Passwörter ist, und allen anderen sagte, dass MD5 gut für Passwörter ist. Ab Ende der neunziger Jahre sagten einige Leute, MD5 sei schlecht für Passwörter, aber die meisten Leute "wussten", dass es gut für Passwörter ist, und dies war immer noch das, was sie anderen rieten.

    Heutzutage gibt es eine, die groß genug ist Eine Gruppe von Personen, die "wissen", dass bcrypt für Kennwörter geeignet ist, für die Sie diese Empfehlungen bereits sehen, aber die Artikel, in denen MD5 für Kennwörter geeignet ist, sind noch nicht aus den Suchmaschinenindizes herausgefallen . Mit der Zeit werden sie es tun.

    Das bedeutet, dass Sie in einem Jahrzehnt hierher zurückkehren und die Frage stellen werden: "Warum empfehlen die Leute immer noch die Verwendung eines bcrypt Arbeitsfaktors von 10 Wenn dieses Journal sagt, dass Sie mindestens 150 verwenden sollten? "...

    Poul Henning-Kamp hat ursprünglich die UNIX-Funktion crypt () von DES auf MD5 verschoben. Er erklärt hier, dass die Tatsache, dass Benutzer MD5 verwenden, zeigt, dass er nicht erfolgreich beschrieben hat, was er versucht hat: Kennwort-Hashing komplexer zu gestalten, MD5 nicht als Shibboleth zu installieren.

    Ich bin damit einverstanden, dass viele Entwickler sich lange Zeit auf MD5 verlassen haben. Und danke, dass Sie das `bcrypt` erwähnt haben, da es ein feiner hw-skalierbarer Algorithmus ist, und ich würde es auch empfehlen. Vielleicht wäre es schön zu sehen, dass Google Artikel auf die schwarze Liste setzt, in denen MD5 für folgende Zwecke empfohlen wird: D.
    @MarekSebera Ich bin nicht sicher, ob Suchmaschinen Inhalte zensieren sollen.
    Ja, das war keine ernsthafte Idee, auch wenn ich wetten würde, dass dies noch nicht geschehen ist.
    #4
    +6
    Martin Trigaux
    2012-06-08 12:46:07 UTC
    view on stackexchange narkive permalink

    Sie haben mehrere Verwendungsmöglichkeiten von MD5.

    Integritätsprüfung

    Überprüfen Sie, ob die heruntergeladene oder empfangene Datei das Original ist, indem Sie den Hash der Datei überprüfen. Es hat sich gezeigt, dass Sie problemlos eine Datei mit derselben Prüfsumme erstellen können.

    Eine Kollision in MD5 ist einfach zu erstellen. MD5 sollte nicht für diesen Zweck verwendet werden.

    Während des Herunterladens von ISO und anderen Inhalten wird weiterhin eine MD5-Prüfsumme vorgeschlagen, häufig wird jedoch auch eine SHA-Prüfsumme angegeben. Dies kann erklärt werden, da MD5 viel schneller ist und normalerweise implementiert wird.

    Kennwortprüfung

    Anstatt ein Kennwort im Klartext zu speichern, speichern Sie den Hash des Kennworts. Einige Websites verwenden dazu immer noch MD5. Das Problem hierbei ist nicht, eine Kollision zu finden, sondern eine Regenbogentabelle oder eine riesige Datenbank mit MD5-Prüfsummen zu überprüfen.

    Da Sie sehr schnell Millionen von MD5-Prüfsummen erstellen können, können Sie ein Kennwort selbst brutal erzwingen PC. Aus diesem Grund sollten Sie MD5 nicht zum Hashing Ihres Passworts verwenden, aber meistens sollten Sie ein Salz hinzufügen.

    Wenn Sie ein sehr komplexes Passwort (lang mit Sonderzeichen) und a haben einzigartiges komplexes Salz für jedes gespeicherte Passwort, es ist nicht so sehr ein Problem für Sie, MD5 zu verwenden. Ich sage nicht, dass Sie sollten (Sie sollten nicht), aber es ist kein großes Sicherheitsproblem, MD5 zu verwenden, wenn das Passwort schwer zu erzwingen ist und die Verwendung von Regenbogentabellen durch das Salz verhindert wird. Natürlich ist es auf Ihrer Website nicht einfach (und geschätzt), die Benutzer zu einem komplexen Kennwort zu zwingen. Wenn ein Benutzer also 12345 registriert, wird es ungeachtet der von Ihnen verwendeten Hash-Funktion beschädigt.

    Der Grund, warum die Leute das immer noch verwenden, liegt vielleicht daran, dass es immer noch die bekannteste Hash-Funktion ist und vor einigen Jahren noch akzeptabel war. Leute mit nicht viel Kryptowissen können es verwenden.

    "_Wenn Sie ein sehr komplexes Passwort haben (lang mit Sonderzeichen) _", spielt es keine Rolle, ob Sie "_ein eindeutiges komplexes Salz für jedes gespeicherte Passwort, _" haben.
    MD5 sollte nicht zur Kennwortprüfung verwendet werden, es sei denn, es ist mit einem sicheren Algorithmus gekoppelt. Ein Hauptproblem bei MD5 ist die geringe Länge der Ausgabe.
    @Ramhound Bitte definieren Sie "sicheren Algorithmus". "Ein Hauptproblem bei MD5 ist die geringe Länge der Ausgabe." Hug?
    @curiousguy Ja, das Salz ist wichtig, weil es verhindert, dass eine Regenbogentabelle erstellt wird, die für jedes Passwort verwendet werden kann. Hier müssten Sie eine Tabelle pro Passwort (und Salt) erstellen.
    @Ramhound Das Problem mit der Ausgabe kleiner Länge könnte das Risiko einer Kollision sein, aber für ein Passwort ist es trotzdem sehr schwach, selbst mit "nur" 128bit
    @MartinTrigaux Das Salz ist wichtig, wenn Ihr Passwort nicht trivial, aber nicht so sicher wie möglich ist. Ein extrem starkes Passwort braucht kein Salz.
    Ich weiß nicht, warum diese Antwort so sehr abgelehnt wurde. Es hat gute, nützliche Informationen. Die Punkte über die Unterscheidung zwischen Integritätsprüfung und Passwortprüfung sind vollkommen gültig; Die beiden Anwendungen haben unterschiedliche Sicherheitsanforderungen. P.S. Ein Raum für Verbesserungen in der Antwort ist, dass es nicht ausreicht, die Verwendung eines Salzes zu empfehlen. Sie sollten auch die Verwendung einer langsamen Hashing-Funktion wie Scrypt, Bcrypt oder PBKDF2 empfehlen.
    #5
    +3
    Travis Pessetto
    2012-06-07 23:14:22 UTC
    view on stackexchange narkive permalink

    Ich glaube nicht, dass es empfohlen wird. Wikipedia gibt an, dass MD5 als defekt gilt und SHA-2 oder SHA-Familie empfohlen wird, um es zu ersetzen. Schauen Sie sich auch Devise an, ein Rubinstein, der die Autorisierung übernimmt. Es hat eine andere Art von Verschlüsselung.

    Und ich denke, mit dem Vorschlag eines Rubin-Edelsteins liegt darin der Rubel. "Leute", die MD5 implementieren, tun dies nicht, weil sie absichtlich versuchen, eine kaputte Hash-Funktion zu verwenden, sondern weil sie Edelsteine, Module, Software usw. verwenden, die nicht aktualisiert wurden, um sicherere Methoden zu verwenden. Sie wissen es nicht besser und anscheinend ist es ihnen egal.
    Nun, wenn es hilft, empfiehlt php.net selbst, es nicht für Passwörter zu verwenden. "Es wird aufgrund der Schnelligkeit dieses Hashing-Algorithmus nicht empfohlen, diese Funktion zum Sichern von Passwörtern zu verwenden." -Http: //php.net/manual/en /function.md5.php
    Es ist auch nicht erforderlich, Informationen zu speichern, es sei denn, Sie führen eine Kreditkartenverarbeitung durch, bei der Ihre Webanwendung PCI-kompatibel sein muss.
    Wie ist MD5 "kaputt", um Passwörter zu verbergen?
    @curiousguy MD5 ist kaputt, weil es leicht mit roher Gewalt geknackt werden kann. Wenn Sie den Hash in den Griff bekommen, können Sie in kurzer Zeit herausfinden, wie das Passwort lautete. Ich weiß nicht genau, wie lange, aber ich glaube, es ist nur ein paar Minuten oben. Dies geschieht, indem Sie einfach alles ausprobieren, bis die Hashes gleich sind. Da der MD5-Algorithmus schnell ist, ist es einfach, dies schnell zu tun.
    @TravisPessetto "_MD5 ist defekt, weil es leicht mit Brute-Force geknackt werden kann._", wenn ein schwaches Passwort verwendet wird. "_Nicht sicher, wie lange, aber ich glaube, es ist nur ein paar Minuten oben._", weil Sie ein schwaches Passwort verwendet haben "_Das geschieht, indem Sie einfach alles versuchen, bis die Hashes gleich sind, und da der MD5-Algorithmus schnell ist, ist es einfach das schnell zu machen._ "was nur möglich ist ** wenn du jedes passwort aufzählen kannst, weil dein passwort schwach ist **
    @curiousguy Entnommen aus [PHP.net] (http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash) "Hashing-Algorithmen wie MD5, SHA1 und SHA256 sind sehr konzipiert schnell und effizient. Mit modernen Techniken und Computerausrüstung ist es trivial geworden, die Ausgabe dieser Algorithmen "brutal zu erzwingen", um die ursprüngliche Eingabe zu bestimmen. Aufgrund der Geschwindigkeit, mit der ein moderner Computer diese Hashing-Algorithmen "umkehren" kann, gibt es viele Sicherheitsexperten raten dringend von ihrer Verwendung für das Passwort-Hashing ab. "
    @TravisPessetto Dies ist völliger Schwachsinn von PHP.net. Keine dieser Funktionen ist mit der vorhandenen Technologie invertierbar. Diese Jungs haben offensichtlich kein Verständnis dafür, wovon sie sprechen und ** sollten niemals vertrauenswürdig sein **. (Übrigens ist PHP eine so hässliche Sprache, dass es keine Überraschung ist, dass diese Leute inkompetente Idioten sind.)
    @curiousguy, Ich glaube nicht, dass es Bullshit ist. Es ist vollkommen Standardberatung. Standardmäßig wird empfohlen, einen langsamen Hash wie bcrypt, scrypt oder PBKDF2 zu verwenden, keinen schnellen Hash wie MD5, SHA1 oder SHA256, wenn Sie Passwörter hashen müssen. (Wenn sie sich auf "Brute Force" beziehen, meinen sie wahrscheinlich Wörterbuchangriffe, die gängige Passwörter auflisten. Diese Angriffe sind sehr effektiv, da viele Leute Passwörter mit nicht sehr hoher Entropie wählen.) Suchen Sie auf dieser Site nach "Passwörtern" für Lern mehr.
    #6
    +2
    curiousguy
    2012-06-08 07:21:29 UTC
    view on stackexchange narkive permalink

    Auch nach dieser Studie und allen anstehenden Veröffentlichungen zu ihren Fehlern wurde sie seitdem als Passwort-Hashing-Funktion in Webanwendungen empfohlen.

    Ja, und?

    Passwort-Hashing ist nur Zeitverschwendung.

    MD5 ^ n (MD5 iteriert n mal) ist genauso gut wie SHA1 ^ m (für m wie time (MD5 ^ n) > = time (SHA1 ^ m) ) für Zeitverschwendung .

    Niemand hat etwas vorgeschlagen Möglichkeit, MD5 ^ n auf eine Weise zu berechnen, die schneller ist als der offensichtliche MD5 o MD5 ^ (n-1) . Es gibt noch nicht einmal den Anfang einer Idee, dies zu tun.

    Hier ist nichts kaputt.

    Um Zeit zu verschwenden, sollten Sie scrypt .

    "MD5 ^ n (MD5 n-mal iteriert) ist genauso gut wie SHA1 ^ m" - ** DIESES iS 100000000% false ** Sie können MD5-Unendlichkeitszeiten für eine Zeichenfolge ausführen, und die Ausgabe ist bekannt. MD5 ist nicht sicher und sollte nicht verwendet werden, um Passwörter selbst zu hashen. SHA256 ist sicher MD5 ist NICHT.
    @Ramhound Ich stimme zu, wenn die Hashing-Funktion bei der ersten Iteration nicht sicher ist, ist sie bei mehreren Iterationen nicht sicherer. Wenn Sie das Hashing jedoch zehnmal durchführen, bedeutet dies für Angreifer, dass die Generierung von Tabellen ca. 10 mal langsamer, was wenig Befriedigung ist
    @MarekSebera "_Ich stimme zu_" Sie stimmen mit was überein? "_wenn die Hashing-Funktion bei der ersten Iteration nicht sicher ist_" was meinst du mit "sicher"?
    @Ramhound "_THIS iS 100000000% false_" Denken Sie, dass ein Algorithmus, der langsamer als ein anderer ist, nicht langsamer ist?
    Ich bin damit einverstanden, dass wenn die erste Iteration von MD5 das Passwort nicht so hasht, um es sicher zu machen (bedeutet keine Möglichkeit des Knackens, bis Sie erkennen, was der Klartext ist, egal ob Wörterbuch, Bruteforce oder was auch immer) N-maliges Ausführen kann die Sicherheit nicht erhöhen.
    @MarekSebera "_wenn die erste Iteration von MD5 das Kennwort nicht so hasht, um es sicher zu machen_" Nun, MD5 ** hasht ** auf sichere Weise.
    @curiousguy und da liegen Sie falsch. Wenn MD5 das Passwort auf sichere Weise hashen würde, hätte es keine Kollisionen gehabt und wäre zu empfehlen.
    @MarekSebera Hier liegen ** Sie ** falsch. MD5 hat keine Kollision mit Passwörtern und wird empfohlen.
    @Ramhound, 100000000% false - Umschließt das Mod 100, so dass es 0% falsch ist? Im Ernst, Sie liegen falsch und Neugierige haben Recht. Ihre Aussagen sind nicht hilfreich und scheinen ein Missverständnis der Situation widerzuspiegeln. "X ist sicher" ist keine hilfreiche Aussage. Sie müssen angeben, "sicher für was?". Wenn Sie das tun, werden Sie feststellen, dass die Antwort von Neugierigen vollkommen richtig ist. Die bekannten Kollisionsangriffe auf MD5 sind Kollisionsangriffe und gefährden nicht die Verwendung von MD5 zum Hashing von Passwörtern.
    Ich finde es enttäuschend zu sehen, dass mehrere Personen diese Antwort abgelehnt haben. Klingt nach einem weit verbreiteten Missverständnis oder einer Verwirrung über die Sicherheitsanforderungen für eine Passwort-Hash-Funktion. In der Tat ist die Antwort von neugierigen völlig richtig. Die Kommentare von @MarekSebera und Ramhound hier sind ungenau und etwas verwirrt über die Sicherheitsanforderungen für das Passwort-Hashing.
    Ich würde die Worte "genauso gut" nicht verwenden, da ich denke, dass eine Kryptoanalyse, die Pre-Image-Angriffe gegen md5 erzielt, eher eintrifft als gegen SHA-1. Insofern ist es jedoch richtig, dass aktuelle Angriffe keine Möglichkeit bieten, erste Vorbilder für MD5 zu finden, die schneller sind als nur das Passwort zu erraten.
    @CodeInChaos "_Ich denke, dass Kryptoanalyse, die Pre-Image-Angriffe gegen md5 erzielt, eher eintrifft als gegen SHA-1_" Ja, aber ich halte es für äußerst unwahrscheinlich, dass ein solcher Angriff jemals billig oder billiger wird, als das gesamte Wörterbuch auszuführen (+ triviale Varianten) wie Großbuchstaben oder hinzugefügte Ziffer) über MD5. OTOH, solche Angriffe können es einfacher machen, einen Schlüssel K mit hoher Entropie zu erraten, bei dem MD5 (K) bekannt ist, als durch brutales Erzwingen des Schlüsselraums.
    #7
    +1
    user1652382
    2013-05-04 17:24:46 UTC
    view on stackexchange narkive permalink

    Dies ist eine offizielle Information über MD5 - MD5, das für Kollisionsangriffe anfällig ist Für eine höhere Sicherheit sollte SHA-2 in Betracht gezogen werden. Niemand hindert Benutzer daran, MD5 zu verwenden, jedoch nicht für die Daten, die Sie privat halten möchten.

    Leistung von Hash-Algorithmen

    Wie in der Abbildung gezeigt " Leistung von Hash-Algorithmen ", SHA256 ist viel schneller als MD5.

    Dies ist eine gute Ressource, die zu berücksichtigen ist. Der Autor untersucht die durchgesickerten Passwörter in LinkedIn - Warteschlange (.) Acm (.) Org / detail.cfm? Id = 2254400&ref = fullrss, zeigt auch einige Möglichkeiten zum Sichern von Passwörtern.

    #8
      0
    Mark Giblin
    2014-02-25 18:25:11 UTC
    view on stackexchange narkive permalink

    Das Problem des Passwort-Hashing und der Verwendung von Regenbogentabellen hängt von der Sicherheit eines Webservers ab, der durch eine zugrunde liegende Schwachstelle ausgenutzt wird.

    Zunächst einmal sollen all diese Websites einen einfachen Test anbieten Überprüfen Sie, ob Ihr Passwort sicher ist ... Ummm, lassen Sie uns diese Websites als Phishing betrachten und alle Leute, die sich auf diese Websites begeben, füttern einen Regenbogentisch. Dies ist ein Teil des Problems.

    Zweitens handelt es sich um Personen, die Webhosting-Dienste nutzen, bei denen es darum geht, Geld einzusammeln und die Sicherheit des Webservers zu vergessen. Diese Hosts sollten an die Wand gestellt und erschossen werden Meiner Meinung nach beruht ein Teil der Sicherheit eines Benutzer-Logins auf der Sicherheit eines Webservers und der Aktualisierung der zugrunde liegenden Technologien, um zu verhindern, dass bekannte Exploits verwendet werden.

    Drittens ist dies der Fall, wenn die Benutzer erst einmal darauf zugreifen Ihre dicken Köpfe sind zwar nicht kollisionssicher oder ich bevorzuge so robust wie möglich, aber es ist immer noch schwierig, ein Benutzerkonto zu hacken, es sei denn, Sie haben einen Webhost, auf dem ein ausnutzbares System ausgeführt wird, Ihre Webcodierung ist nicht robust und Sie Stellen Sie sich einer Website zur Verfügung, die behauptet, Ihre Kennwortsicherheit zu überprüfen.

    Zum größten Teil ist MD5 + ein Salt-Wert eine ausreichende Sicherheit für eine Benutzeranmeldung in einem Webforum, solange das zuvor erwähnte System und die zuvor erwähnte Software vorhanden sind nicht ausnutzbar. Sobald Sie ein System haben, das für eine Schwachstelle ausgenutzt wurde, wird durch Ausführen einer Abfrage nach bekannten Hashwerten, die kein Salting-System verwenden, eine vierte Schwachstelle aufgedeckt ... der Endbenutzer.

    Viertens ist der Endbenutzer, Ihre Websicherheit ist letztendlich nur so stark wie das schwächste Glied, und für viele wird der Endbenutzer genau so gesehen, und Administratoren müssen sich daran erinnern, dass sie Endbenutzer eines Systems sind und gleichermaßen als anfällig für die Gefährdung der Systemsicherheit durch schlampige Programmierung oder Software, die leicht zu beschädigen ist, schlechte Kennwortsicherheit und das Versäumnis, die ADMIN-Anmeldung zu ändern, oder durch die Verwendung von Software, die auch heute noch darauf besteht, den Administrator-Anmeldenamen als Administrator zu verwenden und Super-User-Konten zu verwenden

    Es versteht sich von selbst, also werde ich es trotzdem sagen, MD5 ist nicht geknackt, es wird durch schwache Benutzer, schwache Software und die Unfähigkeit der Menschen, eine Technologie zu verstehen, rückentwickelt. Wenn MD5 geknackt ist, sind es auch SHA und AES und so weiter ...



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...