Die Kollision in kryptographischen Hash-Funktionen tritt auf, wenn zwei unterschiedliche Eingabedaten denselben Hash-Wert erzeugen. Eine solche Kollision kann die Integrität und Sicherheit von Systemen beeinträchtigen, die auf der Unveränderlichkeit von Hash-Werten beruhen.
SHA-1 und Kollisionen
- Geschichte: SHA-1 (Secure Hash Algorithm 1) wurde 1993 vom US National Security Agency (NSA) entwickelt und galt lange Zeit als sicher. Aber im Laufe der Zeit wurden Schwächen in SHA-1 entdeckt.
- Entdeckung der Kollision: 2017 haben Forscher von Google und dem CWI Institute in Amsterdam eine Methode demonstriert, um zwei unterschiedliche PDF-Dateien zu erzeugen, die denselben SHA-1-Hash haben. Dies war der erste praktische Nachweis einer SHA-1-Kollision.
- Bedeutung der Kollision: Die Fähigkeit, eine Kollision in SHA-1 zu erzeugen, bedeutet, dass die Funktion nicht mehr als sicher angesehen wird, insbesondere für Anwendungen, die auf der Einzigartigkeit von Hash-Werten beruhen, wie z.B. digitale Signaturen.
- Empfehlungen: Aufgrund dieser Schwachstellen wird empfohlen, von SHA-1 zu sichereren Hash-Funktionen wie SHA-256 oder SHA-512 zu wechseln.
Das Erzeugen von SHA-1-Kollisionen erfordert spezialisierte Software und beträchtliche Rechenressourcen.
- Methode: Die Forscher von Google und dem CWI Institute haben die “Shattered”-Technik verwendet, um ihre Kollision zu erzeugen. Sie verwendeten eine Methode namens “differential cryptanalysis”, um zwei verschiedene Mengen von PDF-Daten zu finden, die zu demselben SHA-1-Hash führen.
- Ressourcen: Google hat den Code und die Daten für ihre Kollision im Rahmen des “Shattered”-Angriffs veröffentlicht. Sie können die Details und die Ressourcen auf ihrer offiziellen Shattered-Website finden.
MD5 Kollisionen
Eine MD5-Kollision tritt auf, wenn zwei unterschiedliche Eingabe-Nachrichten dieselbe MD5-Hash-Ausgabe erzeugen. In anderen Worten, zwei verschiedene Nachrichten, die denselben MD5-Hash-Wert haben, werden als kollidierend bezeichnet. Dies ist ein Problem, da Hashfunktionen wie MD5 normalerweise so konzipiert sind, dass sie eindeutige Hash-Werte für verschiedene Eingaben erzeugen sollen. Wenn jedoch zwei verschiedene Eingaben denselben Hash-Wert haben, kann dies die Integrität und Sicherheit von Systemen und Anwendungen gefährden.
Beachten Sie jedoch, dass MD5 nicht mehr als sicher angesehen wird und nicht für sicherheitskritische Anwendungen verwendet werden sollte.
Bitte verwenden Sie MD5 oder andere veraltete Hashfunktionen nicht für sicherheitskritische Zwecke, da sie anfällig für Kollisionen und andere Schwachstellen sind. Es ist ratsam, modernere und sicherere Hashfunktionen wie SHA-256 oder SHA-512 zu verwenden.