Analyse, Modellierung Und Hashcat-Basierte Implementierung Von Angriffen Auf Passwortgeschutzte¨ Systeme Unter Einbeziehung Des Faktors Mensch
Total Page:16
File Type:pdf, Size:1020Kb
Analyse, Modellierung und hashcat-basierte Implementierung von Angriffen auf passwortgeschutzte¨ Systeme unter Einbeziehung des Faktors Mensch Bachelorarbeit im Studiengang Medieninformatik zur Erlangung des akademischen Grades Bachelor of Science Fachbereich Medien Hochschule Dusseldorf¨ Lukas Friedrichs Matrikel-Nr.: 526560 Datum: 10. September 2018 Erst- und Zweitprufer¨ Prof. Dr.-Ing. Holger Schmidt Prof. Dr.-Ing. M.Sc. Markus Dahm Eidesstattliche Erkl¨arung Ich erkl¨are hiermit an Eides statt, dass ich die vorliegende Bachelorarbeit selbst¨andig und ohne unzul¨assige fremde Hilfe angefertigt habe. Die verwendeten Quellen sind vollst¨andig zitiert. Diese Arbeit wurde weder in gleicher noch ¨ahnlicher Form einem anderen Prufungsamt¨ vorgelegt oder ver¨offentlicht. Ich erkl¨are mich ausdrucklich¨ da- mit einverstanden, dass diese Arbeit mittels eines Dienstes zur Erkennung von Pla- giaten uberpr¨ uft¨ wird. Ort, Datum Lukas Friedrichs Kontaktinformationen Lukas Friedrichs Rottberger Straße 201 42551 Velbert | [email protected] i Zusammenfassung Analyse, Modellierung und hashcat-basierte Implementierung von Angriffen auf passwortgeschutzte¨ Systeme unter Einbeziehung des Faktors Mensch Lukas Friedrichs In der vorliegenden Bachelorarbeit geht es um das menschliche Verhalten bei der Pass- worterstellung. Hierbei wird die M¨oglichkeit untersucht dieses menschliche Verhalten uber¨ die Software hashcat nachzubilden, um so Passw¨orter effizienter anzugreifen. Durch die Konzeption und den Test von Passwortangriffsszenarien, deren Fokus auf dem Faktor Mensch liegt, wird versucht aufzuzeigen, dass selbst sichere Passwortver- fahren, durch das individuelle Verhalten von Menschen an Sicherheit verlieren k¨onnen. Zudem werden die Tests der Szenarien Schw¨achen der Software hashcat aufzeigen, die im sp¨ateren Verlauf der Arbeit als Grundlage fur¨ die Entwicklung einer selbst- programmierten Erweiterung von hashcat dienen. ii Abstract Analysis, modeling and hashcat-based implementation of attacks on password-protected systems, in consideration of the human factor Lukas Friedrichs The present Bachelor-Thesis deals with human behavior concerning the creation of passwords. Hereby the possibility is examined to reproduce this human behavior through the software hashcat, so that passwords can be attacked more efficiently. Through the conception and testing of password-attack scenarios, when the focus is situated on the human factor, it will be examined to demonstrate that even secure password processes can lose their security through the individual behavior of humans. The tests of the scenarios will also show weaknesses of the hashcat software, which will later serve as the basis for the development of a self-programmed extension of hashcat. iii Inhaltsverzeichnis 1 Einleitung 1 1.1 Kontext und Motivation . .1 1.1.1 Passwortbasierte Authentifikation . .1 1.1.2 Menschen und Passw¨orter . .2 1.2 Wissenschaftlicher Beitrag . .3 1.3 Weiteres Vorgehen . .3 2 Aktueller Forschungsstand und Grundlagen 5 2.1 Was ist ein Passwort? . .5 2.2 Verfahren zum Bilden von Passw¨ortern . .6 2.2.1 Akronym-Methode . .6 2.2.2 Doppelwort-Methode . .6 2.2.3 Collage-Methode . .7 2.2.4 Zufallsmethode . .7 2.2.5 Diceware-Methode . .8 2.3 Faktoren der Passwortsicherheit . .8 2.3.1 Was ist ein gutes Passwort? . .9 2.3.2 Aufbau und L¨ange eines Passworts . .9 2.3.3 Entropie . 11 2.3.4 Mehrfaktor-Authentifikation . 12 2.3.5 Faktor Mensch . 12 2.4 Hashingverfahren und ihre Unterschiede . 14 2.4.1 Kryptographische Hashfunktionen . 14 2.4.2 Passwort-Hashing-Verfahren . 16 2.4.3 Hashwert-Kollision . 19 2.4.4 Salt . 19 2.4.5 Pepper . 19 2.5 Passwortangriffsverfahren . 20 2.5.1 Brute-Force-Methode . 20 2.5.2 W¨orterbuchangriff . 21 2.5.3 Online-/Offline-Angriffe . 21 2.5.4 Lookup-Tables . 22 2.5.5 Reverse-Lookup-Tables . 22 2.5.6 Rainbow-Tables . 23 2.5.7 GPU-basierte Angriffe . 23 2.5.8 Angriffe anhand von spezialisierter Hardware . 24 2.6 Software hashcat . 24 2.6.1 Einfuhrung¨ in die Software . 24 iv 2.6.2 Unterstutzte¨ Hashingverfahren . 25 2.6.3 Dictionary-Attack . 26 2.6.4 Combinator-Attack . 27 2.6.5 Brute-Force-Methode / Mask-Attack . 29 2.6.6 Hybrid-Attack . 32 2.6.7 Rule-based-Attack . 33 3 Angriffsszenarien und Optimierungen 36 3.1 Konzeption der Angriffsszenarien . 36 3.1.1 Szenario 1 - Name + Zahl . 38 3.1.2 Szenario 2 - bekannte, schwache Passw¨orter . 41 3.1.3 Szenario 3 - Passwortvorgaben des BSI . 43 3.1.4 Szenario 4 - Diceware . 46 3.2 Test der Szenarien, Analyse der Ergebnisse . 49 3.2.1 Szenario 1 - Name + Zahl . 49 3.2.2 Szenario 2 - bekannte Passw¨orter . 51 3.2.3 Szenario 3 - Passwortvorgaben des BSI . 53 3.2.4 Szenario 4 - Diceware . 55 3.3 Empfehlungen auf Basis der Testergebnisse . 57 3.3.1 Hashcat-Entscheidungsdiagramm . 58 3.4 Schwachstellen der Software . 60 3.4.1 Konzipierung einer L¨osung . 60 3.4.2 L¨osungsansatz Szenario 1 . 60 3.4.3 L¨osungsansatz Szenario 4 . 61 3.4.4 Umsetzung der L¨osungsans¨atze . 62 4 Implementierung 63 4.1 Entwicklungsprozess . 63 4.1.1 Anforderungen an die Software . 64 4.1.2 Entwurf . 64 4.1.3 Implementierung der Funktionen und Tests . 66 4.2 Systemanforderungen des Tools . 66 4.3 Wahl der Programmiersprache . 67 4.4 Verwendete Module . 67 4.4.1 Sys-Modul . 67 4.4.2 Os-Modul . 68 4.4.3 Docopt-Modul . 68 4.4.4 Subprocess-Modul . 70 4.4.5 Itertools-Modul . 70 4.4.6 Threading-Modul . 70 4.5 Implementierte Module und Funktionen . 70 4.5.1 Modul 1: HashcatXT.py . 71 4.5.2 Modul 2: tripple attack.py . 74 4.5.3 Modul 3: multi combinator.py . 76 4.6 Die Benutzeroberfl¨ache . 77 4.7 Funktionstests . 80 4.7.1 Funktionstest 1 . 80 4.7.2 Funktionstest 2 . 81 v 4.8 Anwendungsf¨alle . 82 5 Schlussfolgerung 83 5.1 Fazit . 83 5.2 Ausblick . 84 5.3 Pers¨onliches Schlusswort und Danksagung . 85 A Anwendungsf¨alle 86 A.1 Anwendungsfall 1 . 86 A.2 Anwendungsfall 2 . 87 B Hashcat 89 B.1 Unterstutzte¨ Algorithmen . 89 B.2 Funktionen fur¨ regelbasierte Angriffe . 95 C HashcatXT Programmcode 97 C.1 Modul hashcatXT.py . 97 C.2 Modul tripple attack.py . 106 C.3 Modul multi combinator.py . 107 vi Abbildungsverzeichnis 1.1 UML-Sequenzdiagramm zur passwortbasierten Authentifizierung . .2 2.1 Test eines vierstelligen Passworts, bei dem Zeichen aus allen vier m¨oglichen Zeichengruppen verwendet werden, anhand des Passwort Strength " Meters\des Unternehmens Kaspersky. (Quelle: https://password.kaspersky. com) . 10 2.2 xkcd-Comic, Gegenuberstellung¨ von Passphrases und Passw¨ortern (Quel- le: https://xkcd.com/936/) . 11 2.3 Aufbau einer Iteration von MD5 (Spitz, Pramateftakis und Swoboda, 2011, S. 103) . 15 2.4 Aufbau einer Iteration von SHA-2 (Quelle: https://de.wikipedia.org/wiki/SHA-2, abgerufen am 13.05.2018) 16 2.5 Schema eines Passwort-Hashing-Verfahrens, Hatzivasilis, Papaefstathiou und Manifavas, 2015, S. 4 . 17 2.6 Brute-Force-Rechenzeit eines MD5-Hashwerts (Quelle: https://de.wikipedia.org/wiki/Passwort) . 21 3.1 Hashcat-Entscheidungsdiagramm . 59 4.1 Wasserfallmodell zur Entwicklung von hashcatXT ........... 64 4.2 Ablaufdiagramm Tripple Attack . 65 4.3 Ablaufdiagramm Multi-Combinator-Attack . 66 4.4 Komponentendiagramm, Module und Funktionen von hashcatXT . 71 4.5 hashcatXT docopt Docstring . 72 4.6 Start von hashcatXT ohne Parameter . 77 4.7 Aufruf der Hilfeseite von hashcatXT ................... 78 4.8 Falsche Syntax beim Start von hashcatXT ............... 78 4.9 Starten eines Tripple-Angriffs . 79 4.10 Starten eines Multi-Combinator-Angriffs . 79 4.11 Funktionstest der Funktion tripple attack . 81 4.12 Starten eines Multi-Combinator-Angriffs . 82 B.1 Rule-Based-Attack Tabelle mit Funktionen (Quelle: https://hashcat.net/wiki/doku.php?id=rule based attack) . 95 B.2 Rule-Based-Attack Tabelle zum Abweisen von Passw¨ortern (Quelle: https://hashcat.net/wiki/doku.php?id=rule based attack) . 96 B.3 Rule-Based-Attack Tabelle mit Funktionen die nur mit hashcat kom- patibel sind (Quelle: https://hashcat.net/wiki/doku.php?id=rule based attack) . 96 vii Listings 2.1 Beispiel des Inkrement-Parameters . 31 2.2 Beispiel einer Regeldatei . 34 2.3 W¨orterbuch mit nur einem Passwort . 34 2.4 Rule-based-Attack - Passwortkandidaten . 34 3.1 Szenario 1 - Test 1 . 50 3.2 Szenario 1 - Test 2 . 50 3.3 Szenario 2 - Test 1 . 52 3.4 Szenario 2 - Test 2 . 52 3.5 Szenario 3 - Test 1 . 53 3.6 Szenario.