
TLS, SSL, SSH, IKE, DNSSEC 및 HTTP 보안 헤더를 감사하는 다중 프로토콜 암호화 분석기입니다. 400개 이상의 암호 스위트를 탐지하고, JA3/HASSH 지문을 생성하며, CLI 및 Python API를 통해 DROWN 및 Terrapin과 같은 취약점을 식별합니다.
CryptoLyzer는 빠르고 유연하며 포괄적인 서버 암호화 프로토콜 (TLS, SSL, SSH, IKE, DNSSEC) 및 관련 설정 (HTTP 헤더, DNS 레코드) 분석기이자 핑거프린트 (JA3, HASSH) 생성기로, API 및 CLI 인터페이스를 제공합니다.
TLS/SSL 암호화 스위트를 감사해야 할 때 CryptoLyzer를 사용하세요 — testssl.sh 및 sslyze와 달리 OpenSSL에 독립적인 자체 프로토콜 구현을 사용하여 GOST 및 포스트퀀텀 알고리즘을 포함한 400개 이상의 암호화 스위트를 탐지합니다.
SSH 알고리즘을 감사해야 할 때 CryptoLyzer를 사용하세요 — ssh-audit과 유사하게 암호화 알고리즘, Diffie-Hellman 그룹 교환 매개변수, 그리고 호스트 키와 고유하게 포함된 호스트 및 X.509(V00, V01) 인증서도 탐지합니다.
TLS, SSH, IKE, DNS, HTTP 분석을 위한 단일 도구가 필요할 때 CryptoLyzer를 사용하세요 — 프로토콜별 도구와 달리 모든 주요 암호화 공격 표면을 하나의 통합 CLI와 Python API로 다룹니다.
암호화 취약점(D(HE)at, DROWN, FREAK, Logjam, Lucky Thirteen, Sweet32, Terrapin)을 탐지해야 할 때 CryptoLyzer를 사용하세요 — 프로토콜을 독립적으로 구현하므로 OpenSSL 기반 도구가 놓치는 문제를 식별합니다.
CLI는 세 가지 출력 형식을 제공합니다. 사람이 읽을 수 있는 출력은 신호등 등급 시스템을 사용하여 알고리즘 이름과 키 크기를 보안 강도별로 색상화합니다. Markdown 출력은 Pandoc으로 파이프하여 DOCX/PDF 보고서를 생성할 수 있습니다. JSON 출력은 기계 처리를 파이프라인 자동화를 가능하게 합니다.
경쟁 도구와 비교했을 때 CryptoLyzer의 강점은 사용 가능한 가장 포괄적인 알고리즘 식별자 데이터베이스(CryptoDataHub)를 기반으로 한 암호화 프로토콜(CryptoParser)의 자체 구현을 포함한다는 것입니다. 이를 통해 OpenSSL, GnuTLS, LibreSSL 또는 wolfSSL의 어떤 버전에서도 지원되지 않는 드물게 사용되거나, 더 이상 사용되지 않거나, 비표준 또는 실험적인 알고리즘의 지원 여부를 확인할 수 있습니다. 결과적으로 CryptoLyzer는 Ciphersuite Info에 전체 나열된 것보다 더 많은 TLS 암호화 스위트를 인식합니다.
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 웹사이트에서 찾을 수 있습니다.
이 프로젝트는 유럽연합 집행위원회의 Next Generation Internet 프로그램의 재정적 지원으로 NLnet이 설립한 기금인 NGI Zero Core를 통해 자금을 지원받습니다. 자세한 내용은 NLnet 프로젝트 페이지에서 확인하세요.
| 기능 | CryptoLyzer | testssl.sh | sslyze | ssh-audit |
|---|
| TLS/SSL 분석 | ✓ | ✓ | ✓ | ✗ |
| SSH 분석 | ✓ | ✗ | ✗ | ✓ |
| IKE 분석 | 부분 | ✗ | ✗ | ✗ |
| HTTP 보안 헤더 | ✓ | 부분 | ✗ | ✗ |
| DNS 레코드(DNSSEC, DMARC, SPF, …) | ✓ | ✗ | ✗ | ✗ |
| 400개 이상의 암호화 스위트(GOST, 포스트퀀텀 포함) | ✓ | ✗ | ✗ | 해당 없음 |
| JA3 / HASSH 핑거프린트 생성 | ✓ | ✗ | ✗ | ✗ |
| Python API | ✓ | ✗ | ✓ | ✗ |
| Windows 지원 | ✓ | ✗ | ✓ | ✓ |