tseg-2 ivan sendin news t opicos em seguranca˘ da …sendin/cursos/tseg/2s2019/aula2.pdf · bloco...

38
TSEG-2 Ivan Sendin News... News Hashing Autentica¸c˜ ao Contas T´opicos em Seguran¸ ca da Informa¸ ao Aula 2 Ivan Sendin FACOM - Universidade Federal de Uberlˆ andia [email protected],[email protected] 23 de agosto de 2019

Upload: others

Post on 18-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Topicos em Seguranca da Informacao

Aula 2

Ivan Sendin

FACOM - Universidade Federal de [email protected],[email protected]

23 de agosto de 2019

Page 2: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

https://br.cointelegraph.com/news/

cryptojacking-code-found-in-eleven-open-libraries-thousands-infected

https://www.wired.co.uk/article/

new-zealand-bitcoin-salary-tax-libra-cryptocurrency

Nunca esqueca da Oferta-Procura

Limite de B21 milhoes

O mundo tem 35 milhoes de milionarios (em US$)

https://www.reddit.com/r/Bitcoin/

comments/7x2t2l/if_every_millionaire_

wanted_1_btc_they_couldnt/

Page 3: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Funcoes de hashing

h = H(x)

Propriedade Tem Nao consegue

Unidirecionalidade h x ′, h = H(x ′)Resistencia a 2a Pre-Imagem x , h x ′, h = H(x ′)Resistencia a colisoes - x , x ′,H(x) = H(x ′)

Page 4: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Autenticacao

luke:kjdhsajk8798jkl

darth:kjdhsajk8798jkl

leia:kjdhsajk8798jkl

Page 5: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Autenticacao

luke:kjdhsajk8798jkl

darth:kjdhsajk8798jkl

leia:kjdhsajk8798jkl

?????

Darth consegue adivinhar a senha de Luke....

Page 6: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Autenticacao

luke:kjdhsajk8798jkl:Meu mestre

darth:kjdhsajk8798jkl:Carinha verde

leia:kjdhsajk8798jkl:Try Not

Dados de sistemas comprometidos sao (em geral)publicados

Lembrete de senhas (3a coluna...)

Page 7: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Autenticacao

Rainbow Table

Pre-Computacao

Tabela h(x), x

Indexada por h(x)

x vem de dicionarios GIGANTESCOS

space/time trade-off

h() e caixa-preta

Page 8: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Autenticacao com Salt

Salt

r bits gerados aleatoriamente...

Hs(x) = r |H(r |x)

luke:kjdhsajk8798jkl

darth:mncnkdjiip879k

leia:hjkkancloeyuiqqw

(os n primeiros caracteres sao de salt.... a senha e amesma)

Aumenta a complexidade/tempo em 2|r |

Inviabiliza pre-computacao

senhas iguais → hashes diferentes

(Equivalente a usar funcoes diferentes!!)

USO OBRIGATORIO

Page 9: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Fatos exponenciais....

Dobras Resultado

0 0.1 mm1

1 0.2 mm9 5/6 cm - resma

43 Lua / 384.000 km53 Sol / 150.000.000 km

1Chute

Page 10: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas hash de 160 bits

Dado x1 e x2, x1 6= x2

p(H(x1) == H(x2)) =?

Page 11: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

p(H(x1) == H(x2)) =?1

2160

Page 12: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Mega Sena

≈ 606

(6.10)6

≈ (2.3.23.3)6

≈ (2.22.23.3)6

(26.3)6

≈ 237

Page 13: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas hash de 160 bits: 12160

Mega Sena: 1237

37 para 160, um fator de 4....

Page 14: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

hash de 160 bits: 12160

Mega Sena: 1237

Muito, mas muito, distante!!

(Curiosidades : https://rationalwiki.org/

wiki/Improbable_things_happen)

Page 15: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Algoritmo para inverter...

h = H(1000 random bits)

repita

t = H(1000 random bits)

until t==h

Quantas vezes o laco se repete para uma funcao de 10bits?

Page 16: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Hash - Seguranca

A probabilidade de inverter e muito pequena

Na pratica: p() == 0 (para n > 160)

Facil: dicionario!!

Page 17: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

DiceWare

Senhas: com !,$,#,...

Anotar ou nao anotar!

a posse de criptomoedas se da peloconhecimento de chaves privadas!

Page 18: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Diceware

Arnold Reinhold

Lista com 7776 palavras curtas e “faceis”

Sem duvidas ortograficas: xuxu ou chuchu ?

existem listas diferentes para paıses diferentes...

Pq 7776 palavras?

Page 19: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Diceware

...

43136 mulct

43141 mule

43142 mull

43143 multi

43144 mum

43145 mummy

43146 munch

43151 mung

...

Fonte: https://en.wikipedia.org/wiki/Diceware7776 = 65

Page 20: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Senhas e autenticacao

Download da lista

Escolha 5 dados honestos

(compre o jogo War e descarte 1 dado!)

Repita X vezes:

Jogue os 5 dados

Ache a palavra correspondente e anote

Forme uma frase mnemonica com as palavras

Quime o papel, os dados e testemunhas.

Page 21: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Senhas e autenticacao

bola, vasoMemorize: “A bola quebrou o vaso”

https://xkcd.com/936/

Page 22: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Senhas e autenticacao

Qual e a seguranca deste metodo?

Voce trocaria a sua senha pelo Diceware??

Page 23: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

HashCash

Servicos gratuitos podem cobrar inversoes parciais,evitando abusos

email X spam

Solucao: colocar no header do email uma campo,com um string S tal que:

H(S |subject|Recipient|timestamp...) < K

Page 24: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

H(S |subject|Recipient|timestamp...) < K

S deve ser gerado por busca exaustiva

Para K = 1, temos 12n

...

Para n = 10 e K = 102, temos p = 1/10 em cadatentativa...

O servidor verifica em apenas um passo!

Email legitimo: ok, voce pode esperar um miniyopara enviar!

Spam com milhares de emails: NAO!!!

Page 25: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

PoW

O Proof of Work e o mecanismo de obtencao deconsenso do Bitcoin

E de outras moedas

O Bitcoin e implementado em uma rede P2P comnos que nunca se viram antes!!

Compartilham e atualizam uma ED: Blockchain

Page 26: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Meu Bloco - Versao ZERO

Altura

Dificuldade

Timestamp

Transacoes

"Random"

Anterior

Page 27: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Bloco - Transacoes

Vetor,lista

Transacoes que circularam na rede P2P

Validades

”Conta Origem”→ ”Conta Destino”

A primeira transacao e especial: nao tem Origem

Cada minerador escolhe o destino

Page 28: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Bloco - Mineracao

O Hash do bloco deve ser menor que umdeterminado valor

(Campo Dificuldade)

Cabe ao minerador1 Coletar e validar as transacoes2 “montar” o bloco2

3 Gerar - por tentativa e erro - o ”random”4 Propagar o bloco quando ele for minerado ou5 Acatar os blocos corretos recebidos!

2Lembrando que o bloco apresentado e uma versao...

Page 29: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Bloco - Encadeamento

Os blocos “apontam” para o anterior....

Quanto mais antigo bloco, mais difıcil e ”forjar”umnovo conteudo

Os blocos que estao nas ultima posicoes podemsofrer alteracoes!!!

Para transacoes de valores grandes, e aconselhavelaguardar o bloco ficar ”antigo”

Page 30: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Paradoxo do aniversario

Qual e a probabilidade de 2 pessoas fazeremaniversario no mesmo dia??

1365

(Considerando uma distribuicao uniforme...)

Aniversario no mesmo dia ≡ colisao

Qual o tamanho minimo um grupo deve ter paraque a probabilidade seja ≥ 1

2

Page 31: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Paradoxo do aniversario- Contas

P(haver pelo menos um par)

(dois pares, um trio)

P(haver...) = 1 -P(Nao haver...)

P(Nao haver...) = 365365

.364365

.363365

. . . .

P(Nao haver...) = 0.49 para 23 termos

P(haver...) = 0.51 para 23 termos

Page 32: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Paradoxo do aniversario- Contas

Encontrar um colisao e mais facil do que a nossaintuicao diz

E mais facil do que inverter

O tamanho de seguranca do hash code depende daaplicacao!!

Page 33: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Paradoxo do aniversario - Forja....

Produzir uma colisao

Mi 6= Mj

H(Mi) == H(Mj)

Produzir n sequencias aleatorias

Calcular o hash de cada uma delas

Para n = 2h/2, p() ≈ 0.5

Em resumo/pratica: o tamanho do hash seguro e odobro do tamanho da chave segura

Detalhe: gasta muita memoria!

Page 34: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Compromissos - Commitments

Eu preciso me comprometer com uma informacao:M

Eu nao posso/quero revelar a informacao nomomento

Eu publico H(M)

Page 35: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Compromissos - Commitments /

Aplicacoes

Leilao de Envelope fechado

Os candidatos enviam envelopes fechados e lacradosate uma data limite

No dia do leilao, o leiloeiro abre os envelopes edetermina o melhor lance

(comum em licitacoes/privatizacoes)

Page 36: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Compromissos - Commitments /

Aplicacoes

Leilao de Envelope fechado

O candidato i envia hi = H(Mi)

Cada hi e publicado

Apos a fase de compromisso, os candidatos revelamMi

O leiloeiro e os demais candidatos podem verificar alegitimidade de cada Mi

(Diferente do sistema de envelope o candidato podedesistir sem revelar Mi)

Page 37: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Exercicios do Dia

Escolha um deles...

Valor: 7/100

Data:29/Agosto (PDF por email)

PoW Implementar uma funcao de PoW.Parametros um limite K e uma string base.Rodar e ver o tempo conforme a variacao deK .

Colisao/Aniversario Implementar uma funcao queencontre colisoes - usando o Paradoxo doAniversario. Tamanho da colisaoparametrizavel. Rodar e ver o tempoconforme a variacao do tamanho da colisao.

Page 38: TSEG-2 Ivan Sendin News T opicos em Seguranca˘ da …sendin/Cursos/TSEG/2S2019/aula2.pdf · Bloco - Minera˘c~ao O Hash do bloco deve ser menor que um determinado valor (Campo Di

TSEG-2

Ivan Sendin

News...

News

Hashing

Autenticacao

Contas

Exercicios do Dia

Google Authenticator Gerar uma string de 6 digitosdecimais usando um segredo e o relogio,com um intervalo de 30s.

Contas Defina como calcular o numero esperadotentativas para inverter um hash