Kann Snyk schwache kryptografische Algorithmen finden? Adieu, MD5
25. Februar 2025
0 Min. LesezeitDer Einsatz starker Kryptografie ist für den Datenschutz und die Anwendungssicherheit unerlässlich, etwa beim Hashen von Passwörtern (was technisch gesehen keine klassische Kryptografie zur Verschlüsselung ist). In manchen älteren Codebeständen kommen jedoch möglicherweise noch immer schwache und veraltete kryptografische Algorithmen in der Produktion zum Einsatz, die bislang unentdeckt blieben. Wie kann Snyk Code Ihnen dabei helfen, diese anfälligen Anwendungen zu finden?
Die Gefahren schwacher kryptografischer Algorithmen
Schwache und veraltete Algorithmen für Verschlüsselung oder Hashing bergen erhebliche Sicherheitsrisiken und können vertrauliche Informationen für Angreifer offenlegen. Wer sich auf unzureichende Implementierungen verlässt, wiegt sich in falscher Sicherheit und setzt Systeme damit Risiken aus. Es ist unerlässlich, die Grenzen älterer Algorithmen zu kennen und moderne, sichere kryptografische Verfahren einzusetzen.
Mehrere kryptografische Algorithmen gelten inzwischen als unsicher und sollten vermieden werden. MD5 ist beispielsweise kryptografisch gebrochen und für Sicherheitsanwendungen ungeeignet – insbesondere zum Hashen von Passwörtern. Da sich Kollisionen leicht finden lassen, können unterschiedliche Eingaben denselben Hashwert erzeugen. So können Angreifer das ursprüngliche Passwort herausfinden oder ein gefälschtes Passwort erstellen, das zum gespeicherten Hash passt. Weitere Beispiele für schwache Algorithmen sind DES und RC4. Beide weisen bekannte Schwachstellen auf und sollten nicht mehr verwendet werden.
Schwacher MD5-Algorithmus in Java
Sehen Sie sich die folgende Java-Anwendung an, die MD5 zum Hashen von Benutzerpasswörtern verwendet:
Hinweis: Den vollständigen Quellcode auf GitHub finden Sie hier.
Wahrscheinlich wissen Sie, dass MD5 nicht zum Hashen von Passwörtern verwendet werden sollte. Doch was passiert, wenn Sie zahlreiche Anwendungen warten müssen und in einer Vielzahl von Code-Repositories Hunderttausende Codezeilen schnell durchsuchen sollen?
Wenn Sie Snyk mit Ihren Code-Repositories verbinden oder anderweitig integrieren, kann Snyk schnell und unkompliziert nach anfälligem Code suchen – ganz gleich, ob dieser in einer älteren Anwendung schlummert oder durch GenAI und andere KI-Code-Assistenten fehlerhaft generiert wurde.
Snyk findet den schwachen MD5-Algorithmus und zeigt den Source-to-Sink-Aufrufpfad in Ihrem Code:

Wie beheben wir den schwachen MD5-Algorithmus in Java?
Snyk ergänzt die Sicherheitsergebnisse um weitere Informationen. Neben der Erkennung anfälligen Codes bietet Snyk auch eine Analyse zur Behebung. Das folgende Beispiel zeigt, wie die MessageDigest-API in einem Open-Source-Projekt (hier: owasp security logging) korrigiert und der veraltete Hashing-Algorithmus SHA-1 durch die aktuellere Variante SHA-256 ersetzt wurde:

Snyk stellt außerdem Best Practices für den Einsatz starker Algorithmen beim Hashing und in der Kryptografie bereit und erläutert die Risiken, die entstehen, wenn vertrauliche Informationen im Klartext gespeichert werden.
Sicherheitsempfehlungen und Best Practices für Algorithmen
Wählen Sie für Ihre Aufgabe den passenden Algorithmus. Wenn Sie Passwörter hashen, sollten Sie einen sicheren kryptografischen Algorithmus wählen, der vor Brute-Force-Angriffen schützt und sich hinsichtlich der Leistung für den Einsatz in realen Anwendungen eignet. Zu den etablierten Branchenstandards zählen seit Jahrzehnten Bcrypt sowie PBKDF2 und das besonders verbreitete Argon2.
Beachten Sie die Best Practices für Kryptografie, etwa die Ressourcen von OWASP.
Starten Sie jetzt mit Snyk (kostenlos!) und sammeln Sie Sicherheitspunkte, indem Sie anfälligen Code, veraltete Abhängigkeiten, schwache Kryptografie und weitere Sicherheitsprobleme finden und erkennen.
Kostenloses Online-Tool zur Codeprüfung
Sichern Sie Ihren Code, bevor Sie Ihren nächsten Commit erstellen.
