Torna agli aggiornamenti
New releaseAug 21, 2026

badkeys v0.0.20

Strumento per trovare vulnerabilità comuni nelle chiavi pubbliche crittografiche

Condividi

badkeys

Strumento e libreria per controllare le chiavi pubbliche crittografiche per vulnerabilità note

cosa?

badkeys controlla le chiavi pubbliche in vari formati per individuare vulnerabilità note. Una versione web è disponibile su badkeys.info.

installazione

badkeys può essere installato tramite pip:

pip3 install badkeys

Potresti voler usare un ambiente virtuale. Per dettagli sulle diverse opzioni di installazione, consulta la documentazione ufficiale di Python. In alternativa, puoi eseguire ./badkeys-cli direttamente dal repository git.

Puoi trovare una panoramica dei pacchetti badkeys per distribuzioni Linux e altri sistemi operativi su Repology.

uso

Prima di usare badkeys, devi scaricare i dati della blocklist:

badkeys --update-bl

Dopodiché, puoi chiamare badkeys e passare file con chiavi pubbliche crittografiche come parametro:

badkeys test.crt my.key

Proverà automaticamente a rilevare il formato del file. Sono supportate le chiavi pubbliche e private in formato PEM (sia PKCS #1 che PKCS #8), i certificati X.509, le richieste di firma del certificato (CSR) e le chiavi pubbliche SSH. Puoi trovare alcune chiavi di test nella directory tests/data.

Per impostazione predefinita, badkeys emette solo informazioni sulle chiavi vulnerabili, quindi non viene generato alcun output se non vengono trovate vulnerabilità. Il parametro -a genera un output per tutte le chiavi.

Lo strumento a riga di comando restituisce 0 se le chiavi sono state scansionate, non si sono verificati errori e non sono state rilevate vulnerabilità. Restituisce 1 per errori applicativi, 2 se un qualsiasi input non ha potuto essere scansionato (errori del parser, tipi di chiave non supportati, file senza chiave) e 4 se è stata trovata una chiave vulnerabile. I codici di ritorno possono essere combinati come bitmask. (Ad es., 2|4=6 indica che alcune chiavi erano vulnerabili e altre non hanno potuto essere scansionate.)

scansione

badkeys può scansionare host SSH e TLS e controllare automaticamente le loro chiavi pubbliche. Questa funzione può essere abilitata con i parametri -s (SSH) e -t (TLS). Per impostazione predefinita, SSH viene scansionato sulla porta 22 e TLS su diverse porte per i protocolli comuni (https/443, smtps/465, ldaps/636, ftps/990, imaps/993, pop3s/995 e 8443, che viene comunemente usata come porta https non standard).

Porte alternative possono essere configurate con --tls-ports e --ssh-ports.

La scansione TLS e SSH può essere combinata:

badkeys -ts example.org

Nota che le modalità di scansione hanno delle limitazioni. Spesso è preferibile usare altri strumenti per raccogliere le chiavi TLS/SSH e scansionarle localmente con badkeys.

La scansione SSH richiede paramiko come dipendenza aggiuntiva.

La scansione TLS non può rilevare più certificati su un singolo host (ad es. ECDSA e RSA). Questa è una limitazione della funzione ssl.get_server_certificate() di Python.

modulo Python e API

badkeys può essere usato anche come modulo Python. Tuttavia, al momento il software è in fase beta e l'API potrebbe cambiare regolarmente.

informazioni

badkeys è stato scritto da Hanno Böck.

Questo lavoro è stato inizialmente finanziato nel 2022 da Industriens Fond tramite il progetto CIDI (Cybersecure IOT in Danish Industry) e dal Center for Information Security and Trust (CISAT) presso l'IT University di Copenaghen, Danimarca. Nel 2025/2026, badkeys è stato supportato dal NGI0 Core Fund di NLnet.

Categorie