debianopenssl
Chiavi private vulnerabili al bug di Debian OpenSSL (CVE-2008-0166)
Nel 2008 un bug nel pacchetto OpenSSL di Debian e Ubuntu ha portato a chiavi private prevedibili.
Sebbene il numero di chiavi sia limitato, servono alcune considerazioni per creare un elenco
adeguato di tutte le chiavi potenzialmente interessate. Questo repository contiene le chiavi usate per la
blocklist nello strumento badkeys.
Note sul bug di Debian OpenSSL:
- Le chiavi dipendono dall'ID del processo (PID). I PID validi vanno da 0 a 32767. Le chiavi
create con PID 0 sono improbabili, ma sono incluse. Su piattaforme a 64 bit, è
possibile configurare il kernel per consentire PID più grandi, ma è improbabile.
- Le chiavi prodotte dallo strumento a riga di comando openssl e da ssh-keygen di OpenSSH sono diverse.
- Le chiavi generate con i comandi genrsa e req di openssl sono identiche.
- openssl crea chiavi diverse a seconda che un file .rnd sia presente o assente nella home directory.
- Senza il file .rnd, versioni di openssl più vecchie (es. 0.9.8c di etch) e più recenti (es. 0.9.8g di lenny)
producono chiavi diverse.
- ssh-keygen non crea chiavi RSA da 512 bit (768 è la dimensione minima).
- openssl supporta la modifica del valore dell'esponente a 3, ma questo non cambia il
modulo. Pertanto sono incluse solo le chiavi con il valore predefinito dell'esponente. Quando
si crea una blocklist, è quindi consigliato controllare il modulo e non l'intera
chiave.
- ssh-keygen supporta solo chiavi DSA con dimensione a 1024 bit.
- Generare chiavi DSA con openssl è un processo in due passaggi (prima si generano i parametri,
poi la chiave), quindi il numero di chiavi possibili è molto più grande. Non sono
considerate qui poiché l'uso di chiavi DSA in SSL/TLS non è mai stato comune.
- Le chiavi create sulle architetture big endian PowerPC, SPARC e HPPA sono identiche.
- Le chiavi create su MIPS sono diverse. Tuttavia, visto l'uso raro di quella piattaforma, non
sono considerate.
- Le chiavi a curva ellittica / ECDSA sono supportate da openssl, ma non da openssh. Un grande
numero di curve possibili è supportato, ma solo le curve NIST P-256 e P-384 sono
comunemente usate nei certificati TLS.
Questo repository attualmente include:
- Chiavi RSA da 1024, 2048, 3072 e 4096 bit.
- Chiavi DSA da 1024 bit (solo openssh).
- Chiavi ECDSA con le curve P-256 e P-384 (solo openssl).
- Create con PID da 0 a 32767.
- Chiavi create sia con openssl che con ssh-keygen (directory ssl/ssh).
- Chiavi create su architetture little endian a 32 bit (x86) e 64 bit (amd64) e comuni
architetture big endian a 32 bit (PowerPC/SPARC/HPPA).
- Tutte e tre le varianti di openssl (con/senza .rnd, versioni vecchie/nuove).
Non include dimensioni di chiave insolite, valori PID non standard, valori di esponente
non standard, chiavi create su MIPS o chiavi DSA create con openssl.
La struttura delle directory è:
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
...
Collegamenti