
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, когда вам нужен единый инструмент для анализа 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
cryptolyze tls all example.com
# Полный анализ SSH
cryptolyze ssh all example.com
# Анализ версий IKE
cryptolyze ike versions example.com
# Обнаружение расширений протокола IKE
cryptolyze ike extensions example.com
# Извлечение открытого ключа сервера IKE
cryptolyze ike pubkeys example.com
# Хэши принятых центров сертификации IKE
cryptolyze ike pubkeyreq example.com
# IKE: принимает ли сервер конкретный набор предложений IKEv1?
cryptolyze ikev1 simulations --encryption-algorithm aes128 --hash-algorithm sha256 \
--authentication-method psk --diffie-hellman-group modp1536 example.com
# IKE: то же самое для IKEv2, чьё предложение имеет другие оси
cryptolyze ikev2 simulations --encryption-algorithm aes256 --pseudorandom-function sha256 \
--integrity-algorithm sha256 --diffie-hellman-group modp2048 example.com
# HTTP-заголовки безопасности
cryptolyze http headers example.com
# DNS: записи DNSSEC
cryptolyze dns dnssec example.com
# DNS: записи аутентификации электронной почты (DMARC, SPF, MTA-STS, TLSRPT)
cryptolyze dns mail example.com
# Вывод JSON для автоматизации
cryptolyze --output-format=json tls all example.com | jq
# Вывод Markdown (конвертация в DOCX с помощью Pandoc)
cryptolyze --output-format=markdown tls all example.com \
| pandoc --from markdown --to docx --output report.docx
# Параллельный анализ нескольких целей
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
