Vous êtes sur la page 1sur 7

Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

servidor Telnet. Algum conectado ao Telnet cliente ou ao servidor da LAN poderia


procurar (ler e armazenar) todos os pacotes transmitidos pela LAN e, dessa maneira, se
apossar da senha de login. De fato, essa uma abordagem muito conhecida para roubar
senhas. Essa ameaa, obviamente, muito real; portanto, o PA 3.0 com certeza no
apropriado.

Figura 9.9 Protocolo PA 3.0 e um cenrio de falha.

9.3.4 Protocolo de autenticao PA 3.1


Como acabamos de estudar a criptografia na seo anterior, nossa prxima idia para
consertar o PA 3.0 , naturalmente, usar a criptografia. Criptografando a senha de Alice,
Trudy no conseguir descobri-la! Supondo-se que Alice e Bob compartilhem uma chave
simtrica secreta, KAB, ento Alice pode codificar a senha e enviar sua mensagem de
identificao, Eu sou Alice, e sua senha criptografada a Bob. Bob ento decifra a senha
e, se a senha estiver correta, autentica Alice. Ele fica tranqilo ao autenticar Alice, j que
ela conhece no somente a senha, mas tambm o nmero da chave secreta necessrio para
codificar a senha. Vamos chamar esse protocolo de PA 3.1.
Embora seja verdade que o PA 3.1 impede que Trudy descubra a senha de Alice, o
uso de criptografia nesse caso no resolve o problema da autenticao! Bob novamente
est sujeito ao denominado ataque de reproduo: basta Trudy bisbilhotar uma
comunicao de Alice, gravar a verso criptografada da senha e, mais tarde, reproduzir essa
verso criptografada para Bob, fingindo que Alice. O uso de uma senha criptografada
no faz com que a situao fique muito diferente daquela da Figura 9.9.
9.3.5 Protocolo de autenticao PA 4.0
O problema com o PA 3.1 que a mesma senha usada repetidamente. Um modo de
solucionar esse problema seria utilizar cada vez uma senha diferente. Alice e Bob
poderiam combinar uma seqncia de senhas (ou um algoritmo para gerao de senhas) e
usar cada uma delas apenas uma vez, em seqncia. Essa idia usada no sistema S/KEY
[RFC 1760], que adota um mecanismo lanado por Lamport para gerar uma seqncia de
senhas.
No entanto, em vez de pararmos nesse ponto da soluo, vamos considerar uma
abordagem mais geral para combater o ataque de reproduo. O cenrio de falha da
Figura 9.9 resultou do fato de Bob no conseguir distinguir a autenticao original de Alice
da reproduo da autenticao original de Alice. Em outras palavras, Bob no conseguiu
saber se Alice estava ao vivo na conexo (isto , se naquela ocasio Alice estava
realmente na outra extremidade da conexo) ou se as mensagens que ele estava recebendo

227
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

eram uma reproduo gravada de uma autenticao anterior de Alice. O leitor muito
(muito) observador vai lembrar que o protocolo de apresentao de trs vias do TCP tinha
de enfrentar o mesmo problema o lado servidor de uma conexo TCP no era obrigado a
aceitar uma conexo se o segmento SYN recebido fosse uma cpia antiga (retransmisso)
de um segmento SYN de uma conexo anterior. Como o lado servidor do TCP resolvia o
problema de determinar se o cliente estava realmente ao vivo? Ele escolhia um nmero
de seqncia inicial que no era usado a um longo perodo de tempo, enviava esse nmero
ao cliente e ficava esperando que o cliente respondesse com um segmento ACK contendo
esse nmero. Podemos adotar a mesma idia aqui, para a finalidade de autenticao.
Um nonce um nmero que um protocolo vai usar apenas uma vez. Assim que um
protocolo usar um nonce, nunca mais o utilizar. Nosso protocolo PA 4.0 usa um nonce
como segue:
1. Alice envia a mensagem Eu sou A1ice para Bob.
2. Bob escolhe um nonce, R, e o envia a Alice.
3. Alice criptografa o nonce usando a chave simtrica secreta KAB que combinou com
Bob e envia o nonce cifrado KAB(R) de volta a Bob. Como acontece no protocolo
PA 3.1, o fato de Alice conhecer a chave KAB e us-la para codificar um valor que
permite que Bob saiba que a mensagem que recebeu foi gerada por Alice. O nonce
utilizado para assegurar que Alice est ao vivo.
4. Bob decifra a mensagem recebida. Se o nonce decifrado for igual ao nonce que enviou
a Alice, ento ela estar autenticada.
O protocolo PA 4.0 est ilustrado na Figura 9.10. Usando um valor R apenas uma
nica vez e, em seguida, verificando o valor devolvido, KAB(R), Bob pode ter certeza de
que Alice quem diz ser (j que conhece o valor da chave secreta necessrio para cifrar R),
e tambm de que ela est ao vivo (j que ela tem o nonce cifrado R que Bob acabou de
criar).

Figura 9.10 Protocolo PA 4.0 e um cenrio de falha.

9.3.6 Protocolo de autenticao PA 5.0


O uso de um nonce e da criptografia de chaves simtricas criou a base de nosso bem-
sucedido protocolo de autenticao PA 4.0. Uma pergunta natural se podemos usar um
nonce juntamente com a criptografia de chaves pblicas (em vez de a criptografia de chaves
simtricas) para resolver o problema de autenticao. A utilizao de uma abordagem de
chaves pblicas evitaria a dificuldade existente em qualquer sistema compartilhado a
preocupao com o modo pelo qual as duas partes ficaro conhecendo o valor da chave
secreta compartilhada, em primeiro lugar. O uso que o protocolo PA 5.0 faz da criptografia
de chaves pblicas anlogo ao uso que o protocolo PA 4.0 faz da criptografia de chaves
simtricas:
1. Alice envia a mensagem Eu sou A1ice para Bob.

228
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

2. Bob escolhe um nonce, R, e o envia a Alice. Novamente, o nonce usado para ele se
certificar de que Alice est ao vivo.
3. Alice usa seu algoritmo criptogrfico privado com sua chave privada, dA, para o nonce e
envia o valor resultante dA(R) a Bob. Como somente Alice conhece sua chave privada,
ningum, exceto ela, pode gerar dA(R).
4. Bob aplica o algoritmo criptogrfico pblico de Alice, eA, mensagem recebida, isto ,
ele processa eA(dA(R)). Lembre-se de que em nossa discusso sobre a criptografia de
chave pblica RSA, na Seo 9.2, eA(dA(R)) = R = dA(eA(R)). Assim, Bob calcula R e
autentica Alice.
A operao do protocolo PA 5.0 ilustrada na Figura 9.11. O protocolo PA 5.0 to
seguro quanto o protocolo PA 4.0? Ambos usam nonces. Como o PA 5.0 usa tcnicas de
chave pblica, ele requer que Bob recupere a chave pblica de Alice. Isso leva a um
cenrio interessante, mostrado na Figura 9.12, em que Trudy pode se passar por Alice
perante Bob:

Figura 9.11 Protocolo PA 5.0 trabalhando corretamente.

1. Trudy envia a mensagem Eu sou A1ice para Bob.


2. Bob escolhe um nonce, R, e o envia a Alice, mas a mensagem interceptada por Trudy.
3. Trudy aplica seu algoritmo criptogrfico privado com sua chave privada, dT para o
nonce e envia o valor resultante, dT(R), a Bob. Para Bob, dT(R) apenas uma poro de
bits, e ele no sabe se os bits representam dT(R) ou dA(R).
4. Bob deve agora pegar a chave pblica de Alice para aplicar eA ao valor que acabou de
receber. Ele envia a mensagem a Alice, pedindo seu eA (Bob tambm pode recuperar a
chave pblica de Alice do site Web dela). Trudy intercepta tambm essa mensagem e
responde a Bob devolvendo eT,isto , a chave pblica dela. Bob ento calcula
eT(dT(R)) = R e, assim, autentica Trudy como se ela fosse Alice!

Figura 9.12 Falha de segurana no protocolo PA 5.0.

229
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

Fica claro nesse cenrio que o protocolo PA 5.0 to seguro quanto a distribuio
de chaves pblicas. Felizmente, existem maneiras seguras de distribuir chaves pblicas,
como veremos na Seo 9.5.
No cenrio da Figura 9.12, Bob e Alice podem acabar descobrindo, em conjunto, que
alguma coisa est errada, pois Bob vai dizer que interagiu com Alice, mas Alice sabe que
isso no aconteceu. H um ataque ainda mais insidioso que poderia evitar essa descoberta.
No cenrio da Figura 9.13, Alice e Bob esto conversando, mas Trudy, explorando a
mesma falha no protocolo de autenticao, consegue se interpor de maneira transparente
entre Alice e Bob. Em particular, se Bob comear a enviar dados cifrados a Alice usando a
chave criptogrfica que recebeu de Trudy, Trudy poder recuperar o texto aberto da
comunicao entre Bob e Alice. Ao mesmo tempo, Trudy pode repassar os dados de Bob a
Alice (aps ter decifrado os dados usando a chave pblica real de Alice).
Bob est l, feliz da vida, enviando dados criptografados. Alice tambm est l, feliz
da vida, recebendo dados criptografados e usando para isso sua prpria chave pblica;
ambos no sabem da presena de Trudy. Se acontecer de Bob e Alice se encontrarem mais
tarde e discutirem sua interao, Alice ter recebido exatamente o que Bob enviou, de
modo que no se perceber que alguma coisa est errada. Esse um exemplo do chamado
ataque do homem do meio (no caso, da mulher do meio). s vezes ele tambm
chamado de ataque da brigada do balde, j que o modo como Trudy est passando os dados
entre Alice e Bob parece a passagem dos baldes de gua pela longa fila de pessoas
(chamada de brigada do balde) que esto apagando um incndio utilizando uma fonte de
gua longnqua.

Figura 9.13 Um ataque do homem do meio.

9.4 Integridade
Pense no nmero de vezes em que voc ps sua assinatura em um pedao de papel durante
a ltima semana. Voc assina cheques, comprovantes de operao de cartes de crdito,
documentos legais e cartas. Sua assinatura atesta o fato de que voc (e no outra pessoa)
conhece o contedo do documento e/ou concorda com ele. No mundo digital, freqentemente
se quer indicar o dono ou o criador de um documento ou deixar claro que algum concorda com
o contedo de um documento. A assinatura digital uma tcnica criptogrfica usada para
cumprir essa finalidade no mundo digital.

230
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

Exatamente como acontece com a assinatura de prprio punho, a assinatura digital deve
ser verificvel, no falsificvel e incontestvel. Em outras palavras, deve ser possvel provar
que um documento assinado por um indivduo foi na verdade assinado por ele (a assinatura tem
de ser verificvel) e que somente aquele indivduo poderia ter assinado o documento (a
assinatura no pode ser falsificada, e o signatrio no pode mais tarde negar ter assinado o
documento). Isso se consegue facilmente com a criptografia de chaves pblicas.
9.4.1 Gerao de assinaturas digitais
Suponha que Bob queira assinar digitalmente um documento m. Imagine que o
documento seja um arquivo ou uma mensagem que Bob vai assinar e enviar. Como mostra
a Figura 9.14, para assinar esse documento Bob simplesmente usa sua chave criptogrfica
privada dB para processar dB(m). A princpio, pode parecer estranho que Bob esteja
rodando um algoritmo de decriptografia sobre um documento que no foi codificado. Mas
lembre-se de que decriptografia nada mais do que uma operao matemtica
(exponenciao potncia d no RSA; veja a Seo 9.2) e que a inteno de Bob no
embaralhar ou disfarar o contedo do documento, mas assinar o documento de maneira
que seja verificvel, no falsificvel e incontestvel. Bob tem o documento, m, e sua
assinatura digital do documento, dB(m).

Figura 9.14 Criao de uma assinatura digital para um documento.

A assinatura digital dB(m) atende s nossas exigncias de ser verificvel, no


falsificvel e incontestvel? Suponha que Alice tenha m e dB(m). Ela quer provar na
Justia (em ao litigiosa) que Bob de fato assinou o documento e que ele era a nica
pessoa que poderia t-lo assinado. Ela pega a chave pblica de Bob, eB, e a aplica
assinatura digital dB(m) associada ao documento m. Em outras palavras, ela processa
eB(dB(m)) e, voil, com dramtica encenao, produz m, que uma reproduo exata do
documento original! Ela ento argumenta que somente Bob poderia ter assinado o
documento porque:
Quem quer que tenha assinado o documento deve ter usado a chave criptogrfica
privada dB para processar a assinatura dB(m), de modo que eB(dB(m) = m.
A nica pessoa que poderia conhecer a chave privada dB Bob. Lembre-se que
dissemos em nossa discusso do RSA, na Seo 9.2, que conhecer a chave pblica eB
no serve para descobrir a chave privada dB. Portanto, a nica pessoa que poderia
conhecer dB aquela que gerou o par de chaves (eB ,dB) em primeiro lugar, ou seja,
Bob. (Note que, para isso, supomos que Bob no passou dB a ningum e que ningum
roubou dB de Bob).
Tambm importante notar que, se o documento original m for modificado para
algum modelo alternativo m, a assinatura que Bob criou para m no ser vlida para m, j
que eB(dB(m)) no igual a m.

231
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

Assim, vemos que as tcnicas da criptografia de chaves pblicas fornecem uma


maneira simples e elegante de assinar documentos digitalmente, uma maneira que
verificvel, no falsificvel e incontestvel e que protege contra modificaes posteriores
do documento.
9.4.2 Resumo de mensagem
Vimos na subseo anterior que a tecnologia de criptografia de chaves pblicas pode
ser usada para criar uma assinatura digital. Uma preocupao quanto assinatura de dados
por criptografia, contudo, que codificar e decifrar so processamentos dispendiosos. No
caso da assinatura digital de um documento realmente importante, digamos, uma fuso
entre duas grandes empresas multinacionais ou um acordo com uma criana para que ela
limpe seu quarto uma vez por semana, o custo de processamento pode no ser importante.
No entanto, muitos dispositivos e processos de rede (por exemplo, roteadores trocando
informaes de tabela de roteamento e agentes de usurios trocando correspondncia por e-
mail) trocam de modo rotineiro, dados que poderiam no ser necessariamente
criptografados. No entanto, eles querem garantir que:
O remetente dos dados seja quem diz ser, ou seja, que o remetente assine os dados e que
essa assinatura possa ser verificada.
Os dados transmitidos no foram modificados desde o momento em que o remetente os
criou e assinou.
Dada a sobrecarga de criptografia e decriptografia, a assinatura de dados por
criptografia/decriptografia completa pode ser exagerada. Uma abordagem mais eficiente,
usando os chamados resumos de mensagem, pode atingir esses dois objetivos sem codificar
completamente a mensagem.
Um resumo de mensagem muito parecido com uma soma de verificao. Os
algoritmos de resumo de mensagem pegam uma mensagem m, de comprimento arbitrrio, e
calculam uma impresso digital de comprimento fixo dos dados, conhecida como resumo
de mensagem H(m). O resumo de mensagem protege os dados, uma vez que, se m for
modificado para m (seja por m inteno ou por acidente), ento a mensagem H(m)
processada para os dados originais (e transmitida com os dados) no vai combinar com a
H(m) processada sobre os dados modificados. O resumo de mensagem prov integridade
aos dados, mas que auxlio presta na assinatura da mensagem m? O objetivo aqui que, em
vez de Bob assinar digitalmente (criptografar) a mensagem inteira processando dB(m), seria
possvel que ele assinasse apenas o resumo de mensagem processando dB(H(m)). Em
outras palavras, ter o conjunto m e dB(H(m)) (note que m no criptografada) deve ser to
bom quanto ter uma mensagem completa assinada dB(m). Isso significa que o conjunto m
e dB(H(m)) deve ser no falsificvel, verificvel e incontestvel. A no falsificabilidade
exigir que o algoritmo de resumo de mensagem que calcula o resumo de mensagem tenha
algumas propriedades especiais, como veremos a seguir.
Nossa definio de resumo de mensagem pode parecer muito semelhante definio
de uma soma de verificao (por exemplo, a soma de verificao da Internet) ou de um
cdigo de deteco de erros muito mais poderoso, como a verificao de redundncia
cclica. Ele realmente diferente? Somas de verificao, verificaes de redundncia
cclica e resumos de mensagem so exemplos das denominadas funes de hash. Como
mostra a Figura 9.15, uma funo de hash pega uma entrada de dados, m, e processa uma
cadeia de tamanho fixo conhecida como hash. A soma de verificao da Internet, as CRCs
e os resumos de mensagem esto de acordo com essa definio. Se assinar uma resumo de
mensagem deve ser to bom quanto assinar a mensagem inteira, em particular se deve

232
Apostila de Fundamentos de Redes de Computadores Prof: Ricardo Quinto

satisfazer exigncia de que no haja possibilidade de falsificao, ento o algoritmo de


resumo de mensagem deve ter as seguintes propriedades adicionais:
Dado um valor de resumo de mensagem x, no deve ser factvel descobrir, por meio de
processamento, uma mensagem y, tal que H(y) = x.
No deve ser, em termos computacionais, factvel descobrir quaisquer duas mensagens
x e y, tais que H(x) = H(y).

Figura 9.15 Funes de hash so usadas para criar resumos de mensagem.

Informalmente, essas duas propriedades significam que, em termos de


processamento, impraticvel que um intruso substitua uma mensagem por outra se a
primeira estiver protegida por um resumo de mensagem. Em outras palavras, se (m, H(m))
for o par do resumo de mensagem criado pelo remetente, ento um intruso no poder
falsificar o contedo de outra mensagem, y, de modo que esta tenha o mesmo valor do
resumo de mensagem da mensagem original. Quando Bob assina m, processando
dB(H(m)), sabemos que nenhuma outra mensagem pode substituir m. Alm disso, a
assinatura digital de Bob, H(m), identifica exclusivamente Bob como o signatrio
verificvel e incontestvel de H(m) (e, em conseqncia, tambm de m), como discutimos
na Seo 9.4.1.

Figura 9.16 Envio de uma mensagem assinada digitalmente.

233

Vous aimerez peut-être aussi