Architekturüberblick
Architektur des DuoKey PQC Scanners
Umfassender Überblick über die Architektur, Komponenten und Betriebsmodi des DuoKey PQC Scanners
Einführung
Der DuoKey PQC Scanner ist ein umfassendes Werkzeug zur Bewertung der Post-Quantum-Kryptografie-(PQC-)Bereitschaft, das in Rust für hochperformante, plattformübergreifende Entdeckung und Analyse kryptografischer Assets entwickelt wurde.
Architektur auf hoher Ebene
PQC-Scanner-Architektur
Hochleistungsfähige Rust-CLI für die Erkennung und Risikobewertung post-quantenkryptografischer Verfahren
Infrastruktur-Scanner
Async I/OErweiterte Scanner
ErweiterbarPQC-Bereitschaftsbewertung
Vollständiges kryptografisches Inventar mit Quantenanfälligkeits-Bewertung und Migrationsfahrplan
Architekturablauf
CLI-Einstiegspunkt (Clap 4.5)
Parst einen von 10 Unterbefehlen (filesystem, domain, agent, network, serve, ci, sourcecode, compliance, servicenow, cbom). Validiert die Eingaben und leitet an den entsprechenden Scanner weiter.
Scanner-Ausführung
Der ausgewählte Scanner sammelt kryptografische Rohdaten – TLS-Handshakes, Zertifikatsdateien, Quellcode-Muster, Cloud-KMS-Metadaten oder SSH-Host-Keys. Die Scanner nutzen Tokio für asynchrone I/O und Rayon für die CPU-parallele Verzeichnisdurchquerung.
Parser-Schicht (PEM / DER / PKCS#12)
Die Rohdaten werden formatspezifischen Parsern zugeführt, die mithilfe der Crates x509-parser und schannel Zertifikatsmetadaten, Schlüsselalgorithmen und Signaturverfahren extrahieren.
Risikobewertung (0-10)
Jeder geparste Fund durchläuft die Risikobewertung, die ihm einen Quantenrisikowert von 0 bis 10 zuweist, ihn einer Schweregradstufe (Kritisch bis Info) zuordnet, eine Priorität (P0-P4) vergibt und Empfehlungen generiert.
Ausgabeformatierung
Das bewertete ScanResult wird vom gewählten Ausgabeformatierer serialisiert – JSON, YAML, HTML, ANSI-Terminal oder CycloneDX 1.7 CBOM – und in eine Datei oder nach stdout geschrieben.
Technologie-Stack
Rust (stable, neueste Version)
- Speichersicherheit ohne Garbage Collection
- Zero-Cost-Abstraktionen
- Furchtlose Nebenläufigkeit
- Plattformübergreifende Unterstützung (Linux, macOS, Windows)
Der Scanner baut auf einer Reihe etablierter Rust-Bibliotheken auf, gruppiert nach der Rolle, die sie erfüllen:
| Bereich | Bibliotheken | Zweck |
|---|---|---|
| TLS und Kryptografie | rustls, x509-parser, der, pem | Reines Rust-TLS 1.2/1.3, X.509-Zertifikatsparsing sowie DER/PEM-Dekodierung |
| Async-Runtime | tokio | Asynchrone I/O für Netzwerk- und nebenläufiges Scanning |
| CLI und Serialisierung | clap, serde, serde_json, serde_yaml | Befehlszeilen-Parsing und JSON/YAML-Serialisierung |
| Logging und Fehlerbehandlung | tracing, tracing-subscriber, anyhow, thiserror | Strukturiertes Logging sowie flexible Fehlertypen für Anwendung und Bibliothek |
| Dateisystem und Parallelität | walkdir, rayon | Rekursive Verzeichnisdurchquerung mit Datenparallelität |
| Netzwerk-Paketerfassung | pcap, pnet | Libpcap-basierte Paketerfassung und Paket-Parsing |
| Fortschrittsanzeige | indicatif, ratatui | Fortschrittsbalken und die im Netzwerkmodus verwendete Terminal-UI |
Modularchitektur
Der Scanner ist in klar abgegrenzte funktionale Bereiche gegliedert, jeder mit einer fokussierten Aufgabe:
| Bereich | Verantwortlichkeit |
|---|---|
| CLI | Befehlszeilen-Parsing und Befehlsweiterleitung |
| Core | Erkennung von Krypto-Algorithmen, Quantenrisikobewertung, X.509-Operationen und die Datenbank der Krypto-Algorithmen |
| Scanner | Die vier Scan-Modi – System-Agent, Dateisystem, TLS/Domain und Netzwerk-Paketerfassung |
| Parser | Formatparser für JKS, PKCS#12, PEM, DER und nginx-/apache-Konfigurationsdateien |
| Ausgabe | Ausgabeformatierer – JSON, YAML, SARIF (für CI/CD) und Terminal |
| Hilfsfunktionen | Logging, Fehlerbehandlung und betriebssystemspezifische Helfer |
Vier Scan-Modi
Der Scanner arbeitet in vier verschiedenen Modi, die jeweils für bestimmte Entdeckungsszenarien optimiert sind:
1. Agentenmodus – System-Scanner
Umfassende Entdeckung kryptografischer Assets auf Systemebene auf dem lokalen Host. Scannt Zertifikatspeicher, entdeckt Keystores, inspiziert laufende Prozesse. Erfordert erhöhte Berechtigungen.
2. Dateisystemmodus – Datei- & Keystore-Scanner
Rekursive Suche nach Zertifikaten und Keystores in angegebenen Verzeichnissen. Unterstützt JKS, PKCS#12, PEM, DER und Konfigurationsdateien. Parallele Verarbeitung mit Rayon.
3. Domänenmodus – TLS/SSL-Scanner
Analyse externer TLS-Verbindungen für Domains und IP-Adressen. Multi-Version-TLS-Tests, Extraktion der Zertifikatskette, Auflistung der Cipher-Suites.
4. Netzwerkmodus – Passive Paketerfassung
Passive Analyse des Netzwerkverkehrs zur Inspektion von TLS-Handshakes. Libpcap-basierte Erfassung, TCP-Stream-Wiederzusammensetzung, Echtzeitstatistiken mit TUI.
Algorithmus zur Quantenrisikobewertung
Der Scanner verwendet ein Mehrkriterien-Bewertungssystem, das mehrere gewichtete Faktoren zu einem Endwert von 0 bis 100 zusammenführt, der anschließend einer Prioritätsstufe zugeordnet wird. Die Faktoren und ihre Gewichtungen sind:
| Faktor | Gewichtung |
|---|---|
| Quantenrisiko | 30 % |
| Geschäftskritikalität | 25 % |
| Datensensibilität | 20 % |
| Exposition | 10 % |
| Compliance | 10 % |
| Migrationskomplexität | 3 % |
| Migrationskosten | 2 % |
Der resultierende Wert wird einer von fünf Prioritätsstufen zugeordnet:
| Priorität | Bedeutung | Empfohlene Maßnahme |
|---|---|---|
| P0 | Kritisch | Sofortige Maßnahme erforderlich |
| P1 | Hoch | Maßnahme innerhalb von 3 Monaten |
| P2 | Mittel | Maßnahme innerhalb von 6 Monaten |
| P3 | Niedrig | Maßnahme innerhalb von 12 Monaten |
| P4 | Info | Beobachten |
Erkannte anfällige Algorithmen
| Algorithmus | Schlüsselgröße | Quantenrisikowert | Schweregrad |
|---|---|---|---|
| RSA | < 2048-Bit | 10/10 | Kritisch |
| RSA | 2048-Bit | 8/10 | Hoch |
| RSA | 3072-Bit | 6/10 | Mittel |
| RSA | 4096-Bit | 4/10 | Mittel |
| ECDSA | P-256 | 8/10 | Hoch |
| ECDSA | P-384 | 7/10 | Hoch |
| ECDSA | P-521 | 6/10 | Mittel |
| DSA | Beliebig | 9/10 | Kritisch |
| 3DES | N/V | 10/10 | Kritisch |
| RC4 | N/V | 10/10 | Kritisch |
Ausgabeformate
Der Scanner unterstützt mehrere Ausgabeformate für unterschiedliche Anwendungsfälle:
Das standardmäßige maschinenlesbare Format. Jeder JSON-Report enthält die Scan-Metadaten, die Liste der Funde, eine Risikozusammenfassung und eine Reihe von Empfehlungen.
Leistungsmerkmale
Skalierbarkeit
- TLS-Endpunkte: Kann Tausende pro Stunde scannen
- Dateisystem: Verarbeitet über 100.000 Dateien effizient mit parallelem Scanning
- Speicher: Geringer Speicherbedarf (typischerweise <100 MB)
- CPU: Multithreaded für optimale Leistung
Benchmarks
Das Scannen des Dateisystems ist hocheffizient: In internen Benchmarks verarbeitet der Scanner rund 1.000 PEM-Zertifikate in etwa 50 Millisekunden.
Plattformübergreifende Unterstützung
| Plattform | Status | Hinweise |
|---|---|---|
| Linux | Volle Unterstützung | Bevorzugte Plattform, alle Funktionen |
| macOS | Volle Unterstützung | Intel & Apple Silicon |
| Windows | Volle Unterstützung | Windows 10/11, Server 2019+ |
Integrationsfähigkeiten
Der Scanner kann als Bibliothek eingebettet werden. Ein Aufrufer konfiguriert einen Scan – wählt den Modus (zum Beispiel Domain), die Ziele und das Ausgabeformat – führt ihn aus und liest die Ergebnisse zurück, einschließlich des Gesamtwerts für die PQC-Bereitschaft.
Sicherheitsaspekte
Berechtigungsanforderungen
| Modus | Erforderliche Berechtigung |
|---|---|
| Agentenmodus | Erfordert root/admin für vollständigen Systemzugriff |
| Netzwerkmodus | Erfordert CAP_NET_RAW oder gleichwertig |
| Dateisystemmodus | Standard-Benutzerberechtigungen ausreichend |
| Domänenmodus | Standard-Benutzerberechtigungen ausreichend |
Datenschutz
Private Schlüssel werden niemals extrahiert oder exportiert. Es werden nur Metadaten und öffentliche Informationen erfasst. Die gesamte Netzwerkkommunikation ist verschlüsselt (TLS 1.3). Audit-Logging ist für alle Operationen aktiviert.