Professional Documents
Culture Documents
com
Este trabalho se destina apenas a desobrigar os alunos da insana tarefa de registrar notas de
aula, dificultando o raciocnio, o questionamento e, por fim, a correta compreenso dos
conceitos. composto de conceitos extrados dos livros da bibliografia, portanto, no
uma obra indita, tampouco pretende substituir as referncias citadas na ementa. A forma
correta de us-la : procurar entender os conceitos e associa-los ao mundo prtico, atravs
de suas implementaes. Caso isso no seja possvel, buscar outras fontes mais extensas e
detalhadas para que tudo fique claro. No aceite passivamente o no entendimento de
algum conceito. Em ltimo caso, no deixe de consultar o seu professor. Afinal, no h
nada mais prazeroso para um verdadeiro mestre do que ensinar. E se no entender uma
palavra, google it ! Ou ento, consulte a wikipedia.
O texto, basicamente extrado do livro Redes de Computadores e a Internet - 4edio
Kurose/Ross e de manuais oficiais de certificao digital, foi dividido em duas partes. No
primeiro mdulo, os fundamentos de criptografia so descritos. No segundo mdulo
detalhada a sua mais atual e importante forma de implementao, a certificao digital, com
base na estratgia mundial de criao de uma identidade nica para qualquer cidado do
planeta: um certificado digital.
Aproveite ! Entenda sobre o assunto. Certamente, um dia no futuro, todas as sociedades
identificaro os seus cidados eletronicamente, atravs de microchips implantados no
prprio corpo desde o nascimento de cada um, onde seus dados pessoais estaro
univocamente descritos.
Prof. Frederico Sauer
Introduo
A maioria dos livros de segurana, por razes histricas, usa os personagens Alice e Bob
nas suas explanaes, duas pessoas que desejam se comunicar, porm com segurana
(provavelmente, deviam ser amantes...). Como esse curso refere-se a redes, cabe a
observao que Alice e Bob podem ser dois roteadores que querem trocar tabelas de
roteamento com segurana, um cliente e um servidor que querem estabelecer uma conexo
de transporte segura, ou duas aplicaes de e-mail que querem trocar e-mails com
segurana - todos esses tpicos sero examinados mais adiante neste mdulo. Alice e Bob
so componentes conhecidos da comunidade de segurana, talvez porque o nome deles seja
mais interessante do que uma entidade genrica denominada A que quer se comunicar
com segurana com uma entidade genrica denominada B. Amores proibidos,
comunicaes em tempo de guerra e transaes financeiras so as necessidades dos seres
humanos comumente citadas quando o assunto segurana nas comunicaes.
Foi dito que Alice e Bob querem se comunicar, porm com segurana, mas o que
isso significa exatamente ? certo que Alice e Bob gostariam que o contedo de sua
comunicao permanecesse secreto, a salvo de um bisbilhoteiro (digamos, um marido ou
esposa ciumenta). Provavelmente gostariam tambm de ter certeza de que esto realmente
se comunicando um com o outro e de que, caso algum bisbilhoteiro interfira na
comunicao, essa interferncia seja detectada. O texto deste mdulo descreve as tcnicas
desenvolvidas e conhecidas para permitir a busca destas aes.
neg-la no futuro.
Disponibilidade e controle de acesso. A necessidade imperiosa de segurana na rede ficou
dolorosamente obvia nos ltimos anos devido a numerosos ataques de recusa de servio
(denial of service - DoS) que inutilizaram uma rede, um hospedeiro, ou qualquer outro
componente da infra-estrutura de rede, para seus usurios legtimos; o mais notrio desses
ataques DoS talvez tenha sido o cometido contra os sites Web de inmeras empresas de alta
visibilidade. Portanto, um requisito fundamental para comunicao segura deve ser, antes
de mais nada, que ela possa ocorrer - que os 'bandidos' no possam impedir que a infraestrutura seja utilizada por usurios legtimos. O fato de que alguns desses usurios possam
ser legtimos, enquanto outros no, leva naturalmente, noo de controle de acesso, para
garantir que entidades que procuram obter acesso a recursos possam faz-lo somente se
tiverem os direitos de acesso apropriados e realizarem acessos de uma maneira bem
definida.
Confidencialidade, autenticao, integridade e no-repudiao de mensagem vem
sendo considerados componentes fundamentais da comunicao segura h bastante tempo.
Disponibilidade e controle de acesso so extenses mais recentes da noo de
comunicaes seguras, sem duvida motivadas pelas preocupaes muito reais com a
segurana da infra-estrutura de rede contra um potencial ataque violento dos 'bandidos'. Um
dos modos mais seguros para garantir que 'bandidos' no possam causar danos assegurar,
antes de mais nada, que seus pacotes no entrem na rede. Um firewall um dispositivo
situado entre a rede a ser protegida e o resto do mundo (os 'bandidos', eles)
Ele controla o acesso de e para a rede regulando quais pacotes podem passar- para
dentro e para fora da rede. Os firewalls tomaram-se rapidamente componentes comuns em
redes, desde pequenas redes residenciais at as pertencentes s maiores empresas do
mundo. Estudaremos como firewalls provem controle de acesso (por pacote e por servio).
Nossa definio de comunicao segura concentrou-se primordial mente em proteger a
comunicao e os recursos da rede. Na prtica, a segurana na rede envolve no apenas
proteo, mas tambm deteco de falhas em comunicaes seguras e ataques infraestrutura e reao a esses ataques. Em muitos casos, um administrador pode
implementar mecanismos especiais de proteo para reagir a ataques. Nesse sentido, a
segurana da rede conseguida por meio de um ciclo contnuo de proteo, deteco e
reao.
Agora que j determinamos o que significa segurana na rede, vamos considerar em
seguida quais so exatamente, as informaes as quais um intruso pode ter acesso e que
aes podem ser executadas por ele , A Figura 1 ilustra o cenrio.
Alice, a remetente, quer enviar dados a Bob, o destinatrio. Para trocar dados com
segurana, alm de atender aos requisitos de confidencialidade, autenticao e integridade
de mensagens, Alice e Bob trocaro mensagens de controle e de dados. Todas ou algumas
dessas mensagens normalmente sero criptografadas. Um intruso passivo pode,
potencialmente, fazer o seguinte:
. monitorar - ouvir e gravar as mensagens de controle e de dados no canal;
modificar, inserir ou eliminar mensagens ou contedo de mensagens.
Como veremos, a menos que sejam tomadas contramedidas adequadas, essas
capacidades permitem que um intruso monte uma grande variedade de ataques segurana:
monitorar comunicaes (e, possivelmente, roubar senhas e dados), fazer-se passar por
outra entidade, seqestrar uma sesso em curso, recusar servio a usurios legtimos da
rede sobrecarregando os recursos do sistema e assim por diante.
Agora que j temos certeza de que h ameaas reais (Trudy) solta na Internet, quais
so os equivalentes de Alice e Bob na Internet, esses nossos amigos que precisam se
comunicar com segurana? Certamente, Bob e Alice podem ser dois usurios humanos em
dois sistemas finais, por exemplo, uma Alice real e um Bob real que de fato querem trocar
e-mails seguros. Eles podem tambm ser os participantes de uma transao de comercio
eletrnico. Por exemplo, um Bob real pode querer transmitir com segurana o nmero de
seu carto de credito a um servidor Web para comprar um produto pela rede. Entretanto,
como descrito em [RFC 1636], os participantes que necessitam de comunicao segura
podem tambm ser componentes da infra-estrutura da rede. Lembre-se de que o sistema de
nomes de domnio ou daemons roteadores que trocam informaes de roteamento requerem
comunicao segura entre dois participantes. O mesmo valido para aplicaes de
gerenciamento de rede. Um intruso que conseguisse interferir, controlar ou corromper
ativamente consultas e atualizaes do DNS [RFC 2535, IETF dnsext 2004],
processamentos de roteamento ou funes de gerenciamento de rede [RFC 2574] poderiam
causar uma devastao na Internet.
Estabelecida a estrutura, apresentadas algumas das definies mais importantes e
justificada a necessidade de segurana na rede, vamos examinar a criptografia. Embora a
utilizao da criptografia para prover confidencialidade seja evidente por si s, veremos em
breve que ela tambm e essencial para prover autenticao, integridade de mensagem, norepudiacao e controle de acesso - O que faz da criptografia uma pedra fundamental da
segurana na rede.
Princpios de Criptografia
Embora a criptografia tenha uma longa histria que remonta, no mnimo, a Julio Csar,
tcnicas modernas de criptografia, incluindo muitas das usadas na Internet, so baseadas em
progressos feitos nos ltimos 30 anos. Trataremos, no entanto, apenas de seus aspectos
essenciais, em particular do modo como as tcnicas criptogrficas so postas em pratica na
Internet. Um excelente site on-line a pgina de perguntas e respostas mais freqentes
(FAQ) do RSA Labs. Observamos tambm que, conquanto nessa seo focalizaremos a
utilizao da criptografia aplicada a confidencialidade, em breve veremos que as tcnicas
Suponha agora que Alice queira enviar uma mensagem a Bob. A mensagem de Alice
em sua forma original (por exemplo, "Bob. I love you. A1ice") conhecida como texto
aberto ou texto claro. Alice criptografa sua mensagem em texto aberto usando um
algoritmo de criptografia, de modo que a mensagem criptografada, conhecida como texto
cifrado, parea ininteligvel para qualquer intruso. O interessante que em muitos sistemas
criptogrficos modernos, incluindo os usados na Internet, a tcnica de codificao
conhecida - publicada, padronizada e disponvel para qualquer um, mesmo para um intruso
em potencial ! Evidentemente, se todos conhecem o mtodo para codificar dados, ento
deve haver alguma informao secreta que impede que um intruso decifre dados
transmitidos. aqui que entra a chave.
Na Figura 2, Alice fornece uma chave, KA, uma cadeia de nmeros ou de caracteres,
como entrada para o algoritmo de criptografia. O algoritmo de criptografia pega essa chave
e o texto aberto da mensagem m, como entrada e produz texto cifrado como sada. A
notao KA(m) refere-se forma do texto cifrado (criptografado usando a chave KA) da
mensagem em texto aberto, m. O algoritmo criptogrfico propriamente dito, que usa a
chave KA, ficar evidente do prprio contexto. De maneira semelhante, Bob fornecera uma
chave, KB, ao algoritmo de decriptao, que pega a texto cifrado e a chave de Bob como
entrada e produz o texto aberto original como sada. Isto , se Bob receber uma mensagem
criptografada KA (m), ele a decriptar calculando KB (KA(m)) = m. Em sistemas de chaves
simtricas, as chaves de Bob e de Alice so idnticas e secretas. Em sistemas de chaves
pblicas, usado um par de chaves. Uma das chaves conhecida. por Bob e por Alice (na
verdade, conhecida pelo mundo inteiro). A outra chave e conhecida apenas por Bob ou
por Alice (mas no por ambos).
Texto cifrado
A mensagem do texto aberto "bob. I love you. Alice. Se torna "nkn, s gktc wky.
mgsbc", conforme ilustrado na Figura 3. Assim, como aconteceu no casa da cifra de Csar,
o texto parece sem nexo. A cifra mono alfabtica tambm parece ser melhor que a cifra de
Csar, pois h 26! (da ordem de 1o26) possveis pares de letras, em vez de 25 pares
possveis!
Uma abordagem de fora bruta que experimentasse todos os 1026 pares possveis
demandaria um esforo demasiadamente grande e impediria que esse fosse um mtodo
vivel para quebrar o algoritmo criptogrfico e decodificar a mensagem. Contudo, pela
anlise estatstica da linguagem do texto aberto, por exemplo, e sabendo que as letras 'e' e 't'
so as mais freqentes em textos em ingls (13 por cento e 9 por cento das ocorrncias de
letras, respectivamente) e sabendo tambm que determinados grupos de duas e de trs letras
aparecem com bastante freqncia em ingls (por exemplo, 'in', 'it', 'the', 'ion', 'ing', e assim
por diante), torna-se relativamente fcil quebrar esse cdigo. Se o intruso tiver algum
conhecimento sobre o possvel texto da mensagem, ento ficar mais fcil ainda quebrar o
cdigo. Por exemplo, se a intrusa Trudy for a esposa de Bob e suspeitar que ele esta tendo
um caso com Alice, ela poder facilmente imaginar que os nomes 'bob' e 'Alice' apaream
no texto. Se Trudy tivesse certeza de que esses dois nomes aparecem no texto cifrado e
tivesse uma cpia do texto cifrado da mensagem do exemplo, ento ela poderia determinar
imediatamente sete dos 26 pares de letras, o que resultaria em 109 possibilidades a menos
para verificar pelo mtodo da fora bruta. Na verdade, se Trudy suspeitasse que Bob estava
tendo um caso, ela poderia muito bem esperar encontrar algumas outras palavras
preferenciais no texto tambm.
Considerando como seria fcil para Trudy quebrar o cdigo criptogrfico de Bob e
Alice, podemos distinguir trs cenrios diferentes, dependendo do tipo de informao que o
intruso tem:
. Ataque exclusivo a texto cifrado. Em alguns casos, o intruso pode ter acesso somente ao texto
cifrado interceptado, sem ter nenhuma informao exata sobre o contedo do texto aberto.
J vimos como a analise estatstica pode ajudar o ataque exclusivo ao texto cifrado em um
esquema criptogrfico.
. Ataque com texto aberto conhecido. Vimos anteriormente que, se Trudy, por alguma razo,
tivesse certeza de que 'bob' e 'a1ice' apareciam no texto cifrado, ela poderia determinar os
pares (texto cifrado, texto aberto) para as letras a, l, i, c, e, b e o. Trudy poderia tambm ser
muito sortuda e ter gravado todas as transmisses de texto cifrado e descoberto uma verso
decifrada pelo prprio Bob escrita em um pedao de papel. Quando um intruso conhece
alguns dos pares (texto aberto, texto cifrado), referimo-nos a isso como ataque ao esquema
criptogrfico a partir de texto aberto conhecido.
. Ataque com texto aberto escolhido. Nesse tipo de ataque, o intruso pode escolher a mensagem
em texto aberto e obter seu texto cifrado correspondente. Para os algoritmos criptogrficos
simples que vimos ate aqui, se Trudy conseguisse que Alice enviasse a mensagem "The
quick fox jumps over the 1azy brown dog", ela poderia decifrar completamente o esquema
criptogrfico, j que esta frase contm todas as letras do alfabeto. Veremos em breve que,
para tcnicas de criptografia mais sofisticadas, um ataque com um texto aberto escolhido
no significa necessariamente que a tcnica criptogrfica possa ser decifrada.
Quinhentos anos atrs foram inventadas tcnicas que aprimoravam a cifra
monoalfabtica, conhecidas como cifras polialfabticas. A idia subjacente criptografia
polialfabtica usar varias cifras monoalfabticas com uma cifra monoalfabtica especifica
para codificar uma letra em uma posio especifica no texto aberto da mensagem. Assim, a
mesma letra, quando aparece em posies diferentes no texto aberto da mensagem, pode ser
codificada de maneira diferente. Um exemplo de esquema criptogrfico polialfabtico e
mostrado na Tabela 2, na qual h duas cifras de Csar (com k = 5 e k = 19), que aparecem
nas linhas da tabela. Podemos optar pelo uso dessas duas cifras de Csar, C1 e C2, seguindo
o modelo de repetio C1, C2, C2, C1, C2, isto , a primeira letra do texto deve ser cifrada
usando-se C1, a segunda e a terceira com C2, a quarta, com C1, e a quinta com C2. O
modelo, ento, se repete, com a sexta letra sendo cifrada usando-se C1, a stima, com C2, e
assim por diante. Dessa maneira, a mensagem em texto aberto "bob, I love you." cifrada
10
como "ghu, n etox dhz.". Note que o primeiro 'b' da mensagem em texto aberto cifrado
usando-se C1, ao passo que o segundo 'b' cifrado usando-se C2. Nesse exemplo, a 'chave'
da codificao e da decodificao o conhecimento das duas cifras de Csar (k = 5, k = 19)
e do modelo C1, C2, C2, C1, C2.
Tabela 2 - Cifra de Substituio Dupla
Texto claro
C1 (k=5)
C2 (k=19)
11
12
13
digitais. interessante que, recentemente, veio luz que idias semelhantes as dos
revolucionrios artigos de Diffie e Hellman New Directions in Criptography, de 1976 e
as do trabalho A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems, Rivest-Shamir e Adleman, de 1978 foram desenvolvidas
independentemente no inicio da dcada de 1970 em uma serie de relatrios secretos escritos
por pesquisadores do Grupo de Segurana para Comunicao e Eletrnica
(Communications-Electronics Security Group) do Reino Unido. Como acontece com
freqncia, grandes idias podem surgir de modo independente em diversos lugares;
felizmente, os progressos da criptografia de chaves pblicas ocorreram no apenas no
mbito privado, mas tambm no publico.
A utilizao de criptografia de chaves pblicas, como conceito, bastante simples.
Suponha que Alice queira se comunicar com Bob. Como mostra a Figura 5, em vez de Bob
e Alice compartilharem uma nica chave secreta (como no caso dos sistemas de chaves
simtricas), Bob (o destinatrio das mensagens de Alice) tem duas chaves - uma chave
pblica, que esta disposio do mundo todo (inclusive disposio de Trudy, a intrusa), e
uma chave privada, que apenas ele (Bob) conhece. Usaremos a notao KB+ e KB- para nos
referirmos s chaves pblica e privada de Bob, respectivamente. Para se comunicar com
Bob, Alice busca primeiramente a chave pblica de Bob. Em seguida, ela criptografa sua
mensagem, m, usando a chave pblica de Bob e um algoritmo criptogrfico conhecido (por
exemplo, padronizado), isto , Alice calcula KB+(m). Bob recebe a mensagem criptografada
de Alice e usa sua chave privada e um algoritmo de decriptao conhecido (por exemplo,
padronizado) para decifrar a mensagem de Alice, isto , Bob calcula KB-(KB+(m)).
14
O algoritmo de criptografia/decriptao.
Para escolher as chaves pblica e privada, Bob deve executar as seguintes etapas:
1. Escolher dois nmeros primos grandes, p e q. Que ordem de grandeza devem ter p e q?
Quanto maiores os valores, mais difcil ser quebrar o RSA, mas mais tempo se levar para
realizar a codificao e a decodificao. O RSA Laboratories recomenda que o produto de p
e q seja da ordem de 1o24 bits para uso empresarial e de 768 bits para utilizao com
informaes menos valiosas (O que nos leva a pensar por que o uso empresarial
considerado muito mais importante do que outros usos!).
2. Computar n = pq e Z = (p - 1)(q - 1).
3. Escolher um nmero e menor do que n que no tenha fatores comuns (exceto o 1) com z.
(Nesse caso, dizemos que e e Z so nmeros primos entre si) A letra 'e' usada j que esse
valor ser utilizado na criptografia ('encryption', em ingls).
4. Achar um nmero d, tal que ed - 1 seja divisvel exatamente (isto e, no haja resto na
diviso) por z. A letra 'd' usada porque seu valor ser utilizado na decriptao. Em outras
palavras, dado e, escolhemos d tal que o resto da diviso de ed por Z seja o nmero inteiro
1 (o nmero inteiro, que o resto da diviso de x por um inteiro n, denominado x mod n).
5. A chave pblica que Bob pe a disposio de todos, KB+, e o par de nmeros (n,e); sua
chave privada, KB-, e o par de nmeros (n,d).
15
A criptografia feita por Alice e a decriptao feita por Bob acontecem como segue:
Suponha que Alice queira enviar a Bob um padro de bits, ou nmero m, tal que m < n.
Para codificar, Alice calcula a potncia me, ento, determina o resto inteiro da diviso
de me por n. Assim, o valor cifrado, c, da mensagem em texto aberto, m, que Alice
envia :
c = me mod n.
Para decifrar a mensagem em texto cifrado recebida, c, Bob processa
m = cd mod n,
que exige o uso de sua chave secreta (n,d).
Como exemplo simples de RSA, suponha que Bob escolha p = 5 e q = 7. (Admitimos
que esses valores so muito pequenos para ser seguros.) Ento, n = 35 e Z = 24. Bob
escolhe e = 5, j que 5 e 24 no tm fatores comuns. Por fim, ele escolhe d = 29, j que 5 x
29 - I (isto , ed - 1) e divisvel exatamente por 24. Ele divulga os dois valores, n = 35 e e =
5, e mantm em segredo o valor d = 29. Observando esses dois valores pblicos, suponha
que Alice queira agora enviar as letras l, o, v e e a Bob. Interpretando cada letra
como um nmero entre 1 e 26 (com 'a' sendo 1 e z sendo 26), Alice e Bob realizam a
criptografia e a decriptao mostradas nas tabelas 3 e 4, respectivamente.
Dado que o exemplo fictcio das tabelas 3 e 4 j produziu alguns nmeros
extremamente grandes, visto que sabemos, porque vimos anteriormente, que p e q devem
ler, cada um, algumas centenas de bits de comprimento, vrias questes prticas nos vem
mente no caso do RSA. Como escolher nmeros primos grandes? Como escolher e e d?
Como calcular exponenciais de nmeros grandes? Consulte referncias sobre criptografia
com fundamentos matemticos mais detalhados para conhecer estas questes.
Observamos aqui que a exponenciao exigida pelo RSA um processo que consome
tempo considervel. O DES, ao contrrio, no mnimo, cem vezes mais veloz em
software e entre mil e dez mil vezes mais veloz em hardware. Como resultado, o RSA
freqentemente usado na prtica em combinao com o DES ou com o AES. Por exemplo,
se Alice quer enviar a Bob uma grande quantidade de dados cifrados a alta velocidade, ela
pode fazer o seguinte. Primeiramente ela escolhe uma chave DES que ser utilizada para
codificar os dados em si; essa chave s vezes e denominada chave de sesso, Ks. Alice deve
informar a Bob essa chave de sesso, j que essa e a chave simtrica compartilhada que eles
usaro para o DES. Ela ento criptografa o valor da chave de sesso usando a chave pblica
RSA de Bob, isto , ela processa C = (Ks)e mod n. Bob recebe a chave de sesso codificada
RSA, c, e a decifra para obter a chave de sesso Ks. Ele agora conhece a chave que Alice
usar para transferir dados cifrados em DES.
Tabela 3 - Criptografia RSA para Alice: e=5, n=35
letra do texto aberto
l
o
v
e
m: representao numrica
12
15
22
5
me
248832
759375
5153632
3125
16
Texto cifrado
17
15
22
10
17
Autenticao
Autenticao o processo de provar a prpria identidade a algum. Como seres
humanos, autenticamo-nos mutuamente de muitas maneiras: reconhecemos
mutuamente nosso rosto quando nos encontramos, reconhecemos mutuamente nossa
voz ao telefone, somos autenticados pela autoridade alfandegria que nos compara ; foto
em nosso passaporte.
Nesta seo, veremos como uma parte pode autenticar uma outra parte quando as duas
esto se comunicando por uma rede. Examinaremos aqui a autenticao de uma parte 'ao
vivo', no instante em que a comunicao est realmente ocorrendo. Veremos que h uma
diferena sutil entre esse problema e o problema de provar que uma mensagem recebida em
algum momenta no passado (e que pode ter sido arquivada, por exemplo) e, na verdade, de
quem se declarou como o remetente. Esse ltimo problema denominado problema da
assinatura digital, um assunto que examinaremos adiante.
Ao fazerem autenticao pela rede, as partes comunicantes no podem confiar em
informaes biomtricas, como a aparncia visual ou a voz caracterstica. Na verdade,
veremos em nossos estudos de casa posteriores que muitas vezes so componentes da
rede, como roteadores e processos cliente-servidor, que devem se autenticar mutuamente.
Aqui, a autenticao deve ser feita exclusivamente na base de mensagens e de dados
trocados como parte de um protocolo de autenticao. Normalmente, um protocolo de
autenticao seria executado antes que as duas partes comunicantes executassem qualquer
outro protocolo (por exemplo, um protocolo de transferncia confivel de dados, um
protocolo de troca de informaes de roteamento ou um protocolo de e-mail). O protocolo
de autenticao estabelece primeiramente as identidades das partes de maneira satisfatria
para ambas; somente aps a autenticao, as partes se lanam tarefa que tem em mos.
Achamos instrutivo desenvolver vrias verses de um protocolo de autenticao, que
denominaremos pa (protocolo de autenticao) e que apresentaro alguns furos em cada
verso medida que avanarmos.
Vamos admitir que Alice precisa se autenticar para Bob.
18
protocolo em que Alice apenas envia uma mensagem a Bob dizendo que ela Alice. Esse
protocolo mostrado na Figura 6. A falha aqui bvia - no h meios de Bob saber se a
pessoa que esta enviando a mensagem "Eu sou Alice" realmente Alice. Por exemplo,
Trudy (a intrusa) poderia muito bem enviar essa mensagem.
19
20
21
22
(KA -(R)). Lembre-se da nossa discusso sobre a criptografia de chave pblica RSA, onde
definimos que:
KA + (KA - (R)) = R. Assim, Bob calcula R e autentica Alice.
23
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
ningum percebera que alguma coisa est errada. Esse e um exemplo do denominado
ataque do homem do meio (no caso, da 'mulher do meio' - Trudy). s vezes ele tambm
denominado 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 (a
'brigada do balde') que esto apagando um incndio utilizando uma fonte de gua
longnqua.
Integridade
Pense no nmero de vezes em que voc assinou seu nome em um pedao de papel
24
25
voil, com dramtica encenao, produz m, que uma reproduo exata do documento
original! Ela ento argumenta que somente Bob poderia ter assinado o documento pelas
seguintes razoes:
Quem quer que tenha assinado o documento deve ter usado a chave criptogrfica
privada, KB-, para processar a assinatura KB-(m), de modo que KB+(KB -(m)) = m.
A nica pessoa que poderia conhecer a chave privada KB- , Bob. Lembre-se de que
dissemos em nossa discusso do RSA que conhecer a chave pblica, KB+, no serve
para descobrir a chave privada, KB-. Portanto, a nica pessoa que poderia conhecer KB aquela que gerou o par de chaves, (KB+, KB-), em primeiro lugar, Bob. (Note que, para
isso, admitimos que Bob no passou KB- a ningum e que ningum roubou KB- 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 valida para m' ,j que
KB+(KB- (m)) no igual a m'.
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 no repudivel e que protege contra modificaes posteriores
do documento.
Resumos de mensagem
Vimos na subseo anterior que a tecnologia de chaves pblicas pode ser usada para
criar uma assinatura digital. Uma preocupao quanto assinatura de dados por criptografia
que, criptografar e decriptar so processamentos dispendiosos em termos computacionais.
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 roteamento e agentes de usurios trocando correspondncia por e-mail)
trocam dados rotineiramente que talvez no precisassem ser criptografados. No entanto,
eles querem garantir que:
O remetente dos dados quem diz ser, ou seja, que o remetente assinou 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.
26
processada para os dados originais (e transmitida com os dados) no combinar com H(m')
processada sobre os dados modificados, m'. Conquanto o resumo de mensagem proporcione
integridade aos dados, que auxilio presta na assinatura da mensagem m. O objetivo aqui e
que, em vez de Bob assinar digitalmente a mensagem inteira processando KB-(m), e1e
possa assinar apenas o resumo de mensagem processando KB-(H(m)). Isto , ter m e KB(H(m')) juntos (note que m no criptografada) deve ser to bom quanto ter uma
mensagem completa assinada KB-(m). Isso significa que m e KB-(H(m)), juntos, devem ser
no falsificveis, verificveis e no repudiveis. 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 (Checksum) ou de um cdigo de deteco de erros mais poderoso,
como a verificao de redundncia cclica (CRC). 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 14, 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 um resumo de mensagem to bom quanto assinar a mensagem
inteira, em particular se isso satisfar a exigncia de no haver possibilidade de falsificao,
ento o algoritmo de resumo de mensagem deve ter a seguinte propriedade adicional:
27
Bob processa sua mensagem longa original por meio de uma funo de hash para criar
um resumo de mensagem. Ento, ele assina digitalmente o resumo de mensagem com sua
chave privada. A mensagem original (em texto aberto) e o resumo de mensagem assinado
digitalmente (daqui em diante denominado assinatura digital) so, ento, enviados a Alice.
Ao receber esta mensagem Alice executa o procedimento ilustrado na figura 16. Alice
aplica a chave pblica do remetente mensagem para recuperar o resumo de mensagem.
Ela tambm aplica a funo de hash ao texto aberto da mensagem para obter um segundo
resumo de mensagem. Se os dois resumos coincidirem, ento Alice poder ter certeza
quanto integridade e ao autor da mensagem.
28
uma soma de verificao tratando cada caractere como um byte e somando os bytes usando
pores de 4 bytes por vez. Suponha que Bob deva a Alice 100,99 dlares e lhe envie um
vale contendo a sentena encadeada 'IOU100.99BOB.' (IOU - I Owe You - Eu lhe devo.) A
representao ASCII (em notao hexadecimal) para essas letras 49, 4F, 55, 31, 30, 30,
2E, 39, 39, 42, 4F, 42.
A Figura 17 (parte de cima) mostra que a soma de verificao de 4 bytes para essa
mensagem B2 Cl D2 AC. Uma mensagem ligeiramente diferente (e que sairia muito mais
cara para Bob) mostrada na parte de baixo da Figura 17. As mensagens 'IOUlOO.99BOB'
e 'IOU9oo.19BOB' tem a mesma soma de verificao. Assim, esse algoritmo simples viola
as duas exigncias citadas anteriormente. Fornecidos os dados originais, simples
descobrir outro conjunto de dados com a mesma soma de verificao.
E
claro que, para efeito de segurana, precisaremos de uma funo de hash muito mais
poderosa do que uma soma de verificao.
O algoritmo de resumo de mensagem MD5 de Ron Rivest (RFC 1321) amplamente
usado hoje. Ele processa um resumo de mensagem de 128 bits por meio de um processo de
quatro etapas, constitudo de uma etapa de enchimento (adio de um 'um' seguido de
'zeros' suficientes, de modo que o comprimento da mensagem satisfaa determinadas
condies), uma etapa de anexao (anexao de uma representao de 64 bits do
comprimento da mensagem antes do enchimento), uma etapa de inicializao de um
acumulador e uma etapa final iterativa, na qual os blocos de 16 palavras da mensagem so
processados (misturados) em quatro rodadas de processamento. No se sabe se o MD5 de
fato satisfaz as exigncias citadas anteriormente. Rivest, o autor do MD5, declara:
"Conjetura-se que a dificuldade de produzir duas mensagens que tenham o mesmo resumo
da ordem de 264 operaes e que a dificuldade de produzir qualquer mensagem que tenha
um dado resumo de mensagem da ordem de 2128 operaes". Ningum contestou essa
declarao. Para uma descrio do MD5 (incluindo uma implementao em cdigo de fonte
C, consulte a RFC 1321).
O segundo principal algoritmo de resumo de mensagem em uso atualmente o SHA-l
(secure hash algorithm - algoritmo de hash seguro). Esse algoritmo se baseia em princpios
similares aos usados no projeto do MD4 (RFC 132o), o predecessor do MD5. O uso do
SHA-l, um padro federal norte-americano, exigido sempre que aplicaes de mbito
federal precisarem de um algoritmo de resumo de mensagem seguro. Ele produz um
resumo de mensagem de 16o bits. a resultado mais longo toma o SHA-l mais seguro.
29
30
Figura 18 - Estabelecimento de uma chave de sesso nica usando uma central de distribuio de
chaves
Kerberos
Kerberos [RFC 1510] um servio de autenticao desenvolvida no MIT que usa
tcnicas de criptografia de chaves simtricas e uma central de distribuio de chaves.
Embora seja conceitualmente idntico a central genrica de distribuio de chaves [KDC]
descrita anteriormente, seu vocabulrio ligeiramente diferente. O Kerberos contm
tambm diversas variaes e extenses interessantes dos mecanismos bsicos do KDC. O
servio foi projetado para autenticar usurios que acessam servidores de rede e era
inicialmente dirigido para a utilizao dentro de um nico domnio administrativo, como
um campus ou uma empresa. Assim, o Kerberos estruturado na linguagem de usurios
que querem acessar servios de rede (servidores) utilizando programas de rede de camada
de aplicao como o Telnet (para login remoto) e o NFS (para acesso a arquivos remotos),
em vez de ser estruturado no linguagem de pessoas que querem conversar entre si e
precisam se autenticar mutuamente, como nos nossos exemplos apresentados ate aqui. No
obstante, a chave (trocadilho proposital) subjacente s duas tcnicas continua a mesma.
O servidor de autenticao (authentication Server - SA) do Kerberos desempenha o
papel da KDC. Ele e o repositrio no apenas das chaves secretas de todos os usurios (de
modo que cada usurio pode se comunicar com o SA com segurana), mas tambm das
informaes sobre quais usurios tem privilgios de acesso a quais servios em quais
servidores de rede. Quando Alice quer acessar um servio em Bob (que agora consideramos
um servidor), o protocolo segue fielmente o exemplo dado na Figura 18.
1. Alice contata o SA Kerberos, indica que quer usar Bob. Toda a comunicao entre Alice e o
SA criptografada usando uma chave secreta compartilhada entre Alice e o SA. No
Kerberos, Alice primeiramente fornece seu nome e senha a seu hospedeiro local. Este e o
SA ento determinam a chave de sesso secreta nica para criptografar a comunicao
entre Alice e o SA.
2. O SA autentica Alice, verifica se ela tem privilgios de acesso a Bob, e gera uma chave
simtrica de sesso nica, R1, para a comunicao entre Bob e Alice. O servidor de
autenticao (na terminologia do Kerberos servidor bilheteiro) envia a Alice o valor de R1 e
tambm um bilhete de entrada para os servios de Bob. O bilhete contm o nome de Alice,
a chave da sesso Alice - Bob, R1, e o prazo de validade, tudo criptografado usando a chave
secreta de Bob (conhecida apenas por Bob e por SA), como ilustrado na Figura 18. O
bilhete de Alice vlido s at o fim do prazo de validade, e ser rejeitado por Bob se
apresentado aps esse horrio. Para a Kerberos V4, O tempo mximo de vida til de um
31
bilhete de cerca de 21 horas. Na Kerberos V5, o tempo de vida til deve expirar antes do
final do ano 9999, um srio problema para o ano 10000 !
3. Alice ento envia seu bilhete a Bob. Ela tambm envia uma marca de tempo criptografada
por R1 que usada como um nonce. Bob decripta o bilhete usando sua chave secreta,
obtm a chave de sesso e decripta a marca de tempo utilizando a chave de sesso que
acabou de descobrir. Ele devolve o nonce Alice, criptografado por R1, mostrando, assim,
que ele conhece R1 e que est ao vivo.
A verso mais recente do Kerberos (V5) fornece suporte para vrios servidores de
autenticao, delegao de direitos de acesso e bilhetes renovveis. A RFC 1510 d mais
detalhes sobre o assunto.
1. Usando KA-KDC para criptografar sua comunicao com a KDC, Alice envia uma
mensagem a KDC dizendo que ela (A) quer se comunicar com Bob (B). Denominamos essa
mensagem KA-KDC(A, B).
2. A KDC, como conhece KA-KDC, decripta KA-KDC(A, B). Em seguida, ela gera um nmero
aleatrio R1. Esse o valor da chave compartilhada que Alice e Bob usaro para realizar
criptografia simtrica quando se comunicarem mutuamente. Essa chave denominada
chave de sesso nica, pois Alice e Bob a utilizaro apenas durante essa nica sesso. A
KDC agora precisa informar o valor de R1 Alice e Bob. Assim, ela devolve uma
mensagem a Alice, criptografada usando KA-KDC, contendo o seguinte:
R1, a chave de sesso nica que Alice e Bob usaro para comunicao.
Um par de valores: A e R1, criptografados pela KDC usando a chave de Bob, KBKDC Denominamos esse valor KB-KDC(A, R1). importante notar que a KDC est
enviando Alice no somente o valor de R1 para seu uso, mas tambm uma verso
criptografada de R1 e o nome de Alice, criptografado usando a chave de Bob. Alice
no pode decriptar esse par de valores na mensagem (ela no conhece a chave
criptogrfica de Bob), mas, na verdade, ela no precisa faz-lo. Veremos em breve
que Alice simplesmente repassa o par de valores criptografados para Bob, que pode
decifr-los.
A KDC coloca esses itens em uma mensagem, criptografa-os usando a chave compartilhada
de Alice e os envia a ela. A mensagem da KDC para Alice e, portanto, KA-KDC (R1,KBKDC(R1)).
3. Alice recebe a mensagem da KDC, decripta a mensagem e dela extrai R1. Agora Alice
conhece a chave de sesso nica, R1. Ela tambm extrai KB-KDC(A, R1) e a repassa a Bob.
4. Bob decripta a mensagem recebida, KB-KDC(A, R1), usando KB-KDC e extrai A e R1. Ele
agora conhece a chave de sesso nica R1 e sabe quem e a pessoa com a qual esta
compartilhando essa chave, A. claro que ele toma o cuidado de autenticar Alice usando
R1 antes de prosseguir.
Certificao de Chaves Pblicas
Uma das caractersticas principais da criptografia de chaves pblicas e que possvel
que duas entidades troquem mensagens secretas sem ter de trocar chaves secretas. Por
exemplo, quando Alice quer enviar uma mensagem secreta a Bob, ela simplesmente
32
criptografa a mensagem com a chave pblica de Bob e lhe envia a mensagem criptografada;
Alice no precisa conhecer a chave privada de Bob nem Bob precisa conhecer a chave
privada de Alice. Assim, a criptografia de chaves pblicas evita a necessidade de infraestrutura de KDC.
Evidentemente, mesmo com criptografia de chaves pblicas, as entidades comunicantes
ainda tm de trocar chaves pblicas. Um usurio pode disponibilizar sua chave pblica de
muitas maneiras. Por exemplo, apresentando a chave em sua pgina Web pessoal.
Colocando-a em um servidor de chaves pblicas ou enviando-a a um correspondente por email. Um site Web de comrcio pode colocar sua chave pblica em seu servidor de modo
que os browsers descarreguem automaticamente a chave pblica quando se conectam com
o site. Roteadores podem colocar suas chaves pblicas em servidores de chaves pblicas,
permitindo, desse modo, que outras entidades da rede as recuperem.
H, contudo, um problema sutil, mas critico, com a criptografia de chaves pblicas.
Para perceber melhor esse problema, vamos considerar uma transao comercial pela
Internet, por exemplo. Suponha que Alice trabalhe no ramo de pizzas para viagem e que
aceite pedidos pela Internet. Bob, que adora pizza, envia a Alice uma mensagem em texto
aberto que contem o endereo de sua casa e o tipo de pizza que quer. Nessa mensagem, ele
inclui tambm uma assinatura digital, isto , um resumo de mensagem assinado extrado da
mensagem original em texto aberto. Alice pode obter a chave pblica de Bob (de sua
pagina Web pessoal, de um servidor de chaves pblicas ou de uma mensagem de e-mail) e
verificar a assinatura digital. Dessa maneira, ela se certifica de que foi Bob, e no algum
adolescente brincalho, quem fez o pedido.
Tudo parece caminhar bem ate que entra em cena a esperta Trudy. Trudy decide fazer
uma travessura. Ela envia uma mensagem a Alice na qual diz que Bob. Fornece o
endereo de Bob e pede uma pizza. Ela tambm anexa uma assinatura digital, mas faz isso
assinando o resumo de mensagem com sua chave privada. Ela tambm se faz passar por
Bob enviando a Alice sua chave pblica, mas dizendo que a chave pertence a Bob. Nesse
exemplo, Alice aplicar a chave pblica de Trudy (pensando que a de Bob) assinatura
digital e concluir que a mensagem em texto aberto foi, na verdade, criada por Bob. Este
ficar muito surpreso quando o entregador aparecer em sua casa com uma pizza bem
variada!
Por esse exemplo, vemos que, para que a criptografia de chaves pblicas seja til, as
entidades (usurios, browsers, roteadores e outras) precisam ter certeza de que possuem a
chave pblica da entidade com a qual esto se comunicando. Por exemplo, quando Alice
estiver se comunicando com Bob usando criptografia de chaves pblicas, ela precisar
saber, com certeza, que a chave pblica que supostamente de Bob, de fato dele.
Tnhamos preocupaes semelhantes em nossos protocolos de autenticao apresentados
nas figuras 11 e 12.
A vinculao de uma chave pblica a uma entidade particular feita, tipicamente, por
uma autoridade certificadora (certification authority - CA), cuja tarefa validar identidades
e emitir certificados. Uma CA tem as seguintes incumbncias:
1. Uma CA verifica se uma entidade (pessoa, roteador e assim por diante) quem diz ser. No
h procedimentos obrigat6rios para o modo como deve ser feita a certificao. Quando
tratamos com uma CA, devemos confiar que ela tenha realizado uma verificao de
identidade adequadamente rigorosa. Por exemplo, se Trudy conseguisse entrar na
autoridade certificadora Fly-by-Night, e simplesmente declarasse "Eu sou Alice" e
recebesse certificados associados identidade de Alice, ento no se deveria dar muita
33
Vejamos, agora, como certificados podem ser usados para combater os espertinhos das
pizzas, como Trudy e outros indesejveis. Quando Alice recebe o pedido de Bob, ela obtm
o certificado de Bob, que pode estar na pgina Web dele, em uma mensagem de e-mail ou
em um servidor de certificados. Alice usa a chave pblica da CA para verificar a validade
do certificado de Bob assinado pela CA. Se admitirmos que a chave da prpria CA
conhecida de todos (por exemplo, poderia ser divulgada em um local pblico, conhecido e
de confiana, como o jornal The New York Times, de modo que todos a conheam e que
no possa ser falsificada), ento Alice pode ter certeza de que esta realmente tratando com
Bob. A Figura 19 ilustra as etapas envolvidas na criptografia de chaves pblicas mediada
por uma CA. Voc pode ver os certificados de CAs armazenados em seu browser Netscape
clicando Communicator, Tools, Security Info, Certificates; no Internet Explorer, clique
Tools, Internet Options, Content, Certificates.
Tabela 5 - Campos de um Certificado X.509 e RFC 1422
Nome do campo Descrio
Verso
Nmero da verso da especificao X.509
Nmero de
Identificador exclusivo emitido pela CA para um certificado
Srie
Especifica o algoritmo usado pela CA para assinar esse certificado
Assinatura
Identidade da CA que emitiu o certificado em formato de nome distinto
Nome do
(DN) [RFC 2253]
emissor
Perodo de
Incio e fim do perodo de validade do certificado
validade
Nome do sujeito
Chave pblica
do sujeito
34
35
36
Como exemplo simples, um filtro pode ser ajustado para bloquear todos os segmentos
UDP e todas as conexes Telnet. Essa configurao evita que o pessoal externo se conecte
com os hospedeiros internos usando Telnet e que o pessoal interno se conecte com
hospedeiros externos usando Telnet, bloqueando todos os segmentos TCP (cada um
encapsulado em um datagrama) cujo nmero de porta de origem ou de destino seja 23 (que
corresponde ao Telnet). A filtragem do trfego UDP uma poltica popular nas empresas para desgosto dos fornecedores de udio e vdeo de fluxo continuo, cujos produtos entram
por UDP no modo default. A filtragem de conexes Telnet tambm popular, pois impede
que intrusos se conectem aos computadores internos e prov uma lista de portas e
protocolos de filtragem de pacotes recomendados para evitar inmeros furos de segurana
muito conhecidos em aplicaes de rede existentes.
Uma poltica de filtragem tambm pode ser baseada na combinao de endereos e
nmeros de porta.
Por exemplo, o roteador de filtragem pode bloquear todos os datagramas Telnet (os
que tm nmero deporta 23), exceto os que esto vindo ou indo de ou para uma lista de
endereos IP especficos. Essa poltica permite conexes Telnet de e para os hospedeiros
que esto na lista. Infelizmente, basear a poltica em endereos externos no oferece
nenhuma proteo contra datagramas cujo endereo de fonte pertence a um hospedeiro que
esto na lista de permitidos, mas que, na verdade, foi enviado por um outro hospedeiro (que
muito provavelmente pertence a um bandido que falsificou o endereo de fonte dos
datagramas). Examinaremos esse tipo de falsificao de IP, denominada spoofing, mais
adiante.
A filtragem pode tambm ser baseada no bit TCP ACK ter ou no valor. Esse
estratagema bastante til quando uma organizao quer permitir que seus clientes internos
se conectem com servidores externos, mas quer impedir que clientes externos se conectem
com servidores internos. Lembre-se de que o primeiro segmento de todas as conexes TCP
tem o bit ACK com valor 0, ao passo que todos os outros segmentos da conexo tm o bit
ACK com valor 1. Assim, se uma organizao quiser impedir que clientes externos iniciem
uma conexo com servidores internos, ela simplesmente filtrar todos os segmentos que
entram que tenham o bit ACK ajustado em 0. Essa poltica elimina todas as conexes TCP
originadas do exterior, mas permite conexes que se originam internamente.
Embora esses exemplos possam dar a impresso de que razoavelmente fcil
especificar regras de filtragem que implementem uma determinada poltica de segurana,
na verdade h muitas sutilezas e armadilhas potenciais envolvidas. Para ilustrar algumas
dessas questes, vamos considerar um exemplo simples. A filtragem de pacotes funciona
verificando regras de filtragem seqencialmente em relao ao datagrama que est sendo
inspecionado; a primeira regra que foi verificada pelo datagrama determina a ao a ser
executada. Nosso cenrio e o seguinte: suponha que Alice administra uma rede empresarial
222.22.0.0/16 e, como regra geral, quer rejeitar acesso a sua rede a partir da Internet pblica
(regra R3 na Tabela 6). Todavia, Alice esta colaborando com Bob e seus colegas, que esto
em uma universidade, e, portanto, ela quer permitir que usurios da universidade de Bob
(cujo endereo de rede 111.11/16) tenham acesso a uma sub-rede especifica,
222.22.22/24, dentro da rede de sua empresa (regra R1). Um fator complicador que
37
Trudy, uma hacker muito conhecida, est na mesma universidade de Bob e sua sub-rede,
11l.1l.11/24, um porto inseguro repleto de hackers. Portanto, Alice no quer que nenhum
trfego que venha de 111.11.11/24 entre em nenhum lugar de sua rede (regra R2). As regras
de filtragem de pacotes de Alice esto resumidas na Tabela 6.
Tabela 6 - Regras de Filtragem de Pacotes
Regra Endereo de Endereo de Ao
Comentrios
Fonte
destino
R1
111.11/16
222.22.22/24 permitir Permite a entrada de datagramas da rede
da universidade de Bob em uma subrede restrita
R2
111.11.11/24 222.22/16
negar
No permite que trfego da sub-rede de
Trudy entre em nenhum lugar da rede
de Alice
R3
0.0.0.0/0
0.0.0.0/0
negar
No permite a entrada de trfego na
rede de Alice.
Tabela 7 - Resultado da filtragem de pacotes segundo a seqncia das regras
N.
IP origem
IP destino
Ao
Ao sob R2, R1, Ao sob R1,
datagrama
R3
R2, R3
P1
111.11.11.1
222.22.6.6
negar
Negar (R2)
Negar (R2)
subrede de rede
da
hackers
empresa
P2
111.11.11.1
222.22.22.2
negar
Negar (R2)
Permitir (R1)
subrede de subrede
hackers
especial
P3
111.11.6.6
222.22.22.2
permitir Permitir (R1)
Permitir (R1)
subrede da subrede
universidade, especial
exceto
a
subrede dos
hackers
P4
111.11.6.6
222.22.6.6
negar
Negar (R3)
Negar (R3)
subrede da rede
da
universidade, empresa
exceto
a
subrede dos
hackers
A Tabela 7 mostra a manipulao de datagramas selecionados pelo firewall da empresa
de Alice quando as regras so aplicadas segundo uma de duas seqncias diferentes.
Quando as regras so aplicadas na seqncia que comea pelo endereo de fonte mais
38
especfico: R2, R1, R3 (a penltima coluna na Tabela 7), obtemos os resultados desejados:
datagramas como P1, cuja fonte esta na sub-rede de hackers e cujo destino est dentro da
rede da empresa, mas fora da sub-rede especial, so impedidos de passar pelo firewall (pela
Regra 2). De modo semelhante, datagramas como P2, que vem da sub-rede de hackers e se
destinam sub-rede especial, so impedidos de passar pelo firewall (pela Regra 2). Sob a
seqncia de regras R2, R1, R3, datagramas que vem da rede geral da universidade tem
permisso de passar para a sub-rede especial (datagrama P3), mas so impedidos de entrar
em outras partes da rede da empresa (datagrama P4).
Suponha, entretanto, que as regras so aplicadas na seqncia R1, R2, R3 (a ltima
coluna na Tabela 7). Nesse caso, o datagrama P2 obtm, por engano, acesso a sub-rede
especial sob a regra R1, vista que os endereos de fonte e de destino de P2 esto de acordo
com a especificao de fonte e de destino segundo a regra R1, e essa regra esta sendo
aplicada em primeiro lugar. A lio que nos d esse simples exemplo com trs regras
clara - a seqncia de avaliao de regras pelo firewall importante. Fica claro que
preciso pensar nisso com muito cuidado - imagine as dificuldades envolvidas na
especificao de firewalls com milhares de regras! Poderamos nos sentir tentados a pensar
que aplicar regras mais especificas em primeiro lugar poderia sempre evitar
comportamentos no previstas ou indesejados que surgissem em razo da seqncia de
regras. Entretanto, veremos nos problemas ao final deste capitulo que esse no e
necessariamente o caso.
Gateway de Aplicao
Nos exemplos que acabamos de mostrar, vimos que a filtragem de pacotes permite que
uma organizao faa uma filtragem grosseira de cabealhos IP e TCP/UDP, incluindo
endereos IP, nmeros de porta e bits de reconhecimento. Vimos, par exemplo, que.a
filtragem baseada em uma combinao de endereos IP e nmeros de porta pode permitir
que clientes internos executem Telnet para a exterior, ao mesmo tempo em que impede que
clientes externos executem Telnet para a interior. Mas, e se uma organizao quiser
fornecer o servio Telnet a um conjunto restrito de usurios internos (em vez de a
endereos IP)? E se a organizao quiser que esses usurios privilegiados se autentiquem
antes de obter permisso para criar sesses Telnet com o mundo externo? Essas tarefas
esto alm das capacidades de um filtro. Na verdade, informaes sobre a identidade de
usurios internos no esto includas nos cabealhos IP/TCP/UDP; elas esto nos dados da
camada de aplicao.
Para assegurar um nvel mais refinado de segurana, as firewalls tm de combinar filtro
de pacotes com gateways de aplicao. Gateways de aplicao fazem mais do que examinar
cabealhos IP/TCP/UDP e tomam decises com base em dados da aplicao. Um gateway
de aplicao um servidor especifico de aplicao atravs do qual todos os dados da
aplicao (que entram e que saem) devem passar Vrios gateways de aplicao podem
executar no mesmo hospedeiro, mas cada gateway um servidor separado, com seus
prprios processos.
Para termos uma percepo dos gateways de aplicao, vamos projetar um firewall que
permite que apenas um conjunto restrito de usurios execute Telnet para o exterior e
impede que todos os clientes externos executem Telnet para o interior. Essa poltica pode
39
O filtro do roteador est configurado para bloquear todas as conexes Telnet, exceto
aquelas que se originam do endereo IP do gateway de aplicao. Essa configurao de
filtro fora todas as conexes Telnet de sada a passarem pelo gateway de aplicao.
Considere agora um usurio interno que quer executar Telnet com o mundo exterior. Em
primeiro lugar, ele tem de estabelecer uma sesso Telnet com o gateway de aplicao. Uma
aplicao que est executando no gateway - e que fica escuta de sesses Telnet que
entram solicita ao usurio sua identificao e senha. Quando o usurio fornece essas
informaes, o gateway de aplicao verifica se ele tem permisso para executar Telnet
com o mundo exterior. Se no tiver, a conexo Telnet do usurio interno ao gateway ser
encerrada pelo gateway. Se o usurio tiver permisso, o gateway (1) pedira ao usurio o
nome do computador externo com o qual ele quer se conectar, (2) estabelecera uma sesso
Telnet entre o gateway e o hospedeiro externo e (3) passar ao hospedeiro externo todos os
dados que chegam do usurio e ao usurio todos os dados que chegam do hospedeiro
externo. Assim, o gateway de aplicao Telnet no s autoriza o usurio, mas tambm atua
como um servidor Telnet e um cliente Telnet, passando informaes entre o usurio e o
servidor Telnet remoto. Note que o filtro permitir a etapa 2, porque o gateway que inicia
a conexo Telnet com o mundo exterior.
Redes internas freqentemente tm vrios gateways de aplicao, como gateways para
Telnet, HTTP, FTP e e-mail. De fato, o servidor de correio e o cache Web de uma
organizao so gateways de aplicao.
Gateways de aplicao no esto isentos de desvantagens. Em primeiro lugar, preciso um
gateway de aplicao diferente para cada aplicao diferente. Em segundo lugar, h um
preo a pagar em termos de desempenho, visto que todos os dados sero repassados por
meio do gateway. Isso se torna uma preocupao particularmente quando vrios usurios
ou aplicaes esto utilizando o mesmo gateway. Por fim, preciso fazer certo esforo
extra de configurao. H duas alternativas:
Quando o usurio faz uma solicitao, o software cliente tem de saber como contatar o
40
Ataques e Contramedidas
Agora que j examinamos criptografia/decriptao, autenticao, integridade de
mensagem, distribuio de chaves e firewalls, vamos ver como essas tcnicas podem ser
utilizadas para combater vrios ataques que j foram lanados contra uma rede. Alguns dos
ataques mais sensacionais segurana, como o CodeRed, o vrus Melissa e o verme
Slammer usam a Internet para se propagar, mas atacam sistemas operacionais (via
transbordamento de buffer em um servidor Microsoft IIS, no caso do Code Red) ou
softwares de aplicao (Microsoft Word, no caso do vrus Melissa) em vez de atacar a rede
em si. Como esta apostila trata de redes, concentraremos nosso foco em ataques que
exploram, desabilitam ou envolvem a rede de algum modo especial.
Mapeamento
No mundo real (no sentido de oposto ao mundo ciberntico), um ataque e quase sempre
precedido de coleta de informaes. Em filmes, gangsteres 'vigiam o ponto'; soldados
fazem o reconhecimento da rea. A finalidade e bvia - quanto mais soubermos sobre o
alvo, menor a probabilidade de sermos pegos e maior a probabilidade de sucesso. Isso
tambm vale para o mundo ciberntico. Antes de atacar uma rede, os invasores gostariam
de saber os endereos IP das mquinas pertencentes rede, quais sistemas operacionais elas
utilizam e os servios que esses sistemas oferecem. Com essas informaes, os ataques
podem ter um foco mais concentrado e a probabilidade de causar alarme e menor. O
processo de coleta de informaes conhecido como mapeamento.
Um programa como o ping pode ser utilizado para determinar os endereos IP das
mquinas presentes na rede simplesmente observando quais endereos respondem
mensagem ping. Varredura de portas (port scanning) refere-se . tcnica de contatar
seqencialmente (seja via uma requisio de conexo TCP, seja via um simples datagrama
UDP) nmeros de portas em uma mquina e ver o que acontece em resposta. Essas
respostas, por sua vez, podem ser usadas para determinar os servios (por exemplo, HTTP
ou FTP) oferecidos pela mquina. o Nmap uma aplicao de cdigo-fonte aberto
41
Anlise de pacotes
Um analisador de pacotes (packet sniffer) um programa que funciona em um
dispositivo acoplado rede e que recebe passivamente todos os quadros de camada de
enlace que passam por sua interface de rede. Em ambiente broadcast como uma LAN
Ethernet, isso significa que o analisador de pacotes recebe todos os quadros que esto sendo
transmitidos de ou para todos os hospedeiros na LAN. Qualquer hospedeiro que tenha uma
placa Ethernet pode facilmente servir de analisador de pacotes, pois basta ajustar o
adaptador da Ethernet no modo promscuo (promiscuous mode) para que ele receba todos
os quadros que passam pela Ethernet. Esses quadros podem, ento, ser passados aos
programas de aplicao que extraem dados de camada de aplicao. Por exemplo, no
cenrio Telnet mostrado na Figura 23, o pedido de senha de login enviado de A para B bem como a senha informada em B - analisado no hospedeiro C. Aps obter senhas de
acesso a contas de usurios, intrusos podem se fazer passar pelos donos das contas para
lanar um ataque de negao de servio, como discutiremos mais.adiante. Assim, a anlise
de pacotes uma faca de dois gumes - pode ser de inestimvel valor para um administrador
de rede realizar a monitorao e a administrao da rede, mas tambm pode ser usada por
um hacker inescrupuloso.
Softwares para anlise de pacotes podem ser obtidos de graa em vrios sites Web ou
adquiridos no mercado. Sabe-se que professores que ministram cursos sobre redes tem
passado exerccios de laboratrio que envolvem escrever um programa de anlise de
pacotes e de recuperao de dados no nvel de aplicao.
A chave para detectar anlise de pacotes e detectar interfaces de rede que esto
configuradas para modo promiscuo. Quando se trata de uma empresa, os administradores
de redes podem instalar um software em todos os computadores, que os alertar quando
uma interface est configurada para modo promiscuo. Ha vrios estratagemas que tambm
podem ser executados remotamente para detectar interfaces promiscuas.
42
43
estrutura de dados e estado. A terceira etapa da apresentao de trs vias nunca concluda
pelo atacante, o que deixa um nmero cada vez maior de conexes parcialmente abertas. A
carga de pacotes SYN a ser processada e a exausto da memria livre podem derrubar o
servidor. Uma forma relacionada de ataque envia fragmentos IP a um hospedeiro, mas
nunca um nmero suficiente desses fragmentos que completem um datagrama,
consumindo, com o passar do tempo, uma quantidade cada vez maior de armazenamento.
Um ataque smurf funciona fazendo com que um grande nmero de hospedeiros inocentes
responda a pacotes ICMP de solicitao de eco que contm um endereo IP de fonte
falsificado. Isso resulta no envio de um grande nmero de pacotes ICMP de resposta de eco
ao hospedeiro cujo endereo IP objeto da falsificao.
Em um ataque de negao de servio distribudo (DDoS), em primeiro lugar o atacante
obtm acesso s contas de usurios em inmeros hospedeiros por toda a Internet (por
exemplo, analisando senhas ou entrando nas contas de usurios por outros meios). O
atacante ento instala e executa um programa escravo em cada site comprometido que fica
l, esperando, quietinho, pelos comandos de um programa mestre. To logo um grande
nmero de programas escravos esteja executando, o programa mestre contacta cada um
deles e lhes passa instrues para lanar um ataque DoS contra algum hospedeiro escolhido
como alvo. O ataque coordenado resultante dessa manobra particularmente devastador,
pois vem de muitas direes ao mesmo tempo.
Ataques DoS chegaram s manchetes em fevereiro de 2000 quando os sites da eBay, do
Yahoo, da CNN e outros sites de grande porte foram atacados. E
difcil se proteger contra ataques DoS e, mais difcil ainda, contra ataques DDoS. A
filtragem de pacotes difcil porque e difcil distinguir datagramas bons de datagramas
ruins. Por exemplo, como um firewall de filtragem de pacotes sabe se um SYN que est
chegando para uma conexo legitima (por exemplo, para um cliente que quer fazer uma
compra no site da empresa) ou se e um SYN mal-intencionado que travar os recursos do
servidor por no completar a apresentao de trs vias subseqente? A falsificao de IP
dificulta a localizao da(s) fonte(s) verdadeira(s) do(s) ataque(s). H varias pesquisas
recentes que estudaram tcnicas para marcar cabealhos IP quando eles passam por um
roteador, de modo a poder traar o caminho percorrido por um fluxo de datagramas DoS at
sua fonte. Uma vez identificado um hospedeiro fonte comprometido, ele pode ser posto em
quarentena, embora esse processo seja usualmente lento e exija interveno humana.
Resolver ataques DDoS ainda mais difcil e demorado.
Seqestro
Suponha que Alice e Bob participem de uma conexo em curso e que Trudy dispe de
meios para monitorar pacotes que fluem entre eles. Trudy pode se apossar, ou seqestrar, a
conexo em curso entre Bob e Alice. Em particular, ela pode enganar Bob e faze-lo
acreditar que continua se comunicando com Alice, embora esteja se comunicando com ela,
Trudy. Em primeiro lugar, Trudy tira Alice de cena lanando um ataque DoS contra ela.
Como j estava monitorando a comunicao entre Bob e Alice, Trudy conhece o estado
completo (por exemplo, nmero de seqncia, nmero de ACK, janela anunciada pelo
destinatrio) da conexo TCP entre Alice e Bob. Assim, ela pode falsificar datagramas IP
enviados a Bob (utilizando o endereo de Alice como endereo de fonte) contendo
segmentos TCP validos e uma carga til de usurio arbitrria. Imagine a devastao que
44
45
exige apenas programas de aplicao cliente e servidor, o PGP foi uma das primeiras
tecnologias de segurana a ser usada amplamente na Internet.
E-mail seguro
Nesta seo, usaremos muitas das tcnicas apresentadas na seo anterior para criar um
projeto de alto nvel para um sistema de e-mail seguro.Criamos esse projeto de alto nvel de
maneira incremental, introduzindo, a cada etapa, novos servios de segurana. Em nosso
projeto de um sistema de e-mail seguro, vamos manter em mente o exemplo picante d o
caso de amor entre Alice e Bob. Imagine que Alice quer enviar uma mensagem de e-mail
para Bob e Trudy quer bisbilhotar.
Antes de avanar e projetar um sistema de e-mail seguro para Alice e Bob, devemos
considerar quais caractersticas de segurana seriam as mais desejveis para eles. A
primeira caracterstica, e a mais importante, e a confidencialidade. Como j foi discutido,
nem Alice nem Bob querem que Trudy leia a mensagem de e-mail de Alice. A segunda
caracterstica que Alice e Bob provavelmente gostariam de ver no sistema de e-mail seguro
a autenticao do remetente. Em particular, quando Bob receber a seguinte mensagem de
Alice: "Eu no o amo mais. Nunca mais quero v-lo. Da anteriormente sua. Alice", ele
naturalmente gostaria de ter certeza de que a mensagem veio de Alice, e no de Trudy.
Outra caracterstica de segurana de que os dois amantes gostariam de dispor a
integridade de mensagem, isto e, a certeza de que a mensagem que Alice enviar no ser
modificada no trajeto ate Bob. Por fim, o sistema de e-mail deve fornecer autenticao do
receptor, isto , Alice quer ter certeza de que ela de fato esta enviando a mensagem para
Bob, e no para outra pessoa (por exemplo, Trudy) que possa estar se passando 'por Bob.
Portanto, vamos comear abordando a preocupao mais premente de Alice e Bob, a
confidencialidade. A maneira mais direta de conseguir confidencialidade Alice
criptografar a mensagem com tecnologia de chaves simtricas (como DES ou AES) e Bob
decriptar a mensagem ao receb-la. Como j discutido, se a chave simtrica for
suficientemente longa e se somente Alice e Bob possurem a chave, ento ser
extremamente difcil que algum (incluindo Trudy) leia a mensagem. Embora essa seja
uma abordagem direta, ela apresenta a dificuldade fundamental - e difcil distribuir uma
chave simtrica de modo que apenas Bob e Alice tenham cpias dela. Portanto, natural
que consideremos uma abordagem alternativa - a criptografia de chaves pblicas (usando,
por exemplo, RSA). Na abordagem de chaves pblicas, Bob disponibiliza publicamente sua
chave pblica (por exemplo, em um servidor de chaves pblicas ou em sua pagina Web
pessoal) e Alice criptografa sua mensagem com a chave pblica de Bob, e envia a
mensagem criptografada para o endereo de e-mail de Bob. (A mensagem criptografada
encapsulada com cabealhos MIME e enviada por SMTP comum) Quando Bob recebe a
mensagem, ele simplesmente a decripta com sua chave privada. Admitindo que Alice tenha
certeza de que aquela chave pblica a de Bob (e que suficientemente longa), essa
abordagem um meio excelente de fornecer a confidencialidade desejada. Um problema,
contudo, que a criptografia de chaves pblicas relativamente ineficiente, sobretudo para
mensagens longas. (Mensagens de e-mail longos agora so muito comuns na Internet,
devido ao crescimento da utilizao de anexos, imagens, udio e, principalmente, vdeo.)
Para superar o problema da eficincia, vamos fazer uso de uma chave de sesso. Em
particular, Alice (1) escolhe uma chave simtrica, Ks, aleatoriamente, (2) criptografa sua
46
mensagem m com a chave simtrica Ks, (3) criptografa a chave simtrica com a chave
pblica de Bob, KB+, (4) concatena a mensagem criptografada e a chave simtrica
criptografada de modo que formem um 'pacote' e (5) envia o pacote ao endereo de e-mail
de Bob. Os passos esto ilustrados na Figura 24. (Nessa figura e nas subseqentes, o sinal
'+' dentro de um crculo representa formar a concatenao e o sinal '-' dentro de um crculo,
desfazer a concatenao.) Quando Bob receber o pacote, ele (1) usar sua chave privada
KB-, para obter a chave simtrica Ks, e (2) utilizar a chave simtrica Ks para decriptar a
mensagem m.
Figura 24 - Alice usa uma chave de sesso simtrica KS, para enviar um email secreto para Bob
Philip R. Zimmermann o criador do Pretty Good Privacy (PGP). Por causa disso, ele
foi alvo de uma investigao criminal que durou trs anos, porque o governo norteamericano sustentava que as restries sobre a exportao de software de criptografia
tinham sido violadas quando o PGP se espalhou por todo o mundo aps sua publicao
como software de uso livre em 1991. Aps ter sido liberada como software compartilhado,
algum o colocou na Internet e estrangeiros o descarregaram. Nos Estados Unidos, os
programas de criptografia so classificados como artefatos militares por lei federal e no
podem ser exportados.
A despeito da falta de financiamento, da inexistncia de representantes legais, da falta de
uma empresa para lhe dar apoio e das intervenes governamentais, mesmo assim o PGP se
tornou o software de criptografia para e-mail mais usado no mundo. O extraordinrio que
o governo dos Estados Unidos pode ter contribudo inadvertidamente para a disseminao
do PGP devido ao caso Zimmermann.
O governo norte-americano arquivou o caso no inicio de 1996. O anuncio foi festejado
pelos ativistas do Internet. O coso Zimmermann tinha se transformado na histria de um
inocente que lutava par seus direitos contra os desmandos de um governo poderoso. A
desistncia do governo foi uma noticia bem-vinda, em parte por causa da campanha em
favor da censura na Internet desencadeada pelo Congresso e em parte par causa dos
esforos feitos pelo FBI para conseguir maior amplitude para a espionagem governamental.
Aps o governo ter arquivado o caso, Zimmermann fundou a PGP Inc., que foi
adquirida pela Network Associates em dezembro de 1997. Zimmermann agora membro
do conselho da Network Associates, bem como consultor independente para assuntos de
criptografia.
Agora que projetamos um sistema de e-mail seguro que fornece confidencialidade,
vamos desenvolver um outro sistema que fornea autenticao do remetente e tambm
integridade de mensagem. Vamos supor, no momento, que Alice e Bob no estejam mais
preocupados com confidencialidade (querem compartilhar seus sentimentos com todos!) e
47
Figura 25 - Utilizao da funo de Hash e assinaturas digitais para garantir autenticao do remetente
e integridade da mensagem
48
Figura 26 - Alice usa criptografia de chave simtrica, criptografia de chave pblica, hash e assinatura
digital para obter confidencialidade, autenticao de remtente e integridade da mensagem
49
Quando o PGP instalado, o software cria um par de chaves pblicas para o usurio. A
chave pblica pode ento ser colocada no site do usurio ou em um servidor de chaves
pblicas. A chave privada protegida pelo uso de uma senha. A senha tem de ser
informada todas as vezes que o usurio acessar a chave privada. O PGP oferece ao usurio
a opo de assinar digitalmente a mensagem, criptografar a mensagem ou, ainda, ambas as
opes: assinar digitalmente e criptografar a mensagem. A Figura 27 mostra uma
mensagem PGP assinada. Essa mensagem aparece apos o cabealho MIME. Os dados
codificados da mensagem correspondem a KA - (H(m)), isto , ao resumo de mensagem
assinado digitalmente. Como discutimos antes, para que Bob verifique a integridade da
mensagem, ele precisa ter acesso chave pblica de Alice.
A Figura 28 mostra uma mensagem PGP secreta. Essa mensagem tambm aparece aps
o cabealho MIME. claro que a mensagem em texto aberto no esta includa na
mensagem de e-mail secreta. Quando um remetente (como Alice) quer no apenas a
confidencialidade, mas tambm a integridade, o PGP contm uma mensagem como a da
Figura 28 dentro da mensagem da Figura 27.
O PGP tambm fornece um mecanismo para certificao de chaves pblicas, mas esse
mecanismo bem diferente daquele da autoridade certificadora mais convencional. As
chaves pblicas do PGP so certificadas por uma rede de confiana. A prpria Alice pode
certificar qualquer par chave/usurio quando ela achar que esse par realmente est correto.
Alm disso, o PGP permite que Alice declare que ela confia em outro usurio para atestar a
autenticidade de mais chaves. Alguns usurios do PGP assinam reciprocamente suas chaves
montando grupos de assinatura de chaves. Os usurios se renem fisicamente, trocam
disquetes contendo as chaves pblicas e certificam suas chaves reciprocamente, assinandoas com suas chaves privadas. As chaves pblicas PGP tambm so distribudas por
servidores de chaves pblicas PGP, pela Internet. Quando um usurio apresenta uma chave
pblica a esse servidor, este armazena uma cpia da chave, envia uma cpia a todos os
outros servidores de chaves pblicas e apresenta a chave a quem quer que a solicite.
Embora os grupos de assinantes de chaves e os servidores de chaves pblicas PGP
realmente existam, o modo mais comum utilizado pelos usurios para distribuir suas chaves
pblicas , de longe, coloca-las em suas prprias paginas Web e anunci-las em seus emails.
50
51
tambm ser autenticado para o servidor. Uma vez concluda a apresentao mtua e
iniciada a transmisso de dados da aplicao, todos os dados so criptografados usando
chaves de sesso negociadas durante a fase de apresentao mtua. O protocolo SSL
amplamente usado no comercio pela Internet, sendo implementado em quase todos os
browsers populares e servidores Web. Alm disso, ele a base do protocolo TLS (transport
layer security - segurana da camada de transporte) [RFC 2246].
As protocolos SSL e TLS no so limitados aplicao na Web; por exemplo, eles
podem ser usados de maneira semelhante para autenticao e criptografia de dados no
acesso ao correio IMAP (Internet Mail Access Protocol). A camada SSL pode ser vista
como uma camada que se situa entre a camada de aplicao e a camada de transporte. No
lado remetente, o protocolo SSL recebe dados (como uma mensagem HTTP ou IMAP
vinda de uma aplicao), criptografa-os,e direciona os dados criptografados a um socket
TCP. No lado receptor, o SSL l socket TCP, decripta os dados e os direciona aplicao.
Embora possa ser usado com muitas aplicaes da Internet, o protocolo SSL ser discutido
no contexto da Web, em que utilizado principalmente para o comrcio pela Internet.
O SSL tem as seguintes caractersticas:
52
e (2) gera uma chave simtrica compartilhada. Ambas as tarefas fazem uso da tecnologia de
chaves pblicas RSA. Durante essa fase, Alice envia Bob seu certificado, com o qual Bob
obtm a chave pblica de Alice. Bob ento cria uma chave simtrica aleatria, criptografa-a
com a chave pblica de Alice e a envia criptografada para Alice. Agora, Bob e Alice
compartilham uma chave de sesso simtrica. To logo esse protocolo de apresentao
mtua esteja concludo, todos os dados enviados entre o browser e o servidor (por conexes
TCP) so criptografados usando a chave de sesso simtrica.
Agora que apresentamos uma viso de alto nvel da SSL, vamos examinar melhor
alguns dos detalhes mais importantes. A fase de apresentao mtua da SSL percorre as
seguintes etapas:
53
separada (criptografada) indicando que sua parte na apresentao mutua esta encerrada.
6. o servidor envia uma mensagem ao browser informando que as futuras mensagens
do servidor sero criptografadas com a chave de sesso. Ele ento envia uma mensagem
separada (criptografada) indicando que sua parte na apresentao mutua est encerrada.
7. Agora, a apresentao mutua SSL est concluda e comea a sesso SSL. O
browser e o servidor usam as chaves de sesso para criptografar e decriptar os dados que
enviam um ao outro e para validar sua integridade.
A apresentao mtua SSL tem na verdade muito mais etapas do que as apresentadas.
Alm das compras feitas com carto de crdito, destacamos que a SSL pode ser (e ) usada
para outras transaes financeiras, incluindo home banking e comrcio de aes.
As limitaes do SSL no comrcio pela Internet
Devido sua simplicidade e ao seu desenvolvimento precoce, a SSL amplamente
implementada em browsers, servidores e produtos para comrcio pela Internet. Esses
servidores e browsers capacitados para SSL fornecem uma plataforma popular para
transaes com cartes de credito. No entanto, devemos ter sempre em mente que a SSL
no foi produzida especificamente para transaes com cartes de pagamento de credito,
mas para comunicaes genricas seguras entre um cliente e um servidor. Por causa de seu
projeto genrico, faltam SSL muitas caractersticas que o setor de cartes de credito
gostaria de ver incorporadas a um protocolo de comercio pela Internet.
Considere novamente o que acontece quando Bob faz uma compra no site Alice
Incorporated por meio da SSL. O certificado assinado que Bob recebe de Alice garante que
ele realmente esta negociando com Alice Incorporated e que Alice Incorporated uma
empresa confivel. Contudo, o certificado genrico no indica se Alice Incorporated est
autorizada a aceitar compras com carto de crdito nem se a empresa um estabelecimento
comercial de confiana. Isso abre uma porta para a fraude do comerciante. E h um
problema semelhante com a autorizao do cliente. Mesmo que seja usada a autenticao
do cliente SSL, o certificado do cliente no vincula Bob a um determinado carto de crdito
autorizado; assim, Alice Incorporated no pode ter certeza de que Bob est autorizado a
fazer uma compra usando carto de crdito. Isso abre a porta para todos os tipos de fraude,
incluindo compra com cartes de crdito roubados e recusa de autoria de transaes
autnticas de compra de bens.
54
55
quiserem enviar datagramas seguros reciprocamente, ento ser preciso estabelecer dois
ASs (isto e, conexes lgicas), um em cada direo. Um AS identificado, exclusivamente,
pelos seguintes trs elementos:
56
57
AS e administrao de chaves
Para a disponibilizao bem-sucedida do IPsec, necessrio um esquema escalvel e
automatizado de AS e gerenciamento de chaves. Vrios protocolos foram definidos para
realizar essas tarefas.
Isso encerra nosso resumo sobre o IPsec. Discutimos o IPsec no contexto do IPv4 e do
modo de transporte. O IPsec tambm define um modo tnel,. no qual so os roteadores - e
no os hospedeiros - que introduzem a funcionalidade de segurana. Por fim, ele descreve
os procedimentos de criptografia para o IPv6 assim como para o IPv4.
58
59
60
calcular kiIV Na prxima vez que Trudy vir o mesmo valor de IV sendo utilizado, ela ficara
conhecendo a seqncia de chaves k1IV, k2IV , k3IV ,... e, assim, poder decriptar a
mensagem criptografada.
H tambm vrias preocupaes adicionais com o WEP. Um ataque que explorava uma
deficincia conhecida do RC4 quando so escolhidas certas chaves fracas. discute meios
eficientes para implementar e explorar esse ataque. Uma outra preocupao com o WEP
envolve os bits de CRC mostrados na Figura 31 e transmitidos no quadro 802.11 para
detectar bits alterados na carga til. Contudo, um atacante que modifique o contedo
criptografado (por exemplo, substituindo os dados originais criptografados por texto sem
nexo), calcule um CRC para o texto sem nexo e coloque esse CRC dentro de um quadro
WEP, pode produzir um quadro 802.11 que ser aceito pelo receptor. O que precisamos
aqui so tcnicas de integridade de mensagem tais como as j estudadas para detectar
interferncia ou substituio de contedo.
IEEE802.11i
Logo apos a liberao do IEEE 802.11 em 1999, foi iniciado o trabalho de
desenvolvimento de uma verso nova e aprimorada do 802.11, com mecanismos de
segurana mais robustos. O novo padro, conhecido como 802.11i, estava na fase de
ratificao e sua aprovao estava prevista para o inicio de 2004. Como veremos, enquanto
o WEP oferecia criptografia relativamente fraca, somente um nico modo de realizar
autenticao e nenhum mecanismo de distribuio de chaves, o IEEE 802.11i fornece
formas de criptografia muitos mais robustas, um conjunto extensvel de mecanismos de
autenticao e um mecanismo de distribuio de chaves. A seguir, apresentaremos uma
viso geral do 802.11i.
A Figura 32 d um quadro geral da estrutura do 802.11i. Alm do cliente sem fio e do
ponto de acesso, o 802.11i define um servidor de autenticao com o qual o AP pode se
comunicar. A separao entre o servidor de autenticao e o AP permite que um nico
servidor de autenticao atenda a muitos APs, centralizando as decises (muitas vezes
delicadas) referentes autenticao e ao acesso dentro de um servidor isolado e mantendo
baixos os custos e a complexidade do AP.
61
Figura 36 - EAP um protocolo fim-a-fim. Mensagens EAP so encapsuladas usando EAPoL pelo
enlace sem fio entre o cliente e o ponto de acesso e utilizando RADIUS por UDP/IP entre o ponto de
acesso e o servidor de autenticao
62
MK). O servidor de autenticao ento envia a PMK ao AP. E aqui que queramos
chegar! O cliente e o AP agora tm uma chave compartilhada (lembre-se de que o problema
de distribuio de chaves no era abordado no WEP) e autenticaram-se mutuamente. Agora
j esto quase prontos para comear a operar na rede.
4. Gerao de Chave Temporria (Temporal Key - TK Generation). Com a PMK, o cliente sem
fio e o AP agora podem gerar chaves adicionais que sero usadas para comunicao. A
Chave Temporria (TK) de particular interesse e ser utilizada para realizar a criptografia
na camada de enlace de dados enviados pelo enlace sem fio a um hospedeiro remoto
arbitrrio.
O 802.11i fornece vrias formas de criptografia, incluindo um esquema criptogrfico
baseado em AES e uma verso reforada da criptografia WEP.
fsauer@gmail.com