This page has been robot translated, sorry for typos if any. Original content here.

Alle MD5-Hack

Mit dem Thema:


Все методы взлома MD5

Es ist kein Geheimnis, dass Kryptographie fest in unserem Leben etabliert ist. Internet-Dienste, soziale Netzwerke, mobile Geräte - sie sind alle in ihren Datenbanken Passwörter verschlüsselt mit verschiedenen Algorithmen gespeichert.

Die beliebtesten heute ein solcher Algorithmus, natürlich, ist MD5.

Auf Möglichkeiten, es zu hacken und diskutiert.

Ein wenig über Kryptographie

Moderne Kryptographie umfasst drei Bereiche: eine private Schlüssel-Verschlüsselung, Public-Key-Verschlüsselung und Hashing. Heute werden wir darüber reden, was ist Hashing und was es isst.

Im allgemeinen erkennt, ein Hashing Umwandlung von Eingangsdaten von beliebiger Länge in Ausgang Bitstring fester Länge. In den meisten Fällen in dem Benutzerauthentifizierungsprozess die Hash-Funktion (Datenbank-Hash-Passwort gespeichert ist in der Regel anstelle des Kennworts) für Prüfsummen von Dateien, Datenpaketen, und so weiter. N.

Einer der bekanntesten und am weitesten verbreiteten ist der MD5 Hash-Algorithmus.

Anfang

MD5-Algorithmus ist ein 128-Bit-Hash-Algorithmus. Dies bedeutet, dass er berechnet einen 128-Bit-Hash für einen beliebigen Satz von Daten an seinem Eingang empfangen. Der Algorithmus entwickelt von Ronald Rivest, Professor des Massachusetts Institute of Technology im Jahr 1991 ersetzen weniger zuverlässig Vorgänger - MD4. Der Algorithmus wurde zum ersten Mal im April 1992 in RFC veröffentlicht 1321. Danach MD5 eine Vielzahl von Problemen, aus dem Hash-Passwort in dem CMS zu lösen verwendet wurde, um eine digitale Signatur und die SSL-Zertifikate zu erstellen.

Die Tatsache, dass der MD5-Algorithmus geknackt werden kann, erwähnt erstmals 1993. Forscher Bert Den Boer und Anton Bossilaris zeigte, dass der Algorithmus psevdokollizii kann. Drei Jahre später, 1996, Hans Dobbertin hat einen Artikel veröffentlicht, der die Existenz von Konflikten bewiesen und beschrieben, um die theoretische Möglichkeit MD5-Hack. Es war nicht der Einbruch, aber in der Welt kam ins Gespräch über die Notwendigkeit, zu einem sicheren Hash-Algorithmus, wie SHA1 zu bewegen (zum Zeitpunkt des Schreibens dieses Artikels hat bereits bewiesen, dass Konflikte in diesem Algorithmus existieren, so empfehle ich SHA2 zu verwenden) oder RIPEMD-160.

Der erste Angriff

MD5 direkten Hacking begann 2004 1. März. Das Unternehmen startete CertainKey Kryptosysteme MD5CRK Projekt - Konflikte Suchsystem verteilt. Das Ziel des Projektes war es zwei Nachrichten mit identischen Hash-Codes zu finden. Das Projekt wurde am 24. August abgeschlossen 2004, als vier unabhängige Forscher - Xiaoyun Wang, Feng Denguo, Xuejia Lai und Hongbo Yu - entdeckte Verwundbarkeit Algorithmus ermöglicht es Ihnen, Kollisionen Analyseverfahren für eine mehr oder weniger angemessene Zeit zu finden. Mit dieser Methode können Sie nur erkennen Kollisionen pro Stunde auf IBM p690-Cluster (sorry, ich das nicht zu Hause haben).

Все методы взлома MD5
Beispiel MD5-Kollisionen von Hashes

Die erstmals im März 2005 wurde der erste Einsatz dieser Sicherheitsanfälligkeit in der Praxis unter Beweis gestellt. Eine Gruppe von Forschern präsentierte zwei X.509-Zertifikate mit verschiedenen Sätzen von Schlüsseln, aber mit identischen Prüfsummen. Im selben Jahr veröffentlichten Vlastimil Klima einen Algorithmus Kollisionen auf einem normalen Laptop für ein paar Stunden zu erfassen. Im Jahr 2006 fuhr er fort. Eighteenth März 2006 Forscher enthüllt Algorithmus Kollisionen in einer Minute zu finden! Diese Methode wird als „Tunneling“ genannt. Im Jahr 2008, die Chaos Communication Congress Konferenz wurde durch einen Artikel über das Verfahren zum Erzeugen von gefälschten X.509-Zertifikaten vertreten. In der Tat war es die erste wirkliche Verwendung von Kollisionen in MD5-Algorithmus.

Все методы взлома MD5
MD5 Brutus Maske

Viel Arbeit ist getan auch wurde, und die Rissbildung Hashes zu beschleunigen. Im Jahr 2007 stellte Kevin Briz ein Programm, das das Sony PlayStation3 für MD5-Hack verwendet. Er konnte sehr gute Ergebnisse erzielen: 1,4 Mrd. MD5-Hashes in nur einer Sekunde erzeugt wurden! Zwei Jahre später, im Jahr 2009, an der BlackHat USA veröffentlicht einen Artikel über die Verwendung der GPU Kollision zu suchen, die seine Geschwindigkeit mehrmals erhöhen dürfen, vor allem, wenn es gleichzeitig mehrere Grafikkarten durchgeführt.

ATI Radeon HD 4850 X2 Grafikkarte ermöglicht es Ihnen, auf 2,2 Milliarden Hashes pro Sekunde zu erzeugen up! den MD5-Algorithmus in der digitalen Signatur ist nicht akzeptabel, aufgrund der ungenügenden Stabilität dieses Algorithmus Kollisionen zu finden.

Dies ist das Ende?

Im Jahr 2011 hat die IETF bereit erklärt, die RFC 1321 (MD5) und RFC 2104 (HMAC-MD5) zu ändern. So war es ein Dokument RFC 6151. Er erkennt den MD5-Verschlüsselungsalgorithmus ist unsicher und empfiehlt seine Verwendung zu verzichten. Meiner Meinung nach ist dieses Dokument setzte offiziell ein Ende MD5.

Doch trotz der Tatsache, dass der MD5-Algorithmus wurde als unsicher offiziell anerkannt, gibt es Tausende, wenn nicht Hunderttausende von Anwendungen, die sie verwenden eine elektronische digitale Signatur zu speichern Passwörter in und um die Prüfsummen-Dateien zu berechnen.

By the way, 31. Oktober angekündigt, 2008 NIST einen Wettbewerb unter den Kryptologen. Der Zweck des Wettbewerbs - ein Hashing-Algorithmus zu entwickeln, veraltet SHA1 und SHA2 zu ersetzen. Im Moment haben die Finalisten bereits identifiziert worden - es BLAKE, Göstl, JH, Keccak und Knäuel.

Ighashgpu: Hacking auf der GPU

Aber genug der Theorie. Lassen Sie uns zur Sache kommen und direkt über brechen unsere Lieblings-Algorithmus sprechen. Angenommen, wir in die Hände eines Hash eines Passwortes bekam: d8578edf8458ce06fbc5bb76a58c5ca4.

Um diesen Hash zu knacken, schlage ich vor, das Programm Ighashgpu, zu verwenden, die bei saytewww.golubev.com heruntergeladen werden können oder besuchen Sie unseren Antrieb. Das Dienstprogramm ist absolut frei verteilt und arbeitet problemlos unter Windows. Um den Prozess zu brechen Hash zu beschleunigen, nutzt Ighashgpu die GPU, so benötigen Sie mindestens eine nVidia oder ATI-Grafikkarte c Unterstützung für CUDA / ATI Stream.

Moderne GPUs sind auf eine etwas andere Architektur als die CPU üblich gebaut, so dass sie viel besser in den Griff grafische Informationen. Obwohl die GPU dreidimensionale Grafiken zu handhaben ist so konzipiert, gibt es eine Tendenz für ihre Verwendung und für herkömmlichen Computing in den letzten Jahren. Beginnen Sie mit dem Programm arbeitet, ist nicht einfach, aber sehr einfach: Entpacken Sie das Archiv an einem beliebigen Ort auf der Festplatte und an dem Hacker durch eine Windows-Eingabeaufforderung:

ighashgpu.exe -t:md5 \
-h:d8578edf8458ce06fbc5bb76a58c5ca4 -max:7

Wir verwenden das obige Verfahren einen bestimmten Hash zu knacken, den MD5-Algorithmus erzeugt. Die maximal mögliche Länge des Passworts ist sieben Zeichen. Nach einiger Zeit wird das Passwort zu finden (QWERTY). Nun wollen wir versuchen, einen Hash zu knacken, aber mit leicht unterschiedlichen Bedingungen. Lassen Sie unsere Hash sieht d11fd4559815b2c3de1b685bb78a6283 und enthält Buchstaben, Zahlen, unterstreicht und hat die Endung «_admin». In diesem Fall können wir Brute-Force mit Maske, verwenden Sie die Aufgabe des Programms zu vereinfachen:

ighashgpu.exe -h:d11fd4559815b2c3de1b685bb78a6283 -t:md5
-u:[abcdefghijklmnopqrstuwvxyz1234567890_] -m:??????_admin

Hier wird der Parameter ‚-u‘ können Sie den Zeichensatz in der Suche verwendet, um anzugeben, und der Parameter ‚-m‘ setzt das Passwort Maske. In diesem Fall besteht die Maske aus sechs zufälligen Zeichen, nach denen es eine Kombination aus «_admin» ist. Passwort zu erraten, da es keine Schwierigkeiten.

Kollisions - eine Kollision in der Kryptographie zwei verschiedenen Eingangsdatenblock genannt wird, für die der gleiche Hash-Funktion den gleichen Hash verleiht. Jede Funktion der Ausgangsfolge von Bits gibt eine bestimmte Länge, die nicht von der Größe der Originaldaten abhängt. Daraus folgt, dass es Konflikte gibt, für jeden Hash-Algorithmus. Allerdings ist die Wahrscheinlichkeit werden Sie in der Lage sein, eine Kollision in einem „guten“ Algorithmus zu finden, fast auf Null. Leider oder zum Glück kann Hashalgorithmen Fehler enthält, sowie ein beliebiges Programm. Viele Hash-Funktionen sind entweder gebrochen oder bald sein. In diesem Fall ist das „break“ - bedeutet eine Kollision in der Zeit zu finden, es viel kleiner als die angegebenen ad infinitum ist.

Ighashgpu: Listen

Nun wollen wir versuchen, gleichzeitig mehrere Passwörter zu knacken. Nehmen wir an, uns über eine Datenbank Passwort-Hashes kam. Es ist bekannt, dass jedes Passwort Zeichen endet c00l:

f0b46ac8494b7761adb7203aa7776c2a
f2da202a5a215b66995de1f9327dbaa6
c7f7a34bbe8f385faa89a04a9d94dacf
cb1cb9a40708a151e6c92702342f0ac5
00a931d3facaad384169ebc31d38775c
4966d8547cce099ae6f666f09f68458e

Speichern Hashes in encrypted.dat Ighashgpu Datei und starten Sie wie folgt vor:

ighashgpu.exe -t:md5 -u:[abcdefghijklmnopqrstuwvxyz1234567890_]
-m:??????c00l encrypted.dat

Nachdem die Programmdatei in dem Ordner angezeigt Ighashgpu ighashgpu_results.txt das Passwort zu knacken:

f0b46ac8494b7761adb7203aa7776c2a:1rootxc00l
f2da202a5a215b66995de1f9327dbaa6:pwd12xc00l
c7f7a34bbe8f385faa89a04a9d94dacf:pwd34yc00l

cb1cb9a40708a151e6c92702342f0ac5:pwd56yc00l
4966d8547cce099ae6f666f09f68458e:pwd98zc00l
00a931d3facaad384169ebc31d38775c:pwd78zc00l
Все методы взлома MD5
Vzlomanykh Hashes von encrypted.dat Datei

Ighashgpu: Salz

Schließlich wollen wir wir „gesalzen“ Hashes machen Hacking. Es sei angenommen, dass der Hash durch den folgenden Algorithmus erzeugt:

var plain = password + "s41t";
var hash = md5(plain);

Als Ergebnis erhalten wir folgende hash: 42151cf2ff27c5181bb36a8bcfafea7b. Ighashgpu können Sie das „Salz“ in der «-asalt» Parameter angeben:

ighashgpu.exe -h:42151cf2ff27c5181bb36a8bcfafea7b \
-t:md5 -u:[abcdefghijklmnopqrstuwvxyz1234567890_] \
-asalt:s41t

Und wir haben wieder einmal das erforderliche Passwort schnell und einfach.

Unterhaltsam Mathematik - Für 8-Zeichen-Passwort des ersten 126 ASCII-Zeichens verfügbar ist 63 527 879 748 485 376 mögliche Kombinationen. 254 Zeichen für die Anzahl der möglichen Kombinationen erhöht sich auf 17 324 859 956 700 833 536, die so viele wie 2,7 Milliarden Mal mehr als die Menschen auf dem Planeten. Wenn Sie eine Textdatei erstellen, die alle die Passwörter enthalten, dauert es Millionen Terabyte. Natürlich in der heutigen Welt ist es möglich, aber die Kosten des Willens einfach himmelhoch die Datei zu speichern.

MD5-Hack in der Turbo-Modus

Cracking-Hashes durch erschöpfende Suche auch auf die beste Hardware viel Zeit in Anspruch nimmt, vor allem, wenn das Passwort länger als acht Zeichen ist. Der einfachste Weg, um die Geschwindigkeit des Passwortes zu erhöhen erraten - ist eine Datenbank aller Hashes für einen bestimmten Satz von Zeichen zu erstellen. In den 80er Jahren des letzten Jahrhunderts Hacker glaubten, dass, wenn sie leistungsfähigere Hardware haben, 640 KB Arbeitsspeicher und eine Festplatte von 10 MB groß, ein solcher Rahmen eine Realität und die Auswahl eines Kennworts eine Sache von Minuten wird geworden sein wird. Allerdings Eisen entwickelt, und der Traum und blieb Traum. Die Situation änderte sich erst im August 2003, nach Philip Oeshlin, Ph.D. in Computer-Vernetzung an der Eidgenössischen Technischen Hochschule in Lausanne, veröffentlichte seine Arbeit über das Problem der Auswahl des optimalen Verhältnisses der Raumzeit. Es beschreibt ein Verfahren zur Hash-Funktionen brechen ein „Regenbogen“ von Tabellen.

Das Wesen des neuen Verfahrens ist wie folgt. Zunächst wird ein willkürliches Passwort auszuwählen, die gehasht wird, und dann eine Reduktion unterworfen Funktion, die Hash-Passwort in jedem möglichen Transformation (zum Beispiel kann dies die ersten 64 Bits des ursprünglichen Hash sein). Als nächstes wird eine Kette von möglichen Passwörter konstruieren, aus denen die ersten und letzten Elemente. Sie sind in der Tabelle aufgezeichnet. Um ein Passwort wiederherzustellen, verwenden Sie die Verkleinerungsfunktion auf den ursprünglichen Hash und suchen nach möglichen Passwörter in der Tabelle erhalten. Wenn dieses Passwort ist nicht in der Tabelle, und berechnet seinen Hash das nächstmögliche Passwort. Dieser Vorgang wird wiederholt, bis die „Regenbogen“ Tabelle das Passwort nicht gefunden. Dieses Passwort ist das Ende einer der Ketten. Um das ursprüngliche Passwort zu finden, müssen Sie wieder loszuwerden, die ganze Kette bekommen. Dieser Vorgang dauert nicht viel Zeit in Abhängigkeit von dem Algorithmus Verkettungs ist in der Regel ein paar Sekunden oder Minuten. „Rainbow“ Tabelle kann signifikant die Menge an Speicher im Vergleich zu einer herkömmlichen Suche reduzieren. Der einzige Nachteil dieser Methode ist, dass die Tische viel Zeit erforderlich ist, um zu bauen.

Nun wollen wir von Worten zu Taten bewegen und versuchen, ein paar Passwort-Hashes mit dieser Methode zu knacken.

Rainbow-Tabellen - «Rainbow“ Tisch - eine spezielle Art von Wörterbuch, die eine Kette von Passwörtern enthalten und ermöglicht es Ihnen, Ihr Passwort in wenigen Sekunden oder Minuten zu wählen, mit einer Wahrscheinlichkeit von 85-99%.

"Rainbow" Hacking

Zunächst müssen Sie über das Programm entscheiden. Ich persönlich nravitsyaRainbowCrack, die frei ist und läuft sowohl unter Windows und auf Linux. Es unterstützt vier Hash-Algorithmus: LN / NTLM, MD5 und SHA1. Das Programm benötigt keine Installation, entpacken genug irgendwo auf der Festplatte. Nach dem Entpacken finden Sie die „Regenbogen“ Tabelle auf den MD5-Algorithmus. Es ist nicht so einfach: Sie können entweder herunterladen oder kaufen, oder Ihre eigenen erzeugen. Eines der größten Archive der freien Tabellen auf der Projekt-Website Freie Rainbow Tables.

By the way, können Sie auch das Projekt helfen, wenn der Kunde von der Website heruntergeladen und sich der verteilten internationales Netzwerk, das eine „Regenbogen“ Tabelle erzeugt. Zu der Zeit, auf dieser Seite des Schreibens dieses Artikels hat Tabellen verfügbar 3TB gewesen Algorithmen MD5, SHA1, LM und NTLM. Wenn Sie nicht die Möglichkeit haben, diese Menge an Informationen zu entwässern, auf der gleichen Seite, können Sie CDs mit den „Regenbogen“ Tabellen bestellen. Jetzt bietet drei Pakete: LN / NTLM, MD5 und SHA1 - $ 200 je. Wir generieren die Tabelle selbst. Dazu verwenden Sie das Programm RTGEN wird mit RainbowCrack enthalten. Es nimmt die folgenden Eingabeparameter:

  • hash_algorithm - Hashing - Algorithmus (LM, NTLM, MD5 oder SHA1);
  • charset - eine aus einer Reihe von Zeichen in der Datei charset.txt enthalten ist ;
  • plaintextlenmin und plaintextlenmax - minimale und maximale Länge des Passworts;
  • Tabellenindex, chainlen, chainnum und partindex - «magische Zahlen“, in dem Artikel von Philip Oeshlina beschrieben

Betrachten wir zuletzt mehr Optionen:

  1. TABLE_INDEX - index „Regenbogen“ Tabelle, die die Tabelle in mehrere Dateien zum Abbau genutzt werden kann. Ich habe 0, da meine Tabelle nur eine Datei bestand.
  2. chain_len - die Anzahl der eindeutigen Passwörter in einer Kette.
  3. chain_num - Anzahl der Tupel in einer Tabelle.
  4. part_index - ein Parameter, der den Anfang der Kette bestimmt. Die Schöpfer des Programms werden gebeten, nur Zahlen zu verwenden (0, I verwendet) für diesen Parameter. Jetzt läuft die Erzeugung der „Regenbogen“ Tabelle für MD5:
rtgen.exe md5 loweralpha-numeric 1 7 0 2000 97505489 0

In diesem Fall erstellen wir eine Tabelle von Passwörtern von Ziffern und Kleinbuchstaben des Alphabets aus und eine Länge von einem bis sieben Zeichen aufweisen. Auf meinem Eee PC mit Intel Atom N450 Prozessor, nahm dieser Prozess fast zwei Tage :) . Als Ergebnis habe ich md5loweralpha numerische # 1-702000 Datei? 975054890.rt Größe von 1,5 GB.

Als nächstes wird die resultierende Tabelle sortiert, um unsere Suche nach der richtigen Kette zu optimieren. Um dies zu tun, führen rtsort.exe:

rtsort.exe md5_loweralpha-numeric#1-7_0_2000x97505489_0.rt

Wir warten auf ein paar Minuten und der Tisch ist fertig! Jetzt ist es möglich, die Passwörter selbst zu brechen. Um zu beginnen, versuchen, das Kennwort für einen einzelnen Hash zu erraten: d8578edf8458ce06fbc5bb76a58c5ca4. Führen Sie rcrack_gui.exe und wählen Sie Hinzufügen Hash ... aus dem Menü Datei. Im folgenden Fenster geben Sie den Hash, und klicken Sie auf OK. Wählen Sie nun die Datei mit der „Regenbogen“ Tabelle. Um dies zu tun, verwenden Sie die Artikel suchen Rainbow Tables ... in Rainbow Table-Menü. In dem sich öffnenden Fenster wählen Sie die Datei Sie suchen nach einer Datei mit einer Tabelle öffnet, ich habe diesen md5_loweralpha numerisches # 1-7_0_2000x97505489_0.rt, dann klicken Sie auf Öffnen. Nach wenigen Sekunden ist das Passwort in unseren Händen! Der gleiche Vorgang kann aus der Datei ausgeführt und auf einer Liste von Hashes werden.

Все методы взлома MD5
Generieren von Rainbow - Tabellen

«Regenbogen» vs. Tisch CPU vs. GPU

Ich denke, man bemerkte, wie schnell Ighashgpu der Lage, das MD5-Hashes von Brute-Force zu knacken, und dass RainbowCrack macht es noch schneller, wenn es einen guter „Regenbogen“ Tisch ist. Ich beschloss, die Geschwindigkeit dieser Programme zu vergleichen. Für die Reinheit des Experiments verwendete ich ein Programm MDCrack, die auf der CPU Brute Passwort ausführt (und eines der besten in dieser Art von Programm). Hier ist, was als Ergebnis für die GPU (nVidia GeForce GT 220M) passiert ist, CPU (Intel Atom N450, Dual-Core) und "Regenbogen" von Tabellen:

Длина пароля | GPU | CPU | Таблицы
4 символа | 00:00:01 | 00:00:01 | 00:00:16
5 символов | 00:00:02 | 00:00:09 | 00:00:16
6 символов | 00:00:16 | 00:05:21 | 00:00:10
7 символов | 00:07:11 | 09:27:52 | 00:00:04

Wie Sie sehen können, ist die CPU mit Suchgeschwindigkeit viel geringer als bei der Verwendung von GPU oder „Regenbogen“ Tabellen. Zudem haben die meisten spezialisierten Software ermöglicht es Ihnen, eine Gruppe von Grafikkarten zu erstellen, deutlich Passwort-Recovery-Geschwindigkeit erhöht sich damit. Ich glaube, Sie wies darauf hin, dass die Rate der Rekrutierung von 4- und 5-stelliges Passwort niedriger ist als die Geschwindigkeit der Passwort-Auswahl von sechs oder sieben Zeichen. Dies ist aufgrund der Tatsache, dass die Suche nach einem Passwort beginnt erst einmal eine Tabelle in dem Speicher geladen wird. Es stellt sich heraus, dass 16 Sekunden im Durchschnitt dreizehn verbrachte das Herunterladen und drei - den Hash zu knacken.

Все методы взлома MD5
Innerhalb Rainbow - Tabelle

bit.ly/vEhdir - das Hinzufügen eines neuen Hashalgorithmus RainbowCrack die API.

bit.ly/vTSB9K - Beschreibung des „Regenbogen“ Tabellenformat.

anstelle eines Schlusses

Am Ende würde Ich mag ein wenig reden über Ihre Passwörter zu schützen. Verwenden Sie zunächst keine sensiblen Hash-Algorithmen wie MD5 oder SHA1. Im Moment ist es wert, die Verwendung einer kryptographischen Hash-Funktion SHA-3 oder SHA2 Berücksichtigung (veröffentlicht unter dem entsprechenden Standard). Zweitens keine Hash-Funktion direkt verwenden. Immer versuchen, das „Salz“ zu verwenden und verschiedene Algorithmen zu kombinieren. Und drittens wählen komplexe Passwörter beliebige Länge von mindestens acht Zeichen. Natürlich wird es vor Einbruch zu 100% schützt Sie nicht, aber zumindest das Leben für Kriminelle erschweren.