42
Globalcode – Open4education Trilha – Segurança Wanderley Caloni Sócio-Desenvolvedor da

Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Embed Size (px)

DESCRIPTION

Inspirado na análise de Laura Diane Hamilton, essa palestra irá caminhar rapidamente por todas as falhas encontradas por ela em um sistema de embaralhamento de cartas e demonstrar como explorar essas falhas.

Citation preview

Page 1: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Trilha – SegurançaWanderley Caloni

Sócio-Desenvolvedor da

Page 2: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-

Aleatoriedade

Page 3: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Segurança da InformaçãoSistema de Controle de Usuários e Aplicações

Criptografia de Discos

Page 4: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Análise de TrojansEngenharia Reversa

Crash Dump Analysis

Page 5: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Mercado FinanceiroAlto Desempenho

Análise de Risco

Page 6: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Mercado FinanceiroAlto Desempenho

Análise de Risco

Algoritmos

Cotações

Mobile

Page 7: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Page 8: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Page 9: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Quem sou eu? OMG!

Page 10: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Pôquer Online

Page 11: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Pôquer Online

Page 12: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Page 13: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Número de cartas: 52Combinações: 52! = 8x1067

Page 14: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Page 15: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Page 16: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Page 17: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Explicar regras básicas

Page 18: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Chupinhado Inspirado por:

Page 19: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Chupinhado Inspirado por:

LAURA HAMILTON

Page 20: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Chupinhado Inspirado por:

http://www.lauradhamilton.com/random-lessons-online-poker-exploit

Page 21: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Google Code Jam 2014

https://code.google.com/codejam/contest/2984486/dashboard#s=p2

http://www.caloni.com.br/blog/archives/poker-face

Page 22: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Embaralhamento

Page 23: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Embaralhamento

Page 24: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Embaralhamento

Page 25: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Embaralhamento

Page 26: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Caso Real

Page 27: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Caso Real

Falha #1: errando por um

Falha #2: não-uniforme

Falha #3: semente de 32 bits

Falha #4: relógio-semente

Page 28: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#1: errando por um

Page 29: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#2: não-uniforme

Page 30: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#3: semente de 32 bits

Page 31: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#3: semente de 32 bits

rand

Page 32: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#3: semente de 32 bits

x

y

z

...

x

y

z

...

x

y

z

...

x

y

z

...

x

y

z

...

srand

Page 33: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#4: relógio-semente

Page 34: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

#4: relógio-semente

Page 35: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

Page 36: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

Page 37: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

Page 38: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

?

...

11:40

11:41

11:42

11:43

Page 39: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

?

...

11:40

11:41

11:42

11:43

Page 40: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

Exploit

Rand()

?

...

11:40

11:41

11:42

11:43

Page 41: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

And in the end....

Perguntas? Eu tenho várias.

[email protected]

twitter

saite

e-mail

Page 42: Como Não Desenvolver Pôquer Online ou Como Explorar a Pseudo-Aleatoriedade

Globalcode – Open4education

And in the end....

.com.br