
Scanne Codebasen auf quantenverwundbare Kryptografie. Erkenne RSA, ECDSA, Ed25519, ECDH vor dem Q-Day. CycloneDX CBOM + SARIF Ausgabe.
Durchsuchen Sie Codebasen nach quantenangreifbarer Kryptografie. Erhalten Sie ein klares Bild davon, was vor dem Q-Day migriert werden muss.

pqaudit erkennt die Verwendung von RSA, ECDSA, Ed25519, ECDH, DH und anderen Algorithmen, die durch Shors Algorithmus gebrochen werden. Es identifiziert auch bereits migrierte PQC-Nutzung (ML-KEM, ML-DSA, SLH-DSA), sodass Sie den Migrationsfortschritt verfolgen können. Ausgabe als menschenlesbarer Text, JSON, CycloneDX CBOM, SARIF für GitHub Code Scanning oder ein in sich geschlossener HTML-Bericht.
Am 31. März 2026 veröffentlichte Google eine Studie, die zeigt, dass das Brechen von ECDSA-256 – etwa 1.200 logische Qubits und weniger als 500.000 physische Qubits. Die NSA CNSA 2.0 schreibt PQC für neue nationale Sicherheitssysteme bis 2027 vor. Das Migrationsfenster ist offen, schließt sich aber.
npx pqaudit ./my-project
Oder global installieren:
npm install -g pqaudit
pqaudit ./my-project
# Aktuelles Verzeichnis scannen, menschenlesbare Ausgabe
pqaudit .
# Nur kritische und hohe Funde anzeigen
pqaudit ./src --severity high
# CycloneDX CBOM erzeugen
pqaudit . --format cbom --output cbom.json
# SARIF für GitHub Code Scanning erzeugen
pqaudit . --format sarif --output results.sarif
# CI-Modus — Exit-Code 1, wenn kritische/hohe Funde existieren
pqaudit . --ci
# Alle Funde einschließlich Kommentartreffer mit geringer Konfidenz anzeigen
pqaudit . --min-confidence 0
# Jedes Vorkommen anzeigen, statt pro Datei zusammenzufassen
pqaudit . --no-dedupe
# Abhängigkeitsscan überspringen
pqaudit . --no-deps
# Benutzerdefinierte Regeln verwenden
pqaudit . --rules ./my-rules.yaml
# TLS/SSH-Endpunkte auf quantenangreifbare Krypto scannen
pqaudit . --scan-endpoint api.example.com:443 --scan-endpoint git.example.com:22
# Nur Endpunkte scannen (kein Code-Scan)
pqaudit --scan-endpoint example.com:443 --scan-endpoint example.com:22
| Flag | Beschreibung | Standard |
|---|---|---|
-f, --format <format> | Ausgabeformat: text, json, cbom, sarif, html | text |
-o, --output <file> | Ausgabe in Datei schreiben | stdout |
-s, --severity <level> | Mindestschwere: critical, high, medium, low, safe | safe |
--min-confidence <0-100> | Funde unterhalb dieser Konfidenzschwelle filtern | 50 |
--no-dedupe | Alle Vorkommen anzeigen, statt pro Datei zusammenzufassen | Dedupl. an |
--no-deps | Abhängigkeitsscan überspringen | Abh. scannen |
--include <patterns...> | Glob-Muster für einzuschließende Dateien | alle Quelldateien |
--exclude <patterns...> | Zusätzliche Glob-Muster zum Ausschließen | node_modules, dist, etc. |
--rules <path> | Pfad zu benutzerdefinierter Regel-YAML-Datei | integrierte Regeln |
--scan-endpoint <endpoints...> | TLS/SSH-Endpunkte zum Testen (host:port) | keine |
--network-timeout <ms> | Netzwerkverbindungs-Timeout | 5000 |
--ci | Exit-Code 1, wenn kritische oder hohe Funde existieren | aus |
pqaudit — Post-Quantum Cryptography Readiness Scanner
Gescannt: ./my-project
NICHT PQC-BEREIT — Quantenangreifbare Kryptografie erkannt
Gescannte Dateien: 65 | Funde: 12
Kritisch: 7 Hoch: 2 Mittel: 1 Niedrig: 0 Sicher: 2
--- KRITISCH (7) ---
[!!] Ed25519 — Ed25519-Signaturen — anfällig für Shors Algorithmus (14 Vorkommen)
src/crypto/signing.ts:14
> import { sign, verify } from "@noble/ed25519";
Fix: ML-DSA-65 (FIPS 204) oder hybrid Ed25519+ML-DSA-65
Konfidenz: 98% | Aufwand: moderat | Über: ast
[!!] RSA — RSA-Signatur — anfällig für Quantenfaktorisierung (3 Vorkommen)
src/auth/jwt.ts:42
> jwt.sign(payload, key, { algorithm: "RS256" });
Fix: ML-DSA-65 (FIPS 204)
Konfidenz: 96% | Aufwand: komplex | Über: ast
[!!] ECDSA — Zertifikat verwendet ECDSA 256-Bit-Schlüssel — anfällig für Shors Algorithmus
tls://api.example.com:443
> ECDSA 256-Bit-Schlüssel, TLSv1.3
Fix: Post-Quanten-Zertifikatsalgorithmen, sofern verfügbar
Konfidenz: 100% | Aufwand: komplex | Über: network
...
| Algorithmus | Bedrohung | Ersatz |
|---|---|---|
| RSA (jede Schlüssellänge) | Shors Algorithmus | ML-KEM-768 / ML-DSA-65 |
| ECDSA / Ed25519 | Shor auf elliptischen Kurven | ML-DSA-65 (FIPS 204) |
| ECDH / X25519 / DH | Shor auf Schlüsselaustausch | ML-KEM-768 (FIPS 203) |
| DSA | Shors Algorithmus | ML-DSA-65 (FIPS 204) |
| Algorithmus | Bedrohung | Ersatz |
|---|---|---|
| AES-128 | Grover reduziert auf 64 Bit | AES-256 |
| TLS 1.0/1.1, SSLv3 | Veraltete Protokolle | TLS 1.3 |
| SSH (über Netzwerk erkannt) | DH/ECDH-Schlüsselaustausch | PQ-hybrider Schlüsselaustausch |
ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA (SPHINCS+), AES-256, ChaCha20-Poly1305, SHA-256, SHA-3
Erzeugt eine Cryptographic Bill of Materials gemäß CycloneDX 1.6. Jeder kryptografische Fund wird zu einer crypto-asset-Komponente mit cryptoProperties, NIST-Quantensicherheitsstufen und Nachweisorten.
pqaudit . --format cbom --output cbom.json
Erzeugt SARIF 2.1.0-Ausgabe, die mit dem Code-Scanning von GitHub kompatibel ist. Hochladen über github/codeql-action/upload-sarif.
pqaudit . --format sarif --output results.sarif
In sich geschlossener HTML-Bericht mit einem visuellen Dashboard – Aufschlüsselung nach Schwere, PQC-Bereitschafts-Score und Tabelle der Funde. Keine externen Abhängigkeiten, offline nutzbar.
pqaudit . --format html --output report.html
name: PQC Audit
on: [push, pull_request]
jobs:
pqaudit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npx pqaudit . --format sarif --output pqaudit.sarif --ci
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: pqaudit.sarif
category: pqaudit
pqaudit durchsucht Manifest-Dateien nach bekannten kryptografischen Bibliotheken in fünf Ökosystemen:
| Ökosystem | Manifest-Dateien | Beispiel-Pakete |
|---|---|---|
| npm | package.json | @noble/ed25519, node-rsa, jsonwebtoken, ethers |
| Rust | Cargo.toml | ed25519-dalek, rsa, ring, p256, pqcrypto |
| Go | go.mod | golang.org/x/crypto, cloudflare/circl |
| Python | requirements.txt, pyproject.toml | cryptography, pycryptodome, paramiko |
| Java | build.gradle, pom.xml | BouncyCastle, Google Tink |
PQC-sichere Bibliotheken (@noble/post-quantum, pqcrypto, cloudflare/circl) werden als sicher für die Bestandsverfolgung markiert.
Regeln werden in YAML definiert:
- id: MY_CUSTOM_RULE
description: "Benutzerdefiniertes quantenangreifbares Muster"
severity: critical
category: signature
algorithm: MyAlgo
replacement: ML-DSA-65
effort: complex
languages: ["javascript", "typescript"]
patterns:
- "myVulnerableFunction\\("
- "import.*myVulnerableLib"
Siehe CONTRIBUTING.md für das vollständige Regel-Schema und Anleitungen zum Einreichen neuer Regeln.
pqaudit durchsucht Konfigurationsdateien auf quantenangreifbare Krypto-Einstellungen:
sshd_config/ssh_configErweiterungslose Konfigurationsdateien (Dockerfile, sshd_config, ssh_config) werden automatisch erkannt und gescannt.
Lebende TLS- und SSH-Endpunkte auf quantenangreifbare Krypto-Konfigurationen testen:
pqaudit --scan-endpoint api.example.com:443 --scan-endpoint git.example.com:22
TLS-Endpunkte (beliebiger Port oder Angabe tls://host:port):
SSH-Endpunkte (Port 22 automatisch erkannt oder Angabe ssh://host:port):
Netzwerkfunde haben 100 % Konfidenz (beobachtete Fakten, keine Musterübereinstimmungen) und erscheinen neben Code-Funden in allen Ausgabeformaten.
pqaudit verwendet vier Erkennungsmethoden:
Geplant:
Siehe CONTRIBUTING.md für Richtlinien zum Einreichen von Regeln, Fehlerbehebungen und neuen Funktionen.
MIT