Zurück zu den Updates
New releaseAug 21, 2026

badkeys v0.0.20

Werkzeug zum Finden häufiger Schwachstellen in kryptografischen öffentlichen Schlüsseln

Teilen

badkeys

Werkzeug und Bibliothek zum Überprüfen von kryptografischen öffentlichen Schlüsseln auf bekannte Schwachstellen

was?

badkeys überprüft öffentliche Schlüssel in verschiedenen Formaten auf bekannte Schwachstellen. Eine Webversion ist unter badkeys.info verfügbar.

Installation

badkeys kann via pip installiert werden:

pip3 install badkeys

Sie sollten eine virtuelle Umgebung verwenden. Details zu verschiedenen Installationsoptionen finden Sie in der offiziellen Python-Dokumentation. Alternativ können Sie ./badkeys-cli direkt aus dem Git-Repository aufrufen.

Eine Übersicht über badkeys-Pakete für Linux-Distributionen und andere Betriebssysteme finden Sie auf Repology.

Verwendung

Vor der Verwendung von badkeys müssen Sie die Blocklist-Daten herunterladen:

badkeys --update-bl

Danach können Sie badkeys aufrufen und Dateien mit kryptografischen öffentlichen Schlüsseln als Parameter übergeben:

badkeys test.crt my.key

Es erkennt automatisch das Dateiformat. Unterstützt werden öffentliche und private Schlüssel im PEM-Format (sowohl PKCS #1 als auch PKCS #8), X.509-Zertifikate, Zertifikatsignierungsanforderungen (CSRs) und SSH-öffentliche Schlüssel. Einige Testschlüssel finden Sie im Verzeichnis tests/data.

Standardmäßig gibt badkeys nur Informationen über anfällige Schlüssel aus, d.h. es wird keine Ausgabe erzeugt, wenn keine Schwachstellen gefunden werden. Der Parameter -a erzeugt eine Ausgabe für alle Schlüssel.

Das Kommandozeilen-Werkzeug gibt 0 zurück, wenn Schlüssel gescannt wurden, keine Fehler aufgetreten sind und keine Schwachstellen erkannt wurden. Es gibt 1 bei Anwendungsfehlern zurück, 2, wenn eine Eingabe nicht gescannt werden konnte (Parser-Fehler, nicht unterstützte Schlüsseltypen, Dateien ohne Schlüssel), und 4, wenn ein anfälliger Schlüssel gefunden wurde. Rückgabecodes können als Bitmaske kombiniert werden. (Z.B. 2|4=6 zeigt an, dass einige Schlüssel anfällig waren und einige nicht gescannt werden konnten.)

Scannen

badkeys kann SSH- und TLS-Hosts scannen und automatisch deren öffentliche Schlüssel überprüfen. Dies kann mit den Parametern -s (SSH) und -t (TLS) aktiviert werden. Standardmäßig wird SSH auf Port 22 gescannt und TLS auf mehreren Ports für gängige Protokolle (https/443, smtps/465, ldaps/636, ftps/990, imaps/993, pop3s/995 und 8443, der häufig als nicht standardmäßiger HTTPS-Port verwendet wird).

Alternative Ports können mit --tls-ports und --ssh-ports konfiguriert werden.

TLS- und SSH-Scannen können kombiniert werden:

badkeys -ts example.org

Beachten Sie, dass die Scanmodi Einschränkungen haben. Es ist oft wünschenswerter, andere Werkzeuge zum Sammeln von TLS/SSH-Schlüsseln zu verwenden und diese dann lokal mit badkeys zu scannen.

SSH-Scannen benötigt paramiko als zusätzliche Abhängigkeit.

TLS-Scannen kann mehrere Zertifikate auf einem Host nicht erkennen (z.B. ECDSA und RSA). Dies ist eine Einschränkung der Funktion ssl.get_server_certificate() von Python.

Python-Modul und API

badkeys kann auch als Python-Modul verwendet werden. Allerdings befindet sich die Software derzeit im Beta-Stadium und die API kann sich regelmäßig ändern.

Über

badkeys wurde von Hanno Böck geschrieben.

Diese Arbeit wurde ursprünglich im Jahr 2022 von Industriens Fond durch das CIDI-Projekt (Cybersecure IOT in Danish Industry) und dem Center for Information Security and Trust (CISAT) an der IT-Universität Kopenhagen, Dänemark, finanziert. In den Jahren 2025/2026 wurde badkeys durch den NGI0 Core Fund von NLnet unterstützt.

Kategorien