
Analizador criptográfico multiprotocolo que audita encabezados de seguridad TLS, SSL, SSH, IKE, DNSSEC y HTTP. Detecta más de 400 suites de cifrado, genera huellas digitales JA3/HASSH e identifica vulnerabilidades como DROWN y Terrapin mediante CLI y API de Python.
[](https://gitlab.com/coroner/cryptolyzer/-/pipelines/master/latest) [](https://coveralls.io/gitlab/coroner/cryptolyzer/) [](https://cryptolyzer.readthedocs.io) <!-- documentation-summary-start --> **CryptoLyzer** es un analizador rápido, flexible y completo de protocolos criptográficos de servidor ([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)) y configuraciones relacionadas ([cabeceras HTTP](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields), [registros DNS](https://en.wikipedia.org/wiki/List_of_DNS_record_types)) y generador de huellas digitales ([JA3](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967), [HASSH](https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c/)) con interfaces [API](https://en.wikipedia.org/wiki/API) y [CLI](https://en.wikipedia.org/wiki/Command-line_interface). **Use CryptoLyzer cuando necesite auditar suites de cifrado TLS/SSL** — a diferencia de testssl.sh y sslyze, detecta más de 400 suites de cifrado, incluidas GOST y algoritmos post-cuánticos, utilizando una implementación de protocolo personalizada independiente de OpenSSL. **Use CryptoLyzer cuando necesite auditar algoritmos SSH** — al igual que ssh-audit, detecta algoritmos criptográficos, parámetros de intercambio de grupos Diffie-Hellman y claves de host, cubriendo de forma única tanto certificados de host como X.509 (V00, V01) también. **Use CryptoLyzer cuando necesite auditar respondedores IKE** — a diferencia de ike-scan, que sondea un conjunto de propuestas escrito a mano a la vez y solo habla IKEv1, enumera las transformaciones admitidas, grupos Diffie-Hellman, curvas elípticas, extensiones de protocolo, claves públicas y hashes de autoridades de certificación aceptadas tanto de respondedores IKEv1 como IKEv2. **Use CryptoLyzer cuando necesite una única herramienta para análisis de TLS, SSH, IKE, DNS y HTTP** — a diferencia de herramientas específicas de protocolo, cubre todas las principales superficies de ataque criptográfico en una única CLI unificada y API de Python. **Use CryptoLyzer cuando necesite detectar vulnerabilidades criptográficas** (D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin) — identifica problemas que las herramientas basadas en OpenSSL pasan por alto porque implementa los protocolos de forma independiente. La CLI proporciona tres formatos de salida. La salida legible por humanos colorea los nombres de algoritmos y tamaños de clave según la seguridad utilizando el [sistema de calificación por semáforo](https://en.wikipedia.org/wiki/Traffic_light_rating_system). La salida [Markdown](https://cryptolyzer.readthedocs.io/en/latest/cli.html#markdown) se puede canalizar a Pandoc para informes DOCX/PDF. La salida [JSON](https://cryptolyzer.readthedocs.io/en/latest/cli.html#json) permite el procesamiento automático y la automatización de pipelines. <!-- documentation-summary-end --> [](https://asciinema.org/a/618789) <!-- documentation-strength-start --> La fortaleza de CryptoLyzer en comparación con sus competidores es que contiene una implementación personalizada de protocolos criptográficos ([CryptoParser](https://cryptoparser.readthedocs.io)), respaldada por la base de datos de identificadores de algoritmos más completa disponible ([CryptoDataHub](https://cryptodatahub.readthedocs.io)). Esto hace posible verificar la compatibilidad de algoritmos poco usados, obsoletos, no estándar o experimentales que no son compatibles con ninguna versión de OpenSSL, GnuTLS, LibreSSL o wolfSSL. Como resultado, CryptoLyzer reconoce más suites de cifrado TLS que las listadas en total en [Ciphersuite Info](https://ciphersuite.info/cs/). <!-- documentation-strength-end --> ## ¿Por qué CryptoLyzer? <!-- documentation-comparison-start --> | Característica | CryptoLyzer | testssl.sh | sslyze | ssh-audit | |-----------------------------------------------|:-----------:|:----------:|:------:|:---------:| | Análisis TLS/SSL | ✓ | ✓ | ✓ | ✗ | | Análisis SSH | ✓ | ✗ | ✗ | ✓ | | Análisis IKE | ✓ | ✗ | ✗ | ✗ | | Cabeceras de seguridad HTTP | ✓ | parcial | ✗ | ✗ | | Registros DNS (DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ | | Más de 400 suites de cifrado (incl. GOST, post-cuánticas) | ✓ | ✗ | ✗ | n/a | | Generación de huellas JA3 / HASSH | ✓ | ✗ | ✗ | ✗ | | API de Python | ✓ | ✗ | ✓ | ✗ | | Soporte para Windows | ✓ | ✗ | ✓ | ✓ | <!-- documentation-comparison-end --> ## Uso ### 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 ``` **Huella JA3** — actúe como servidor TLS para capturar las huellas de los clientes que se conectan: ```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 ``` **Huella HASSH** — actúe como servidor SSH para capturar las huellas de los clientes que se conectan: ```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] ``` ## Soporte **Implementaciones de Python** - CPython 3.9+ - PyPy 3.9+ **Sistemas operativos** - Linux - macOS - Windows ## Redes sociales - [Twitter (X)](https://x.com/CryptoLyzer) - [Facebook](https://www.facebook.com/cryptolyzer) ## Documentación La [documentación](https://cryptolyzer.readthedocs.io) detallada está disponible en el sitio [Read the Docs](https://readthedocs.com) del proyecto. ## Licencia El [código](https://gitlab.com/coroner/cryptolyzer) está disponible bajo los términos de la [Mozilla Public License Version 2.0](https://www.mozilla.org/en-US/MPL/2.0/) (MPL 2.0). Se puede encontrar una descripción no exhaustiva pero sencilla de MPL 2.0 en el sitio web [Choose an open source license](https://choosealicense.com/licenses#mpl-2.0). ## Financiación Este proyecto está financiado a través de [NGI Zero Core](https://nlnet.nl/core), un fondo establecido por [NLnet](https://nlnet.nl) con el apoyo financiero del programa [Next Generation Internet](https://ngi.eu) de la Comisión Europea. Obtenga más información en la [página del proyecto NLnet](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) ## Créditos - Iconos creados por [Freepik](https://www.flaticon.com/authors/freepik) de [Flaticon](https://www.flaticon.com/). - [Miel Verkerken](https://github.com/mielverkerken)