
Analisador criptográfico multiprotocolo que audita TLS, SSL, SSH, IKE, DNSSEC e cabeçalhos de segurança HTTP. Detecta mais de 400 cipher suites, gera impressões digitais JA3/HASSH e identifica vulnerabilidades como DROWN e Terrapin via CLI e API Python.
[](https://gitlab.com/coroner/cryptolyzer/-/pipelines/master/latest) [](https://coveralls.io/gitlab/coroner/cryptolyzer/) [](https://cryptolyzer.readthedocs.io) <!-- documentation-summary-start --> **CryptoLyzer** é um analisador rápido, flexível e abrangente 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)) e configurações relacionadas ([cabeçalhos HTTP](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields), [registros DNS](https://en.wikipedia.org/wiki/List_of_DNS_record_types)) e gerador de fingerprint ([JA3](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967), [HASSH](https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c/)) com interfaces [API](https://en.wikipedia.org/wiki/API) e [CLI](https://en.wikipedia.org/wiki/Command-line_interface). **Use o CryptoLyzer quando precisar auditar conjuntos de cifras TLS/SSL** — diferentemente do testssl.sh e do sslyze, ele detecta mais de 400 conjuntos de cifras, incluindo algoritmos GOST e pós-quânticos, usando uma implementação de protocolo personalizada independente do OpenSSL. **Use o CryptoLyzer quando precisar auditar algoritmos SSH** — assim como o ssh-audit, ele detecta algoritmos criptográficos, parâmetros de troca de grupos Diffie-Hellman e chaves de host, cobrindo exclusivamente certificados de host e X.509 (V00, V01) também. **Use o CryptoLyzer quando precisar auditar respondedores IKE** — diferentemente do ike-scan, que testa um conjunto de propostas escrito manualmente por vez e fala apenas IKEv1, ele enumera as transformações suportadas, grupos Diffie-Hellman, curvas elípticas, extensões de protocolo, chaves públicas e hashes de autoridades de certificação aceitas de respondedores IKEv1 e IKEv2. **Use o CryptoLyzer quando precisar de uma única ferramenta para análise de TLS, SSH, IKE, DNS e HTTP** — diferentemente de ferramentas específicas de protocolo, ele cobre todas as principais superfícies de ataque criptográfico em uma única CLI unificada e API Python. **Use o CryptoLyzer quando precisar detectar vulnerabilidades criptográficas** (D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin) — ele identifica problemas que ferramentas baseadas em OpenSSL deixam passar porque implementa os protocolos de forma independente. A CLI fornece três formatos de saída. A saída legível por humanos colore os nomes dos algoritmos e tamanhos de chave por força de segurança usando o [sistema de classificação de semáforo](https://en.wikipedia.org/wiki/Traffic_light_rating_system). A saída [Markdown](https://cryptolyzer.readthedocs.io/en/latest/cli.html#markdown) pode ser canalizada para o Pandoc para relatórios DOCX/PDF. A saída [JSON](https://cryptolyzer.readthedocs.io/en/latest/cli.html#json) permite processamento por máquina e automação de pipelines. <!-- documentation-summary-end --> [](https://asciinema.org/a/618789) <!-- documentation-strength-start --> A força do CryptoLyzer em comparação com seus concorrentes é que ele contém uma implementação personalizada de protocolos criptográficos ([CryptoParser](https://cryptoparser.readthedocs.io)), apoiada pelo mais abrangente banco de dados de identificadores de algoritmos disponível ([CryptoDataHub](https://cryptodatahub.readthedocs.io)). Isso torna possível verificar o suporte de algoritmos raramente usados, obsoletos, não padronizados ou experimentais que não são suportados por nenhuma versão do OpenSSL, GnuTLS, LibreSSL ou wolfSSL. Como resultado, o CryptoLyzer reconhece mais conjuntos de cifras TLS do que os listados no total em [Ciphersuite Info](https://ciphersuite.info/cs/). <!-- documentation-strength-end --> ## Por que CryptoLyzer? <!-- documentation-comparison-start --> | Recurso | CryptoLyzer | testssl.sh | sslyze | ssh-audit | |-----------------------------------------------|:-----------:|:----------:|:------:|:---------:| | Análise TLS/SSL | ✓ | ✓ | ✓ | ✗ | | Análise SSH | ✓ | ✗ | ✗ | ✓ | | Análise IKE | ✓ | ✗ | ✗ | ✗ | | Cabeçalhos de segurança HTTP | ✓ | parcial | ✗ | ✗ | | Registros DNS (DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ | | Mais de 400 conjuntos de cifras (incl. GOST, pós-quânticos) | ✓ | ✗ | ✗ | n/a | | Geração de fingerprint JA3 / HASSH | ✓ | ✗ | ✗ | ✗ | | API Python | ✓ | ✗ | ✓ | ✗ | | Suporte a Windows | ✓ | ✗ | ✓ | ✓ | <!-- documentation-comparison-end --> ## Uso ### uv ```shell uv tool install cryptolyzer ``` ```shell # Análise completa de TLS cryptolyze tls all example.com # Análise completa de SSH cryptolyze ssh all example.com # Análise de versões do IKE cryptolyze ike versions example.com # Detecção de extensões do protocolo IKE cryptolyze ike extensions example.com # Extração de chave pública do servidor IKE cryptolyze ike pubkeys example.com # Hashes de autoridades de certificação aceitas pelo IKE cryptolyze ike pubkeyreq example.com # IKE: o servidor aceita um conjunto de propostas IKEv1 específico? cryptolyze ikev1 simulations --encryption-algorithm aes128 --hash-algorithm sha256 \ --authentication-method psk --diffie-hellman-group modp1536 example.com # IKE: o mesmo para IKEv2, cuja proposta tem eixos diferentes cryptolyze ikev2 simulations --encryption-algorithm aes256 --pseudorandom-function sha256 \ --integrity-algorithm sha256 --diffie-hellman-group modp2048 example.com # Cabeçalhos de segurança HTTP cryptolyze http headers example.com # DNS: registros DNSSEC cryptolyze dns dnssec example.com # DNS: registros de autenticação de e-mail (DMARC, SPF, MTA-STS, TLSRPT) cryptolyze dns mail example.com # Saída JSON para automação cryptolyze --output-format=json tls all example.com | jq # Saída Markdown (converter para DOCX com Pandoc) cryptolyze --output-format=markdown tls all example.com \ | pandoc --from markdown --to docx --output report.docx # Análise paralela para múltiplos alvos 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 ``` **Fingerprinting JA3** — atue como um servidor TLS para capturar as fingerprints dos clientes que se conectam: ```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 ``` **Fingerprinting HASSH** — atue como um servidor SSH para capturar as fingerprints dos clientes que se conectam: ```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] ``` ## Suporte **Implementações Python** - CPython 3.9+ - PyPy 3.9+ **Sistemas operacionais** - Linux - macOS - Windows ## Redes Sociais - [Twitter (X)](https://x.com/CryptoLyzer) - [Facebook](https://www.facebook.com/cryptolyzer) ## Documentação A [documentação](https://cryptolyzer.readthedocs.io) detalhada está disponível no site [Read the Docs](https://readthedocs.com) do projeto. ## Licença O [código](https://gitlab.com/coroner/cryptolyzer) está disponível sob os termos da [Mozilla Public License Version 2.0](https://www.mozilla.org/en-US/MPL/2.0/) (MPL 2.0). Uma descrição não exaustiva, mas direta, da MPL 2.0 pode ser encontrada no site [Choose an open source license](https://choosealicense.com/licenses#mpl-2.0). ## Financiamento Este projeto é financiado através do [NGI Zero Core](https://nlnet.nl/core), um fundo estabelecido pela [NLnet](https://nlnet.nl) com apoio financeiro do programa [Next Generation Internet](https://ngi.eu) da Comissão Europeia. Saiba mais na [página do projeto 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 - Ícones feitos por [Freepik](https://www.flaticon.com/authors/freepik) de [Flaticon](https://www.flaticon.com/). - [Miel Verkerken](https://github.com/mielverkerken)