segurança da informação aula rainbow tablessendin/cursos/seg/2s2018/aula18.pdf · aula rainbow...
TRANSCRIPT
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Seguranca da Informacao
Aula Rainbow Tables
Ivan Sendin
FACOM - Universidade Federal de [email protected],[email protected]
17 de outubro de 2018
Seg
Ivan Sendin
Colisoes
Inversao deHashing
2a pre imagem e colisoes sao “coisas” diferentes
Cenario
Professor: se compromete (h) e revela as notas.Voces podem procurar uma 2a pre-imagem
Professor gera uma colisao: M1,M2. Publica o hashda M1. Revela M1 e “usa” M2
O professor tem uma vantagem “assintotica” sobreos alunos
Seg
Ivan Sendin
Colisoes
Inversao deHashing
M
M
1
2
mm
Seg
Ivan Sendin
Colisoes
Inversao deHashing
m ×m = m2 pares
Prob de um par colidir:
1
2n
Prob de um par nao colidir:
1− 1
2n
Prob de m2 pares nao colidirem:
(1− 1
2n)m
2
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Prob de m2 pares nao colidirem:
(1− 1
2n)m
2
Para m =√n:
Prob de n pares nao colidirem:
(1− 1
2n)n
Prob de n pares nao colidirem: ≈ 0.5
(Com ex ≈ 1 + x)
Prob de n pares colidirem: ≈ 0.5
Seg
Ivan Sendin
Colisoes
Inversao deHashing Alguem quer inverter um hash (MD5, SHA,...)
“Pegou” na rede...
Hack, invasao,...
Ao inverter o hash a senha e obtida
Personificacao
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Dicionario gigantesco
Combinacoes de palavras
Modificacoes
Upper/lowerFoneticato → 2, S → 5
Caracteres especiais
Seg
Ivan Sendin
Colisoes
Inversao deHashing Voce pode baixar(comprar) um dicionario
pre-computado
Arquivo gigantescos de alguns gigas....
253 chaves
Sao muitas chaves....
Seg
Ivan Sendin
Colisoes
Inversao deHashing
(Neste momento alguem tem que fazer algumascontas e contestar a informacao passada!)
Seg
Ivan Sendin
Colisoes
Inversao deHashing
253 chaves
Qual e o tamanho deste arquivo??
Seg
Ivan Sendin
Colisoes
Inversao deHashing
hash de 128 bits
(MD5 ainda e muito utilizado....)
128 bits e suficiente...mesmo com o Ataque doAniversario1
128 bits = 16 bytes
Chute: cada chave 10 bytes
26 bytes * 253
24,... * 253 bytes
Se considerarmos algum overread temos algo muitoproximo de um exabyte
(giga, tera, peta, exa...)
Compactar??1Cuidado com as propriedades!
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Existe uma tecnica do tipo time-memory tradeoff
Vamos gastar um pouco a mais de tempo....
Para gastar muito menos memoria
(exabyte p/ gigabyte)
Seg
Ivan Sendin
Colisoes
Inversao deHashing
{0,1}
{0,1}m
n
Seg
Ivan Sendin
Colisoes
Inversao deHashing
{0,1}n
{0,1}m
Seg
Ivan Sendin
Colisoes
Inversao deHashing Vamos criar uma funcao que “volta” para o
dicionario
Alterna Dominio/Imagem
Dicionario → {0, 1}n
{0, 1}n → Dicionario
Seg
Ivan Sendin
Colisoes
Inversao deHashing
{0,1}n
Seg
Ivan Sendin
Colisoes
Inversao deHashing
“Parece” com um hash
Ela e unidirecional
Resistente a colisoes
Tem “cara” de aletoria
Funcao de REDUCAO
RNao e a inversa do hash!
Seg
Ivan Sendin
Colisoes
Inversao deHashing R e H
Alternam Dominio/Imagem
Podemos criar uma longa cadeia....
Dado uma s:
H → R→ H → R→ H → R . . .
Seg
Ivan Sendin
Colisoes
Inversao deHashing
H → R→ H → R→ H → RExemplo Dicionario: Alfabeto, n=5
A→ 00011→ D → 11010→ Z → 00110→ E
Armazeno o primeiro e o ultimo “textos”
A,E
(Vou chamar de “texto” as palavras do dicionario...)
start/end
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Dado um h = H(senha)....
....como saber se ele esta cadeia ?
(Esta entre start/end)?
Seg
Ivan Sendin
Colisoes
Inversao deHashing Repito a operacao de criacao da cadeia...e comparo
? 11010 ∈ (A,E )
A→ 00011→ D → 11010→ Z → 00110→ E
Descubro que H(D) = 11010 e inverti o hash
Seg
Ivan Sendin
Colisoes
Inversao deHashing
OU
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Aplico R(h)
Verifico se e igual ao end....
? 11010 ∈ (A,E )
A→ 00011→ D → 11010→ Z → 00110→ E
Aplico R(11010) = Z
Agora eu ando da direita para esquerda...
Seg
Ivan Sendin
Colisoes
Inversao deHashing
? 11010 ∈ (A,E )
A→ 00011→ D → 11010→ Z → 00110→ E
Aplico R(11010) = Z ,Z 6= E ...
AplicoR(H(R(11010))) =
R(H(Z )) =
R(00110) =
= E
Eu descubro que a minha busca esta entre A e E
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Repetindo...
Seg
Ivan Sendin
Colisoes
Inversao deHashing
? 11010 ∈ (A,E )
A→ 00011→ D → 11010→ Z → 00110→ E
R(11010)? = E , pergunto se a minha busca esta naposicao n
RHR(11010)? = E , pergunto se a minha buscaesta na posicao n-1 (nosso exemplo..)
RHRHR(11010)? = E , pergunto se a minha buscaesta na posicao n-2
Seg
Ivan Sendin
Colisoes
Inversao deHashing
TXT hash TXT hash TXTTXT hash
???
Seg
Ivan Sendin
Colisoes
Inversao deHashing TXT hash TXT hash TXTTXT hash
???
Seg
Ivan Sendin
Colisoes
Inversao deHashing TXT hash TXT hash TXTTXT hash
Reducao
???
Seg
Ivan Sendin
Colisoes
Inversao deHashing
TXT hash TXT hash TXTTXT hash
???
RHR
Seg
Ivan Sendin
Colisoes
Inversao deHashing
A tecnica chama Rainbow Tables
Seg
Ivan Sendin
Colisoes
Inversao deHashing
TXT hash TXT hash TXTTXT hash
TXT hash TXT hash TXTTXT hash
TXT hash TXT hash TXTTXT hash
TXT hash TXT hash TXTTXT hash
TXT hash TXT hash TXTTXT hash
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Basta adaptar o algoritmo para comparar com osvarios ends
Uma vez que a cadeia contendo h e encontrada ostart e usado para encontrar o texto que gerou o h(Objetivo inicial!)
Lembrando: tudo isso para economizar memoria emum ataque de pre-computacao!!
Seg
Ivan Sendin
Colisoes
Inversao deHashing
http://project-rainbowcrack.com
crackstation.net
Seg
Ivan Sendin
Colisoes
Inversao deHashing
luke@xwing:~$ echo -n teste | md5sum
698dc19d489c4e4db73e28a713eab07b -
luke@xwing:~$ echo -n mustang | md5sum
bee783ee2974595487357e195ef38ca2 -
luke@xwing:~$ echo -n 123456 | md5sum
e10adc3949ba59abbe56e057f20f883e -
luke@xwing:~$
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Resumo - Rainbow Tables
Exemplo interessante de memoria X tempo
Caixa-Preta
Tamanho do hash: nao importa (dicionario)
Velocidade do hash: SIM!
Seg
Ivan Sendin
Colisoes
Inversao deHashing
Resumo - Rainbow Tables
Use salt
(Use hash lento)
Garanta que os seus usuarios nao usem senhas dedicionario
(Polıtica / Verificacao)
Seg
Ivan Sendin
Colisoes
Inversao deHashing
https://www.lifewire.com/
rainbow-tables-your-passwords-worst-nightmare-2487288