
CryptoLyzer v1.6.0
Мультипротокольный криптографический анализатор, проверяющий 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 наборов шифров, включая GOST и постквантовые алгоритмы, используя собственную реализацию протоколов, независимую от OpenSSL.
Используйте CryptoLyzer, когда вам нужно провести аудит алгоритмов SSH — подобно ssh-audit, он обнаруживает криптографические алгоритмы, параметры обмена группами Диффи-Хеллмана и ключи хоста, а также уникально охватывает сертификаты хоста и X.509 (V00, V01).
Используйте CryptoLyzer, когда вам нужно провести аудит IKE-респондеров — в отличие от ike-scan, который проверяет один вручную заданный набор предложений за раз и поддерживает только IKEv1, он перечисляет поддерживаемые трансформы, группы Диффи-Хеллмана, эллиптические кривые, расширения протокола, открытые ключи и принимаемые хеши удостоверяющих центров как для IKEv1, так и для IKEv2 респондеров.
Используйте 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.
Почему CryptoLyzer?
| Возможность | CryptoLyzer | testssl.sh | sslyze | ssh-audit |
|---|---|---|---|---|
| Анализ TLS/SSL | ✓ | ✓ | ✓ | ✗ |
| Анализ SSH | ✓ | ✗ | ✗ | ✓ |
| Анализ IKE | ✓ | ✗ | ✗ | ✗ |
| Заголовки безопасности HTTP | ✓ | частично | ✗ | ✗ |
| DNS-записи (DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ |
| 400+ наборов шифров (вкл. GOST, постквантовые) | ✓ | ✗ | ✗ | н/д |
| Генерация отпечатков JA3 / HASSH | ✓ | ✗ | ✗ | ✗ |
| Python API | ✓ | ✗ | ✓ | ✗ |
| Поддержка Windows | ✓ | ✗ | ✓ | ✓ |
Использование
uv
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
# 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
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
- CPython 3.9+
- PyPy 3.9+
Операционные системы
- Linux
- macOS
- Windows
Социальные сети
Документация
Подробная документация доступна на сайте проекта 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.
Благодарности
- Иконки созданы Freepik с сайта Flaticon.
- Miel Verkerken
