- Eine Untersuchung ergab, dass mehr als 1.700 öffentliche DKIM-Schlüssel mit weniger als 1.024 Bit gefunden wurden. RSA-Schlüssel unter 1.024 Bit gelten als unsicher, und deren Verwendung wurde seit RFC 8301 (2018) eingestellt.
- Ziel des Experiments: Aus einem veröffentlichten 512-Bit-RSA-Öffentlichschlüssel den privaten Schlüssel abzuleiten und zu prüfen, ob DKIM auf großen E-Mail-Diensten (Gmail, Outlook, Yahoo Mail usw.) besteht.
- Es wurde getestet, ob sich E-Mails so signieren lassen, als kämen sie vom eigentlichen Absender.
RSA-Öffentlichschlüssel-Dekodierung und Schlüsselerzeugung
- Der öffentliche Schlüssel ist ein 512-Bit-RSA-Schlüssel der Domain
Redfin.com, der im ASN.1 DER-Format codiert und zusätzlich Base64-kodiert wurde.
- Schlüssel-Dekodierung
- Den im
p-Tag enthaltenen, Base64-kodierten öffentlichen Schlüssel mit Python dekodieren
- Extraktion von
n (Modulus) und e (öffentlicher Exponent)
- Faktorisierung des RSA-Modulus
- Verwendung von CADO-NFS: basiert auf dem Number-Field-Sieve-Algorithmus
- Cloud-Server-Spezifikationen: 8 vCPU, 32 GB RAM (unter Nutzung von Hetzner)
- Nach Einrichtung von zusätzlichen 32 GB Swap wurde CADO-NFS ausgeführt
- Ergebnis: Nach etwa 86 Stunden gelang es,
n erfolgreich in zwei Faktoren p und q zu zerlegen
- Erzeugung des RSA-Privatschlüssels
- Generierung des RSA-Privatschlüssels mithilfe von
p und q
- Ausgabe des privaten Schlüssels im PEM-Format mit Python und der PyCryptodome-Bibliothek
DKIM-Signaturtest
- Integration des privaten Schlüssels in OpenDKIM und Versand von E-Mails
- Überprüfung der DKIM-Validierung bei mehreren E-Mail-Hosting-Diensten
- Testergebnis:
- DKIM erfolgreich: Yahoo Mail, Mailfence, Tuta
- DKIM fehlgeschlagen: Gmail, Outlook, Zoho, Fastmail usw.
- Yahoo, Mailfence und Tuta geben 512-Bit-Schlüssel bestehen, obwohl die Schwachstelle nicht erkannt wird.
Fazit
- Die Schwachstellen von 512-Bit-RSA-Schlüsseln
- Was vor rund 30 Jahren nur mit Supercomputern möglich war, ist heute auf einem Cloud-Server für unter 8 $ in wenigen Stunden machbar.
- Bei DKIM-Signaturen sollten nie RSA-Schlüssel unter 1.024 Bit verwendet werden.
- Empfehlungen
- E-Mail-Anbieter sollten DKIM-Signaturen mit RSA-Schlüsseln unter 1.024 Bit automatisch ablehnen.
- Domaininhaber sollten ihre DKIM-Einträge prüfen und auf mindestens 1.024 Bit aktualisieren.
- Die Länge von DKIM-Schlüsseln lässt sich anhand der Base64-Zeichenkettenlänge erkennen: Ein 1.024-Bit-Schlüssel hat mindestens 216 Zeichen
1 Kommentare
Hacker News Kommentar