
CLI-Tool zum Scannen von Codebasen auf quantenverwundbare Kryptografie
Scannen Sie Ihre Codebasis auf quantumanfällige Kryptografie, bevor es zu spät ist.
Schnellstart • Warum Quantenbereitschaft? • Nutzung • Risikostufen • CI/CD • Über uns
Crypto Scanner ist ein CLI-Tool, das Ihre Codebasis auf kryptografische Algorithmen scannt und Risikobewertungen zur Quantenverwundbarkeit erstellt. Es analysiert Quellcode, Konfigurationsdateien und X.509-Zertifikate, um Kryptografie zu identifizieren, die von Quantencomputern gebrochen wird.
Entwickelt von Quantum Shield Labs – hilft Organisationen, sich auf die Post-Quanten-Ära vorzubereiten.
Kryptografisch relevante Quantencomputer (CRQCs), die in der Lage sind, RSA und ECC zu brechen, werden voraussichtlich bis 2033 entstehen. Das ist keine Science-Fiction – es ist ein Zeitplan, auf den sich große Regierungen und Unternehmen aktiv vorbereiten.
Angreifer sammeln bereits heute verschlüsselte Daten mit der Absicht, sie zu entschlüsseln, sobald Quantencomputer verfügbar sind. Wenn Ihre Daten einen langfristigen Wert haben (Gesundheitsakten, Finanzdaten, Geschäftsgeheimnisse, Regierungskommunikation), sind sie bereits jetzt gefährdet.
| Herausforderung | Realität |
|---|---|
| Migrationskomplexität | Große Codebasen benötigen 3-5+ Jahre für den Übergang |
Shors Algorithmus kann auf einem ausreichend leistungsfähigen Quantencomputer effizient große ganze Zahlen faktorisieren und diskrete Logarithmen berechnen. Dies bricht:
Sie können nicht migrieren, was Sie nicht kennen. Crypto Scanner liefert das kryptografische Inventar, das der wesentliche erste Schritt in jedem Quantenbereitschaftsprogramm ist.
📘 Mehr erfahren: Lesen Sie das Quantum Shield Labs Playbook für umfassende Migrationsanleitungen.
Erhalten Sie Ihren ersten Quanten-Schwachstellenscan in unter 60 Sekunden:
# Install from PyPI
pip install crypto-scanner
# Scan your project
crypto-scanner scan .
# Generate an executive HTML report
crypto-scanner scan . --html --output quantum-risk-report.html
Das war's. Sie haben jetzt ein vollständiges kryptografisches Inventar Ihrer Codebasis.
pip install crypto-scanner
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e .
# Scan a directory (JSON output to stdout)
crypto-scanner scan <directory>
# Show supported file types and risk classifications
crypto-scanner info
# Display version
crypto-scanner --version
# Scan with verbose output
crypto-scanner scan ./src --verbose
# Save JSON report to file
crypto-scanner scan . --output crypto-audit.json
# Generate branded HTML report for stakeholders
crypto-scanner scan . --html --output quantum-assessment.html
# Exclude specific directories
crypto-scanner scan . --exclude vendor --exclude legacy
# Exclude file patterns
crypto-scanner scan . --exclude "*.test.js" --exclude "*.spec.ts"
# Combine options
crypto-scanner scan ./backend -v --exclude node_modules -o report.json
Die folgenden werden automatisch ausgeschlossen, um das Scannen von Abhängigkeiten zu vermeiden:
.git, .svn, .hg # Version control
node_modules, vendor # Package dependencies
__pycache__, .pytest_cache, .mypy_cache
.venv, venv, env # Virtual environments
dist, build, out # Build outputs
.idea, .vscode # IDE directories
site-packages, third_party
Algorithmen, die durch Shors Algorithmus vollständig gebrochen werden:
Algorithmen mit bekannten klassischen Schwachstellen:
Algorithmen, die derzeit sicher sind, aber überwacht werden sollten:
Algorithmen, die ausreichenden Schutz bieten:
| Erweiterung | Format |
|---|---|
.pem | PEM-kodiert |
.crt, .cer, .cert | Zertifikat |
.der | DER-kodiert |
Standardausgabeformat, ideal für Automatisierung und CI/CD-Pipelines:
{
"scan_directory": "/path/to/project",
"scan_timestamp": "2026-02-06T10:30:00",
"scanner_version": "0.1.0",
"summary": {
"total_files_scanned": 150,
"total_findings": 23,
"critical_count": 5,
"high_count": 8,
"medium_count": 7,
"low_count": 3
},
"excluded_patterns": [".git", "node_modules", "..."],
"findings": [
{
"file_path": "/path/to/auth.py",
"line_number": 42,
"algorithm": "RSA",
"key_size": 2048,
"risk_level": "critical",
"description": "RSA key generation detected",
"recommendation": "Plan migration to post-quantum algorithms (ML-KEM, ML-DSA)",
"context": "key = rsa.generate_private_key(public_exponent=65537, key_size=2048)"
}
]
}
Professioneller, eigenständiger Bericht mit Branding von Quantum Shield Labs:
Erzeugen mit:
crypto-scanner scan . --html --output report.html
name: Crypto Vulnerability Scan
on: [push, pull_request]
jobs:
crypto-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Crypto Scanner
run: pip install crypto-scanner
- name: Run Crypto Scan
run: crypto-scanner scan ./src --output crypto-report.json
- name: Check for Critical Findings
run: |
CRITICAL=$(jq '.summary.critical_count' crypto-report.json)
if [ "$CRITICAL" -gt 0 ]; then
echo "::error::Found $CRITICAL critical quantum-vulnerable algorithms!"
jq '.findings[] | select(.risk_level == "critical")' crypto-report.json
exit 1
fi
- name: Upload Report
uses: actions/upload-artifact@v4
if: always()
with:
name: crypto-vulnerability-report
path: crypto-report.json
crypto-scan:
stage: security
image: python:3.12
script:
- pip install crypto-scanner
- crypto-scanner scan . --output crypto-report.json
- |
CRITICAL=$(jq '.summary.critical_count' crypto-report.json)
if [ "$CRITICAL" -gt 0 ]; then
echo "Critical quantum-vulnerable cryptography detected!"
exit 1
fi
artifacts:
reports:
dotenv: crypto-report.json
paths:
- crypto-report.json
when: always
Zu .pre-commit-config.yaml hinzufügen:
repos:
- repo: local
hooks:
- id: crypto-scanner
name: Crypto Scanner
entry: bash -c 'crypto-scanner scan . --output /tmp/crypto-scan.json && CRITICAL=$(jq ".summary.critical_count" /tmp/crypto-scan.json) && [ "$CRITICAL" -eq 0 ]'
language: system
pass_filenames: false
always_run: true
#!/bin/bash
# crypto-check.sh - Fail if critical vulnerabilities found
set -e
crypto-scanner scan . --output /tmp/crypto-report.json
CRITICAL=$(jq '.summary.critical_count' /tmp/crypto-report.json)
HIGH=$(jq '.summary.high_count' /tmp/crypto-report.json)
echo "Scan complete: $CRITICAL critical, $HIGH high risk findings"
if [ "$CRITICAL" -gt 0 ]; then
echo "FAILED: Critical quantum-vulnerable cryptography detected!"
exit 1
fi
crypto-scanner/
├── src/crypto_scanner/
│ ├── cli.py # Typer CLI interface
│ ├── scanner.py # Core orchestration logic
│ ├── models.py # Pydantic data models
│ ├── patterns.py # 50+ regex detection patterns
│ ├── analyzers/ # File type analyzers
│ │ ├── base.py # Abstract base class
│ │ ├── source.py # Source code analyzer (14 languages)
│ │ ├── config.py # Configuration file analyzer
│ │ └── certificate.py # X.509 certificate analyzer
│ └── reporters/ # Output generators
│ ├── json_reporter.py
│ └── html_reporter.py
└── tests/ # Comprehensive test suite
SourceCodeAnalyzer – Mustererkennung in 14 ProgrammiersprachenConfigAnalyzer – YAML/JSON-Parsing + Mustererkennung für KonfigurationsdateienCertificateAnalyzer – X.509-Parsing zum Extrahieren von Schlüsselalgorithmen und -größenBeiträge sind willkommen! So beginnen Sie:
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e ".[dev]"
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ -v --cov=crypto_scanner --cov-report=html
Kryptografische Muster werden in src/crypto_scanner/patterns.py definiert. Jedes Muster enthält:
git checkout -b feature/neues-muster)pytest tests/ -v)MIT License — siehe LICENSE für Details.
Quantum Shield Labs hilft Organisationen, sich auf die Post-Quanten-Ära vorzubereiten, mit:
Mit Sorgfalt erstellt von Quantum Shield Labs
| Tiefe der Lieferkette | Ihre Abhängigkeiten enthalten anfällige Kryptografie, die Sie nicht sehen |
| Compliance-Vorgaben | NIST-PQC-Standards (ML-KEM, ML-DSA) sind jetzt finalisiert |
| CNSA 2.0-Frist | NSA verlangt quantenresistente Algorithmen bis 2033 |
| Option | Kurzform | Beschreibung |
|---|
--html | HTML-Bericht statt JSON erstellen | |
--output | -o | Bericht in Datei speichern (statt stdout) |
--verbose | -v | Detaillierten Scan-Fortschritt anzeigen |
--exclude | -e | Zusätzliche Ausschlussmuster (wiederholbar) |
--version | -V | Version anzeigen und beenden |
| Algorithmus | Schlüssellängen | Quantenauswirkung | Empfohlene Maßnahme |
|---|
| RSA | Alle (1024-4096+) | Vollständig gebrochen | Migration zu ML-KEM + ML-DSA |
| ECDSA/ECC | Alle Kurven | Vollständig gebrochen | Migration zu ML-DSA |
| DH/ECDH | Alle | Schlüsselaustausch gebrochen | Migration zu ML-KEM |
| DSA | Alle | Vollständig gebrochen | Migration zu ML-DSA |
| Algorithmus | Problem | Empfohlene Maßnahme |
|---|
| MD5 | Kollisionsangriffe, vollständig gebrochen | Ersetzen durch SHA-3 oder SHA-256 |
| SHA-1 | Kollisionsangriffe demonstriert | Ersetzen durch SHA-256+ |
| DES | 56-Bit-Schlüssel, trivial gebrochen | Ersetzen durch AES-256 |
| 3DES | Meet-in-the-middle-Angriffe | Ersetzen durch AES-256 |
| AES-128 | Grovers Algorithmus reduziert Sicherheit | Upgrade auf AES-256 |
| Algorithmus | Status | Empfohlene Maßnahme |
|---|
| SHA-256 | Sicher, Grover reduziert auf 128 Bit | Migration zu SHA-3 planen |
| SHA-384 | Sicher | Entwicklungen beobachten |
| SHA-512 | Gute Quantenresistenz | Entwicklungen beobachten |
| TLS 1.2 | Sicher aber veraltet | TLS 1.3 bevorzugen |
| Algorithmus | Status | Hinweise |
|---|
| AES-256 | Quantenresistent | 128-Bit Post-Quanten-Sicherheit |
| ChaCha20 | Modern, sicher | Gute AES-Alternative |
| SHA-3 | Aktuellster NIST-Standard | Empfohlen für neue Projekte |
| ML-KEM | Post-Quanten (Kyber) | NIST-standardisiert 2024 |
| ML-DSA | Post-Quanten (Dilithium) | NIST-standardisiert 2024 |
| Erweiterung | Sprache |
|---|
.py, .pyw | Python |
.js, .mjs, .cjs | JavaScript |
.ts, .tsx | TypeScript |
.java | Java |
.go | Go |
.rs | Rust |
.c, .h, .cpp, .hpp | C/C++ |
.cs | C# |
.rb | Ruby |
.php | PHP |
.swift | Swift |
.kt, .kts | Kotlin |
.scala | Scala |
| Erweiterung | Format |
|---|
.yaml, .yml | YAML |
.json | JSON |
.toml | TOML |
.ini, .cfg, .conf, .config | INI/Konfiguration |
.env | Umgebungsvariablen |