アーキテクチャ概要
DuoKey PQCスキャナーのアーキテクチャ
DuoKey PQCスキャナーのアーキテクチャ、コンポーネント、および動作モードの包括的な概要
はじめに
DuoKey PQCスキャナー は、高性能かつクロスプラットフォームな暗号資産の検出と分析のために Rust で構築された、包括的なポスト量子暗号(PQC)対応度評価ツールです。
ハイレベルアーキテクチャ
PQC スキャナーアーキテクチャ
ポスト量子暗号の検出とリスク評価のための高性能な Rust CLI
インフラストラクチャスキャナー
非同期 I/O高度なスキャナー
拡張可能PQC 対応状況評価
量子脆弱性スコアリングと移行ロードマップを含む完全な暗号インベントリ
アーキテクチャフロー
CLI エントリポイント(Clap 4.5)
10 個のサブコマンド(filesystem、domain、agent、network、serve、ci、sourcecode、compliance、servicenow、cbom)のいずれかを解析します。入力を検証し、対応するスキャナーにディスパッチします。
スキャナーの実行
選択されたスキャナーが生の暗号データ(TLS ハンドシェイク、証明書ファイル、ソースコードパターン、クラウド KMS メタデータ、SSH ホスト鍵)を収集します。スキャナーは非同期 I/O に Tokio を、CPU 並列のファイル走査に Rayon を使用します。
パーサーレイヤー(PEM / DER / PKCS#12)
生データは、x509-parser および schannel クレートを使用して証明書メタデータ、鍵アルゴリズム、署名スキームを抽出する、形式固有のパーサーに渡されます。
リスクスコアリング(0〜10)
解析された各検出結果はリスクスコアラーを通過し、0 から 10 までの量子リスクスコアが割り当てられ、重大度レベル(Critical から Info まで)にマッピングされ、優先度(P0〜P4)が割り当てられ、推奨事項が生成されます。
出力の整形
スコアリングされた ScanResult は、選択された出力フォーマッター(JSON、YAML、HTML、ANSI ターミナル、または CycloneDX 1.7 CBOM)によってシリアライズされ、ファイルまたは標準出力に書き込まれます。
技術スタック
Rust(stable、最新バージョン)
- ガベージコレクションのないメモリ安全性
- ゼロコスト抽象化
- 恐れのない並行処理(fearless concurrency)
- クロスプラットフォームサポート(Linux、macOS、Windows)
スキャナーは、それぞれが担う役割ごとにグループ化された、確立された一連の Rust ライブラリの上に構築されています。
| 領域 | ライブラリ | 目的 |
|---|---|---|
| TLS と暗号 | rustls, x509-parser, der, pem | ピュア Rust の TLS 1.2/1.3、X.509 証明書解析、および DER/PEM デコード |
| 非同期ランタイム | tokio | ネットワークおよび並行スキャンのための非同期 I/O |
| CLI とシリアライゼーション | clap, serde, serde_json, serde_yaml | コマンドライン解析および JSON/YAML シリアライゼーション |
| ロギングとエラー処理 | tracing, tracing-subscriber, anyhow, thiserror | 構造化ロギング、および柔軟なアプリケーションおよびライブラリのエラー型 |
| ファイルシステムと並列処理 | walkdir, rayon | データ並列処理を伴う再帰的ディレクトリ走査 |
| ネットワークパケットキャプチャ | pcap, pnet | libpcap ベースのパケットキャプチャおよびパケット解析 |
| 進捗表示 | indicatif, ratatui | プログレスバー、およびネットワークモードで使用されるターミナル UI |
モジュールアーキテクチャ
スキャナーは、それぞれが焦点を絞った責務を持つ、明確に区分された機能領域に整理されています。
| 領域 | 責務 |
|---|---|
| CLI | コマンドライン解析およびコマンドディスパッチ |
| Core | 暗号アルゴリズムの検出、量子リスクスコアリング、X.509 操作、および暗号アルゴリズムデータベース |
| Scanners | 4 つのスキャンモード(システムエージェント、ファイルシステム、TLS/ドメイン、ネットワークパケットキャプチャ) |
| Parsers | JKS、PKCS#12、PEM、DER、および nginx/apache 設定ファイルの形式パーサー |
| Output | 出力フォーマッター(JSON、YAML、SARIF(CI/CD 向け)、およびターミナル) |
| Utilities | ロギング、エラー処理、および OS 固有のヘルパー |
4つのスキャンモード
スキャナーは、それぞれ特定の検出シナリオに最適化された 4 つの異なるモードで動作します。
1. エージェントモード - システムスキャナー
ローカルホスト上での包括的なシステムレベルの暗号資産検出。証明書ストアをスキャンし、キーストアを検出し、実行中のプロセスを検査します。昇格された権限が必要です。
2. ファイルシステムモード - ファイル & キーストアスキャナー
指定されたディレクトリ内の証明書とキーストアの再帰的な検索。JKS、PKCS#12、PEM、DER、および設定ファイルをサポートします。Rayon による並列処理。
3. ドメインモード - TLS/SSL スキャナー
ドメインおよび IP アドレスに対する外部 TLS 接続の分析。マルチバージョン TLS テスト、証明書チェーンの抽出、暗号スイートの列挙。
4. ネットワークモード - パッシブパケットキャプチャ
TLS ハンドシェイク検査のためのパッシブなネットワークトラフィック分析。libpcap ベースのキャプチャ、TCP ストリーム再構成、TUI によるリアルタイム統計。
量子リスクスコアリングアルゴリズム
スキャナーは、複数の重み付けされた要因を、0 から 100 までの最終スコアにブレンドする多基準スコアリングシステムを使用し、そのスコアは優先度レベルにマッピングされます。要因とその重みは次のとおりです。
| 要因 | 重み |
|---|---|
| 量子リスク | 30% |
| ビジネスクリティカリティ | 25% |
| データ機密性 | 20% |
| エクスポージャー | 10% |
| コンプライアンス | 10% |
| 移行の複雑さ | 3% |
| 移行コスト | 2% |
結果として得られるスコアは、5 つの優先度レベルのいずれかにマッピングされます。
| 優先度 | 意味 | 推奨される対応 |
|---|---|---|
| P0 | Critical | 即時対応が必要 |
| P1 | High | 3 か月以内に対応 |
| P2 | Medium | 6 か月以内に対応 |
| P3 | Low | 12 か月以内に対応 |
| P4 | Info | 監視 |
検出される脆弱なアルゴリズム
| アルゴリズム | 鍵サイズ | 量子リスクスコア | 重大度 |
|---|---|---|---|
| RSA | < 2048-bit | 10/10 | Critical |
| RSA | 2048-bit | 8/10 | High |
| RSA | 3072-bit | 6/10 | Medium |
| RSA | 4096-bit | 4/10 | Medium |
| ECDSA | P-256 | 8/10 | High |
| ECDSA | P-384 | 7/10 | High |
| ECDSA | P-521 | 6/10 | Medium |
| DSA | Any | 9/10 | Critical |
| 3DES | N/A | 10/10 | Critical |
| RC4 | N/A | 10/10 | Critical |
出力形式
スキャナーは、さまざまなユースケースに対応する複数の出力形式をサポートします。
デフォルトのマシン可読形式。各 JSON レポートには、スキャンメタデータ、検出結果のリスト、リスクサマリー、および推奨事項のセットが含まれます。
パフォーマンス特性
スケーラビリティ
- TLS エンドポイント: 1 時間あたり数千件をスキャン可能
- ファイルシステム: 並列スキャンにより 10 万以上のファイルを効率的に処理
- メモリ: 低メモリフットプリント(通常 <100MB)
- CPU: 最適なパフォーマンスのためのマルチスレッド化
ベンチマーク
ファイルシステムスキャンは非常に効率的です。内部ベンチマークでは、スキャナーはおよそ 1,000 個の PEM 証明書を約 50 ミリ秒で処理します。
クロスプラットフォームサポート
| プラットフォーム | ステータス | 備考 |
|---|---|---|
| Linux | 完全サポート | 推奨プラットフォーム、全機能 |
| macOS | 完全サポート | Intel & Apple Silicon |
| Windows | 完全サポート | Windows 10/11、Server 2019+ |
統合機能
スキャナーはライブラリとして組み込むことができます。呼び出し側はスキャンを設定し(モード(例:domain)、ターゲット、出力形式を選択)、実行し、全体的な PQC 対応度スコアを含む結果を読み取ります。
セキュリティに関する考慮事項
権限要件
| モード | 必要な権限 |
|---|---|
| エージェントモード | 完全なシステムアクセスには root/admin が必要 |
| ネットワークモード | CAP_NET_RAW または同等の権限が必要 |
| ファイルシステムモード | 標準ユーザー権限で十分 |
| ドメインモード | 標準ユーザー権限で十分 |
データ保護
秘密鍵は決して抽出またはエクスポートされません。収集されるのはメタデータと公開情報のみです。すべてのネットワーク通信は暗号化されています(TLS 1.3)。すべての操作について監査ロギングが有効になっています。