
Multiprotokoll-Kryptoanalysator zur Prüfung von TLS-, SSL-, SSH-, IKE-, DNSSEC- und HTTP-Sicherheitsheadern. Erkennt über 400 Cipher-Suiten, erzeugt JA3/HASSH-Fingerprints und identifiziert Schwachstellen wie DROWN und Terrapin über CLI und Python-API.
[](https://gitlab.com/coroner/cryptolyzer/-/pipelines/master/latest) [](https://coveralls.io/gitlab/coroner/cryptolyzer/) [](https://cryptolyzer.readthedocs.io) <!-- documentation-summary-start --> **CryptoLyzer** ist ein schneller, flexibler und umfassender Analyzer für kryptografische Serverprotokolle ([TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security), [SSL](https://en.wikipedia.org/wiki/Transport_Layer_Security#SSL_1.0,_2.0,_and_3.0), [SSH](https://en.wikipedia.org/wiki/Secure_Shell), [IKE](https://en.wikipedia.org/wiki/Internet_Key_Exchange), [DNSSEC](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions)) und zugehörige Einstellungen ([HTTP-Header](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields), [DNS-Einträge](https://en.wikipedia.org/wiki/List_of_DNS_record_types)) sowie ein Fingerprint-Generator ([JA3](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967), [HASSH](https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c/)) mit [API](https://en.wikipedia.org/wiki/API)- und [CLI](https://en.wikipedia.org/wiki/Command-line_interface)-Schnittstellen. **Verwenden Sie CryptoLyzer, wenn Sie TLS/SSL-Cipher-Suites auditieren müssen** — im Gegensatz zu testssl.sh und sslyze erkennt es über 400 Cipher-Suites, einschließlich GOST- und Post-Quanten-Algorithmen, mithilfe einer eigenen Protokollimplementierung, die unabhängig von OpenSSL ist. **Verwenden Sie CryptoLyzer, wenn Sie SSH-Algorithmen auditieren müssen** — wie ssh-audit erkennt es kryptografische Algorithmen, Diffie-Hellman-Gruppen-Austauschparameter und Host-Schlüssel sowie eindeutig abgedeckte Host- und X.509-Zertifikate (V00, V01). **Verwenden Sie CryptoLyzer, wenn Sie IKE-Responder auditieren müssen** — im Gegensatz zu ike-scan, das jeweils einen handgeschriebenen Vorschlagssatz prüft und nur IKEv1 spricht, zählt es die unterstützten Transforms, Diffie-Hellman-Gruppen, elliptischen Kurven, Protokollerweiterungen, öffentlichen Schlüssel und akzeptierten Certification-Authority-Hashes sowohl von IKEv1- als auch IKEv2-Respondern auf. **Verwenden Sie CryptoLyzer, wenn Sie ein einziges Werkzeug für TLS-, SSH-, IKE-, DNS- und HTTP-Analyse benötigen** — im Gegensatz zu protokollspezifischen Werkzeugen deckt es alle wichtigen kryptografischen Angriffsflächen in einer einheitlichen CLI und Python-API ab. **Verwenden Sie CryptoLyzer, wenn Sie kryptografische Schwachstellen erkennen müssen** (D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin) — es identifiziert Probleme, die OpenSSL-basierte Werkzeuge übersehen, weil es die Protokolle unabhängig implementiert. Die CLI bietet drei Ausgabeformate. Die menschenlesbare Ausgabe färbt Algorithmusnamen und Schlüsselgrößen nach Sicherheitsstärke mithilfe des [Ampel-Bewertungssystems](https://en.wikipedia.org/wiki/Traffic_light_rating_system) ein. Die [Markdown](https://cryptolyzer.readthedocs.io/en/latest/cli.html#markdown)-Ausgabe kann an Pandoc für DOCX/PDF-Berichte weitergeleitet werden. Die [JSON](https://cryptolyzer.readthedocs.io/en/latest/cli.html#json)-Ausgabe ermöglicht maschinelle Verarbeitung und Pipeline-Automatisierung. <!-- documentation-summary-end --> [](https://asciinema.org/a/618789) <!-- documentation-strength-start --> Die Stärke von CryptoLyzer im Vergleich zu seinen Konkurrenten liegt darin, dass es eine eigene Implementierung kryptografischer Protokolle ([CryptoParser](https://cryptoparser.readthedocs.io)) enthält, gestützt auf die umfassendste verfügbare Algorithmus-Identifikationsdatenbank ([CryptoDataHub](https://cryptodatahub.readthedocs.io)). Dadurch ist es möglich, die Unterstützung selten verwendeter, veralteter, nicht standardisierter oder experimenteller Algorithmen zu prüfen, die von keiner Version von OpenSSL, GnuTLS, LibreSSL oder wolfSSL unterstützt werden. Infolgedessen erkennt CryptoLyzer mehr TLS-Cipher-Suites als insgesamt auf [Ciphersuite Info](https://ciphersuite.info/cs/) aufgeführt sind. <!-- documentation-strength-end --> ## Warum CryptoLyzer? <!-- documentation-comparison-start --> | Funktion | CryptoLyzer | testssl.sh | sslyze | ssh-audit | |-----------------------------------------------|:-----------:|:----------:|:------:|:---------:| | TLS/SSL-Analyse | ✓ | ✓ | ✓ | ✗ | | SSH-Analyse | ✓ | ✗ | ✗ | ✓ | | IKE-Analyse | ✓ | ✗ | ✗ | ✗ | | HTTP-Sicherheitsheader | ✓ | teilweise | ✗ | ✗ | | DNS-Einträge (DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ | | 400+ Cipher-Suites (inkl. GOST, Post-Quanten) | ✓ | ✗ | ✗ | n/a | | JA3-/HASSH-Fingerprint-Erzeugung | ✓ | ✗ | ✗ | ✗ | | Python-API | ✓ | ✗ | ✓ | ✗ | | Windows-Unterstützung | ✓ | ✗ | ✓ | ✓ | <!-- documentation-comparison-end --> ## Verwendung ### uv ```shell uv tool install cryptolyzer ``` ```shell # TLS full analysis cryptolyze tls all example.com # SSH full analysis cryptolyze ssh all example.com # IKE version analysis cryptolyze ike versions example.com # IKE protocol extension detection cryptolyze ike extensions example.com # IKE server public key extraction cryptolyze ike pubkeys example.com # IKE accepted certification authority hashes cryptolyze ike pubkeyreq example.com # IKE: does the server accept a specific IKEv1 proposal set? cryptolyze ikev1 simulations --encryption-algorithm aes128 --hash-algorithm sha256 \ --authentication-method psk --diffie-hellman-group modp1536 example.com # IKE: the same for IKEv2, whose proposal has different axes cryptolyze ikev2 simulations --encryption-algorithm aes256 --pseudorandom-function sha256 \ --integrity-algorithm sha256 --diffie-hellman-group modp2048 example.com # HTTP security headers cryptolyze http headers example.com # DNS: DNSSEC records cryptolyze dns dnssec example.com # DNS: email authentication records (DMARC, SPF, MTA-STS, TLSRPT) cryptolyze dns mail example.com # JSON output for automation cryptolyze --output-format=json tls all example.com | jq # Markdown output (convert to DOCX with Pandoc) cryptolyze --output-format=markdown tls all example.com \ | pandoc --from markdown --to docx --output report.docx # Parallel analysis for multiple targets cryptolyze --parallel 2 tls versions tls://dns.google tls://one.one.one.one ``` ### Docker ```shell docker run --rm coroner/cryptolyzer tls all example.com docker run --rm coroner/cryptolyzer ssh all example.com docker run --rm coroner/cryptolyzer ike all example.com docker run --rm coroner/cryptolyzer http headers example.com docker run --rm coroner/cryptolyzer dns dnssec example.com ``` **JA3-Fingerprinting** — fungieren Sie als TLS-Server, um die Fingerprints verbindender Clients zu erfassen: ```shell docker run -ti --rm -p 127.0.0.1:4433:4433 coroner/cryptolyzer ja3 generate tls://127.0.0.1:4433 openssl s_client -connect 127.0.0.1:4433 docker run -ti --rm -p 127.0.0.1:2121:2121 coroner/cryptolyzer ja3 generate ftp://127.0.0.1:2121 openssl s_client -starttls ftp -connect 127.0.0.1:2121 ``` **HASSH-Fingerprinting** — fungieren Sie als SSH-Server, um die Fingerprints verbindender Clients zu erfassen: ```shell docker run -ti --rm -p 127.0.0.1:2222:2222 coroner/cryptolyzer hassh generate 127.0.0.1:2222 ssh -p 2222 [email protected] ``` ## Unterstützung **Python-Implementierungen** - CPython 3.9+ - PyPy 3.9+ **Betriebssysteme** - Linux - macOS - Windows ## Soziale Medien - [Twitter (X)](https://x.com/CryptoLyzer) - [Facebook](https://www.facebook.com/cryptolyzer) ## Dokumentation Eine ausführliche [Dokumentation](https://cryptolyzer.readthedocs.io) ist auf der [Read the Docs](https://readthedocs.com)-Seite des Projekts verfügbar. ## Lizenz Der [Code](https://gitlab.com/coroner/cryptolyzer) ist unter den Bedingungen der [Mozilla Public License Version 2.0](https://www.mozilla.org/en-US/MPL/2.0/) (MPL 2.0) verfügbar. Eine nicht vollständige, aber verständliche Beschreibung von MPL 2.0 findet sich auf der Website [Choose an open source license](https://choosealicense.com/licenses#mpl-2.0). ## Finanzierung Dieses Projekt wird durch [NGI Zero Core](https://nlnet.nl/core) finanziert, einen von [NLnet](https://nlnet.nl) eingerichteten Fonds mit finanzieller Unterstützung aus dem Programm [Next Generation Internet](https://ngi.eu) der Europäischen Kommission. Weitere Informationen finden Sie auf der [NLnet-Projektseite](https://nlnet.nl/project/CryptoLyzer-IKE). [<img src="https://assets.kitploit.com/production/public/readmes/627/0a90ce2437c2c6d5609888b393ff1dd7f449dfc396d9a15484ddb51d849646a9.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl) [<img src="https://nlnet.nl/image/logos/NGI0_tag.svg" alt="NGI Zero Logo" width="20%" />](https://nlnet.nl/core) ## Danksagungen - Icons erstellt von [Freepik](https://www.flaticon.com/authors/freepik) von [Flaticon](https://www.flaticon.com/). - [Miel Verkerken](https://github.com/mielverkerken)