
Ferramenta CLI para verificar bases de código em busca de criptografia vulnerável a quantum.
Escaneie sua base de código em busca de criptografia vulnerável a computadores quânticos antes que seja tarde demais.
Início Rápido • Por que estar preparado para o quantum? • Uso • Níveis de Risco • CI/CD • Sobre
Crypto Scanner é uma ferramenta de linha de comando que escaneia sua base de código em busca de algoritmos criptográficos e gera avaliações de risco de vulnerabilidade quântica. Ele analisa código-fonte, arquivos de configuração e certificados X.509 para identificar criptografia que será quebrada por computadores quânticos.
Desenvolvido por Quantum Shield Labs — ajudando organizações a se prepararem para a era pós-quântica.
Computadores Quânticos Criptograficamente Relevantes (CRQCs) capazes de quebrar RSA e ECC têm previsão de surgir até 2033. Isso não é ficção científica — é um cronograma para o qual governos e empresas de grande porte estão se preparando ativamente.
Adversários já estão coletando dados criptografados hoje com a intenção de descriptografá-los quando computadores quânticos estiverem disponíveis. Se seus dados têm valor de longo prazo (registros de saúde, dados financeiros, segredos comerciais, comunicações governamentais), eles já estão em risco.
| Desafio | Realidade |
|---|---|
| Complexidade da migração |
O algoritmo de Shor, executado em um computador quântico suficientemente poderoso, pode fatorar grandes inteiros e calcular logaritmos discretos de forma eficiente. Isso quebra:
Você não pode migrar o que não sabe que possui. O Crypto Scanner fornece o inventário criptográfico que é o primeiro passo essencial em qualquer programa de prontidão quântica.
📘 Saiba mais: Leia o Playbook do Quantum Shield Labs para obter orientação abrangente de migração.
Obtenha sua primeira varredura de vulnerabilidade quântica em menos de 60 segundos:
# Instalar a partir do PyPI
pip install crypto-scanner
# Escanear seu projeto
crypto-scanner scan .
# Gerar um relatório HTML executivo
crypto-scanner scan . --html --output quantum-risk-report.html
Pronto. Agora você tem um inventário criptográfico completo da sua base de código.
pip install crypto-scanner
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e .
# Escanear um diretório (saída JSON para stdout)
crypto-scanner scan <diretório>
# Mostrar tipos de arquivo suportados e classificações de risco
crypto-scanner info
# Exibir versão
crypto-scanner --version
# Escanear com saída detalhada
crypto-scanner scan ./src --verbose
# Salvar relatório JSON em arquivo
crypto-scanner scan . --output crypto-audit.json
# Gerar relatório HTML personalizado para as partes interessadas
crypto-scanner scan . --html --output quantum-assessment.html
# Excluir diretórios específicos
crypto-scanner scan . --exclude vendor --exclude legacy
# Excluir padrões de arquivo
crypto-scanner scan . --exclude "*.test.js" --exclude "*.spec.ts"
# Combinar opções
crypto-scanner scan ./backend -v --exclude node_modules -o report.json
Os seguintes são excluídos automaticamente para evitar escanear dependências:
.git, .svn, .hg # Controle de versão
node_modules, vendor # Dependências de pacotes
__pycache__, .pytest_cache, .mypy_cache
.venv, venv, env # Ambientes virtuais
dist, build, out # Saídas de build
.idea, .vscode # Diretórios de IDE
site-packages, third_party
Algoritmos que serão completamente quebrados pelo algoritmo de Shor:
Algoritmos com vulnerabilidades clássicas conhecidas:
Algoritmos atualmente seguros, mas que devem ser monitorados:
Algoritmos que fornecem proteção adequada:
| Extensão | Formato |
|---|---|
.pem | Codificado PEM |
.crt, .cer, .cert | Certificado |
.der | Codificado DER |
Formato de saída padrão, ideal para automação e pipelines CI/CD:
{
"scan_directory": "/caminho/para/projeto",
"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": "/caminho/para/auth.py",
"line_number": 42,
"algorithm": "RSA",
"key_size": 2048,
"risk_level": "critical",
"description": "Geração de chave RSA detectada",
"recommendation": "Planeje a migração para algoritmos pós-quânticos (ML-KEM, ML-DSA)",
"context": "key = rsa.generate_private_key(public_exponent=65537, key_size=2048)"
}
]
}
Relatório profissional e autônomo com a marca do Quantum Shield Labs:
Gerar com:
crypto-scanner scan . --html --output report.html
name: Varredura de Vulnerabilidade 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: Executar Varredura Criptográfica
run: crypto-scanner scan ./src --output crypto-report.json
- name: Verificar Descobertas Críticas
run: |
CRITICAL=$(jq '.summary.critical_count' crypto-report.json)
if [ "$CRITICAL" -gt 0 ]; then
echo "::error::Encontrados $CRITICAL algoritmos críticos vulneráveis a quantum!"
jq '.findings[] | select(.risk_level == "critical")' crypto-report.json
exit 1
fi
- name: Enviar Relatório
uses: actions/upload-artifact@v4
if: always()
with:
name: relatorio-vulnerabilidade-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 "Criptografia crítica vulnerável a quantum detectada!"
exit 1
fi
artifacts:
reports:
dotenv: crypto-report.json
paths:
- crypto-report.json
when: always
Adicionar ao .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 - Falhar se vulnerabilidades críticas forem encontradas
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 "Varredura concluída: $CRITICAL críticas, $HIGH descobertas de alto risco"
if [ "$CRITICAL" -gt 0 ]; then
echo "FALHOU: Criptografia crítica vulnerável a quantum detectada!"
exit 1
fi
crypto-scanner/
├── src/crypto_scanner/
│ ├── cli.py # Interface CLI Typer
│ ├── scanner.py # Lógica de orquestração principal
│ ├── models.py # Modelos de dados Pydantic
│ ├── patterns.py # 50+ padrões de detecção regex
│ ├── analyzers/ # Analisadores de tipo de arquivo
│ │ ├── base.py # Classe base abstrata
│ │ ├── source.py # Analisador de código fonte (14 linguagens)
│ │ ├── config.py # Analisador de arquivo de configuração
│ │ └── certificate.py # Analisador de certificado X.509
│ └── reporters/ # Geradores de saída
│ ├── json_reporter.py
│ └── html_reporter.py
└── tests/ # Suíte de testes abrangente
SourceCodeAnalyzer — Correspondência de padrões em 14 linguagens de programaçãoConfigAnalyzer — Análise YAML/JSON + correspondência de padrões para arquivos de configuraçãoCertificateAnalyzer — Análise X.509 para extrair algoritmos e tamanhos de chaveContribuições são bem-vindas! Veja como começar:
git clone https://github.com/mbennett-labs/crypto-scanner.git
cd crypto-scanner
pip install -e ".[dev]"
# Executar todos os testes
pytest tests/ -v
# Executar com cobertura
pytest tests/ -v --cov=crypto_scanner --cov-report=html
Os padrões criptográficos estão definidos em src/crypto_scanner/patterns.py. Cada padrão inclui:
git checkout -b feature/novo-padrao)pytest tests/ -v)Licença MIT — consulte LICENSE para detalhes.
Quantum Shield Labs ajuda organizações a se prepararem para a era pós-quântica com:
Construído com carinho por Quantum Shield Labs
| Grandes bases de código levam de 3 a 5+ anos para transitar |
| Profundidade da cadeia de suprimentos | Suas dependências contêm criptografia vulnerável que você não vê |
| Obrigações de conformidade | Padrões PQC do NIST (ML-KEM, ML-DSA) agora estão finalizados |
| Prazo CNSA 2.0 | NSA exige algoritmos resistentes a quantum até 2033 |
| Opção | Abreviação | Descrição |
|---|
--html | Gerar relatório HTML em vez de JSON | |
--output | -o | Salvar relatório em arquivo (em vez de stdout) |
--verbose | -v | Mostrar progresso detalhado da varredura |
--exclude | -e | Padrões de exclusão adicionais (repetível) |
--version | -V | Mostrar versão e sair |
| Algoritmo | Tamanhos de Chave | Impacto Quântico | Ação Recomendada |
|---|
| RSA | Todos (1024-4096+) | Completamente quebrado | Migrar para ML-KEM + ML-DSA |
| ECDSA/ECC | Todas as curvas | Completamente quebrado | Migrar para ML-DSA |
| DH/ECDH | Todos | Troca de chaves quebrada | Migrar para ML-KEM |
| DSA | Todos | Completamente quebrado | Migrar para ML-DSA |
| Algoritmo | Problema | Ação Recomendada |
|---|
| MD5 | Ataques de colisão, completamente quebrado | Substituir por SHA-3 ou SHA-256 |
| SHA-1 | Ataques de colisão demonstrados | Substituir por SHA-256+ |
| DES | Chave de 56 bits, trivialmente quebrado | Substituir por AES-256 |
| 3DES | Ataques meet-in-the-middle | Substituir por AES-256 |
| AES-128 | Algoritmo de Grover reduz a segurança | Atualizar para AES-256 |
| Algoritmo | Status | Ação Recomendada |
|---|
| SHA-256 | Seguro, Grover reduz a 128 bits | Planejar migração para SHA-3 |
| SHA-384 | Seguro | Monitorar desenvolvimentos |
| SHA-512 | Boa resistência quântica | Monitorar desenvolvimentos |
| TLS 1.2 | Seguro, mas envelhecendo | Preferir TLS 1.3 |
| Algoritmo | Status | Observações |
|---|
| AES-256 | Resistente a quantum | Segurança pós-quântica de 128 bits |
| ChaCha20 | Moderno, seguro | Boa alternativa ao AES |
| SHA-3 | Padrão NIST mais recente | Recomendado para novos projetos |
| ML-KEM | Pós-quântico (Kyber) | Padronizado pelo NIST em 2024 |
| ML-DSA | Pós-quântico (Dilithium) | Padronizado pelo NIST em 2024 |
| Extensão | Linguagem |
|---|
.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 |
| Extensão | Formato |
|---|
.yaml, .yml | YAML |
.json | JSON |
.toml | TOML |
.ini, .cfg, .conf, .config | INI/Config |
.env | Variáveis de ambiente |