Modularchitektur
Modularchitektur
Ein Überblick über die funktionalen Module des Scanners und deren jeweilige Aufgaben
Modulüberblick
Der Scanner ist in eine kleine Gruppe funktionaler Bereiche gegliedert, die eine klare Pipeline bilden – von der Befehlszeile über Scanning und Analyse bis hin zur formatierten Ausgabe.
| Modul | Verantwortlichkeit |
|---|---|
| Befehlszeilenschnittstelle | Argumente parsen, Eingaben validieren, Konfiguration laden, Logging initialisieren und an einen Scan-Modus weiterleiten |
| Kernanalyse | Kryptografische Algorithmen erkennen und Risikobewertungen berechnen |
| Scanner | Die Scan-Modi implementieren (Agent, Dateisystem, Domain, Netzwerk) |
| Parser | Die unterstützten Zertifikats-, Keystore- und Konfigurationsformate lesen |
| Ausgabe | Ergebnisse als JSON, YAML, SARIF oder Terminal-Report darstellen |
| Hilfsfunktionen | Logging, Fehlerbehandlung und plattformspezifische Helfer |
Kernanalyse
Identifiziert den von einem Zertifikat verwendeten kryptografischen Algorithmus und bewertet dessen Quantenanfälligkeit. Es ermittelt die Algorithmusfamilie und die Schlüsselgröße und gibt anschließend einen Quantenrisikowert zurück. Zu den erkannten Kategorien gehören RSA, ECDSA, DSA, Ed25519, 3DES, RC4, Post-Quantum-Algorithmen (PQC) sowie ein „Unbekannt“-Fallback für alles, was nicht klassifiziert werden kann.
Wandelt jeden Fund in einen einzigen Risikowert um, mit einer abgeleiteten Prioritätsstufe (P0 Kritisch bis P4 Info) und einer kurzen Aufschlüsselung, die erklärt, wie der Wert zustande kam. Das detaillierte Modell ist unter QRS-Bewertung dokumentiert.
Wenn ein Zertifikat geparst wird, werden die folgenden Metadaten extrahiert und im gesamten weiteren Verlauf der Pipeline verwendet:
| Feld | Beschreibung |
|---|---|
| Subject | Distinguished Name des Zertifikatsinhabers |
| Issuer | Distinguished Name des Ausstellers |
| Serial | Seriennummer des Zertifikats |
| Gültig ab / bis | Gültigkeitszeitraum |
| Algorithmus | Erkannter kryptografischer Algorithmus |
| Schlüsselgröße | Größe des öffentlichen Schlüssels |
| Quantenanfällig | Ob das Zertifikat für einen Quantenangriff anfällig ist |
Eine Referenzliste bekannter Algorithmen (indiziert nach Object Identifier) erfasst für jeden Algorithmus Name, Kategorie, Quantenanfälligkeit und Deprecation-Status.
Scanner
Agent
Führt einen vollständigen Systemscan des lokalen Hosts durch: Er inspiziert die Zertifikatspeicher des Betriebssystems und untersucht – sofern nicht deaktiviert – auch laufende Prozesse und das Dateisystem (mit dedizierter Behandlung der Zertifikatspeicher für Linux, Windows und macOS). Alle gefundenen Objekte werden zu einem einzigen Ergebnis zusammengeführt.
Dateisystem
Durchläuft rekursiv einen Verzeichnisbaum (mit konfigurierbarer Tiefe und optionalem Folgen von Symlinks) und inspiziert Dateien parallel, wobei jede je nach Typ an den passenden Parser weitergeleitet wird: PEM/CRT/CER, DER, PKCS#12 (.p12/.pfx) und Java-Keystores (.jks/.jceks). Nicht erkannte Dateien werden übersprungen.
Domain
Verbindet sich mit einem Zielhost und -port über TLS, ruft die vorgelegte Zertifikatskette ab, analysiert jedes Zertifikat und kann die vom Server unterstützten Cipher-Suites auflisten.
Netzwerk
Erfasst passiv den Netzwerkverkehr und setzt TCP-Streams wieder zusammen, um TLS-Handshakes zu extrahieren; Erfassung und Parsing laufen gleichzeitig, bis eine konfigurierte Dauer abgelaufen ist oder der Scan unterbrochen wird. In den Handshakes gesehene Zertifikate werden analysiert und gemeldet.
Parser
Ausgabe
Hilfsfunktionen
Datenmodell
Ein Scan erzeugt ein einziges Ergebnis, das Folgendes bündelt:
- Scan-Metadaten – Scanner-Version, Scan-Modus, Datum, Hostname und Dauer.
- Funde – jeder beschreibt ein entdecktes Asset: eine Kennung, seinen Typ (Zertifikat oder Keystore), seinen Speicherort, die extrahierten Zertifikatsinformationen und seine Risikobewertung.
- Statistiken – aggregierte Zählungen über alle Funde hinweg.