Alle MD5-Hacking-Techniken

Mit dem Thema:


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

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

Der beliebteste Algorithmus so heute, natürlich, ist MD5.

Darüber, wie es brechen kann und diskutiert werden.

Ein wenig über Kryptographie

Moderne Kryptographie besteht aus drei Bereichen: ein privater Schlüssel-Verschlüsselung, Public-Key-Verschlüsselung und Hashing. Heute werden wir darüber reden, was ist Hashing und was es isst.

In der Regel eine Transformation Hashing beliebiger Länge Eingangsdaten in die Ausgangs-Bit-String fester Länge zu realisieren. Die am häufigsten verwendeten Hash-Funktionen verwendet werden, in dem Verfahren einen Benutzer authentifizieren (die Datenbank Passwort-Hash wird normalerweise anstelle des Passwortes gespeichert) und die Prüfsumme Datei, Datenpakete zu berechnen, und so weiter. N.

Einer der bekanntesten und Hash-Algorithmus-weit verbreitet ist MD5.

Anfang

Der MD5-Algorithmus ist ein 128-Bit-Hash-Algorithmus. Dies bedeutet, dass es eine 128-Bit-Hash für einen beliebigen Satz von Daten berechnet an seinem Eingang empfangen. Der Algorithmus entwickelt von Ronald Rivest, Professor des Massachusetts Institute of Technology im Jahr 1991 zu 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 das 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, veröffentlichte Hans Dobbertin einen Artikel, in dem er die Existenz von Konflikten bewiesen und beschrieben die theoretische Möglichkeit MD5-Hack. Es war nicht der Einbruch, sondern in der Welt begann, über die Notwendigkeit zu sprechen, 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 Direkt Hacking begann 2004 1. März. Das Unternehmen startete CertainKey Kryptosysteme MD5CRK Projekt - Konflikte Suchsystem verteilt. Das Ziel des Projekts war es zwei Nachrichten mit identischen Hash-Codes zu finden. Projekt am 24. August abgeschlossen 2004, als vier unabhängige Forscher - Xiaoyun Wang, Feng Denguo, Syuetszya Lai und Hongbo Yu - entdeckte Verwundbarkeit Algorithmus ermöglicht Kollisionen Analyseverfahren für eine mehr oder weniger angemessenen Zeit zu finden. Mit dieser Methode können Kollisionen nur erkennen pro Stunde auf IBM p690-Cluster (sorry, ich das nicht zu Hause haben).

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

Im März 2005 wurde der erste Einsatz dieser Sicherheitsanfälligkeit in der Praxis unter Beweis gestellt. Eine Gruppe von Forschern präsentiert zwei X.509-Zertifikate mit verschiedenen Gruppen von Tasten, aber mit identischen Prüfsummen. Im selben Jahr veröffentlichte Vlastimil Klima einen Algorithmus Kollisionen auf einem normalen Laptop für ein paar Stunden zu erkennen. Im Jahr 2006 fuhr er fort. Eighteenth März 2006 Forscher enthüllt Algorithmus Kollisionen in einer Minute zu finden! Diese Methode wird als "Tunneln" genannt wird. Im Jahr 2008, dem Chaos Communication Congress Konferenz wurde von einem Artikel über die Methode zur Erzeugung von gefälschten X.509-Zertifikate vertreten. In der Tat war es die erste wirkliche Verwendung von Kollisionen im MD5-Algorithmus.

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

Viel Arbeit wurde getan, und auch die Rissbildung Hashes zu beschleunigen. Im Jahr 2007 präsentierte Kevin Breeze ein Programm, das die Sony PlayStation3 für MD5 Hack verwendet. Er konnte sehr gute Ergebnisse zu 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 mit Hilfe von mehreren 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 elektronischen Signatur unter Verwendung nicht akzeptabel aufgrund der unzureichenden Stabilität dieses Algorithmus auf Kollisionen zu suchen.

Dies ist das Ende?

Im Jahr 2011 hat die IETF vereinbarten Änderungen in RFC 1321 (MD5) und RFC 2104 (HMAC-MD5) zu machen. So war es ein Dokument RFC 6151. Er erkennt den MD5-Verschlüsselungsalgorithmus ist unsicher und empfiehlt seine Verwendung zu verzichten. Meiner Meinung nach, dieses Dokument setzen offiziell ein Ende zu MD5.

Doch trotz der Tatsache, dass der MD5-Algorithmus offiziell als unsicher erkannt wurde, gibt es Tausende, wenn nicht Hunderte von Tausenden von Anwendungen, die sie verwenden, um Passwörter in der digitalen Signatur und Prüfsummen von Dateien zu berechnen.

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

Ighashgpu: Hacking auf der GPU

Doch 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 des Passworts bekam: d8578edf8458ce06fbc5bb76a58c5ca4.

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

Moderne GPUs sind auf eine etwas andere Architektur als die CPU üblich gebaut, so dass sie viel effizienter Prozess grafische Informationen. Obwohl GPU für dreidimensionale Grafikverarbeitung entwickelt, gibt es eine Tendenz, ihre Verwendung und für die konventionelle Berechnungen in den letzten Jahren. Erste Schritte mit dem Programm gestartet ist nicht einfach, aber sehr einfach: Entpacken Sie das Archiv an einem beliebigen Ort auf der Festplatte und erhalten über die Windows-Kommandozeile Hacking:

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

Wir verwenden das obige Verfahren einen bestimmten Hash zu brechen, 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ällige Zeichen, nach denen es eine Kombination von «_admin» ist. Passwort zu erraten, da es keine Schwierigkeiten.

Collisions - Kollision Kryptographie zwei verschiedene Eingangsdatenblock, für die die gleichen Hash-Funktionen geben den gleichen Hash genannt. Jede Ausgangsfunktion gibt eine Bitsequenz von einer bestimmten Länge, die nicht auf der Größe der Originaldaten abhängt. Daraus folgt, dass es einen Konflikt für jeden Hash-Algorithmus ist. Allerdings ist die Wahrscheinlichkeit werden Sie in der Lage sein, eine Kollision in einem "guten" Algorithmus zu finden, die fast auf Null. Leider oder zum Glück, kann Hashalgorithmen Fehler enthalten, sowie ein beliebiges Programm. Viele Hash-Funktionen sind entweder gebrochen oder bald sein. In diesem Fall ist die "break" - bedeutet, eine Kollision für die Zeit zu finden, die viel kleiner als die angegebenen Unendlichkeit ist.

Ighashgpu: Listen

Jetzt 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

Nach Abschluss des Programms wird in dem Dateiordner angezeigt Ighashgpu ighashgpu_results.txt das Passwort zu knacken:

f0b46ac8494b7761adb7203aa7776c2a:1rootxc00l
f2da202a5a215b66995de1f9327dbaa6:pwd12xc00l
c7f7a34bbe8f385faa89a04a9d94dacf:pwd34yc00l

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

Ighashgpu: Salz

Schließlich lassen Sie uns wir Hacking "gesalzen" hash machen. Angenommen, daß ein Hash von den folgenden Algorithmus erzeugt wird:

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

Als Ergebnis erhalten wir folgende hash: 42151cf2ff27c5181bb36a8bcfafea7b. Ighashgpu ermöglicht es Ihnen, "Salz" in der «-asalt» Parameter angeben:

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

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

Firmen Mathematik - für 8-Zeichen-Passwort der ersten 126 ASCII-Zeichen, verfügbar 527 879 748 63 485 376 mögliche Kombinationen. Für 254 Zeichen erhöht sich die Anzahl der möglichen Kombinationen zu 324 859 956 17 700 833 536, die bereits 2,7 Milliarden Mal mehr als die Menschen auf dem Planeten. Wenn Sie eine Textdatei erstellen, die alle diese Passwörter enthält, dauert es Millionen Terabyte. Natürlich in der heutigen Welt ist es möglich, aber die Kosten für die Speicherung einer solchen Datei wird einfach sky-high.

MD5 Hacking im 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 der Passwort zu erhöhen erraten - ist eine Datenbank aller Hashes zu einem bestimmten Satz von Zeichen zu erstellen. In den 80er Jahren des letzten Jahrhunderts Hacker glaubten, dass, wenn sie leistungsfähigere Hardware haben, 640 KB Speicher und ein MB 10 Festplatte, dann wird diese Datenbank eine Realität und die Auswahl eines Kennworts werden wird eine Sache von Minuten sein. Allerdings Eisen entwickelt wird, und der Traum blieb nur ein Traum. Die Situation änderte sich erst im August 2003, nach Philip Oeshlin, PhD auf dem Gebiet der Computernetze 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 zum Hash-Funktionen Brechen einer "Regenbogen" der Tabellen verwenden.

Das Wesen des neuen Verfahrens ist wie folgt. Bitte wählen Sie ein zufälliges Passwort, das dann gehasht und Reduktionsfunktion unterzogen, die den Hash in jeder möglichen Passwort konvertiert (zum Beispiel kann es das erste 64-Bit-Hash des Originals sein). konstruieren Weiter, um eine Kette von möglichen Passwörter, die aus den ersten und letzten Elemente ausgewählt sind. Sie sind in der Tabelle aufgezeichnet. Um ein Passwort wiederherzustellen, verwenden Sie die Verkleinerungsfunktion auf den ursprünglichen Hash und suchen nach möglichen Passwort in der Ergebnistabelle. Wenn dieses Passwort ist nicht in der Tabelle, und berechnen seinen Hash das nächstmögliche Passwort. Der Vorgang wird wiederholt, bis der "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 zu bekommen. Dieser Vorgang braucht nicht viel Zeit, abhängig von dem Verkettungsalgorithmus normalerweise ein paar Sekunden oder Minuten. "Rainbow" Tabelle kann deutlich Speicherverbrauch im Vergleich zu herkömmlichen Suche reduzieren. Der einzige Nachteil dieser Methode ist, dass die Tabellen viel Zeit erforderlich aufzubauen.

Nun wollen wir von Worten zu Taten zu 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 enthält 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 unter 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 Auspacken müssen Sie einen "Regenbogen" Tabelle auf den MD5-Algorithmus finden. 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 einen "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 keine Möglichkeit haben, diese Menge an Informationen zu fusionieren, an der gleichen Stelle, können Sie CDs mit den "Regenbogen" Tabellen bestellen. Im Moment gibt es drei Paket: LN / NTLM, MD5 und SHA1 - für jeweils $ 200. Wir generieren die Tabelle selbst. Um dies zu tun, verwenden Sie das Programm RTGEN, die RainbowCrack zusammengesetzt ist. Es nimmt die folgenden Eingangsparameter:

  • hash_algorithm - Hash - Algorithmus (LM, NTLM, MD5 oder SHA1);
  • charset - ein Satz von Zeichen in der Datei charset.txt enthalten ist ;
  • plaintextlenmin und plaintextlenmax - minimale und maximale Länge des Passworts;
  • Tabellenindex, chainlen, chainnum und partindex - «magischen Zahlen", in dem Artikel von Philip Oeshlina beschrieben

Betrachten wir zuletzt mehr Optionen:

  1. TABLE_INDEX - index "Regenbogen" Tabelle, die in einer Tabelle verwendet werden können, in mehrere Dateien aufgeteilt. Ich habe 0, da meine Tabelle mit nur einer Datei bestand.
  2. chain_len - die Anzahl der eindeutigen Passwörter in der Kette.
  3. chain_num - die Anzahl der Strings in der Tabelle.
  4. part_index - ein Parameter, der den Beginn der Kette bestimmt. Die Macher des Programms werden gebeten, nur die Nummer zu verwenden (ich benutze 0) für diesen Parameter. Nun starten wir die Erzeugung des "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 Zahlen und Großbuchstaben des Alphabets besteht und eine Länge von ein bis sieben Zeichen aufweisen. Auf meinem Eee PC mit Intel Atom N450 Prozessor, nahm dieser Prozess fast zwei Tage :) . Als Ergebnis habe ich md5loweralpha numerisches # 1-702000 Datei? 975054890.rt Größe von 1,5 GB.

Als nächstes wird die resultierende Tabelle, um die Suche nach der gewünschten uns Kette zu optimieren sortiert werden. Um dies zu tun, führen Sie rtsort.exe:

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

Wir warten Sie ein paar Minuten und der Tisch ist fertig! Jetzt können Sie die Passwörter selbst brechen. Für den Anfang versuchen, das Kennwort für einen 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 dem "Regenbogen" Tabelle. Um dies zu tun, verwenden Sie die Artikel suchen Rainbow Tables ... in Rainbow Table-Menü. In dem Fenster, das, wählen Sie die Datei, die 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 ein paar Sekunden ist das Passwort in unseren Händen! Die gleiche Operation kann aus einer Datei durchgeführt und auf einer Liste von Hashes werden.

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

«Regenbogen» vs. Tisch CPU vs. GPU

Ich denke, man bemerkt, wie schnell Ighashgpu der Lage, die MD5-Hashes von Brute-Force zu knacken, und dass RainbowCrack macht es noch schneller in Gegenwart eines guten "Regenbogen" Tisch. Ich beschloss, die Arbeitsgeschwindigkeit 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, mit CPU-Auslastung Suchgeschwindigkeit ist viel geringer als bei der Verwendung von GPU oder "Rainbow" Tabellen. Zudem haben die meisten eine spezielle Software ermöglicht es Ihnen, eine Gruppe von Grafikkarten zu erstellen, so dass Passwort-Recovery-Geschwindigkeit erheblich erhöht wird. Ich glaube, Sie wies darauf hin, dass die Rate der Rekrutierung von 4- und 5-Zeichen-Passwort ist niedriger als die Geschwindigkeit der Passwort-Auswahl von sechs oder sieben Zeichen. Dies ist aufgrund der Tatsache, dass die Suche beginnt erst, nachdem die Passworttabelle in den Speicher geladen. Es stellt sich heraus, dass 16 Sekunden im Durchschnitt dreizehn verbrachte das Herunterladen und drei - den Hash zu knacken.

Все методы взлома MD5
Rainbow - Tables innen

bit.ly/vEhdir - das Hinzufügen eines neuen Hash-Algorithmus in RainbowCrack die API.

bit.ly/vTSB9K - die Beschreibung des "Regenbogen" Tabellenformat.

Statt einer Schlussfolgerung

Am Ende würde Ich mag ein wenig über den Schutz Ihrer Passwörter zu sprechen. Verwenden Sie zunächst keine sensiblen Hash-Algorithmen wie MD5 oder SHA1. An dieser Stelle lohnt es sich, die Verwendung eines verschlüsselten Hash-Funktion SHA2 oder SHA-3 unter Berücksichtigung (wie die entsprechende Norm veröffentlichen). Zweitens keine Hash-Funktion direkt verwenden. Immer versuchen, das "Salz" zu verwenden, und verschiedene Algorithmen kombinieren. Und drittens wählen komplexe Passwörter beliebiger Länge von mindestens acht Zeichen. Natürlich bedeutet dies schützt Sie nicht zu 100% von Hacking, aber zumindest das Leben von Kriminellen erschweren.