Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dual-ec-drbg — Educational Proof-of-Concept for the Dual_EC_DRBG backdoor (CVE-2014-8610) - NIST P-256 state recovery attack demonstration | Kitploit
Ferramentas/GitHubGitHub/eddieoz/dual-ec-drbg
ExploitationCryptographyCTFPapers & ResearchLearning & EducationLabs & Practice
GitHubeddieoz/dual-ec-drbg

dual-ec-drbg

Educational Proof-of-Concept for the Dual_EC_DRBG backdoor (CVE-2014-8610) - NIST P-256 state recovery attack demonstration

Ver Repositório
há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Backdoor Dual_EC_DRBG: Prova de Conceito Educacional

Para Profissionais de Segurança | Apenas para Fins Educacionais


⚠️ Aviso

Este repositório contém uma demonstração educacional do backdoor criptográfico Dual_EC_DRBG (CVE-2014-8610), uma vulnerabilidade bem documentada divulgada após as revelações de Snowden.

Isto é APENAS para FINS EDUCACIONAIS:

  • Demonstra uma vulnerabilidade obsoleta com mais de 10 anos
  • Usa parâmetros publicamente conhecidos e relações matemáticas
  • Destinado a treinamento e conscientização em segurança
  • Segue práticas de divulgação responsável

📚 O que Você Vai Aprender

  1. Contexto Histórico: Como a NSA supostamente inseriu um backdoor em um padrão NIST
  2. Fundamentos Matemáticos: Curvas elípticas e o problema do logaritmo discreto
  3. O Mecanismo do Backdoor: Por que Q = d·P cria uma chave mestra
  4. Demonstração de Ataque ao Vivo: Recuperação de estado a partir de 32 bytes de saída observada
  5. Mitigações: Como evitar vulnerabilidades semelhantes

🚀 Início Rápido

Pré-requisitos

  • Python 3.8+ (recomendamos usar pyenv)
  • pip

Opção 1: Usando o Script de Inicialização (Recomendado)

root@kitploit:~
cd dual-ec-drbg

# Um comando para configurar e executar
./run.sh

Este script irá:

  1. Detectar/criar configuração local do pyenv
  2. Criar um ambiente virtual em venv/
  3. Instalar todas as dependências
  4. Iniciar o Jupyter com o notebook

Opção 2: Configuração Manual com pyenv

root@kitploit:~
cd dual-ec-drbg

# Definir versão local do Python com pyenv
pyenv local 3.12.12

# Criar ambiente virtual
python3 -m venv venv
source venv/bin/activate

# Instalar dependências
pip install --upgrade pip
pip install -r requirements.txt

# Iniciar Jupyter
jupyter notebook dual_ec_drbg_backdoor_poc.ipynb

Opção 3: Python do Sistema (Não Recomendado)

root@kitploit:~
cd dual-ec-drbg
pip install --user -r requirements.txt
jupyter notebook dual_ec_drbg_backdoor_poc.ipynb

Dependências

  • ecdsa>=0.18.0 - Operações de curva NIST P-256
  • jupyter>=1.0.0 - Interface do notebook
  • ipython>=7.0.0 - Python interativo

📖 Conteúdo do Notebook


🎯 O Ataque em Resumo

root@kitploit:~
Atualização de Estado do Dual_EC_DRBG:    s_{i+1} = φ(s_i · P)
Saída do Dual_EC_DRBG:                    r_i = φ(s_i · Q)     [truncado]

Relação do Backdoor:                      Q = d · P

Ataque (conhecendo d):
1. Observe r_i (30+ bytes de saída)
2. Reconstrua candidatos R onde x(R) ≈ r_i  
3. Calcule: s_{i+1} = φ(d⁻¹ · R) = φ(s_i · P)
4. Preveja TODA a saída futura!

Complexidade de Tempo: O(1) - milissegundos em um laptop
Dados Necessários: 32 bytes de saída observada

🧪 Executando a Demonstração

Modo Interativo

  1. Abra o notebook:

    root@kitploit:~
    jupyter notebook dual_ec_drbg_backdoor_poc.ipynb
    
  2. Execute as células sequencialmente (Shift+Enter)

  3. Observe:

    • Tanto o DRBG honesto quanto o com backdoor produzem saída estatisticamente aleatória
    • Apenas a versão com backdoor é vulnerável à recuperação de estado
    • O ataque é bem-sucedido em milissegundos

Linha de Comando (Opcional)

Extraia e execute o código Python:

root@kitploit:~
# Extrair células de código para um script Python
jupyter nbconvert --to script dual_ec_drbg_backdoor_poc.ipynb

# Executar o script
python dual_ec_drbg_backdoor_poc.py

📊 Saída Esperada

root@kitploit:~
[=== DUAL_EC_DRBG HONESTO ===]
[+] DRBG inicializado
    Modo: HONESTO
    P = (6b17d1f2e12c4247..., 4fe342e2fe1a7f9b...)
    Q = (a53a7f9b2e1c4247..., 7fe342e2fe1a7f9b...)

[=== DUAL_EC_DRBG COM BACKDOOR ===]
[+] DRBG inicializado
    Modo: COM BACKDOOR
    P = (6b17d1f2e12c4247..., 4fe342e2fe1a7f9b...)
    Q = (b23d7c9a3f8e5156..., 9ab456d3c7e2f1a8...)
    d secreto = 0x4f3e2d1c0b9a8f7e...

[=== EXECUÇÃO DO ATAQUE ===]
[+] Saída observada: a1b2c3d4e5f6...
[+] Encontrados 2 pontos candidatos na curva
...
[OK] CORRESPONDÊNCIA PERFEITA - Toda a saída futura prevista!

🔍 Principais Descobertas

Por que Este Backdoor é Insidioso

  1. Estatisticamente Indetectável: A saída passa em todos os testes de aleatoriedade
  2. Matemático, Não de Código: Nenhum código malicioso para detectar
  3. Arquitetura de Chave Mestra: Um segredo (d) quebra todas as instâncias
  4. Baixa Probabilidade de Detecção: Backdoor indetectável sem d

Impacto Histórico


🛡️ Mitigações

Nunca Use

  • ❌ Dual_EC_DRBG (depreciado desde 2014)

Use em Seu Lugar

  • ✅ /dev/urandom ou getrandom() (Linux)
  • ✅ BCryptGenRandom() (Windows)
  • ✅ CryptoKit (Apple)
  • ✅ Hash_DRBG, HMAC_DRBG, CTR_DRBG (NIST SP 800-90A Rev 1)

Auditoria de Segurança

  • Audite dependências quanto ao uso de Dual_EC
  • Verifique fontes de RNG em sistemas críticos
  • Exija geração de parâmetros verificável

📚 Referências

  1. NIST SP 800-90A Rev 1 - Padrão DRBG atual (Dual_EC removido)
  2. Shumow & Ferguson 2007 - Aviso original do backdoor
  3. Bernstein et al. - Dual EC: A Standardized Back Door
  4. Checkoway et al. - Juniper Analysis
  5. Reuters - NSA and RSA

🤝 Contribuições

Este é um recurso educacional. Melhorias são bem-vindas:

  • Visualizações adicionais
  • Contexto histórico estendido
  • Mais variantes de ataque

📜 Licença

Licença MIT - Consulte o arquivo LICENSE para detalhes.

Use com responsabilidade e ética. Este código é apenas para fins educacionais.


🎓 Para Instrutores

Este notebook é adequado para:

  • Cursos de criptografia
  • Treinamento de conscientização em segurança
  • Apresentações em conferências
  • Desafios CTF

Tempo de apresentação recomendado: 45-60 minutos


Criado para fins educacionais, a fim de entender e prevenir vulnerabilidades criptográficas.

Baixar ferramenta
SeçãoDescrição
1. Contexto HistóricoLinha do tempo de 1997 a 2024, principais envolvidos, revelações de Snowden
2. Fundamentos MatemáticosCurvas elípticas, ECDLP, a matemática do backdoor
3. Parâmetros da NIST P-256Parâmetros reais da curva FIPS 186-4
4. Especificação do AlgoritmoEspecificação NIST SP 800-90 DRBG
5. ImplementaçãoClasses DRBG honesta vs. com backdoor
6. Implementação do AtaqueAtaque de recuperação de estado com d secreto
7. Demonstração ao VivoSimulação de ataque estilo Juniper
8. MitigaçõesLições aprendidas e melhores práticas
EventoDataImpacto
Padronização NIST2006Dual_EC torna-se oficial
Padrão RSA BSAFE2004-2013Pagamento de $10M para usar padrão fraco
Revelações Snowden2013Conscientização pública
Backdoor Juniper2015Atacantes exploraram Dual_EC fraco
Retirada pela NIST2014Depreciação oficial