
Herramienta CLI para escanear bases de código en busca de criptografía vulnerable a la computación cuántica
Escanea tu código base en busca de criptografía vulnerable a la computación cuántica antes de que sea demasiado tarde.
Inicio Rápido • ¿Por qué Prepararse para la Cuántica? • Uso • Niveles de Riesgo • CI/CD • Acerca de
Crypto Scanner es una herramienta CLI que escanea tu código base en busca de algoritmos criptográficos y genera evaluaciones de riesgo de vulnerabilidad cuántica. Analiza código fuente, archivos de configuración y certificados X.509 para identificar criptografía que será quebrada por ordenadores cuánticos.
Desarrollado por Quantum Shield Labs — ayudando a las organizaciones a prepararse para la era post-cuántica.
Se proyecta que los Ordenadores Cuánticos Criptográficamente Relevantes (CRQCs, por sus siglas en inglés) capaces de romper RSA y ECC surjan para el 2033. Esto no es ciencia ficción: es un cronograma para el que los principales gobiernos y empresas se están preparando activamente.
Los adversarios ya están recopilando datos cifrados hoy con la intención de descifrarlos una vez que los ordenadores cuánticos estén disponibles. Si tus datos tienen valor a largo plazo (registros médicos, datos financieros, secretos comerciales, comunicaciones gubernamentales), ya están en riesgo.
| Desafío | Realidad |
|---|---|
| Complejidad de migración |
El algoritmo de Shor, ejecutándose en un ordenador cuántico suficientemente potente, puede factorizar eficientemente números enteros grandes y calcular logaritmos discretos. Esto rompe:
No puedes migrar lo que no sabes que tienes. Crypto Scanner proporciona el inventario criptográfico que es el primer paso esencial en cualquier programa de preparación cuántica.
📘 Más información: Lee el Manual de Quantum Shield Labs para obtener una guía completa de migración.
Obtén tu primer escaneo de vulnerabilidad cuántica en menos de 60 segundos:
# Instalar desde PyPI
pip install crypto-scanner
# Escanea tu proyecto
crypto-scanner scan .
# Genera un informe HTML ejecutivo
crypto-scanner scan . --html --output quantum-risk-report.html
Eso es todo. Ahora tienes un inventario criptográfico completo de tu código base.
pip install crypto-scanner
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e .
# Escanea un directorio (salida JSON a stdout)
crypto-scanner scan <directorio>
# Muestra los tipos de archivo compatibles y las clasificaciones de riesgo
crypto-scanner info
# Muestra la versión
crypto-scanner --version
# Escanear con salida detallada
crypto-scanner scan ./src --verbose
# Guardar informe JSON en archivo
crypto-scanner scan . --output crypto-audit.json
# Generar informe HTML con marca para partes interesadas
crypto-scanner scan . --html --output quantum-assessment.html
# Excluir directorios específicos
crypto-scanner scan . --exclude vendor --exclude legacy
# Excluir patrones de archivo
crypto-scanner scan . --exclude "*.test.js" --exclude "*.spec.ts"
# Combinar opciones
crypto-scanner scan ./backend -v --exclude node_modules -o report.json
Las siguientes están excluidas automáticamente para evitar escanear dependencias:
.git, .svn, .hg # Control de versiones
node_modules, vendor # Dependencias de paquetes
__pycache__, .pytest_cache, .mypy_cache
.venv, venv, env # Entornos virtuales
dist, build, out # Salidas de compilación
.idea, .vscode # Directorios de IDE
site-packages, third_party
Algoritmos que serán completamente quebrados por el algoritmo de Shor:
Algoritmos con vulnerabilidades clásicas conocidas:
Algoritmos que actualmente son seguros pero deben ser monitoreados:
Algoritmos que proporcionan una protección adecuada:
| Extensión | Formato |
|---|---|
.pem | Codificado PEM |
.crt, .cer, .cert | Certificado |
.der | Codificado DER |
Formato de salida predeterminado, ideal para automatización y pipelines CI/CD:
{
"scan_directory": "/ruta/al/proyecto",
"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": "/ruta/a/auth.py",
"line_number": 42,
"algorithm": "RSA",
"key_size": 2048,
"risk_level": "critical",
"description": "Detección de generación de clave RSA",
"recommendation": "Planificar migración a algoritmos post-cuánticos (ML-KEM, ML-DSA)",
"context": "key = rsa.generate_private_key(public_exponent=65537, key_size=2048)"
}
]
}
Informe profesional autocontenido con la marca de Quantum Shield Labs:
Generar con:
crypto-scanner scan . --html --output report.html
name: Escaneo de Vulnerabilidad Criptográfica
on: [push, pull_request]
jobs:
crypto-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configurar Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Instalar Crypto Scanner
run: pip install crypto-scanner
- name: Ejecutar Escaneo Criptográfico
run: crypto-scanner scan ./src --output crypto-report.json
- name: Verificar Hallazgos Críticos
run: |
CRITICAL=$(jq '.summary.critical_count' crypto-report.json)
if [ "$CRITICAL" -gt 0 ]; then
echo "::error::¡Se encontraron $CRITICAL algoritmos críticos vulnerables a la cuántica!"
jq '.findings[] | select(.risk_level == "critical")' crypto-report.json
exit 1
fi
- name: Subir Informe
uses: actions/upload-artifact@v4
if: always()
with:
name: informe-vulnerabilidad-criptografica
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 "¡Se detectó criptografía crítica vulnerable a la cuántica!"
exit 1
fi
artifacts:
reports:
dotenv: crypto-report.json
paths:
- crypto-report.json
when: always
Añadir a .pre-commit-config.yaml:
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 - Fallar si se encuentran vulnerabilidades críticas
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 "Escaneo completado: $CRITICAL críticos, $HIGH hallazgos de riesgo alto"
if [ "$CRITICAL" -gt 0 ]; then
echo "FALLÓ: ¡Se detectó criptografía crítica vulnerable a la cuántica!"
exit 1
fi
crypto-scanner/
├── src/crypto_scanner/
│ ├── cli.py # Interfaz CLI Typer
│ ├── scanner.py # Lógica de orquestación principal
│ ├── models.py # Modelos de datos Pydantic
│ ├── patterns.py # 50+ patrones de detección regex
│ ├── analyzers/ # Analizadores de tipos de archivo
│ │ ├── base.py # Clase base abstracta
│ │ ├── source.py # Analizador de código fuente (14 lenguajes)
│ │ ├── config.py # Analizador de archivos de configuración
│ │ └── certificate.py # Analizador de certificados X.509
│ └── reporters/ # Generadores de salida
│ ├── json_reporter.py
│ └── html_reporter.py
└── tests/ # Suite de pruebas exhaustiva
SourceCodeAnalyzer — Coincidencia de patrones en 14 lenguajes de programaciónConfigAnalyzer — Análisis de YAML/JSON + coincidencia de patrones para archivos de configuraciónCertificateAnalyzer — Análisis de X.509 para extraer algoritmos y tamaños de clave¡Las contribuciones son bienvenidas! Aquí te explicamos cómo empezar:
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e ".[dev]"
# Ejecutar todas las pruebas
pytest tests/ -v
# Ejecutar con cobertura
pytest tests/ -v --cov=crypto_scanner --cov-report=html
Los patrones criptográficos se definen en src/crypto_scanner/patterns.py. Cada patrón incluye:
git checkout -b feature/nuevo-patron)pytest tests/ -v)Licencia MIT — consulta LICENSE para más detalles.
Quantum Shield Labs ayuda a las organizaciones a prepararse para la era post-cuántica con:
Construido con cuidado por Quantum Shield Labs
| Los códigos base grandes tardan de 3 a 5+ años en migrar |
| Profundidad en la cadena de suministro | Tus dependencias contienen criptografía vulnerable que no ves |
| Mandatos de cumplimiento | Los estándares PQC del NIST (ML-KEM, ML-DSA) ya están finalizados |
| Plazo CNSA 2.0 | La NSA exige algoritmos resistentes a la cuántica para 2033 |
| Opción | Corta | Descripción |
|---|
--html | Generar informe HTML en lugar de JSON | |
--output | -o | Guardar informe en archivo (en lugar de stdout) |
--verbose | -v | Mostrar progreso detallado del escaneo |
--exclude | -e | Patrones de exclusión adicionales (repetible) |
--version | -V | Mostrar versión y salir |
| Algoritmo | Tamaños de Clave | Impacto Cuántico | Acción Recomendada |
|---|
| RSA | Todos (1024-4096+) | Completamente roto | Migrar a ML-KEM + ML-DSA |
| ECDSA/ECC | Todas las curvas | Completamente roto | Migrar a ML-DSA |
| DH/ECDH | Todos | Intercambio de claves roto | Migrar a ML-KEM |
| DSA | Todos | Completamente roto | Migrar a ML-DSA |
| Algoritmo | Problema | Acción Recomendada |
|---|
| MD5 | Ataques de colisión, completamente roto | Reemplazar por SHA-3 o SHA-256 |
| SHA-1 | Ataques de colisión demostrados | Reemplazar por SHA-256+ |
| DES | Clave de 56 bits, trivialmente roto | Reemplazar por AES-256 |
| 3DES | Ataques meet-in-the-middle | Reemplazar por AES-256 |
| AES-128 | El algoritmo de Grover reduce la seguridad | Actualizar a AES-256 |
| Algoritmo | Estado | Acción Recomendada |
|---|
| SHA-256 | Seguro, Grover reduce a 128 bits | Planificar migración a SHA-3 |
| SHA-384 | Seguro | Monitorear desarrollos |
| SHA-512 | Buena resistencia cuántica | Monitorear desarrollos |
| TLS 1.2 | Seguro pero envejeciendo | Preferir TLS 1.3 |
| Algoritmo | Estado | Notas |
|---|
| AES-256 | Resistente a la cuántica | Seguridad post-cuántica de 128 bits |
| ChaCha20 | Moderno, seguro | Buena alternativa a AES |
| SHA-3 | Último estándar del NIST | Recomendado para nuevos proyectos |
| ML-KEM | Post-cuántico (Kyber) | Estandarizado por el NIST en 2024 |
| ML-DSA | Post-cuántico (Dilithium) | Estandarizado por el NIST en 2024 |
| Extensión | Lenguaje |
|---|
.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 |
| Extensión | Formato |
|---|
.yaml, .yml | YAML |
.json | JSON |
.toml | TOML |
.ini, .cfg, .conf, .config | INI/Config |
.env | Variables de entorno |