Universität Duisburg-Essen
Verteilte Systeme
MD5 Kollisionen in CrypTool 2.0
Prüfer Prof. Dr.-Ing. Torben Weis
Betreuer Dipl.-Inform. Matthäus Wander, Dr. Arno Wacker
Bearbeiter Holger Pretzsch
Beginn November 2009
Dauer 6 Monate

CrypTool 2.0 – der Nachfolger der bekannten e-Learning Anwendung für Kryptographie und Kryptoanalyse CrypTool – ist ein Open-Source Projekt, welches Lernenden, Lehrenden und Entwickler mit Interesse an der Kryptographie die Möglichkeiten eröffnet, selbst verschiedene kryptographische und kryptanalytische Verfahren anzuwenden und auszuprobieren. Die moderne Benutzeroberfläche ermöglicht per einfachem und intuitiven Drag & Drop das Erstellen von einfachen bis hin zu sehr komplexen kryptographischen Algorithmen. Dies geschieht dabei mit einer graphischen Programmiersprache, welche speziell für diesen Zweck entwickelt wurde. Der Benutzer kann dabei ohne besondere Programmierkenntnisse die Algorithmen miteinander verbinden und so eigene, neue Algorithmen und Abläufe erschaffen und testen.
CrypTool 2 basiert auf modernsten Techniken wie z.B. dem .NET Framework (zurzeit 3.5 SP1) und der Windows Presentation Foundation (WPF). Darüber hinaus ist die Architektur von CrypTool 2.0 vollständig Plug-In-basiert und modular aufgebaut, wodurch die Entwicklung neuer Funktionalitäten stark vereinfacht wird. Im Rahmen dieses Projekts wurden bereits eine Mehrzahl von kryptographischen Algorithmen wie z.B. AES, SHA1 oder die Enigma als Plug-Ins entwickelt.

Die kryptographische Hashfunktion MD5 ist eine der bekanntesten Hashfunktionen im Bereich der Sicherheit. Bevor die Angriffe in den vergangenen Jahren gegen MD5 gefunden und immer wieder verbessert wurden, war die Hashfunktion auch gleichzeitig eine der weit verbreitetesten Hashfunktionen. Durch diese starke Verbreitung ist sie sogar heute – nachdem sie kryptographisch gebrochen wurde – immer noch in vielen kryptographischen Produkten zu finden.
Im Rahmen dieser Arbeit sollen neue Plug-Ins für CrypTool 2.0 entstehen, die einerseits die Funktionsweise von MD5 verdeutlichen und andererseits die existierenden Angriffe für jedermann zugänglich machen. Durch die Bereitstellung dieser Angriffe soll das Sicherheitsbewusstsein der Allgemeinheit bezüglich MD5 gestärkt werden, da MD5 heutzutage in keiner kryptographischen Anwendung mehr eingesetzt werden sollte. Zur Verdeutlichung der Funktionsweise von MD5 ist eine Visualisierung der einzelnen MD5-Operationen notwendig. Dafür muss das existierende MD5 Plug-In in CrypTool 2.0 um eine sogenannte „Presentation“ erweitert werden. Der zweite Teil der Arbeit soll sich mit den existierenden Angriffen auf MD5 beschäftigen. Dabei müssen zunächst alle existierenden Angriffe betrachtet werden. Basierend auf dieser Analyse soll ein Konzept eines (oder mehrerer) MD5-Angriff Plug-Ins entworfen und umgesetzt werden. Ein solches Plug-In könnte z.B. zwei Datenausgänge besitzen, die zwei unterschiedliche Werte liefern, allerdings den gleichen MD5-Hashwert generieren. Weitere Plug-Ins, aufbauend auf diesem „Kollisionsgenerator“-Plug-In sind denkbar. So soll untersucht werden, inwiefern man zwei Dokumente (in bestimmten Formaten) so modifizieren kann, dass diese den gleichen MD5-Hashwert aufweisen. Die Angriffe müssen gleichzeitig visuell ansprechend und intuitiv dargestellt werden, so dass auch Personen ohne tiefe Kenntnis der Kryptanalyse nachvollziehen können, dass ein MD5-Angriff in der heuten Zeit mit verfügbaren Heimcomputern (PCs) machbar ist. Abschließend soll eine Evaluation der implementierten Angriffe erfolgen. Hierbei ist insbesondere interessant, in welcher Zeit man heutzutage bestimmte Angriffe auf MD5 durchführen kann.

Die entwickelten Plug-Ins im Rahmen dieser Arbeit müssen in das bestehende Versionierungssystem (SVN) von CrypTool 2.0 als Open-Source integriert werden. Dabei ist angestrebt, dass die entwickelten Plug-Ins bei Abschluss der Arbeit einen so hohen Qualitätsstand erreichen, so dass diese in einem zukünftigen Release der Software mit veröffentlicht werden können. Zusätzlich wird zu jedem Plug-In eine durchgehende Dokumentation im Quelltext und eine Hilfeseite, welche durch den Benutzer abrufbar ist, erwartet. Abschließend muss die gesamte Arbeit, insbesondere die Problembeschreibung, Anforderungen, Ergebnisse und getroffene Entscheidungen in Form einer schriftlichen Ausarbeitung – der Diplomarbeit – zu dem festgesetzten Zeitpunkt beim Prüfungsamt eingereicht werden. Zusätzlich besteht die Möglichkeit, die Arbeit im Rahmen eines Kolloquiums vorzustellen.
Voraussetzungen: Sehr gute Kenntnisse über verschiedene kryptographische und kryptanalytische Methoden. Programmiererfahrung in objektorientierten Sprachen ist eine grundlegende Voraussetzung für diese Arbeit. Vorkenntnisse von .NET C# und WPF sind von Vorteil.

 

© Universität Duisburg-Essen, Verteilte Systeme - Kontakt: webmaster@vs.uni-due.de

Impressum - Datenschutz