Zum Hauptinhalt springen

Scanner-Architektur

Gilt für:
PQC Scanner CLIWindowsLinuxmacOS

PQC-Scanner-Architektur

Hochleistungsfähige Rust-CLI für die Erkennung und Risikobewertung post-quantenkryptografischer Verfahren

Ffilesystem
Ddomain
Aagent
Nnetwork
Ssourcecode
Ccompliance
Wserve
Ici
Nservicenow
Bcbom
Clap 4.5Tokio Async10 Unterbefehle
Befehlsweiterleitung
▼

Infrastruktur-Scanner

Async I/O
Dateisystem
PEM, DER, JKS, PKCS#12
Domain / TLS
Rustls-Handshake-Erfassung
Agent
Systemweite Inventarisierung
Netzwerk
Passive Paketerfassung
+
SCAN

Erweiterte Scanner

Erweiterbar
Quellcode
150+ Regeln, 8 Sprachen
Cloud KMS
AWS, Azure, GCP
SSH-Schlüssel
Host-Schlüssel-Algorithmen
Compliance
8+ Frameworks
Kryptografische Rohdaten
▼
Parser-Schicht
PEM
x509-parser
DER
x509-parser
PKCS#12
x509-parser
Win Store
schannel
CBOM
serde
▼
Krypto-Detektor
Algorithmus-Identifikation per OID-Lookup
RSAECDSADSAEd25519PQC
Risikobewerter
7-Faktoren-gewichteter Quantenanfälligkeits-Score
P0
P1
P2
P3
P4
Bewertete Befunde
▼
Ausgabe-Formatierer
{}
JSON
Maschinenlesbar
Ym
YAML
Menschenlesbar
<>
HTML
Stakeholder-Berichte
>>_
Terminal
ANSI-Farbausgabe
Cd
CycloneDX
CBOM-1.7-Export
Sr
SARIF
CI/CD-Integration
Bericht erstellt
▼

PQC-Bereitschaftsbewertung

Vollständiges kryptografisches Inventar mit Quantenanfälligkeits-Bewertung und Migrationsfahrplan

Erkennung+Risiko-Score= Quantenbereit
Einzelne Binärdatei
Native ausführbare Datei pro Plattform, keine Laufzeitabhängigkeiten
Async-First
Tokio für I/O, Rayon für CPU-gebundene Aufgaben
Zero OpenSSL
Reines Rust-TLS über Rustls, keine C-Abhängigkeiten
Modulare Scanner
Jeder Befehl ist unabhängig und erweiterbar

Übergeordneter Datenfluss​

Jeder Scan durchläuft dieselbe fünfstufige Pipeline, vom CLI-Aufruf bis zur Berichtsausgabe.

1

CLI-Parsing (clap 4.5)

Der Benutzer ruft einen von 10 Unterbefehlen auf (filesystem, domain, agent, network, serve, ci, sourcecode, compliance, servicenow, cbom). Clap parst Argumente, validiert Eingaben und leitet an den entsprechenden Scanner weiter.

2

Scanner-Ausführung

Der ausgewählte Scanner erfasst rohe kryptografische Daten – TLS-Handshakes, Zertifikatsdateien, Quellcodemuster, Cloud-KMS-Metadaten oder SSH-Hostschlüssel. Scanner verwenden Tokio für asynchrone I/O und Rayon für CPU-parallele Dateidurchläufe.

3

Parser-Schicht (PEM / DER / PKCS#12)

Rohdaten werden formatspezifischen Parsern für PEM, DER, PKCS#12, den Windows-Zertifikatspeicher und CBOM zugeführt, die Zertifikatsmetadaten, Schlüsselalgorithmen und Signaturschemata mithilfe der Crates x509-parser und schannel extrahieren.

4

Risikobewertung (0-10)

Jeder geparste Fund durchläuft die Risikobewertungs-Engine, die eine Quantum-Risikobewertung von 0 bis 10 zuweist, sie einem Schweregrad (Critical bis Info) zuordnet, eine Priorität (P0 bis P4) vergibt und menschenlesbare Begründungen und Empfehlungen generiert.

5

Ausgabeformatierung

Das bewertete ScanResult wird vom gewählten Ausgabeformatter serialisiert – JSON, YAML, HTML, ANSI-Terminal oder CycloneDX 1.7 CBOM – und in eine Datei oder nach stdout geschrieben.

Runtime

Der Binär-Einstiegspunkt initialisiert eine asynchrone Tokio-Laufzeit mit dem tracing-Subscriber für strukturierte Protokollierung. Alle Scanner-Operationen sind async-first, wobei CPU-gebundenes Parsing an Rayon-Thread-Pools ausgelagert wird.

Modulhierarchie​

Der Scanner ist in eine Reihe fokussierter funktionaler Bereiche gegliedert, jeder mit einer einzigen Verantwortung.

BereichVerantwortung
CLI10 Clap-Unterbefehle – filesystem, domain, agent, network, serve, ci, sourcecode, compliance, servicenow, cbom
CoreZentrale Datenstrukturen (Finding, ScanResult, RiskAssessment) und Quantum-Risikobewertungs-Engine
ScannerDatensammler für Filesystem, Domain/TLS, Agent, Netzwerk, Quellcode, Cloud KMS, SSH, Fortinet, Paketerfassung, Subdomain
ParserFormatparser für PEM, DER, PKCS#12, Windows-Zertifikatspeicher (schannel), CycloneDX CBOM
OutputBerichtsgeneratoren – JSON, YAML, ANSI-Terminal, HTML, CycloneDX-1.7-CBOM-Export
ServerAxum-0.7-Webserver mit REST-API, WebSocket-Unterstützung und Authentifizierung (OIDC / API-Schlüssel)
Compliance8+ Compliance-Frameworks, Gap-Analyse und Berichtserstellung (HTML/PDF/JSON)
IntegrationenServiceNow-REST-API mit automatischen Incidents und CMDB-Synchronisierung; JFrog-Artifactory-Integration
KonfigurationAuthentifizierungsmodi, CORS, Ratenbegrenzung und Eingabevalidierung
EntrypointAsynchroner Tokio-Einstiegspunkt, Tracing-Initialisierung, CLI-Weiterleitung

CLI-Befehle​

Die CLI ist mit Clap-4.5-Derive-Makros aufgebaut. Jeder Unterbefehl ist einem dedizierten Scanner oder Dienst zugeordnet.

BefehlBeschreibung
filesystemLokale Pfade nach Zertifikaten und Keystores durchsuchen (PEM, DER, PKCS#12, JKS)
domainÜber Rustls mit TLS-Endpunkten verbinden und Handshakes, Cipher-Suites und Zertifikate untersuchen
agentSystemweites kryptografisches Inventar – Zertifikate, Keystores, SSH-Schlüssel, Cloud KMS
networkPassive Netzwerkaufzeichnung für kryptografischen Datenverkehr (noch nicht implementiert)
serveDen Axum-Webserver starten, der REST-API- und WebSocket-Endpunkte bereitstellt
ciCI/CD-Pipeline-Modus mit SARIF-Ausgabe für GitHub Actions, GitLab CI und Azure DevOps
sourcecodeStatische Analyse mit 150+ Erkennungsregeln in 8 Programmiersprachen
complianceCompliance-Prüfungen gegen 8+ regulatorische Frameworks durchführen und Gap-Analyse erstellen
servicenowFunde an ServiceNow übertragen – Incidents automatisch erstellen und mit CMDB synchronisieren
cbomCycloneDX-1.7-Cryptographic-Bill-of-Materials parsen oder generieren

Zentrale Datenstrukturen​

Alle Scan-Ergebnisse teilen sich dasselbe Datenmodell. Dies gewährleistet eine einheitliche Ausgabe unabhängig davon, welcher Scanner die Daten erzeugt hat.

Ein Finding repräsentiert ein einzelnes kryptografisches Asset, das während eines Scans entdeckt wurde.

FeldTypBeschreibung
idStringEindeutiger Bezeichner für den Fund
finding_typeEnumCertificate, Keystore, Key, ConfigFile oder SshKey
sourceStringWelcher Scanner diesen Fund erzeugt hat
locationStringDateipfad, URL oder Hostname, an dem das Asset gefunden wurde
certificateOption<CertificateInfo>Geparste Zertifikatsmetadaten (Subject, Issuer, Algorithmus, Schlüsselgröße, Gültigkeit)
keystoreOption<KeystoreInfo>Keystore-Format und enthaltene Einträge
risk_assessmentRiskAssessmentQuantum-Anfälligkeitsbewertung und Empfehlungen
tls_infoOption<TlsInfo>TLS-Protokollversion, Cipher-Suite und Handshake-Details

Jeder Fund wird von der Risikobewertungs-Engine auf Quantum-Anfälligkeit bewertet.

FeldTypBeschreibung
quantum_vulnerableboolOb das Asset Algorithmen verwendet, die von Quantencomputern gebrochen werden können
quantum_risk_scoref64 (0-10)0 = kein Risiko (reines PQC), 10 = maximales Risiko (RSA-1024, DSA-1024)
severityEnumCritical, High, Medium, Low oder Info
priorityEnumP0 (sofort), P1 (dringend), P2 (geplant), P3 (überwachen), P4 (informativ)
reasonsVec<String>Menschenlesbare Erklärungen für die zugewiesene Bewertung
recommendationsVec<String>Umsetzbare Schritte zur Behebung der Schwachstelle
Tipp

Risikobewertungen werden Prioritäten zugeordnet: P0 (Bewertung 9-10, z. B. RSA-1024, MD5-Signaturen), P1 (7-8, z. B. RSA-2048, SHA-1), P2 (5-6, z. B. RSA-3072), P3 (2-4, z. B. RSA-4096, ECDSA P-384), P4 (0-1, z. B. hybride oder reine PQC-Algorithmen).

Die übergeordnete Ausgabestruktur, die von jeder Scan-Operation zurückgegeben wird.

FeldTypBeschreibung
scan_metadataScanMetadataScanner-Version, Scan-Modus, Datum, Hostname, Dauer in Sekunden
findingsVec<Finding>Alle während des Scans entdeckten kryptografischen Assets
summaryScanSummaryAggregierte Zählungen nach Schweregrad, Fund-Typ und Algorithmus
recommendationsVec<String>Übergeordnete Sanierungsempfehlungen auf Basis aller Funde

Scanner-Module​

Jeder Scanner ist eine eigenständige Komponente, die rohe kryptografische Daten aus einer bestimmten Quelle erfasst. Scanner sind asynchron (tokio) und verwenden rayon für parallele Dateidurchläufe, wo anwendbar.

Durchläuft Verzeichnisse rekursiv mit dem Crate walkdir und erkennt Zertifikats- und Keystore-Dateien anhand der Erweiterung und der Magic Bytes. Unterstützt die Formate PEM, DER, PKCS#12 und JKS. Dateien werden vom entsprechenden Formatparser behandelt.

Erkennungsstrategie:

  • Abgleich der Dateierweiterung (.pem, .crt, .cer, .der, .p12, .pfx, .jks, .key)
  • Magic-Byte-Signaturerkennung für Binärformate
  • Konfigurierbare Verzeichnistiefe und Ausschlussmuster
  • Parallele Datei-I/O über Rayon-Thread-Pool

Verbindet sich mit TLS-Endpunkten über einen auf rustls 0.23 basierenden Client. Erfasst den vollständigen TLS-Handshake einschließlich Protokollversion, Cipher-Suite-Aushandlung, Serverzertifikatskette und Schlüsselaustauschparametern. Unterstützt die Subdomain-Enumeration über die WhoisXML-API-Integration.

Führt ein systemweites kryptografisches Inventar durch, das Ergebnisse mehrerer Unter-Scanner kombiniert: Filesystem-Zertifikate, den Windows-Zertifikatspeicher (über das Crate schannel), SSH-Hostschlüssel und Cloud-KMS-Metadaten (für AWS KMS, Azure Key Vault und GCP Cloud KMS).

Engine für statische Analyse mit 150+ Erkennungsregeln, die 8 Programmiersprachen abdecken. Sie durchläuft Quellcodebäume und wendet Regex-basierten Musterabgleich an, um anfällige kryptografische Funktionsaufrufe (z. B. RSA_generate_key, ECDSA_sign, fest codierte Schlüssel) zu erkennen.

Fähigkeiten:

  • Definitionen von Erkennungsmustern (Algorithmus, Funktionsname, Schweregrad)
  • Engine für Dateidurchlauf und Regelabgleich
  • SARIF-Ausgabeformat für die CI/CD-Integration
  • Konnektoren für GitHub-, GitLab- und Azure-DevOps-Repositorys

Parser-Schicht​

Parser konvertieren rohe Binär- oder Textdaten in strukturierte CertificateInfo- und KeystoreInfo-Objekte. Sie werden von Scannern aufgerufen und sind formatspezifisch.

ParserCrateBehandelte Formate
PEMx509-parserBase64-codierte Zertifikate, private Schlüssel, CSRs
DERx509-parserBinär codierte X.509-Zertifikate (.der, .cer)
PKCS#12x509-parserPasswortgeschützte Zertifikats-/Schlüsselbündel (.p12, .pfx)
Windows-ZertifikatspeicherschannelLocalMachine- und CurrentUser-Zertifikatspeicher unter Windows
CBOMserdeCycloneDX Cryptographic Bill of Materials (JSON-Eingabe)

Risikobewertungs-Engine​

Die Risikobewertungs-Engine bewertet jeden Fund auf einer Quantum-Anfälligkeitsskala von 0 bis 10. Die Bewertung berücksichtigt die Algorithmusfamilie, die Schlüsselgröße, das Signaturschema und kontextbezogene Faktoren.

BewertungsbereichPrioritätSchweregradBeispielalgorithmen
9 - 10P0 (Sofort)CriticalRSA-1024, DSA-1024, MD5-Signaturen, DES, 3DES
7 - 8P1 (Dringend)HighRSA-2048, ECDSA P-256, SHA-1-Signaturen
5 - 6P2 (Geplant)MediumRSA-3072, Diffie-Hellman 2048-Bit
2 - 4P3 (Überwachen)LowRSA-4096, ECDSA P-384, ECDSA P-521
0 - 1P4 (Informativ)InfoML-KEM, ML-DSA, SLH-DSA, hybride PQC-Algorithmen

Ausgabeformatter​

Der Scanner bietet fünf Ausgabe-Backends. Das CLI-Flag --format wählt aus, welcher Formatter das ScanResult rendert.

FormatAnwendungsfall
JSONMaschinenlesbare Ausgabe für Pipelines, APIs und Integrationen
YAMLMenschenlesbare strukturierte Ausgabe für das Konfigurationsmanagement
Terminal (ANSI)Farbcodierte Konsolenausgabe mit Schweregrad-Hervorhebung für die interaktive Nutzung
HTMLEigenständige HTML-Berichte zum Teilen mit Stakeholdern
CycloneDX CBOMCycloneDX-1.7-Cryptographic-Bill-of-Materials-Export
Tipp

Der CI-Modus (Befehl ci) erzeugt SARIF-Ausgabe, die sich von den standardmäßigen Ausgabeformattern unterscheidet. SARIF lässt sich direkt in GitHub Code Scanning, GitLab SAST und Azure DevOps integrieren.

Axum-Webserver​

Der Befehl serve startet einen Axum-0.7-Webserver.

  • REST-API – Endpunkte zum Auslösen von Scans, Abrufen von Ergebnissen und Verwalten der Konfiguration
  • WebSocket – Echtzeit-Streaming des Scan-Fortschritts an verbundene Clients
  • Authentifizierung – OIDC- und API-Schlüssel-Modi
  • CORS – Konfigurierbare Cross-Origin-Richtlinie für browserbasierte Dashboards
  • Ratenbegrenzung – Anforderungsdrosselung zur Missbrauchsverhinderung

Compliance-Engine​

Die Compliance-Engine bewertet Scan-Funde gegen 8+ regulatorische und branchenübliche Frameworks.

KomponenteZweck
CheckerBewertet Funde gegen framework-spezifische Regeln
FrameworksFramework-Definitionen – NIST, BSI TR-02102, CNSA 2.0, PCI DSS, FIPS 140-3, ETSI, ISO 27001, SOC 2
Gap-AnalyzerIdentifiziert Lücken zwischen aktueller Sicherheitslage und angestrebtem Compliance-Zustand
BerichtsgeneratorErstellt Compliance-Berichte in den Formaten HTML, PDF und JSON
PDF-ParserExtrahiert Anforderungen aus benutzerdefinierten organisatorischen Richtlinien-PDFs

Integrationen​

Überträgt Scan-Funde über die REST-API an ServiceNow. Unterstützt die automatische Incident-Erstellung für P0/P1-Funde, die CMDB-Synchronisierung für entdeckte kryptografische Assets und geplante Synchronisierungs-Workflows. Der CLI-Befehl servicenow löst einen vollständigen Scan-und-Übertragungs-Zyklus aus.

Fähigkeiten:

  • REST-API-Integration zur Übertragung von Schwachstellendaten
  • Automatische Incident-Erstellung basierend auf Schweregrad-Schwellenwerten
  • CMDB-Synchronisierung für das Inventar kryptografischer Assets
  • Konfigurierbare Synchronisierungsfrequenz (kontinuierlich, geplant, bedarfsgesteuert)

ServiceNow Vulnerability Dashboard

Das ServiceNow-Dashboard zeigt quantenanfällige Assets nach Schweregrad, Compliance-Status und Sanierungsfortschritt an.

Wichtige Abhängigkeiten​

CrateVersionZweck
tokio1.xAsynchrone Laufzeit für nebenläufige I/O-Operationen
clap4.5CLI-Argumentparsing mit Derive-Makros
serde / serde_json / serde_yaml1.xSerialisierung und Deserialisierung für JSON, YAML und Konfigurationsdateien
rustls0.23TLS-Client-Implementierung für das Domain-Scanning (keine OpenSSL-Abhängigkeit)
x509-parser0.16+Parsing von X.509-Zertifikaten und CRLs
walkdir2.xRekursiver Verzeichnisdurchlauf für das Filesystem-Scanning
rayon1.xDatenparallele CPU-gebundene Verarbeitung (Datei-Parsing, Regelabgleich)
reqwest0.12+HTTP-Client für Cloud-KMS-APIs, ServiceNow und Git-Provider-Integrationen
axum0.7Asynchrones Web-Framework für den serve-Befehl (REST + WebSocket)
tracing0.1Strukturierte Protokollierung und Diagnose
schannel0.1Zugriff auf den Windows-Zertifikatspeicher über die SChannel-API
Wichtig

Der Scanner hat keinerlei Abhängigkeit von OpenSSL. TLS-Operationen verwenden rustls, und das Zertifikatsparsing verwendet x509-parser. Dies eliminiert eine ganze Klasse von Supply-Chain-Schwachstellen und vereinfacht plattformübergreifende Builds.

Architekturprinzipien​

Einzelne Binärdatei

Wird als eine native ausführbare Datei pro Plattform ausgeliefert. Keine Laufzeitabhängigkeiten, keine JVM, kein Python-Interpreter. Einfach kopieren und ausführen.

Async-First

Alle Netzwerk-I/O verwenden Tokio-async. CPU-gebundene Arbeit (Datei-Parsing, Regelabgleich) wird für maximalen Durchsatz an Rayon-Thread-Pools ausgelagert.

Kein OpenSSL

Reines Rust-TLS über Rustls und x509-parser. Keine C-Bibliotheksabhängigkeiten für kryptografische Operationen.

Modulare Scanner

Jeder Scan-Befehl ist ein eigenständiges Modul. Neue Scanner können ohne Änderung des bestehenden Codes hinzugefügt werden.

Nächste Schritte​