Você está na página 1de 62

Material Instrucional de uso restrito consulte fsauer@gmail.

com

Centro Universitrio da Cidade


UniverCidade
Escola de Cincias Exatas e Tecnologia

Apostila de Criptografia e Certificao Digital

Prof. Frederico Sauer


fsauer@gmail.com

Material Instrucional de uso restrito consulte fsauer@gmail.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

Material Instrucional de uso restrito consulte fsauer@gmail.com

Apostila da Cadeira de Criptografia e Certificao Digital


Mdulo I Criptografia
Antes de falar sobre criptografia, fundamental entender o porqu do seu surgimento.
Teorias indicam que, desde a poca do homem das cavernas, a necessidade de ocultar
informaes que precisam ser registradas fez surgir curiosos mecanismos criptogrficos.
Criptografia significa a transformao de informao inteligvel em uma forma
aparentemente ilegvel, a fim de ocultar seu real significado de pessoas no-autorizadas a
conhec-lo. O termo deriva do grego krypts (escondido) e grphein (escrever), e
normalmente citada como primeira tcnica criptogrfica formal a cifra de Csar (Imperador
romano), descrita mais adiante. No entanto, estudiosos apontam que os primeiros
homindeos que povoaram o planeta usavam tcnicas particulares para contabilizar os seus
rebanhos, dando assim origem aos primeiros registros em paredes de cavernas (as hoje
admiradas pinturas rupestres encontradas em diversos stios arqueolgicos espalhados pelo
mundo).
Atualmente, as demandas estratgicas da Segurana da Informao tornam a criptografia
indispensvel para a sociedade moderna. Sabe-se que a informao agrega poder. Toda
informao valiosa, uma vez conhecida pelo concorrente, passa a ser passvel de utilizao
competitiva, sem o necessrio investimento para constru-la. Recentemente (2007) vimos o
escndalo da utilizao, pela scuderie McLaren de segredos tecnolgicos desenvolvidos
durante anos pela Ferrari, que lhe deu hegemonia nas pistas durante anos, permitindo que a
McLaren passasse a ganhar corridas. Comenta-se que tais segredos teriam sido passados
por um Engenheiro inescrupuloso. No entanto, com o uso adequado de ferramentas
criptolgicas, talvez tais informaes, to valiosas, no tivessem sado da empresa.

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

comunicao, essa interferncia seja detectada. O texto deste mdulo descreve as tcnicas
desenvolvidas e conhecidas para permitir a busca destas aes.

Fundamentos de Segurana da Informao


Voltando aos personagens Alice e Bob, que querem se comunicar com segurana. O
que isso significa exatamente? Com certeza, Alice quer que somente Bob entenda a
mensagem que ela enviou, mesmo que eles estejam se comunicando por um meio inseguro,
onde um intruso (Trudy, a intrusa) pode interceptar, ler e executar processos
computacionais com qualquer dado que seja transmitido de Alice para Bob. Bob tambm
quer ter certeza de que a mensagem que recebe de Alice foi de fato enviada por ela, e Alice
quer ter certeza de que a pessoa com quem est se comunicando de fato Bob. Alice e Bob
tambm querem ter certeza de que o contedo de suas mensagens no foi alterado em
trnsito. Tambm querem, antes de mais nada, ter certeza de que podem se comunicar, isto
, de que ningum lhes negue acesso aos recursos necessrios para a comunicao. Dadas
essas consideraes, podemos identificar as seguintes propriedades desejveis da
comunicao segura:
Confidencialidade. Somente o remetente e o destinatrio pretendido devem poder entender o
contedo da mensagem transmitida. O fato de terceiros poderem interceptar a mensagem
exige, necessariamente, que esta seja cifrada de alguma maneira (que seus dados sejam
disfarados) para impedir que uma mensagem interceptada seja decifrada (entendida) por
um interceptador. A confidencialidade , provavelmente, o significado mais comumente
interpretado na expresso comunicao segura. Notemos, contudo, que essa no a nica
definio de confidencialidade. Por exemplo, Alice poderia tambm querer que o mero fato
de ela estar se comunicando com Bob (ou os horrios ou a freqncia de suas comunicao)
fosse tambm um segredo! Estudaremos tcnicas de criptografia para cifrar e decifrar dados
mais adiante. Veremos que comunicao confidencial muitas vezes depende de uma ou
mais chaves utilizadas para criptografar/decriptar comunicaes.
Autenticao. O remetente e o destinatrio precisam confirmar a identidade da outra parte
envolvida na comunicao - confirmar que a outra parte realmente quem alega ser. A
comunicao pessoal entre seres humanos resolve facilmente esse problema atravs do
reconhecimento visual. Quando entidades comunicantes trocam mensagens por um meio
pelo qual no podem ver a outra parte, a autenticao no assim to simples. Por que, por
exemplo, voc pode acreditar que o e-mail que recebeu, e que contm um endereo de
origem identificando que aquele e-mail veio de um amigo seu, realmente veio daquele
amigo? Se algum o chama ao telefone dizendo ser de seu banco e perguntando qual o
nmero de sua conta, sua senha e seu saldo bancrio, alegando finalidades de verificao,
voc daria essas informaes ? Esperamos que no.
Integridade de mensagem. Mesmo que o remetente e o destinatrio consigam se autenticar
reciprocamente, eles tambm querem assegurar que o contedo de sua comunicao no
seja alterado, por acidente ou por m inteno, durante a transmisso. Veremos tambm
como um receptor pode provar que a mensagem veio de um determinado remetente
especfico.
No-Repudiao talvez uma das mais importantes propriedades para a comunidade comercial
dos administradores de cartes de crdito e todos os demais usurios do e-commerce, a norepudiao pretende garantir que um usurio autor de uma determinada transao no possa

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Figura 1 - Remetente (Alice), destinatrio (Bob) e intruso (Trudy)

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

criptogrficas esto inextricavelmente entrelaadas com a autenticao, integridade de


mensagens, a no-repudiacao e outras.
Tcnicas criptogrficas permitem que um remetente disfarce os dados de modo que um
intruso no consiga obter nenhuma informao dos dados interceptados. O destinatrio,
claro, deve estar habilitado a recuperar as dados originais a partir dos dados disfarados. A
Figura 2 apresenta alguns dos componentes mais importantes da terminologia usada em
criptografia.

Figura 2 - Componentes Criptogrficos

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).

Material Instrucional de uso restrito consulte fsauer@gmail.com

Criptografia de Chaves Simtricas


Todos os algoritmos criptogrficos envolvem a substituio de um dado por outro,
como tomar um trecho de um texto aberto e ento, calculando e substituindo esse texto por
outro cifrado apropriado, criar uma mensagem cifrada. Antes de estudar um sistema
criptogrfico moderno baseado em chaves, vamos abordar um algoritmo de chaves
simtricas muito antigo, muito simples, atribudo a Jlio Csar e conhecido como cifra de
Csar (uma cifra e um mtodo para criptografar dados).
A cifra de Csar funciona tomando cada letra da mensagem do texto aberto e
substituindo-a pela k-sima letra sucessiva do alfabeto (permitindo a rotatividade do
alfabeto, isto , a letra 'z' seria seguida novamente da letra 'a'). Por exemplo, se k = 3, ento
a letra 'a' do texto aberto fica sendo 'd' no texto cifrado; 'b' no texto aberto se transforma
em 'e' no texto cifrado, e assim por diante. Nesse caso, O valor de k serve de chave. Por
exemplo, a mensagem "bob, I love you. A1ice." se toma "ere. 1 oryh brx, do1fh." em texto
cifrado. Embora o texto cifrado na verdade parea no ter nexo, voc no levaria muito
tempo para quebrar o cdigo se soubesse que foi usada a cifra de Csar, pois ha somente 25
valores possveis para as chaves.
Um aprimoramento da cifra de Csar a cifra monoalfabtica, que tambm substitui
uma letra do alfabeto por outra. Contudo, em vez de substituir as letras seguindo um padro
regular (por exemplo. substituio por um deslocamento de k para todas as letras), qualquer
letra pode ser substituda por qualquer outra, contanto que cada letra tenha uma nica letra
substituta e vice-versa. A regra de substituio apresentada na Tabela 1 mostra uma regra
possvel para codificar textos abertos.
Tabela 1 - Cifra de Substituio Simples
Texto claro

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!

Figura 3 - Cifra de substituio simples

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'

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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)

Padro para Criptografia de Dados (DES) e Padro Avanado de


Criptografia (AES)
Vamos agora avanar rapidamente at os tempos modernos e examinar o DES (data
encryption standard - padro para criptografia de dados), um padro de criptografia de
chaves simtricas desenvolvido em 1977 e atualizado mais recentemente, em 1993, pelo
U.S. National Bureau of Standards para uso comercial e no-classificado do governo norteamericano. O DES codifica texto aberto em pores de 64 bits usando uma chave de 64
bits. Na verdade, oito desses 64 bits da chave so bits de paridade impar (h um bit de
paridade para cada byte), de modo que a chave DES tem efetivamente 56 bits de
comprimento. O National Institute of Standards and Technology (sucessor do National
Bureau of Standards) assim estabelece o objetivo do DES: "o objetivo embaralhar
completamente os dados e a chave, de modo que todos os bits do texto cifrado dependam
de todos os bits de dados e de todos os bits da chave com um bom algoritmo, no dever
haver nenhuma correlao entre o texto cifrado e os dados originais e a chave
A operao bsica do DES ilustrada na Figura 4. Em nossa discusso, vamos
descrever de maneira geral a operao do DES, deixando os detalhes fundamentais no nvel
de bits (h muitos) para outras fontes.

Material Instrucional de uso restrito consulte fsauer@gmail.com

11

Figura 4 - Data Encryption Standard (DES)

O DES consiste em dois estgios de permutao (O primeiro e o ltimo passos do


algoritmo) nos quais todos os 64 bits so permutados, havendo 16 rodadas idnticas de
operao entre eles. A operao de cada rodada e idntica e toma a sada de dados da
rodada anterior como entrada. Durante cada rodada, os 32 bits da extrema direita da entrada
so deslocados para os 32 bits da esquerda da sada. Toda a entrada de 64 bits at a i-sima
rodada e a chave de 48 bits para a i-sima rodada (derivada da chave DES maior de 56 bits)
so tomadas como entrada para uma funo que envolve a expanso das pores de 4 bits
da entrada para pores de 6 bits, fazendo-se o OU exclusivo com as pores expandidas de
6 bits da chave Ki, de 48 bits, uma operao de substituio, e o ulterior OU exclusivo com
os 32 bits da extrema esquerda da entrada. A sada de 32 bits resultante da funo ento
usada como os 32 bits da extrema direita da sada de 64 bits da rodada, como mostra a
Figura 4. A decodificao funciona pela reverso das operaes dos algoritmos.
At que ponto o DES funciona? Ate que ponto ele seguro? Ningum pode ter certeza.
Em 1997, uma empresa de segurana de redes, a RSA Data Security Inc., lanou um
desafio (DES Challenge) para quebrar (decodificar) uma frase curta que tinha sido
criptografada usando o DES de 56 bits. A frase "Strong cryptography makes the world a
safer place." (a boa criptografia faz do mundo um lugar mais seguro) foi decodificada em
menos de quatro meses por uma equipe que usou voluntrios por toda a Internet para
explorar sistematicamente o espao de chaves. A equipe reivindicou o prmio de 10 mil
dlares aps ter testado apenas um quarto do espao de chaves - cerca de 18 quatrilhes de
chaves. O desafio DES Challenge III, de 1999, foi vencido em pouco mais de 22 horas por
uma rede de voluntrios e um computador especialmente construdo para a ocasio, que
custou menos de 250 mil dlares (apelidado de 'Deep Crack'), e est documentado na
Internet.

Material Instrucional de uso restrito consulte fsauer@gmail.com

12

Devemos observar tambm que, at aqui, consideramos apenas a criptografia de uma


quantidade de 64 bits. Quando so criptografadas mensagens mais longas, o que
tipicamente o caso, o DES em geral usado junto com a tcnica conhecida como
encadeamento de blocos de cifras, na qual a verso criptografada da j-sima quantidade de
64 bits e a unidade de dados de ordem (j + 1) so combinadas atravs de uma operao
"OU exclusiva" antes de a unidade de ordem (j + 1) ser criptografada.
Se o DES de 56 bits for considerado muito inseguro, pode-se simplesmente executar o
algoritmo de 56 bits vrias vezes, tomando a sada de 64 bits de uma iterao do DES como
entrada para a iterao DES seguinte e usando uma chave criptogrfica diferente para cada
rodada. Por exemplo, o DES triplo (3DES) um padro proposto pelo governo norteamericano para substituir o DES, que est sendo descontinuado e permitido apenas em
sistemas legados. Em uma operao criptogrfica, o 3DES executa primeiro o algoritmo de
criptografia DES sobre os dados utilizando uma primeira chave de 56 bits; em seguida,
executa o algoritmo de decriptao do DES sobre a sada da primeira rodada de criptografia
usando uma segunda chave e, finalmente, executa o algoritmo de criptografia DES sobre a
sada da segunda rodada usando uma terceira chave. O 3DES foi proposto como o padro
criptogrfico para o PPP (protocolo ponto-a-ponto) para a camada de enlace. Em novembro
de 2001, o NIST anunciou o sucessor do DES: o Padro Avanado de Criptografia,
(Advanced Encryption Standard - AES), tambm conhecido como algoritmo de Rijndael. O
AES um algoritmo de chave simtrica que processa dados em blocos de 128 bits e pode
funcionar com chaves de 128, 192 e 256 bits de comprimento. O NIST estima que uma
mquina que conseguisse quebrar o DES de 56 bits em 1 segundo (isto , experimentar 255
chaves por segundo) levaria aproximadamente 149 trilhes de anos para quebrar uma chave
AES de 128 bits.

Criptografia de Chave Pblica


Por mais de dois mil anos (desde a poca da cifra de Csar at a dcada de 1970), a
comunicao cifrada exigia que as duas partes comunicantes compartilhassem um segredo
em comum: a chave simtrica usada para cifrar e decifrar. Uma dificuldade dessa
abordagem que as duas partes tm de concordar, de alguma maneira, com a chave
compartilhada, mas, para faz-lo, preciso comunicao (presumivelmente segura)! Talvez
as partes pudessem se encontrar antes, escolher a chave pessoalmente (por exemplo, dois
dos centuries de Csar poderiam se encontrar nos banhos romanos) e, mais tarde, se
comunicar de modo cifrado. Em um mundo em rede, contudo, o mais provvel que as
partes comunicantes nunca possam se encontrar e jamais possam conversar a no ser pela
rede. possvel que elas se comuniquem por criptografia sem compartilhar uma chave
comum secreta conhecida com antecedncia? Em 1976, Diffie e Hellman apresentaram um
algoritmo (conhecido como Troca de Chaves Diffie Hellman - Diffie Hellman Key
Exchange) que faz exatamente isso - uma abordagem da comunicao segura radicalmente
diferente e de uma elegncia maravilhosa que levou ao desenvolvimento dos atuais
sistemas de criptografia de chaves pblicas. Veremos em breve que os sistemas de
criptografia de chaves pblicas tambm tm diversas propriedades maravilhosas que os
tornam teis no somente para criptografia, mas tambm para autenticao e assinaturas

Material Instrucional de uso restrito consulte fsauer@gmail.com

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)).

Figura 5 - Criptografia de Chaves Pblicas

Veremos, mais adiante, que h algoritmos e tcnicas de criptografia/decriptao para


escolher chaves pblicas e privadas de modo que KB-(KB+(m)) = m; isto , aplicando a
chave pblica de Bob, KB+, mensagem m, para obter KB+(m), e ento aplicando a chave
privada de Bob, KB- , a verso criptografada de m, isto , calculando KB-(KB+(m)), obtemos
m novamente. Esse resultado e notvel! Dessa maneira Alice pode utilizar a chave de Bob
disponvel publicamente para enviar uma mensagem secreta a Bob sem que nenhum deles
tenha de permutar nenhuma chave secreta! Veremos em breve que ns podemos permutar a
chave pblica e a chave privada de criptografia e obter o mesmo resultado notvel, isto e,
KB-(KB+(m)) = KB+ (KB-(m)) = m.
A utilizao de criptografia de chave pblica , portanto, conceitualmente simples. Mas

Material Instrucional de uso restrito consulte fsauer@gmail.com

14

h duas preocupaes que podem nos ocorrer imediatamente. A primeira preocupao


que, embora um intruso que intercepte a mensagem cifrada de Alice veja apenas dados
ininteligveis, ele conhece tanto a chave (a chave pblica de Bob, que est disponvel para
todos) quanto o algoritmo que Alice usou para a criptografia. Assim, Trudy pode montar
um ataque com texto aberto escolhido utilizando o algoritmo criptogrfico padronizado
conhecido e a chave criptogrfica de acesso pblico de Bob para codificar a mensagem que
quiser! Ela pode at tentar, por exemplo, codificar mensagens, ou partes delas, que suspeita
que Alice poderia enviar. Fica claro que, para a criptografia de chave pblica funcionar, a
escolha de chaves e de cdigos de criptografia/decriptao deve ser feita de tal maneira que
seja impossvel (ou, ao menos, to difcil que se torne quase impossvel) para um intruso
determinar a chave privada de Bob ou conseguir decifrar ou adivinhar a mensagem de Alice
a Bob. A segunda preocupao que, como a chave criptogrfica de Bob pblica,
qualquer um pode enviar uma mensagem cifrada a Bob, incluindo Alice ou algum que se
passa por Alice. No caso de uma nica chave secreta compartilhada, o fato de o remetente
conhecer a chave secreta identifica implicitamente o remetente para o destinatrio. No caso
da criptografia de chave pblica, contudo, isso no acontece, j que qualquer um pode
enviar uma mensagem cifrada a Bob usando a chave dele, que est publicamente disponvel
a todos. preciso uma assinatura digital, que ser vista mais adiante, para vincular um
remetente a uma mensagem.
Embora existam muitos algoritmos e chaves que tratam dessas preocupaes, o
algoritmo RSA (cujo nome se deve a seus inventores, Ron Rivest, Adi Shamir e Leonard
Adleman) tornou-se quase um sinnimo de criptografia de chave pblica. Em primeiro
lugar, vamos ver como o RSA funciona e, depois, examinar por que ele funciona. Suponha
que Bob queira receber mensagens cifradas, como mostrou a Figura 5. H dois
componentes inter-relacionados no RSA:

A escolha da chave pblica e da chave privada; e

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Texto cifrado c = me mod n


17
15
22
1o

16

Material Instrucional de uso restrito consulte fsauer@gmail.com

Texto cifrado

17
15
22
10

Tabela 4 - Decriptao RSA para Bob: d=29, n=35


cd
m=cd mod n
481968572106750915091411825223071697
12
12783403948858939111232757568359375
15
8516433190865377019561944997211106030592
22
100000000000000000000000000000
5

Letra do texto aberto


l
o
v
e

Por que o RSA funciona?


A criptografia/decriptao do RSA parece mgica. Por que ser que, aplicando o
algoritmo de criptografia e, em seguida, o algoritmo de decriptao, podemos recuperar a
mensagem original? Para entender por que o RSA funciona, precisamos realizar operaes
usando a aritmtica de modulo n. Em aritmtica modular, so realizadas as operaes
comuns de adio, multiplicao e exponenciao. Contudo, o resultado de cada operao e
substitudo pelo resto inteiro da diviso de cada resultado por n. Tomemos n = pq, onde p e
q so os nmeros primos grandes usados no algoritmo RSA.
Lembre-se de que na criptografia RSA uma mensagem (representada por um nmero
inteiro) m e primeiramente elevada potencia e usando-se aritmtica de modulo n para
criptografar. A decriptao feita elevando-se esse valor a potncia d, novamente usando a
aritmtica de modulo n. o resultado de uma etapa de criptografia, seguida de uma etapa de
decriptao, e ento (me)d .Vamos ver agora o que podemos dizer sobre essa quantidade.
Temos:
(me)d mod n = med mod n.
Embora estejamos tentando eliminar um pouco da mgica do modo de funcionamento
do RSA, precisaremos usar, aqui, outro resultado bastante mgico da teoria dos nmeros.
Especificamente, precisamos do resultado que diga que, se p e q forem primos e n = pq,
ento xy mod n ser o mesmo que x (y mod (p - I)(q I)) mod n. Aplicando esse resultado, temos
(mc)d mod n = m(ed mod (p - I)(q - I))mod n.
Mas lembre-se de que escolhemos e e d tais que ed -1 seja exatamente divisvel (isto ,
no h resto) por (p - 1)(q - 1),o que equivale a dizer que ed divisvel por (p - 1)(q - 1)
com resto 1, e ento ed mod (p - 1)(q - 1) = 1. Isto nos d:
(mc)d mod n = m1 mod n = m,
ou seja,
(mc)d mod n = m
Esse o resultado que espervamos! Efetuando primeiramente a exponenciao da
potencia e (isto , criptografando) e depois a exponenciao da potencia d (isto ,
decriptando), obtemos o valor original m. mais notvel ainda e o fato de que, se
primeiramente elevarmos potencia d e, em seguida, potencia e, isto , se invertermos a
ordem da criptografia e da decriptao, realizando inicialmente a operao de decriptao e,

Material Instrucional de uso restrito consulte fsauer@gmail.com

17

em seguida, aplicando a operao de criptografia, tambm obteremos o valor original m! (A


prova desse resultado segue exatamente o mesmo raciocnio anterior, visto que med = mde.)
Veremos em breve que essa propriedade maravilhosa do algoritmo RSA
(me)d mod n = m = (md)e mod n
A segurana do RSA reside no fato de que no se conhecem algoritmos para fatorar
rapidamente um nmero; nesse caso, o valor pblico n, em nmeros primos p e q. Se
algum conhecesse os nmeros p e q, ento, dado o valor publico e, poderia facilmente
processar a chave secreta d. Por outro lado, no se sabe se existem ou no algoritmos
rpidos para fatorar um nmero e, nesse sentido, a segurana do RSA no garantida.

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.

Protocolo de autenticao pa 1.0


O protocolo de autenticao mais simples que podemos imaginar talvez seja um

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Figura 6 - Protocolo pa 1.0 e um cenrio de falha

Protocolo de autenticao pa 2.0


Se Alice tiver um endereo de rede conhecido (por exemplo, um endereo IP), que usa
sempre que quer se comunicar, Bob poderia tentar autenticar Alice verificando se o
endereo de fonte no datagrama IP que carrega a mensagem de autenticao aquele
mesmo endereo conhecido de Alice. Se for, Alice estar autenticada. Isto poderia impedir
que um intruso de rede muito ingnuo se fizer passar por Alice, mas no deteria um invasor
mais capacitado.!
Dado que j estudamos as camadas de rede e de enlace, sabemos que no e to difcil
(por exemplo, se algum tivesse acesso ao cdigo do sistema operacional e pudesse
construir seu prprio ncleo (kernel) de sistema operacional, como o caso do Linux e de
vrios outros sistemas operacionais de acesso grtis) criar um datagrama IP, colocar
qualquer endereo IP de origem que quisssemos (por exemplo, o endereo IP conhecido
de Alice) dentro do datagrama IP e envia-lo pelo protocolo de camada de enlace ao
roteador de primeiro salto. Dali em diante, o datagrama incorretamente endereado seria
transmitido at Bob. Essa abordagem, mostrada na Figura 7, um tipo de falsificao do IP
(IP Spoofing), uma tcnica muito conhecida de ataque segurana que estudaremos com
mais detalhes adiante. A falsificao de IP poder ser evitada se o roteador de primeiro
salto de Trudy estiver configurado para repassar apenas datagramas que contivessem o
endereo IP de fonte da prpria Trudy [RFC 2827]. Contudo, essa capacidade no e
universalmente disseminada nem obrigatria. Assim, seria tolice de Bob achar que o
administrador de rede de Trudy (que poderia ser ela mesma) configuraria o roteador de
primeiro salto dela para repassar apenas os datagramas adequadamente endereados.

Material Instrucional de uso restrito consulte fsauer@gmail.com

19

Figura 7 - Protocolo pa 2.0 e um cenrio de falha

Protocolo de autenticao pa 3.0


Uma abordagem clssica da autenticao usar uma senha secreta. Temos PINs
(Personal Identification Numbers) que nos identificam em caixas automticos e senhas de
login em sistemas operacionais. A senha um segredo compartilhado pelo autenticador e
pela pessoa que esta sendo autenticada. O http, por exemplo, usa um esquema de
autenticao baseado em senha. Telnet e FTP tambm utilizam senha de autenticao.
Assim, no protocolo pa3.0 Alice envia sua senha secreta a Bob, como mostra a Figura 8.
Em vista da utilizao to amplamente disseminada de senhas, seria normal que
achssemos que o protocolo pa3.o razoavelmente seguro. E estaramos errados! A falha
de segurana, nesse caso, e visvel. Se Trudy monitorar uma comunicao de Alice, ela
poder descobrir a senha de Alice. Para que voc no pense que isso e improvvel,
considere o fato de que, quando se inicia uma sesso Telnet com outro computador e se faz
o login, a senha de login no e criptografada para ser enviada ao servidor Telnet. Algum
conectado ao Telnet cliente ou LAN do servidor 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 pa3.0 com certeza no apropriado.

Figura 8 - Protocolo pa 3.0 e um cenrio de falha

Material Instrucional de uso restrito consulte fsauer@gmail.com

20

Protocolo de autenticao pa 3.1


Nossa prxima idia para ajustar o pa3.0 e, naturalmente, criptografar a senha.
Criptografando a senha de Alice, podemos impedir que Trudy descubra aquela senha.
Admitindo que Alice e Bob compartilhem uma chave simtrica secreta, KA-B, ento Alice
pode criptografar a senha e enviar sua mensagem de identificao, "Eu sou A1ice", e sua
senha criptografada Bob. Bob ento decripta 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 compartilhada necessrio para criptografar a
senha. Vamos denominar esse protocolo pa3.1.
Embora seja verdade que o pa3.1 impede que Trudy descubra a senha de Alice, o uso
de criptografia nesse caso no resolve o problema da autenticao. Bob esta sujeito a um
ataque de reproduo: basta Trudy monitorar uma comunicao de Alice, gravar a verso
criptografada da senha e, mais tarde, reproduzir essa verso criptografada para Bob,
fingindo que e Alice. O uso de uma senha criptografada no pa.3.1 no faz com que a
situao fique muito diferente daquela da Figura 8.

Protocolo de autenticao pa 4.0


O problema com o pa3.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 e usada no sistema S/KEY [RFC
176o], que adota um mecanismo 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
8 resultou do fato de Bob no conseguir distinguir a autenticao original de Alice da
reproduo da autenticao original de Alice. Isto , 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 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 tinha sido usado por 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 usar apenas uma vez. Isto , assim que um
protocolo usar um nonce, nunca mais o utilizar. Nosso protocolo ap4.o usa um nonce
como segue:
1. Alice envia a mensagem "Eu sou A1ice" para Bob.

Material Instrucional de uso restrito consulte fsauer@gmail.com

21

2. Bob escolhe um nonce, R, e o envia a Alice.


3. Alice criptografa o nonce usando a chave simtrica secreta KA-B que combinou com Bob
e envia o nonce cifrado KA-B(R) de volta a Bob. Como acontece no protocolo pa3.1, o
fato de Alice conhecer a chave KA-B e us-la para criptografar um valor que permite que
Bob saiba que a mensagem que recebeu foi gerada por Alice. O nonce utilizado para
assegurar que Alice esta ao vivo.
4. Bob decripta a mensagem recebida. Se o nonce decriptado for igual ao nonce que enviou
a Alice, ento ela estar autenticada.
O protocolo pa4.0 est ilustrado na Figura 9. Usando um valor R apenas uma nica vez
e, em seguida, verificando o valor devolvido, KA-B(R), Bob pode ter certeza de que Alice
quem diz ser, j que conhece o valor da chave secreta necessrio para criptografar (R) e
tambm de que ela esta ao vivo (j que ela tem o nonce criptografado R que Bob acabou de
criar).

Figura 9 - Protocolo pa 4.0: no h cenrio de falha trivial

Protocolo de autenticao pa 5.0


A utilizao de um nonce e da criptografia de chaves simtricas criou a base do nosso
bem-sucedido protocolo de autenticao ap4.0. Uma pergunta natural se podemos usar
um nonce e criptografia de chaves pblicas (em vez de criptografia de chaves simtricas)
para resolver o problema da 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 pa.5.o um protocolo que utiliza criptografia
de chaves pblicas de um modo anlogo utilizao de criptografia de chaves simtricas
pelo protocolo pa4.o.
1. Alice envia a mensagem "Eu sou A1ice" para Bob.
2. Bob escolhe um nonce, R, e o envia a Alice. Mais uma vez, o nonce ser usado para ele
se certificar de que Alice esta ao vivo.
3. Alice usa sua chave privada, KA-, para criptografar o nonce e enviar o valor resultante
KA- (R) a Bob. Visto que somente Alice conhece sua chave privada, ningum, exceto ela, pode gerar KA- (R).
4. Bob aplica a chave pblica de Alice, KA +, mensagem recebida; isto , processa KA

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Figura 10 - Protocolo pa 5.0 trabalhando corretamente

O funcionamento do protocolo pa5.0 ilustrado na Figura 10. O protocolo pa5.o e to


seguro quanto o protocolo pa4.0? Ambos usam nonces. Como o pa5.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 11, em que Trudy pode se passar por Alice perante Bob;

Figura 11 - Uma falha de segurana no protocolo pa 5.0

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


2. Bob escolhe um nonce, R, e o envia a Alice, mas a mensagem interceptada por Trudy.
3. Trudy usa sua chave privada KT-, para criptografar o nonce e envia o valor resultante, KT(R), a Bob. Para Bob, KT- (R) apenas um punhado de bits e ele no sabe se os bits
representam KT - (R) ou KA-(R).
4. Bob deve agora pegar a chave pblica de Alice para aplicar KA+ ao valor que acabou de
receber. Ele envia a mensagem Alice, solicitando seu KA+ (Bob tambm pode recuperar a
chave pblica de Alice do site Web dela). Trudy intercepta tambm essa mensagem e
responde a Bob devolvendo KT+, isto , a chave pblica dela, Trudy. Bob ento calcula

Material Instrucional de uso restrito consulte fsauer@gmail.com

23

KT+(KT- (R)) = R e, assim, autentica Trudy como se ela fosse Alice!


Fica claro nesse cenrio que o protocolo pa5.o apenas to seguro quanto
distribuio de chaves pblicas. Felizmente, existem maneiras seguras de distribuir chaves
pblicas, como veremos mais adiante.
No cenrio da Figura 11, Bob e Alice podem acabar descobrindo, juntos, que alguma
coisa est errada, pois Bob dir que interagiu com Alice, mas Alice sabe que isso no
aconteceu. H um ataque ainda mais insidioso que poderia impedir essa descoberta. No
cenrio da Figura 12, 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 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 decriptado os dados usando a chave pblica real de Alice).

Figura 12 - Um ataque do tipo Man-in-the-Middle

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

24

durante a ultima semana. Voc assina cheques, comprovantes de operao de cartes de


credito, 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 essas finalidades no mundo digital.
Exatamente como acontece com as assinaturas por escrito, a assinatura digital deve ser
verificvel, no falsificvel e incontestvel. Isto , 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 individuo poderia ter assinado o documento (a
assinatura no pode ser falsificada, e o signatrio no pode mais tarde repudiar o
documento, nem negar que o assinou). Isso se consegue facilmente usando tcnicas de
criptografia de chaves pblicas.

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 13, para assinar esse documento Bob simplesmente usa sua chave criptogrfica
privada KB- para processar KB- (m). A princpio, pode parecer estranho que Bob esteja
usando sua chave privada (que, como vimos na discusso anterior, foi usada para decriptar
uma mensagem que tinha sido criptografada com sua chave pblica) para assinar um
documento. Mas lembre-se de que criptografia e decriptao nada mais so do que uma
operao matemtica (exponenciao potencia e ou d no RSA) e que a inteno de Bob
no embaralhar ou disfarar o contedo do documento, mas assinar o documento de
maneira que este seja verificvel, no falsificvel e incontestvel. Bob tem o documento, m,
e sua assinatura digital do documento KB- (m).

Figura 13 - Criao de uma assinatura digital para um documento

A assinatura digital KB- (m) atende as nossas exigncias de ser verificvel, no


falsificvel e no repudivel? Suponha que Alice tenha m e KB- (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. Alice pega a chave pblica de Bob, KB+ (m), e a aplica a
assinatura digital KB- (m) associada ao documento m. Isto , ela processa KB+(KB- (m)), e,

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Dada a sobrecarga de criptografia e decriptao, a assinatura de dados por


criptografia/decriptao da mensagem completa pode ser exagerada. Uma abordagem mais
eficiente, usando os denominados resumos de mensagem, pode atingir esses dois objetivos
sem codificar completamente a mensagem.
Um resumo de mensagem muito parecido com uma soma de verificao. Algoritmos
de resumo de mensagem pegam uma mensagem m, de comprimento arbitrrio, e calculam
uma 'impresso digital' dos dados, com comprimento fixo, 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 ma inteno ou por acidente), ento a mensagem H(m)

Material Instrucional de uso restrito consulte fsauer@gmail.com

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:

inviave1, em termos computacionais, achar quaisquer duas mensagens diferentes


x e y tais que H(x) = H(y).

Figura 14 - Funes de Hash so usadas par criar resumos de mensagem

Informalmente, essa propriedade significa que, em termos de processamento, e


impraticvel que um intruso substitua uma mensagem por outra se a primeira estiver
protegida por um resumo de mensagem. Isto , se (m,H(m)) for o par mensagem e resumo
de mensagem criado pelo remetente, ento um intruso no poder falsificar o contedo de
uma outra mensagem, y, que tenha o mesmo valor de resumo de mensagem da mensagem
original. Quando Bob assina m, processando KB- (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).
No contexto em que Bob envia uma mensagem a Alice, a figura 15 apresenta um
resumo do procedimento operacional para a criao de uma assinatura digital do arquivo.

Material Instrucional de uso restrito consulte fsauer@gmail.com

27

Figura 15 - Envio de uma mensagem assinada digitalmente

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.

Figura 16 - Verificao da integridade de uma mensagem assinada

Algoritmos de funo de hash


bom nos convencermos de que uma simples soma de verificao, como a da Internet,
daria um pssimo algoritmo de resumo de mensagem. Em vez de processar a aritmtica de
complemento de 1 (como feito para a soma de verificao da Internet), vamos efetuar

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Figura 17 - Mensagem Inicial e mensagem fraudulenta tem o mesmo CheckSum

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.

Material Instrucional de uso restrito consulte fsauer@gmail.com

29

Distribuio de Chaves e Certificao


J, vimos que uma desvantagem da criptografia de chaves simtricas era a necessidade
de que as duas partes comunicantes concordassem com sua chave secreta previamente.
Com a criptografia de chaves pblicas, esse acordo a priori sobre um valor secreto no e
necessrio. Contudo, a criptografia de chaves pblicas tambm tem suas dificuldades, em
particular o problema de obter a chave pblica verdadeira de algum. Ambos os problemas
- determinao de uma chave compartilhada para a criptografia de chaves simtricas e
obteno de uma chave pblica segura, no caso da criptografia de chaves pblicas - podem
ser solucionados usando-se um intermedirio de confiana. Para criptografia de chaves
simtricas, o intermedirio de confiana denominado central de distribuio de chaves
(key distribution center - KDC), uma entidade de rede nica e de confiana com a qual o
usurio estabelece uma chave secreta compartilhada. Veremos que a KDC pode ser usada
para obter as chaves compartilhadas necessrias para comunicao segura com todas as
outras entidades de rede, evitando algumas das armadilhas. No caso da criptografia de
chaves pblicas, o intermedirio de confiana denominado autoridade certificadora
(certification authority - CA). Uma CA certifica que uma chave pblica pertence a uma
determinada entidade (uma pessoa ou uma rede). No caso de uma chave pblica certificada,
se a confiana depositada na CA que certificou a chave for absoluta, poderemos ter certeza
quanto a quem pertence chave pblica. Uma vez certificada, uma chave pblica ento
pode ser distribuda de qualquer lugar, incluindo um servidor de chave pblica, uma pgina
Web pessoal ou um disquete.
A Central de distribuio de Chaves
Suponha, mais uma vez, que Bob e Alice queiram se comunicar usando criptografia de
chaves simtricas. Eles nunca se encontraram e, assim, no combinaram previamente uma
chave secreta compartilhada. Como possvel, ento, que eles agora combinem uma chave
secreta, dado que s podem se comunicar um com o outro pela rede? Uma soluo
freqentemente adotada na prtica e usar uma KDC de confiana.
A KDC um servidor que compartilha uma chave simtrica secreta nica com cada um de
seus usurios registrados. Essa chave poder ser instalada manualmente no servidor quando
o usurio se registrar pela primeira vez. A KDC conhece a chave secreta de cada usurio, e
cada um deles pode se comunicar com segurana com a KDC usando essa chave. Vejamos
como conhecer essa chave nica permite que um usurio obtenha com segurana uma
chave para se comunicar com qualquer outro usurio registrado. Suponha que Alice e Bob
sejam usurios da KDC; eles conhecem apenas suas prprias chaves individuais, KA-KDC e
KB-KDC, respectivamente, para se comunicar com segurana com a KDC. Alice d o
primeiro passo, e eles continuam como ilustrado na Figura 18.

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

33

credibilidade a chaves pblicas certificadas pela autoridade certificadora Fly-by-Night. Por


outro lado, seria mais sensato (ou no!) estar mais inclinado a confiar em uma CA que faz
parte de um programa federal - ou estadual - como o programa do Estado de Utah que
licencia CAs nesse Estado. O grau de confiana que se tem na identidade associada a uma
chave pblica equivale apenas ao grau de confiana depositada na CA e em suas tcnicas
de verificao de identidades. Que rede emaranhada de confiana estamos tecendo!
2. To logo verifique a identidade da entidade, a CA cria um certificado que vincula a chave
pblica da entidade identidade verificada. O certificado contm a chave pblica e a
informao exclusiva que identifica mundialmente o proprietrio da chave pblica (por
exemplo, o nome de algum ou um endereo IP). Essas etapas so mostradas na Figura 19.

Figura 19 - Bob obtm um certificado do CA

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

validade
Nome do sujeito
Chave pblica
do sujeito

34

Identidade da entidade cuja chave pblica est associada a esse


certificado em formato DN
A chave pblica do sujeito, bem como uma indicao do algoritmo de
chave pblica (e parmetros do algoritmo) a ser usado com essa chave

Tanto a International Telecommunication Union (ITU) como a IETF desenvolveram


padres para autoridades certificadoras. Na recomendao ITU X.509 de 1993,
encontramos a especificao de um servio de autenticao, bem como uma sintaxe
especfica para certificados.
O RFC 1422 descreve um gerenciamento de chaves baseado em CA para utilizao
com o e-mail seguro pela Internet. Essa recomendao compatvel com X.509, mas vai
alm desta, pois estabelece procedimentos e convenes para uma arquitetura de
gerenciamento de chaves. A Tabela 5 apresenta alguns campos importantes de um
certificado.
Com o recente crescimento do comrcio eletrnico e a conseqente necessidade de
garantir a segurana das transaes, tem havido um interesse crescente em autoridades
certificadoras. Entre as empresas que fornecem servios de CA esto a Digital Signatures
Trust Company e a Verisign .
A Figura 20 mostra um certificado usado pela UniverCidade para acesso web
.

Figura 20 - Certificado X.509v3

Controle de acesso - Firewalls


Vimos, em todo este capitulo, que a Internet no um lugar muito seguro - nela, os
delinqentes esto por toda parte, criando todo tipo de destruio. Do ponto de vista de um
administrador, o mundo est dividido claramente em dois campos - os bonzinhos (que
pertencem organizao que administra a rede e que deveriam poder acessar recursos
dentro da rede que ele administra de um modo relativamente livre de restries) e os
bandidos (todo o resto, cujo acesso aos recursos da rede deve ser cuidadosamente

Material Instrucional de uso restrito consulte fsauer@gmail.com

35

inspecionado). Em muitas organizaes, que vo desde castelos medievais a modernos


escritrios de empresas, ha um nico ponto de entrada/sada onde ambos, bonzinhos e
bandidos que entram e saem da organizao, passam por inspeo de segurana. Em
castelos medievais, essa inspeo era feita em um porto, na extremidade de uma ponte
levadia; em escritrios empresariais;, a inspeo feita na central de recepo/segurana.
Em redes de computadores, quando o trfego que entra/sai de uma rede passa por inspeo
de segurana, registrado, descartado e/ou transmitido, a entidade que faz isso um
dispositivo conhecido como um firewall.
Um firewall e uma combinao de hardware e software que isola a rede interna de uma
organizao da Internet em geral, permitindo que alguns pacotes passem e bloqueando
outros. Um firewall permite que um administrador de rede controle o acesso entre o mundo
externo e os recursos da rede que administra gerenciando o fluxo de trfego de e para esses
recursos. A Figura 21 mostra um firewall situado exatamente na fronteira entre a rede
administrada e o restante da Internet. Embora organizaes de grande porte possam utilizar
vrios nveis de firewalls ou firewalls distribudos. Localizar um firewall em um nico
ponto de acesso a rede, como mostra a Figura 21, facilita a administrao e a imposio de
uma poltica de segurana de acesso.

Figura 21 - Firewall entre a rede e o exterior

H dois tipos de firewall: firewalls de filtragem de pacotes (que funcionam na camada


de rede) e gateways de camada de aplicao (que funcionam na camada de aplicao).
Estudaremos cada um deles a seguir.
Filtragem de pacotes
Como mostra a Figura 21, uma organizao normalmente tem um roteador.de borda
que conecta sua rede interna com seu ISP (e dali com a Internet pblica, mais ampla). Todo
o trfego que sai ou que entra na rede interna passa por esse roteador e nesse roteador que
ocorre a filtragem de pacotes. Os filtros de pacotes primeiramente analisam os cabealhos
de datagramas e ento aplicam regras de filtragem especificadas por um conjunto definido
pelo administrador, as quais determinam se o datagrama ser descartado ou passara. As
decises de filtragem so normalmente baseadas em:
Endereo IP de origem e de destino;
Porta TCP ou UDP de origem e destino;

Material Instrucional de uso restrito consulte fsauer@gmail.com

36

Tipo de mensagem ICMP; ou


Datagramas de inicializao de conexo usando bits TCP SYN ou ACK.

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

39

ser aplicada pela implementao da combinao de um filtro de pacotes (em um roteador)


com um gateway de aplicao de Telnet, como mostra a Figura 22.

Figura 22 - Firewall composto de um gateway de aplicao e um filtro

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

40

gateway em vez do servidor externo, e tambm como comunicar ao gateway de


aplicao a qual servidor este deve se conectar, ou
O usurio deve se conectar explicitamente ao servidor externo por meio do gateway de
aplicao.

Conclumos esta seo mencionando que os firewalls no so, de maneira nenhuma,


uma panacia para os problemas de segurana. Eles introduzem um compromisso entre o
grau de comunicao com o mundo exterior e o nvel de segurana. Como os filtros no
podem impedir a falsificao de endereos IP e de nmeros de porta, eles frequentemente
usam uma poltica de tudo ou nada (por exemplo, banir todo o trfego UDP). Gateways
tambm podem ter bugs no software que permitem que intrusos penetrem neles. Por fim,
firewalls so ainda menos eficazes se as comunicaes internas puderem alcanar o mundo
externo sem passar por eles. As comunicaes sem fio e os modens discados so dois
exemplos disso.

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

41

amplamente utilizada para explorao de redes e para auditoria de desempenho, que


executa varredura de portas. Muitos firewalls, como os vendidos pela Checkpoint, detectam
mapeamento e varredura de portas, bem como outras atividades mal-intencionadas, e as
informam ao administrador da rede.

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.

Figura 23 - Anlise de Pacotes

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.

Material Instrucional de uso restrito consulte fsauer@gmail.com

42

Por exemplo, um hospedeiro que responda a um datagrama ICMP de solicitao de eco


(isto , que envia uma resposta de eco ICMP) que est corretamente endereado ao
datagrama IP, porm contm um endereo MAC incorreto (no nvel do quadro),
provavelmente tem sua interface configurada em modo promiscuo. A chave para conviver
com a anlise de pacotes e criptografar todos os dados (em particular senhas) que cruzam
um enlace de rede.
Falsificao
Qualquer equipamento conectado Internet necessariamente envia datagramas IP para
a rede. Lembre-se de que esses datagramas portam o endereo IP do remetente, bem como
dados da camada superior. Um usurio que tenha completo controle sobre o software do
equipamento (em particular sobre o sistema operacional) pode facilmente modificar os
protocolos daquele equipamento e colocar um endereo IP arbitrrio no campo Endereo de
Fonte (Source Address) do datagrama. Isso e conhecido como falsificao de IP. Dessa
maneira, um usurio pode montar um pacote IP que contenha quaisquer dados de carga til
(camada superior) que quiser e fazer com que parea que os dados foram enviados de um
hospedeiro IP arbitrrio. A falsificao de IP e muito usada em ataques de recusa de servio
para ocultar a identidade de quem originou o ataque, como discutiremos a seguir. Se o
endereo de fonte IP de um datagrama for falsificado, e difcil descobrir o hospedeiro que o
enviou.
Do ponto de vista tcnico, e fcil evitar falsificao. Roteadores que executam
filtragem de entrada verificam os endereos IP de datagramas que esto chegando e
determinam se o endereo de fonte est na faixa de endereos de rede que se sabe que
podem ser alcanados por meio daquela interface. Essa verificao pode ser realizada com
facilidade na borda da rede, por exemplo, em um gateway ou firewall de uma empresa onde
conhecida uma determinada faixa de endereos dentro da qual esto todos os hospedeiros
existentes na empresa. A filtragem de ingresso hoje considerada uma boa pratica na
Internet [RFC 2827]. Embora seja simples do ponto de vista tcnico, a filtragem de ingresso
no pode ser imposta e, portanto, de um ponto de vista social, difcil de implantar - em
conseqncia, no e implementada universalmente.
Ataques de Negao de Servio (DoS) e Ataques de Negao de Servio Distribudos
(DDoS).
H uma categoria muito ampla de ameaas segurana que pode ser classificada como
ataques de negao de servio (denial-of-service - DoS). Como o nome sugere, um ataque
DoS torna impossvel a utilizao de uma rede, de um hospedeiro ou de qualquer outro
componente da infra-estrutura da rede pelos usurios legtimos. Em geral, um ataque DoS
funciona pela criao de uma quantidade to grande de trabalho para a infra-estrutura sob
ataque que o trabalho legitimo no pode ser realizado. Em um ataque de inundao SYN, o
atacante inunda um servidor com pacotes TCP SYN, cada um com um endereo IP de fonte
falsificado. O servidor, incapaz de diferenciar um pacote SYN legitimo de um falsificado,
conclui a segunda etapa da apresentao TCP para um SYN falsificado, alocando a ele

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

44

Trudy pode causar no relacionamento entre Bob e Alice!

Segurana em muitas camadas: estudos de casos


Nas sees anteriores, examinamos questes fundamentais de segurana na rede,
incluindo criptografia de chaves simtricas e criptografia de chaves pblicas, autenticao,
distribuio de chaves, integridade de mensagens e assinaturas digitais. Vamos agora
examinar como essas ferramentas esto sendo usadas para proporcionar segurana na
Internet. interessante que possvel fornecer servios de segurana em qualquer uma das
quatro camadas superiores da pilha de protocolos da Internet. Quando fornecida
segurana para um protocolo especfico de camada de aplicao, a aplicao que usa o
protocolo desfruta de um ou mais servios de segurana, como confidencialidade,
autenticao ou integridade. Quando a segurana fornecida para um protocolo de camada
de transporte, todas as aplicaes que usam o protocolo desfrutam dos servios de
segurana do protocolo de transporte. Quando a segurana fornecida na camada de rede,
de hospedeiro a hospedeiro, todos os segmentos de camada de transporte (e, por
conseguinte, todos os dados de camada de aplicao) desfrutam dos servios de segurana
da camada de rede. Quando a segurana fornecida por enlace, ento todos os dados de
todos os quadros que esto trafegando pelo enlace recebem os servios de segurana do
enlace.
Nesta seo, veremos como as ferramentas de segurana esto sendo usadas nas
camadas de aplicao, transporte e rede. Para mantermos a consistncia da estrutura geral
deste livro, comearemos pelo topo da pilha de protocolos, discutindo a segurana na
camada de aplicao. Nossa abordagem usar uma aplicao especifica, o e-mail, como um
estudo de caso para a segurana na camada de aplicao. Em seguida, desceremos pela
pilha de protocolos. Examinaremos o protocolo SSL (que fornece segurana ao TCP na
camada de transporte), o IPSEC (que fornece segurana camada de rede) e a segurana do
protocolo IEEE 802.11 para LANs sem fio.
bem possvel que voc esteja pensando por que a funcionalidade de segurana da
Internet est sendo fornecida em mais de uma camada. No seria suficiente simplesmente
fornecer funcionalidade de segurana na camada de rede e esquecer o assunto? H duas
respostas para essa pergunta. Em primeiro lugar, embora a segurana na camada de rede
possa oferecer um 'cobertor de segurana' com a criptografia de todos os dados dos
datagramas (isto , de todos os segmentos de camada de transporte) e com a autenticao de
todos os endereos IP de origem, ela no pode garantir segurana no nvel do usurio. Por
exemplo, um site comercial no pode confiar na segurana da camada IP para autenticar um
cliente que esta comprando mercadorias nesse site. Assim, h necessidade de uma
funcionalidade de segurana nas camadas mais altas, bem como um cobertor de segurana
nas camadas mais baixas. Em segundo lugar, em geral mais fcil disponibilizar novos
servios de Internet, incluindo servios de segurana, nas camadas mais altas da pilha de
protocolos. Enquanto aguardamos que a segurana seja disseminada de maneira ampla na
camada de rede, o que provavelmente ainda levar alguns anos para acontecer, muitos
desenvolvedores de aplicao tomam a iniciativa de faz-lo mesmo assim e introduzem a
funcionalidade de segurana em suas aplicaes favoritas. Um exemplo clssico o PGP
(Pretty Good Privacy), que fornece e-mail seguro (e ser discutido mais adiante). Como

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

Material Instrucional de uso restrito consulte fsauer@gmail.com

47

que estejam somente preocupados com a autenticao do remetente e com a integridade da


mensagem. Para realizar essa tarefa, usaremos assinaturas digitais e resumos de mensagem.
Especificamente, Alice (1) aplica uma funo de hash H (por exemplo, MD5) sua
mensagem m, para obter um resumo de mensagem, (2) assina o resultado da funo de hash
com sua chave privada KA- para criar uma assinatura digital, (3) concatena a mensagem
original (no criptografada) com a assinatura para criar um pacote e (4) envia a pacote ao
endereo de e-mail de Bob. Quando Bob recebe a pacote, e1e (1) aplica a chave pblica de
Alice, KA+ , ao resumo de mensagem assinada e (2) compara o resultado dessa operao
com o prprio hash H da mensagem. As etapas so ilustradas na Figura 25. Como j
discutimos, se os dois resultados forem iguais, Bob podem ter razovel certeza de que a
mensagem veio de Alice e no foi alterada.

Figura 25 - Utilizao da funo de Hash e assinaturas digitais para garantir autenticao do remetente
e integridade da mensagem

Vamos considerar agora o projeto de um sistema de e-mail que fornea


confidencialidade, autenticao de remetente e integridade de mensagem. Isso pode ser
feito pela combinao dos procedimentos das figuras 24 e 25. Em primeiro lugar, Alice cria
um pacote preliminar, exatamente como mostra a Figura 25, constitudo de sua mensagem
original junto com um hash da mensagem assinado digitalmente. Em seguida, ela trata esse
pacote preliminar como uma mensagem em si e envia essa nova mensagem seguindo as
etapas do remetente mostradas na Figura 24, criando um novo pacote, que enviado a Bob.
As etapas seguidas so mostradas na Figura 26. Quando Bob recebe o pacote, ele aplica
primeiramente seu lado da Figura 24 e depois seu lado da Figura 25. preciso ficar claro
que esse projeto atinge o objetivo de fornecer confidencialidade, autenticao de remetente
e integridade de mensagem. Note que nesse esquema Alice utiliza criptografia de chaves
pblicas duas vezes: uma vez com sua chave privada e uma vez com a chave pblica de
Bob. De maneira semelhante, Bob tambm aplica a criptografia de chaves pblicas duas
vezes - uma vez com sua chave privada e uma vez com a chave pblica de Alice.

Material Instrucional de uso restrito consulte fsauer@gmail.com

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

O projeto de e-mail seguro ilustrado na Figura 26 provavelmente fornece segurana


satisfatria para os usurios de e-mail na maioria das ocasies. Mas ainda resta uma
questo importante a ser abordada. O projeto da Figura 26 requer que Alice obtenha a
chave pblica de Bob e que Bob obtenha a chave pblica de Alice. A distribuio dessas
chaves um problema nada trivial. Por exemplo, Trudy poderia se disfarar de Bob e dar a
Alice sua prpria chave pblica, dizendo que a chave pblica de Bob. Como j
aprendemos , uma abordagem popular para distribuir chaves pblicas com segurana
utilizar uma autoridade certificadora.
PGP
Projetado originalmente por Phil Zimmermann em 1991, o PGP (pretty good privacy privacidade razovel) um esquema de criptografia para e-mail que se tomou um padro de
fato. Em 2004, o site do PGP era acessado mais de um milho de vezes por ms por
usurios de 166 paises. Verses do PGP esto disponveis em domnio publico; por
exemplo, voc pode encontrar o software PGP para sua plataforma favorita, bem como
grande quantidade de material de leitura interessante, na home page internacional do PGP.
O PGP tambm pode ser adquirido no comrcio como acessrio plug-in para muitos
agentes de usurio de e-mail, incluindo o Exchange e o Outlook, da Microsoft, e o Eudora,
da Qualcomm. O projeto do PGP , em essncia, idntico ao projeto apresentado na Figura
26. Dependendo da verso, o software do PGP usa MDS ou SHA para processar o resumo
de mensagem; CAST, DES triplo ou IDEA para criptografar chaves simtricas, e RSA para
criptografar chaves pblicas. Alm disso, o PGP fornece compresso de dados.

Material Instrucional de uso restrito consulte fsauer@gmail.com

49

- - BEGIN PGP SIGNED MESSAGE - - Hash: SHA1


Bob:
Can I see you tonight?
Passionately yours. Alice
- - - - - BEGIN PGP SIGNATURE - - Version: PGP for Personal Privacy 5.0
Charset: noeonv
yhHJRHhGJGhgg/12EpJ+loBgE4vB3mqJhFEvZP9t6n7G6m5Gw2
- - - - - END PGP SIGNATURE - Figura 27 - Uma mensagem PGP assinada

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.

Material Instrucional de uso restrito consulte fsauer@gmail.com

50

- - - - - BEGIN PGP MESSAGE - - - Version: PGP for Personal Privacy 5.o


u2R4d+/jKmnBBc5+hgDsqAewsDfrGdszX6BliKm5F6Gc4sDfcXyt
RfdS1ojuHgbcfDssWe7/K-1KhnMikLoO+1/BvcX4t--Ujk9PbcD4
Thdf2awOfgHbnmKlokBiy6gThip
- - - - - END PGP MESSAGE
Figura 28 - Uma mensagem PGP secreta

Camada de Sockets de Segurana (SSL) e Segurana na Camada de


Transporte (TLS)
Na seo anterior, consideramos como a camada de aplicao pode usar (no e-mail
seguro) os vrios mecanismos de segurana que estudamos antes neste capitulo:
criptografia, autenticao, distribuio de chaves, integridade de mensagem e assinaturas
digitais. Nesta seo, continuaremos nosso estudo de caso de vrios mecanismos de
segurana descendo mais uma camada na pilha de protocolos e abordando sockets seguros
e uma camada de transporte segura. Consideraremos o comrcio na Internet como uma
aplicao motivadora, visto que transaes comerciais e financeiras so uma importante
fora propulsora da segurana na Internet.
Vamos considerar um cenrio tpico de comrcio pela Internet. Bob esta navegando
pela Web e encontra o site Alice Incorporated, que vende um produto. Esse site apresenta
um formulrio no qual Bob deve informar a quantidade desejada, seu endereo e o nmero
de seu carto de credito. Bob registra essas informa6es, clica em 'apresentar' e, ento,
aguarda o recebimento do 'produto (por exemplo, pelo correio convencional); ele tambm
espera receber a cobrana da mercadoria na prxima fatura de seu carto de crdito. Isso
tudo parece ser muito bom, mas, se no forem tomadas medidas de segurana - como
criptografia ou autenticao -, Bob poderia ter algumas surpresas:
Um intruso pode interceptar o pedido de compra, obter as informaes sobre o
carto de credito e, ento, fazer compras na conta de Bob.
O site pode apresentar o famoso logotipo da Alice Incorporated, mas, na realidade,
ser mantido por Trudy, que est se fazendo passar por Alice Incorporated. Trudy
poderia se apossar do dinheiro de Bob e fugir. Ou poderia fazer compras e enviar a
fatura para a conta de Bob.
Muitas outras surpresas tambm so possveis; discutiremos algumas delas na prxima
subseo. Mas esses dois problemas apresentados so os mais srios. O comercio pela
Internet usando o protocolo SSL pode enfrentar ambos os problemas.
A SSL (secure sockets layer - camada de sockets de segurana), originalmente
desenvolvida pela Netscape, um protocolo projetado para fornecer criptografia de dados e
autenticao entre um c1iente e um servidor Web. O protocolo comea com uma fase de
apresentao mtua que negocia um algoritmo de criptografia (por exemplo, DES ou
IDEA) e chaves, e autentica o servidor para o cliente. Opcionalmente, o cliente pode

Material Instrucional de uso restrito consulte fsauer@gmail.com

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:

Autenticao do servidor SSL, que permite que um usurio confirme a identidade


de um servidor. Um browser habilitado para SSL mantm uma lista de CAs de
confiana, juntamente com as chaves pblicas dessas CAs. Quando um browser
quer fazer negcios com um servidor Web habilitado para SSL, ele obtm um
certificado do servidor contendo a chave pblica deste. O certificado emitido (ou
seja, e assinado digitalmente) por uma CA que aparece na lista de CAs de confiana
do cliente. Essa caracterstica permite que o browser autentique o servidor antes de
o usurio informar o nmero de seu carto de credito. No contexto do exemplo
apresentado, essa autenticao do servidor permite que Bob verifique se ele est
realmente enviando o nmero de seu carto de credito Alice Incorporated, e no a
algum que possa estar se fazendo passar pela Alice Incorporated.
Autenticao do cliente SSL, que permite que um servidor confirme a identidade de
um usurio. Anloga a autenticao do servidor, a autenticao do cliente faz uso de
certificados dos clientes que tambm foram emitidos pelas CAs. Essa autenticao e
importante se o servidor, por exemplo, for um banco que esta enviando informaes
financeiras confidenciais para um cliente e quer verificar a identidade do receptor.
A autenticao do cliente, embora suportada peta SSL, opcional. Para no desviar
nosso foco de ateno, daqui em diante vamos ignorar a autenticao do cliente.
Uma sesso SSL criptografada, na qual toda a informao enviada entre browser e
servidor criptografada pelo software remetente (browser ou servidor Web). Essa
confidencialidade pode ser importante tanto para o cliente quanto para o
comerciante. O protocolo SSL tambm prov um mecanismo que detecta a alterao
de informao por um intruso.

Como a SSL funciona


Um usurio - digamos, Bob - navega pela Web e clica sobre um ponteiro que o
transporta a uma pgina segura abrigada pelo servidor que utiliza SSL de Alice. A parte do
URL que se refere ao protocolo para essa pgina https, e no o http comum. O browser e
o servidor executam o protocolo de apresentao mtua da SSL que (1) autentica o servidor

Material Instrucional de uso restrito consulte fsauer@gmail.com

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:

Figura 29 - SSL em apresentao mtua

1. o browser envia ao servidor o nmero da verso da SSL que utiliza e as


preferncias criptogrficas. Ele envia essas preferncias criptogrficas porque browser e
servidor negociam qual algoritmo de chaves simtricas vo usar.
2. o servidor envia ao browser o nmero da verso da SSL que utiliza, suas
preferncias criptogrficas e seu certificado. Lembre-se de que o certificado contm a
chave pblica RSA do servidor e certificado por uma CA, isto , o certificado foi assinado
com a chave privada da CA.
3. o browser tem uma lista de CAs de confiana e uma chave pblica para cada CA da
lista. Quando recebe o certificado do servidor, o browser verifica se a CA esto na lista. Se
no estiver, o usurio ser avisado do problema e informado de que no pode ser
estabelecida uma conexo criptografada e autenticada. Se a CA estiver na lista, o browser
usar a chave pblica da CA para validar o certificado e obter a chave pblica do servidor.
4. o browser gera uma chave de sesso simtrica, criptografa-a com a chave pblica
do servidor e envia a chave de sesso criptografada ao servidor.
5. o browser envia uma mensagem ao servidor informando que as futuras mensagens
do cliente sero criptografadas com a chave de sesso. Ele ento envia uma mensagem

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Segurana na Camada de rede: IPsec


O protocolo de segurana IP, mais conhecido como IPsec, um conjunto de protocolos
que oferece segurana na camada de rede. O IPsec um mecanismo bastante complexo partes dele esto descritas em mais de uma dzia de RFCs. Nesta seo, discutiremos o
IPsec em um contexto especfico, a saber, admitindo que todos os hospedeiros da Internet
suportam o IPsec. Esse contexto, embora esteja ainda muito distante, simplificar a
discusso e nos ajudar a entender as caractersticas principais do IPsec. Dois RFCs
fundamentais so o RFC 2401, que descreve a arquitetura geral de segurana IP, e o RFC
2411, que proporciona uma viso do conjunto de protocolos IPsec e apresenta os

Material Instrucional de uso restrito consulte fsauer@gmail.com

54

documentos que o descrevem.


Antes de examinar os aspectos especficos do IPsec, vamos dar um passo atrs e
considerar o que significa oferecer segurana na camada de rede. Considere, em primeiro
lugar, o que significa fornecer confidencialidade na camada de rede. A camada de rede
ofereceria confidencialidade se todos os dados portados por todos os datagramas IP fossem
criptografados. Isso significa que, sempre que um hospedeiro quisesse enviar um
datagrama, ele criptografaria o campo de dados do datagrama antes de despach-lo para a
rede. Em princpio, a criptografia poderia ser feita com chaves simtricas, chaves pblicas
ou chaves de sesso negociadas com a utilizao de criptografia de chaves pblicas. O
campo de dados poderia ser um segmento TCP, um segmento UDP, uma mensagem ICMP
e assim por diante. Se esse servio de camada de rede existisse, todos os dados enviados
por hospedeiros - incluindo e-mail, pginas Web, mensagens de controle e mensagens de
administrao (como ICMP e SNMP) - ficariam ocultos de qualquer terceiro que estivesse
grampeando a rede. Assim, esse servio forneceria alguma cobertura geral para todo trfego
da Internet e daria a todos nos, por conseguinte, certa sensao de segurana.
Alm da confidencialidade, poderamos querer que a camada de rede tambm
fornecesse autenticao de fonte. Quando um hospedeiro destinatrio recebesse um
datagrama IP com um endereo IP de fonte especfico, ele autenticaria a fonte certificandose de que o datagrama IP foi de faro gerado pelo hospedeiro cujo endereo IP de fonte e
aquele. Esse servio evitaria que fossem autenticados endereos IP falsificados.
No conjunto de protocolos IPsec, h dois protocolos principais: o protocolo de
Autenticao de Cabealho (Authentication Header - AH) e o protocolo de Segurana de
Encapsulamento de Carga til (Encapsulation Security Payload - ESP). Quando um
hospedeiro de origem envia datagramas seguros a um hospedeiro de destino, ele o faz com
o protocolo AH ou com o protocolo ESP. O protocolo AH fornece autenticao de fonte e
integridade de dados, mas no oferece confidencialidade. O protocolo ESP fornece
autenticao, integridade de dados e confidencialidade. Como oferece mais servios, esse
protocolo e naturalmente mais complicado e exige mais processamento do que o protocolo
AH.

Figura 30- Cabealho AH no datagrama

Tanto no protocolo AH quanto no ESP, antes de enviar datagramas seguros de um a


outro, os hospedeiros de origem e de destino fazem uma apresentao mtua e criam uma
ligao lgica de camada de rede. Esse canal lgico denominado acordo de segurana
(security association - AS). Assim, o IPsec transforma a tradicional camada de rede no
orientada para conexo da Internet em uma rede com conexes lgicas! A conexo lgica
definida por um AS e uma conexo simplex, isto e, unidirecional. Se ambos os hospedeiros

Material Instrucional de uso restrito consulte fsauer@gmail.com

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:

um identificador de protocolo de segurana (AH ou ESP);


o endereo IP de destino para a conexo simplex, e
um identificador de conexo de 32 bits denominado ndice de Parmetros de
Segurana (security parameter index - SPI).

Para um dado AS (isto e, uma dada conexo lgica de hospedeiro de origem a


hospedeiro de destino), cada datagrama IPsec ter um campo especial para o SPI. Todos os
datagramas do AS usaro o mesmo valor de SPI nesse campo.
Protocolo de Autenticao de Cabealho (AH)
Como mencionamos anteriormente, o protocolo AH fornece identificao do
hospedeiro de origem e integridade de dados, mas no confidencialidade. Quando um
determinado hospedeiro de origem quer enviar um ou mais datagramas seguros a um
destino particular, ele primeiramente estabelece um AS com o destino. Aps ter
estabelecido o AS, ele pode enviar datagramas seguros ao hospedeiro de destino. Os
datagramas seguros contem o cabealho AH, que inserido entre o datagrama de dados IP
original (por exemplo, um segmento TCP ou UDP) e o cabealho IP, como mostram as
Figuras 30 e 31.

Figura 31 - Posio do cabealho AH no datagrama IP

Assim, o cabealho AH amplia o campo de dados original, e esse campo ampliado


encapsulado como um datagrama IP padro. Para o campo de protocolo no cabealho IP, o
valor 51 usado para indicar que o datagrama contm um cabealho AH. Quando o
hospedeiro de destino recebe o datagrama IP, ele percebe o nmero 51 no campo de
protocolo e processa o datagrama usando o protocolo AH. (Lembre-se de que o campo de
protocolo do datagrama IP usado para determinar o protocolo da camada acima - por
exemplo, UDP, TCP ou ICMP para a qual ser passada a poro de dados de um datagrama
IP.) Roteadores intermedirios processam os datagramas exatamente como sempre o fazem
- examinam o endereo de destino IP e repassam os datagramas de acordo com esse
destino. O cabealho AH contm diversos campos, tais como:

Campo Prximo Cabealho, que desempenha o papel que o campo de protocolo


desempenha em um datagrama comum. Ele indica se os dados que se seguem ao
cabealho AH so um segmento TCP, um segmento UDP, um segmento ICMP e
assim por diante. (Lembre-se de que o campo de protocolo do datagrama IP agora
est sendo usado para indicar o protocolo AH e, assim, no pode mais ser utilizado
para identificar o protocolo da camada de transporte.)

Material Instrucional de uso restrito consulte fsauer@gmail.com

56

Campo SPI (Security Parameter Index), um valor arbitrrio de 32 bits que,


combinado ao endereo de destino IP e ao protocolo de segurana, identifica
exclusivamente o AS para o datagrama.

Campo Nmero de Seqncia, um campo de 32 bits que contm um nmero de


seqncia para cada datagrama. Ele inicialmente estabelecido quando da criao
de um AS. O protocolo AH usa os nmeros de seqncia para evitar os ataques de
reproduo e do homem do meio.

Campo Autenticao de Dados, um campo de comprimento varivel que contm um


resumo de mensagem assinado (isto , uma assinatura digital) para esse datagrama.
O resumo de mensagem calculado sobre o datagrama IP original, fornecendo,
desse modo, autenticao do hospedeiro de origem e integridade de datagrama IP. A
assinatura digital e processada usando o algoritmo de autenticao especificado pelo
AS, como MD5 ou SHA.

Quando o hospedeiro de destino recebe um datagrama IP com um cabealho AH, ele


determina o AS para o datagrama e, em seguida, autentica a integridade do datagrama
processando o campo da autenticao de dados. O esquema de autenticao do IPsec (tanto
para o protocolo AH como para o ESP) usa um sistema denominado HMAC, que e um
resumo de mensagem criptografado descrito no RFC 2104. O HMAC usa uma chave
secreta compartilhada pelas duas partes, em vez de mtodos de chaves pblicas para
autenticao de mensagens. Para mais detalhes sobre o protocolo AH, consulte o RFC
2402.
O protocolo ESP
O protocolo ESP fornece confidencialidade na camada de rede, bem como autenticao
do hospedeiro de origem. Novamente, tudo comea com um hospedeiro de origem
estabelecendo um AS com um hospedeiro de destino. Como mostra a Figura 30, um
datagrama seguro criado envolvendo o datagrama IP original com campos de cabealho e
de trailer e, em seguida, inserindo esses dados encapsulados no campo de dados de um
datagrama IP. No campo de protocolo do cabealho do datagrama IP, o valor 50 usado
para indicar que o datagrama contm um cabealho e um trailer ESP. Quando o hospedeiro
de destino recebe um datagrama IP, ele percebe o nmero 50 no campo de protocolo e
processa o datagrama usando o protocolo ESP. Como mostra a Figura 32, o datagrama IP
original e o campo Trailer ESP so criptografados. A confidencialidade fornecida pela
criptografia DES-CBC [RFC 2405]. O cabealho ESP consiste em um campo de 32 bits
para o SPI e um campo de 32 bits para o nmero de seqncia, os quais desempenham
exatamente a mesma funo que exercem no protocolo AH. O trailer contm o campo
Prximo Cabealho, cuja funo exatamente a mesma realizada no protocolo AH. Note
que, como o campo Prximo Cabealho criptografado juntamente com os dados originais,
um intruso no conseguir descobrir qual protocolo de transporte esta sendo usado. Aps o
trailer, h um campo Autenticao de Dados, que tambm desempenha o mesmo papel que
o campo da autenticao de dados no protocolo AH. Para mais detalhes sobre o protocolo
ESP, consulte o RFC 2406.

Material Instrucional de uso restrito consulte fsauer@gmail.com

57

Figura 32 - Os campos do protocolo ESP no datagrama IP

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.

O Algoritmo de Troca de Chaves da Internet (Internet Key Exchange - IKE)


[RFC 2409] e o protocolo default de administrao de chaves para o IPsec.

O Protocolo de Acordo de Segurana e de Administrao de Chaves na Internet


(Internet Security Association and Key Management Protocol - ISAKMP)
define procedimentos para estabelecer e encerrar ASs [RFC 2407; RFC 2408].
O AS do ISAKMP e completamente independente da troca de chaves do IKE.

Figura 33 - Cabealhos ESP (a) e ESP modo tnel (b)

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.

Segurana em IEEE 802.11


Segurana e uma preocupao particularmente importante em redes sem fio, nas quais
ondas de radio portando quadros podem se propagar para muito alm do edifcio que
contm a(s) estao(es) e os hospedeiros. Um bom lembrete que nos fez abrir os olhos
para esse fato foram os 18 meses de uma 'operao de guerra' executada por Peter Shipley,
que, percorrendo a Baa de San Francisco de carro, munido de um laptop e de uma placa
802.11, procurou redes sem fio 'visveis' fora dos edifcios em que estavam instaladas. Ele
registrou mais de nove mil dessas redes; uma nica esquina de San Francisco rendeu seis
redes diferentes disponveis! o que talvez seja ainda mais alarmante e que Shipley notou
que 85 por cento dessas nove mil redes no utilizavam nem mesmo os mecanismos de

Material Instrucional de uso restrito consulte fsauer@gmail.com

58

segurana do padro original de redes 802.11.


A questo da segurana em redes 802.11 atraiu considervel ateno, tanto em crculos
tcnicos quanto na mdia. Embora a discusso tenha sido considervel, o debate nem tanto aparentemente todos concordam que a especificao original do 802.11 contm inmeras
falhas de segurana serias. Na verdade, agora possvel descarregar software de domnio
publico que explora essas falhas, o que toma quem usa os dbeis mecanismos de segurana
incuos da 802.11 to sujeito a ataques abertos segurana quanto os 85 por cento de
usurios de redes sem fio da rea da Baia de San Francisco que no usam absolutamente
nenhuma medida de segurana.
A seguir, discutiremos os mecanismos de segurana padronizados na especificao
inicial da 802.11, conhecidos, em conjunto, como Privacidade Equivalente Sem Fio (Wired
Equivalent Privacy - WEP). Como o nome sugere, a inteno da WEP oferecer um nvel
de segurana semelhante ao que encontramos em redes com fio. Discutiremos, ento,
algumas das falhas de segurana da WEP e o padro 802.1li, uma verso fundamentalmente
mais segura do que a 8o2.11, adotada em 2004.
Privacidade Equivalente Sem Fio (Wired Equivalent Privacy WEP)
O protocolo WEP IEEE 802.11 fornece autenticao e criptografia de dados entre um
hospedeiro e um ponto de acesso sem fio (isto , uma estao-base) utilizando uma
abordagem de chaves simtricas compartilhadas. O WEP no especifica um algoritmo de
gerenciamento de chaves, portanto, admitimos que o hospedeiro e o ponto de acesso sem
fio concordaram com uma chave por meio de um mtodo fora da banda. A autenticao
executada como no protocolo ap 4.0 j citado. O processo tem quatro etapas
1. Um hospedeiro sem fio requisita autenticao por um ponto de acesso.
2. O ponto de acesso responde a requisio de autenticao com um valor de nonce de 128
bytes.
3. O hospedeiro sem fio criptografa o nonce usando a chave simtrica que compartilha com
o ponto de acesso.
4. O ponto de acesso decripta o nonce criptografado pelo hospedeiro.
Se o nonce decriptado corresponder ao valor enviado originalmente pelo hospedeiro, ento
este ser autenticado pelo ponto de acesso.
O algoritmo criptogrfico WEP ilustrado na Figura 34.

Figura 34 - Protocolo WEP 802.11

Admite-se que ambos, um hospedeiro e o ponto de acesso, conhecem uma chave

Material Instrucional de uso restrito consulte fsauer@gmail.com

59

simtrica secreta de 40 bits, Ks. Alm disso, um Vetor de Inicializao (Initialization


Vector - IV) de 24 bits e anexado chave de 40 bits, criando uma chave de 64 bits que ser
utilizada para criptografar um nico quadro. O IV mudar de um quadro para outro e, por
conseguinte, cada quadro ser criptografado com uma chave de 64 bits diferente. A
criptografia efetuada como segue. Em primeiro lugar, calculado um valor de CRC de 4
bytes para a carga til. A carga e os 4 bytes do CRC ento so criptografados usando o
codificador seqencial RC4. No abordaremos os detalhes do RC4 aqui. Para a nossa
finalidade, basta saber que, quando recebe um valor de chave (nesse caso, a chave de 64
bits (Ks,IV)), o algoritmo RC4 produz uma seqncia de valores de chaves, k1IV, k2IV , k3IV
,... que so utilizados para criptografar os dados e o valor de CRC em um quadro. Para
sermos prticos, podemos imaginar que essas operaes so realizadas um byte por vez. A
criptografia e efetuada fazendo OU- exclusivo no i-simo byte de dados, di;, com a i-sima
chave, kiIV , na corrente de valores de chaves gerada pelo par (Ks,IV) para produzir o isimo byte do texto cifrado, Ci:
Ci = di XOR kiIV
O valor de IV muda de um quadro para o seguinte e est includo em texto aberto no
cabealho de cada quadro WEP 802.11 criptografado, como mostra a Figura 31. O receptor
pega a chave simtrica secreta de 40 bits que compartilha com o emissor, anexa o IV e
utiliza a chave de 64 bits resultante (que idntica chave utilizada para efetuar a
criptografia) para decriptar o quadro.
di = ci XOR kiIV
A utilizao adequada do algoritmo RC4 requer que o mesmo valor de chave de 64 bits
nunca seja utilizado mais do que uma vez. Lembre-se de que a chave WEP muda quadro a
quadro. Para uma dada Ks (que raramente muda, se que muda), isso significa que h
somente 224 chaves exclusivas. Se essas chaves forem escolhidas aleatoriamente, pode-se
demonstrar que a probabi1idade de ser escolhido o mesmo valor de IV (e, por conseguinte,
a mesma chave de 64 bits) e mais de 99 por cento aps apenas 12 mil quadros. Com
quadros de 100 bytes de tamanho e taxa de transmisso de dados de 11 Mbps, bastam
apenas alguns segundos para que os 12 mil quadros sejam transmitidos. Alm do mais,
visto que cada IV e transmitido em texto aberto, um bisbilhoteiro saber sempre que for
utilizado um valor duplicado de IV.
Para perceber um dos vrios problemas que ocorrem quando usada uma chave
duplicada, considere o seguinte ataque a texto aberto escolhido realizado por Trudy contra
Alice. Suponha que Trudy (possivelmente utilizando falsificao de IP) envie uma
requisio (por exemplo, uma requisio HTTP ou FTP) a Alice, para transmitir um
arquivo de contedo conhecido, d1, d2, d3, d4.,... Trudy tambm observa os dados
criptografados c1, c2, c3, c4.,... Visto que di = ci XOR kiIV, se fizermos OU - exclusivo para
ci, em cada lado dessa igualdade, teremos:
di XOR Ci = kiIV
Tendo essa relao em mos, Trudy pode utilizar os valores conhecidos de d, e ci para

Material Instrucional de uso restrito consulte fsauer@gmail.com

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.

Figura 35 - 802.11i: quatro fases da operao

Material Instrucional de uso restrito consulte fsauer@gmail.com

61

O funcionamento do 802.11i tem quatro fases:


1. Descoberta. Na fase de descoberta, o AP anuncia sua presena e as formas de autenticao e
criptografia que podem ser oferecidas ao n do cliente sem fio. O cliente, ento, requisita as
formas especificas de autenticao e criptografia que deseja. Embora o cliente e o AP j
estejam trocando mensagens, o cliente ainda no foi autenticado, nem tem uma chave de
criptografia; portanto, sero necessrias diversas outras etapas antes que o cliente possa
se comunicar com um hospedeiro arbitrrio pelo canal sem fio.
2. Autenticao mtua e gerao de Chave Mestra (Master Key - MK). A autenticao ocorre
entre o cliente sem fio e o servidor de autenticao. Nessa fase, o ponto de acesso age
essencialmente como uma passagem, transmitindo mensagens entre o cliente e o servidor
de autenticao. O Protocolo Extensvel de Autenticao (Extensible Authentication
Protocol - EAP) [RFC 2284] define os formatos de mensagens fim-a-fim utilizadas em um
modo simples de interao requisio/resposta entre o cliente e o servidor de autenticao.
Como mostra a Figura 33, mensagens EAPm so encapsuladas utilizando EAPoL (EAP por
LAN, [IEEE 802.1X]) e enviadas pelo enlace sem fio 802.11. Essas mensagens EAP so
desencapsuladas no ponto de acesso e ento reencapsuladas utilizando o protocolo
RADIUS para transmisso ao servidor de autenticao por UDP/IP. Conquanto o servidor e
o protocolo RADIUS [RFC 2138] no sejam exigidos pelo protocolo 802.11i, na prtica
eles so componentes de fato do padro do 802.11i. O protocolo DIAMETER recentemente
padronizado [RFC 3588] provavelmente substituir o RADIUS em futuro prximo.
Com EAP, o servidor de autenticao pode escolher um entre vrios modos de efetuar
autenticao. Conquanto o 802.11i no imponha nenhum mtodo particular de
autenticao, o esquema de autenticao EAP-TLS [RFC 2716] muito usado. O EAP-TLS
utiliza tcnicas de chaves pblicas (incluindo criptografia de nonce e resumos de
mensagens) semelhantes s estudadas nas sees anteriores, para permitir que o cliente e o
servidor de autenticao se autentiquem mutuamente e para derivar uma Chave Mestra
(Master Key - MK) conhecida por ambos os participantes.

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

3. Gerao de Chave Mestra de Par (Pairwise Master Key - PMK Generation). A MK um


segredo compartilhado que somente o cliente e o servidor de autenticao conhecem e que
eles usam para gerar uma segunda chave, a Chave Mestra de Par (Pairwise Master Key -

Material Instrucional de uso restrito consulte fsauer@gmail.com

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