
CryptoLyzer v1.6.0
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) 証明書も独自にカバーします。
IKE レスポンダーを監査する必要がある場合は CryptoLyzer を使用してください — 一度に手書きの提案セットを 1 つだけプローブし、IKEv1 のみを扱う ike-scan とは異なり、IKEv1 と IKEv2 の両方のレスポンダーについて、サポートされるトランスフォーム、Diffie-Hellman グループ、楕円曲線、プロトコル拡張、公開鍵、および受け入れられる認証局ハッシュを列挙します。
TLS、SSH、IKE、DNS、HTTP 分析を 1 つのツールで行う必要がある場合は CryptoLyzer を使用してください — プロトコル固有のツールとは異なり、主要な暗号攻撃対象領域をすべて 1 つの統合 CLI と Python API でカバーします。
暗号脆弱性 (D(HE)at、DROWN、FREAK、Logjam、Lucky Thirteen、Sweet32、Terrapin) を検出する必要がある場合は CryptoLyzer を使用してください — プロトコルを独自に実装しているため、OpenSSL ベースのツールが見逃す問題を特定します。
CLI は 3 つの出力形式を提供します。人間が読める出力では、信号機評価システムを使用して、アルゴリズム名と鍵サイズをセキュリティ強度に応じて色分けします。 Markdown 出力は Pandoc にパイプして DOCX/PDF レポートに変換できます。JSON 出力は機械処理とパイプライン自動化を可能にします。
競合他社と比較した CryptoLyzer の強みは、暗号化プロトコルの独自実装 (CryptoParser) を、利用可能な最も包括的なアルゴリズム識別子データベース (CryptoDataHub) で支えていることです。これにより、OpenSSL、GnuTLS、LibreSSL、wolfSSL のどのバージョンでもサポートされていない、まれにしか使用されない、非推奨、非標準、または実験的なアルゴリズムのサポートを確認することが可能になります。その結果、CryptoLyzer は Ciphersuite Info に掲載されている総数よりも多くの TLS 暗号スイートを認識します。
なぜ CryptoLyzer なのか?
| 機能 | CryptoLyzer | testssl.sh | sslyze | ssh-audit |
|---|---|---|---|---|
| TLS/SSL 分析 | ✓ | ✓ | ✓ | ✗ |
| SSH 分析 | ✓ | ✗ | ✗ | ✓ |
| IKE 分析 | ✓ | ✗ | ✗ | ✗ |
| HTTP セキュリティヘッダー | ✓ | partial | ✗ | ✗ |
| DNS レコード (DNSSEC、DMARC、SPF、…) | ✓ | ✗ | ✗ | ✗ |
| 400 以上の暗号スイート (GOST、耐量子を含む) | ✓ | ✗ | ✗ | n/a |
| 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 のウェブサイトにあります。
資金提供
このプロジェクトは、NLnet が設立し、欧州委員会の Next Generation Internet プログラムからの財政的支援を受けた基金である NGI Zero Core を通じて資金提供されています。詳細は NLnet プロジェクトページをご覧ください。
クレジット
- アイコンは Flaticon の Freepik によって作成されました。
- Miel Verkerken
