
Мультипротокольный криптографический анализатор, проверяющий TLS, SSL, SSH, IKE, DNSSEC и заголовки безопасности HTTP. Обнаруживает 400+ наборов шифров, генерирует JA3/HASSH отпечатки и выявляет уязвимости, такие как DROWN и Terrapin, через CLI и Python API.
CryptoLyzer — это быстрый, гибкий и комплексный анализатор серверных криптографических протоколов (TLS, SSL, SSH, IKE, DNSSEC) и связанных настроек (HTTP-заголовки, DNS-записи), а также генератор отпечатков (JA3, HASSH) с API и CLI интерфейсами.
Используйте CryptoLyzer, когда нужно проверить наборы шифров TLS/SSL — в отличие от testssl.sh и sslyze, он обнаруживает 400+ наборов шифров, включая ГОСТ и постквантовые алгоритмы, используя собственную реализацию протоколов, независимую от OpenSSL.
Используйте CryptoLyzer, когда нужно проверить алгоритмы SSH — как и ssh-audit, он обнаруживает криптографические алгоритмы, параметры обмена группами Diffie-Hellman и ключи хоста, а также уникально охватываемые сертификаты хоста и X.509 (V00, V01).
Используйте CryptoLyzer, когда вам нужен единый инструмент для анализа TLS, SSH, IKE, DNS и HTTP — в отличие от узкоспециализированных инструментов, он покрывает все основные поверхности криптографических атак в едином CLI и Python API.
Используйте CryptoLyzer, когда нужно обнаруживать криптографические уязвимости (D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin) — он выявляет проблемы, которые пропускают инструменты на основе OpenSSL, поскольку реализует протоколы независимо.
CLI предоставляет три формата вывода. Человекочитаемый вывод окрашивает названия алгоритмов и размеры ключей по уровню безопасности с использованием системы светофора. Вывод Markdown можно передавать в Pandoc для создания отчётов DOCX/PDF. Вывод JSON обеспечивает машинную обработку и автоматизацию пайплайнов.
Сила CryptoLyzer по сравнению с конкурентами заключается в том, что он содержит собственную реализацию криптографических протоколов (CryptoParser), основанную на самой полной доступной базе идентификаторов алгоритмов (CryptoDataHub). Это позволяет проверять поддержку редко используемых, устаревших, нестандартных или экспериментальных алгоритмов, которые не поддерживаются ни одной версией OpenSSL, GnuTLS, LibreSSL или wolfSSL. В результате CryptoLyzer распознаёт больше наборов шифров TLS, чем всего перечислено на Ciphersuite Info.
uv tool install cryptolyzer
# 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
# 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 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-отпечатки — действуйте как TLS-сервер, чтобы захватывать отпечатки подключающихся клиентов:
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-отпечатки — действуйте как SSH-сервер, чтобы захватывать отпечатки подключающихся клиентов:
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]
Реализации Python
Операционные системы
Подробная документация доступна на сайте проекта Read the Docs.
Код доступен на условиях Mozilla Public License Version 2.0 (MPL 2.0).
Неполное, но простое описание MPL 2.0 можно найти на сайте Choose an open source license.
Этот проект финансируется через NGI Zero Core, фонд, учреждённый NLnet при финансовой поддержке программы Next Generation Internet Европейской комиссии. Подробнее на странице проекта NLnet.
| Возможность | CryptoLyzer | testssl.sh | sslyze | ssh-audit |
|---|
| Анализ TLS/SSL | ✓ | ✓ | ✓ | ✗ |
| Анализ SSH | ✓ | ✗ | ✗ | ✓ |
| Анализ IKE | partial | ✗ | ✗ | ✗ |
| HTTP-заголовки безопасности | ✓ | partial | ✗ | ✗ |
| DNS-записи (DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ |
| 400+ наборов шифров (включая ГОСТ, постквантовые) | ✓ | ✗ | ✗ | n/a |
| Генерация отпечатков JA3 / HASSH | ✓ | ✗ | ✗ | ✗ |
| Python API | ✓ | ✗ | ✓ | ✗ |
| Поддержка Windows | ✓ | ✗ | ✓ | ✓ |