A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Seminário de Informática Teórica Henrique Borges Alencar Siqueira.

Apresentações semelhantes


Apresentação em tema: "Seminário de Informática Teórica Henrique Borges Alencar Siqueira."— Transcrição da apresentação:

1 Seminário de Informática Teórica Henrique Borges Alencar Siqueira

2 Motivação

3 Geradores randômicos Blocos fundamentais da Segurança

4 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

5 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

6 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.

7 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

8 Geradores pseudo-randômicos  Ou “Deterministic Random Bit Generator”  Todos os geradores randômicos por software

9 r.nextInt()Solicitação Função geradora One-way Hash Hora atual Geradores pseudo-randômicos Seed: Número “randômico” Estado interno java.util.Random (Fontes de entropia) seed = (seed * multiplier + addend) & mask return seed >> 16

10 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);

11 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

12 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

13 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

14 Explorando a falha Código Java: Usando RSA com gerador randômico ruim

15 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

16 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)

17 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

18 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 (re- alimentação)

19 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

20 Corrigindo a falha  Usar fontes de entropia secretas e com a segurança desejada  Seeds com 256 bits para segurança de 256 bits  Usar múltiplas fontes de entropia real  Hora atual, teclas digitadas, ruído do microfone, giro do HD,...  Re-seed periódico

21 Corrigindo a falha  OpenWRT: Fontes de entropia  Hora de inicialização  Recebimento de pacotes desde a inicialização

22 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

23 Corrigindo a falha  Código Java: Fontes de entropia  Timestamp

24 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

25 Roteiro  Motivação  Algoritmos de criptografia  Geradores pseudo-randômicos  Explorando a falha  Requisitos para geradores seguros  Corrigindo a falha  Conclusão

26 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

27 Dúvidas? Obrigado


Carregar ppt "Seminário de Informática Teórica Henrique Borges Alencar Siqueira."

Apresentações semelhantes


Anúncios Google