Seminário de Informática
Teórica
Henrique Borges Alencar Siqueira
Motivação
Geradores randômicos
Blocos fundamentais da
Segurança
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Algoritmos de criptografia


Iludem tentativas de análise de padrões e
ataques de força-bruta
Assumem que existe uma fonte randômica
(não reproduzível) de bits para gerar:


Números primos
Chaves públicas e privadas
Algoritmos de criptografia

Falham quando não existe uma fonte
randômica segura:

Netscape implementation of SSL


I. Goldberg and D. Wagner. Randomness and the Netscape browser.
Dr Dobb’s, pages 66–70, January 1996.
Java session-ids

Z. Gutterman and D. Malkhi. Hold your sessions: An attack on Java
session-id generation. In A. J. Menezes, editor, CT-RSA, LNCS vol.
3376, pages 44–57. Springer, February 2005.
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Geradores pseudo-randômicos


Ou “Deterministic Random Bit Generator”
Todos os geradores randômicos por
software
Geradores pseudo-randômicos
java.util.Random
Solicitação
r.nextInt()
Função
One-way
geradora
Hash
Número
“randômico”
seed = (seed * multiplier + addend) & mask
return seed >> 16
Hora
Seed:
atual
(Fontes de entropia)
Estado
interno
Geradores pseudo-randômicos


Mesmas fontes (seeds) + mesmo
algoritmo = mesma seqüência de números
java.util.Random



long seed = 0;
Random r = new Random(seed);
assert (r.nextInt() == -1155484576);
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Explorando a falha

OpenWRT


Implementação do Linux para roteadores
wireless
Provê
SSL termination
 SSH server
 Wireless encryption


A segurança de todos estes serviços depende
do gerador pseudo-randômico
Explorando a falha

OpenWRT

Fontes de entropia (seeds) do gerador
randômico (Março de 2006)
Hora de inicialização
 Recebimento de pacotes desde a inicialização


Fontes observáveis!!!


Pacotes em rede wireless
Ambiente facilmente reproduzido
Explorando a falha
Código Java: Usando RSA com
gerador randômico ruim
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Requisitos para geradores seguros

Pseudorandomness



A saída do gerador não pode ser prevista por
um observador externo
Provê segurança suficiente para adversários
sem acesso ao estado interno do gerador
Obtida usando fontes de entropia (seeds)
randômicas (não reproduzíveis)
Requisitos para geradores seguros

Forward security


Saber o estado interno atual não implica
descobrir saídas anteriores
Obtida usando funções one-way (injetoras)
para a geração de números randômicos
Requisitos para geradores seguros

Break-in recovery / backward security


Saber o estado interno atual não implica
descobrir saídas futuras
Obtida usando re-seed periódico (realimentação)
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Corrigindo a falha

Usar fontes de entropia secretas e com a
segurança desejada


Usar múltiplas fontes de entropia real


Seeds com 256 bits para segurança de 256
bits
Hora atual, teclas digitadas, ruído do
microfone, giro do HD, ...
Re-seed periódico
Corrigindo a falha

OpenWRT: Fontes de entropia


Hora de inicialização
Recebimento de pacotes desde a inicialização
Corrigindo a falha

OpenWRT: Fontes de entropia


Persistir o estado do gerador randômico ao
desligar o S.O.
Re-seed
Horário de (re) inicialização
 Recebimento de pacotes

Corrigindo a falha

Código Java: Fontes de entropia

Timestamp
Corrigindo a falha

Código Java: Fontes de entropia


Usar a implementação nativa do gerador
randômico (que tem seeds melhores)
Usar re-seed periódico com outras fontes de
entropia
Roteiro







Motivação
Algoritmos de criptografia
Geradores pseudo-randômicos
Explorando a falha
Requisitos para geradores seguros
Corrigindo a falha
Conclusão
Conclusão

Um atacante sofisticado pode descobrir
ser mais fácil reproduzir o ambiente que
gerou os dados e procurar no conjunto de
possibilidades geradas do que em todo o
espaço amostral
Dúvidas?
Obrigado
Download

Geradores randômicos e Segurança