debianopenssl
Private Schlüssel, die durch den Debian OpenSSL-Fehler (CVE-2008-0166) angreifbar sind
Im Jahr 2008 führte ein Fehler in Debian's und Ubuntu's OpenSSL-Paket zu vorhersagbaren privaten Schlüsseln.
Obwohl die Anzahl der Schlüssel begrenzt ist, erfordert es einige Überlegungen, eine korrekte Liste aller plausibel betroffenen Schlüssel zu erstellen. Dieses Repository enthält die für die Blockliste im badkeys-Tool verwendeten Schlüssel.
Anmerkungen zum Debian OpenSSL-Fehler:
- Die Schlüssel hängen von der Prozess-ID (PID) ab. Gültige PIDs reichen von 0 bis 32767. Schlüssel, die mit PID 0 erstellt wurden, sind unwahrscheinlich, werden aber dennoch aufgenommen. Auf 64-Bit-Plattformen ist es möglich, den Kernel so zu konfigurieren, dass größere PIDs erlaubt sind, aber das ist unwahrscheinlich.
- Schlüssel vom openssl-Befehlszeilentool und von OpenSSH's ssh-keygen sind unterschiedlich.
- Schlüssel, die mit openssls genrsa- und req-Befehlen generiert werden, sind identisch.
- openssl erzeugt unterschiedliche Schlüssel, je nachdem ob eine Datei .rnd im Home-Verzeichnis vorhanden ist oder nicht.
- Ohne die .rnd-Datei erzeugen ältere (z.B. 0.9.8c von etch) und neuere (z.B. 0.9.8g von lenny) openssl-Versionen unterschiedliche Schlüssel.
- ssh-keygen erzeugt keine 512-Bit-RSA-Schlüssel (768 ist die Mindestgröße).
- openssl unterstützt die Änderung des Exponentenwerts auf 3, aber dies ändert den Modulus nicht. Daher sind nur Schlüssel mit dem Standard-Exponentenwert enthalten. Bei der Erstellung einer Blockliste wird daher empfohlen, den Modulus und nicht den vollständigen Schlüssel zu überprüfen.
- ssh-keygen unterstützt nur DSA-Schlüssel mit einer Größe von 1024 Bit.
- Das Generieren von DSA-Schlüsseln mit openssl ist ein zweistufiger Prozess (zuerst Parameter generieren, dann den Schlüssel), daher ist die Anzahl möglicher Schlüssel viel größer. Sie werden hier nicht berücksichtigt, da die Verwendung von DSA-Schlüsseln in SSL/TLS nie üblich war.
- Schlüssel, die auf den Big-Endian-Architekturen PowerPC, SPARC und HPPA erstellt wurden, sind identisch.
- Schlüssel, die auf MIPS erstellt wurden, sind unterschiedlich. Angesichts der seltenen Nutzung dieser Plattform werden sie jedoch nicht berücksichtigt.
- Elliptische-Kurven- / ECDSA-Schlüssel werden von openssl, aber nicht von openssh unterstützt. Eine große Anzahl möglicher Kurven wird unterstützt, aber nur die Kurven NIST P-256 und P-384 werden üblicherweise in TLS-Zertifikaten verwendet.
Dieses Repo enthält derzeit:
- RSA-Schlüssel mit 1024, 2048, 3072 und 4096 Bit.
- DSA-Schlüssel mit 1024 Bit (nur openssh).
- ECDSA-Schlüssel mit den Kurven P-256 und P-384 (nur openssl).
- Erstellt mit PIDs von 0 bis 32767.
- Schlüssel, die sowohl mit openssl als auch mit ssh-keygen erstellt wurden (Verzeichnisse ssl/ssh).
- Schlüssel, die auf Little-Endian-32-Bit- (x86) und 64-Bit- (amd64) Architekturen sowie auf gängigen Big-Endian-32-Bit- (PowerPC/SPARC/HPPA) Architekturen erstellt wurden.
- Alle drei openssl-Varianten (mit/ohne .rnd, alte/neue Versionen).
Es enthält keine ungewöhnlichen Schlüsselgrößen, nicht standardmäßigen PID-Werte, nicht standardmäßigen Exponentenwerte, Schlüssel, die auf MIPS erstellt wurden, oder DSA-Schlüssel, die mit openssl erstellt wurden.
Die Verzeichnisstruktur ist:
rsa2048
ssl
le32
$pid-rnd.key
$pid-nornd-old.key
$pid-nornd-new.key
le64...
be32...
ssh
le32
$pid.key
le64...
be32...
rsa...
dsa1024
ssh
...
ecp256
ssl
...
Links