[TP]Parte

Document Sample
[TP]Parte Powered By Docstoc
					TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 1 de 199
[TA1]Capítulo

[TA2]8

[T1]Segurança de redes



Durante as primeiras décadas de sua existência, as redes de computadores

foram usadas principalmente por pesquisadores universitários, com a finalidade

de enviar mensagens de correio eletrônico, e também por funcionários de

empresas, para compartilhar impressoras. Sob essas condições, a segurança

nunca precisou de maiores cuidados. Porém, como milhões de cidadãos comuns

atualmente estão usando as redes para executar operações bancárias, fazer

compras e arquivar sua devolução de impostos, a segurança das redes está

despontando no horizonte como um problema potencial. Nas seções a seguir,

estudaremos a segurança das redes a partir de vários ângulos, destacaremos

muitas falhas e discutiremos diversos algoritmos e protocolos que tornam as

redes mais seguras.

A segurança é um assunto abrangente e inclui inúmeros tipos problemas. Em

sua forma mais simples, a segurança se preocupa em garantir que pessoas mal -

intencionadas não leiam ou, pior ainda, modifiquem secretamente mensagens

enviadas a outros destinatários. Outra preocupação da segurança são as

pessoas que tentam ter acesso a serviços remotos que elas não estão

autorizadas a usar. Ela também lida com meios para saber se uma mensagem

supostamente verdadeira é um trote. A segurança trata de situações em que

mensagens legítimas são capturadas e reproduzidas, além de lidar com pessoas

que tentam negar o fato de terem enviado determinadas mensagens.

A maior parte dos problemas de segurança é causada intencionalmente por

pessoas maliciosas que tentam obter algum benefício, chamar a atenção ou

prejudicar alguém. Alguns dos invasores mais comuns estão listados na Figura
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC               CAPÍTULO 8/P. 2 de 199
8.1. A partir dessa lista fica claro que tornar uma rede segura envolve muito

mais do que simplesmente mantê-la livre de erros de programação. Para tornar

uma rede segura, com freqüência é necessário lidar com adversários

inteligentes, dedicados e, às vezes, muito bem subsidiados. Você também

deverá ter em mente que as medidas utilizadas para interromper a atividade de

adversários eventuais terão pouco impacto sobre os adversários "mais

espertos". Os registros policiais mostram que a maioria dos ataques não é

perpetrada por estranhos que grampeiam uma linha telefônica, mas por pessoas

ressentidas com a organização a que pertencem. Conseqüentemente, os

sistemas de segurança devem ser projetados tendo em vista esse fato.

[arte: ver original p. 722]

[T]Tabela

Adversário Objetivo

Estudante       Divertir-se bisbilhotando as mensagens de correio eletrônico de

outras pessoas

Cracker         Testar o sistema de segurança de alguém; roubar dados

Representante de vendas                  Tentar representar toda a Europa e não apenas

Andorra

Executivo       Descobrir a estratégia de marketing do concorrente

Ex-funcionário          Vingar-se por ter sido demitido

Contador        Desviar dinheiro de uma empresa

Corretor de valores                Negar uma promessa feita a um cliente através de uma

mensagem de correio eletrônico

Vigarista       Roubar números de cartão de crédito e vendê-los

Espião          Descobrir segredos militares ou industriais de um inimigo

Terrorista      Roubar segredos de armas bacteriológicas

[F]Figura 8.1
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 3 de 199
[FL] Algumas pessoas que podem causar problemas de segurança e os motivos

para fazê-lo



Os problemas de segurança das redes podem ser divididos nas seguintes áreas

interligadas: sigilo, autenticação, não repúdio e controle de integridade. O sigilo

está relacionado ao fato de manter as informações longe de usuários não

autorizados. É isso que geralmente nos vem à mente quando pensamos em

segurança de redes. Em geral, a autenticação cuida do processo de determinar

com quem você está se comunicando antes de revelar informações sigilosas ou

entrar em uma transação comercial. O não repúdio trata de assinaturas: como

provar que seu cliente realmente fez um pedido eletrônico de 10 milhões de

unidades de um produto com preço unitário de 89 centavos quando mais tarde

ele afirmar que o preço era 69 centavos? Ou então, é possível que ele afirme que

nunca efetuou qualquer pedido. Por fim, como você pode se certificar de que

uma mensagem recebida é realmente legítima e não algo que um oponente mal -

intencionado modificou ou inventou?

Todas essas questões (sigilo, autenticação, não repúdio e controle de

integridade) também ocorrem em sistemas tradicionais, mas com algumas

diferenças significativas. O sigilo e a integridade são obtidos através da

utilização de correspondência registrada e do bloqueio de documentos. Agora é

mais difícil roubar o trem postal que nos tempos de Jesse James.

Além disso, normalmente as pessoas conseguem distinguir um documento

original de uma fotocópia, e isso freqüentemente faz diferença para elas. Como

teste, tire uma fotocópia de um cheque válido. Tente descontar o cheque

original na segunda-feira. Agora tente descontar a fotocópia do cheque na

terça-feira. Observe a diferença no comportamento do caixa. Com os cheques

eletrônicos, você não tem como distinguir entre o original e a cópia. Talvez leve
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 4 de 199
algum tempo até os bancos se acostumarem com isso.

As pessoas autenticam outras pessoas ao reconhecer seus rostos, vozes e

caligrafia. As comprovações de assinatura são feitas através de assinaturas em

papel timbrado, de símbolos em alto relevo etc. Em geral, as falsificações

podem ser detectadas por especialistas em caligrafia, papel e tinta. Nenhuma

dessas opções está disponível eletronicamente. É claro que são necessárias

outras soluções.

Antes de entrarmos nas soluções propriamente ditas, vale a pena dedicar alguns

momentos considerando a que parte da pilha de protocolos pertence a

segurança de redes. Provavelmente não existe uma parte específica. Todas as

camadas contribuem de alguma forma. Na camada física, os "grampos" podem

ser anulados mantendo-se as linhas de transmissão em tubos lacrados

contendo gás em alta pressão. Qualquer tentativa de perfurar um tubo liberará o

gás, reduzindo a pressão e disparando um alarme. Alguns sistemas militares

utilizam essa técnica.

Na camada de enlace de dados, os pacotes de uma linha ponto a ponto podem

ser codificados à medida que saem de uma máquina, e decodificados quando

entram em outro sistema. Todos os detalhes podem ser tratados na camada de

enlace de dados, com as camadas mais altas alheias ao que está acontecendo.

No entanto, essa solução se mostra ineficiente quando os pacotes têm de

atravessar vários roteadores, pois é necessário descriptografar os pacotes em

cada roteador, o que os torna vulneráveis a ataques dentro do roteador. Além

disso, essa estratégia não permite que algumas sessões sejam protegidas

(como, por exemplo, aquelas que envolvem compras on-line por cartão de

crédito) e outras não. Todavia, a criptografia de enlace, como esse método é

chamado, pode ser facilmente incluída em qualquer rede e com freqüência é

muito útil.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 5 de 199
Na camada de rede, podem ser instalados firewalls para manter ou descartar

pacotes. A segurança do IP também funciona nessa camada.

Na camada de transporte, é possível criptografar conexões inteiras fim a fim, ou

seja, processo a processo. Para obter segurança máxima, é necessário que ela

seja fim a fim.

Finalmente, questões como autenticação do usuário e não repúdio só podem ser

tratadas na camada de aplicação.

Tendo em vista que a segurança não se ajusta nitidamente a qualquer camada,

ela também não se enquadra em nenhum capítulo deste livro. Por essa razão,

vamos estudá-la separadamente em seu próprio capítulo.

Embora este capítulo seja longo, técnico e essencial ele também é quase

irrelevante no momento. Por exemplo, está bem documentado o fato de que a

maioria das falhas de segurança em bancos se deve a funcionários

incompetentes, procedimentos de segurança negligentes ou fraudes internas, e

não a criminosos inteligentes que grampeiam linhas telefônicas e depois

decodificam mensagens criptografadas. Se uma pessoa puder entrar em uma

agência bancária qualquer com um tira de extrato de caixa eletrônico que

encontrou na rua, afirmando que esqueceu número de identificação e receber

um novo PIN (personal identification number — número de identificação

pessoal) na mesma hora (em nome das boas relações com os clientes), nem toda

criptografia do mundo evitará o abuso. Sobre esse aspecto, o livro de Ross

Anderson é um excelente alerta, pois documenta centenas de exemplos de

falhas de segurança em numerosas indústrias, quase todas causadas por aquilo

que se poderia chamar educadamente de práticas comerciais relaxadas ou

desatenção com a segurança (Anderson, 2001). Apesar disso, somos otimistas e

acreditamos que, à medida que o comércio eletrônico se tornar mais difundido,

as empresas irão depurar seus procedimentos operacionais, eliminando esse
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 6 de 199
furo e trazendo os aspectos técnicos da segurança de volta à cena.

Com exceção da segurança na camada física, quase toda segurança se baseia

em princípios criptográficos. Por essa razão, começaremos nosso estudo da

segurança examinando em detalhes a criptografia. Na Seção 8.1, veremos

alguns princípios básicos. Da Seção 8.2 até a Seção 8.5, examinaremos alguns

algoritmos e estruturas de dados fundamentais usados em criptografia. Em

seguida, examinaremos em detalhes como esses conceitos podem ser usados

para se alcançar a segurança em redes. Concluiremos com alguns conceitos

breves sobre tecnologia e sociedade.

Antes de começarmos, devemos chamar a atenção para o que não é abordado

neste capítulo. Procuramos nos concentrar em questões de redes, e não em

questões relacionadas ao sistema operacional e às aplicações, embora seja

difícil traçar a linha que separa esses assuntos. Por exemplo, não há nada aqui

sobre autenticação do usuário com a utilização da biometria, segurança de

senhas, ataques de estouro de buffers, cavalos de Tróia, spoofing de login,

bombas lógicas, vírus, vermes e temas semelhantes. Todos esses tópicos são

abordados detalhadamente no Capítulo 9 do livro Modern Operating Systems

(Tanenbaum, 2001). O leitor interessado deve consultar esse livro para conhecer

os aspectos de segurança relacionados aos sistemas. Agora, vamos iniciar nossa

jornada.



[T2] 8.1 Criptografia

A palavra criptografia vem das palavras gregas que significam "escrita secreta".

A criptografia tem uma longa e interessante história de milhares de anos. Nesta

seção, vamos esquematizar alguns destaques, que serão usados como

informações básicas para o que vem a seguir. Se desejar um histórico completo

da criptografia, recomendamos a leitura do livro de Khan (1995). Para ver um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 7 de 199
tratamento completo do estado da arte atual em segurança e algoritmos

criptográficos, protocolos e aplicações, consulte (Kaufman et al., 2002). Para

uma abordagem mais matemática, consulte (Stinson, 2002). Se preferir uma

abordagem menos matemática, consulte (Burnett e Paine, 2001).

Os profissionais fazem distinção entre cifras e códigos. Uma cifra é uma

transformação de caractere por caractere ou de bit por bit, sem levar em conta a

estrutura lingüística da mensagem. Em contraste, um código substitui uma

palavra por outra palavra ou símbolo. Os códigos não são mais utilizados,

embora tenham uma história gloriosa. O código mais bem-sucedido já

inventado foi usado pelas forças armadas dos Estados Unidos durante a

Segunda Guerra Mundial no Pacífico. Eles simplesmente tinham índios Navajo

que se comunicam uns com os outros usando palavras Navajo específicas para

termos militares como, por exemplo, chay-dagahi -nail-tsaidi (literalmente

assassino de cágado) para indicar uma arma antitanque. A linguagem Navajo é

altamente tonal, extremamente complexa, e não tem nenhuma forma escrita.

Além disso, nem uma única pessoa no Japão conhecia nada sobre ela.

Em setembro de 1945, o San Diego Union descreveu o código da seguinte

forma: "Por três anos, onde quer que os Marines aterrissassem, os japoneses

recebiam uma enxurrada de estranhos ruídos gorgolejantes entremeados com

outros sons que lembravam o clamor de um monge tibetano e o som de uma

bolsa de água quente sendo esvaziada". Os japoneses nunca conseguiram

romper o código e muitos índios Navajo receberam altas honras militares por

serviço e bravura extraordinários. O fato dos Estados Unidos terem conseguido

romper o código japonês e os japoneses nunca terem conseguido quebrar o

código Navarro desempenhou um papel crucial nas vitórias americanas no

Pacífico.
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.               EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC                 CAPÍTULO 8/P. 8 de 199
[T3] 8.1.1 Introdução à criptografia

Historicamente, quatro grupos de pessoas utilizaram e contribuíram para a arte

da criptografia: os militares, os diplomatas, as pessoas que gostam de guar dar

memórias e os amantes. Dentre eles, os militares tiveram o papel mais

importante e definiram as bases para a tecnologia. Dentro das organi zações

militares, tradicionalmente as mensagens a serem criptografadas são entregues

a auxiliares mal remunerados que se encarregam de criptografá-las e transmiti-

las. O grande volume de mensagens impedia que esse trabalho fosse feito por

alguns poucos especialistas.

Até o advento dos computadores, uma das principais restrições impostas à

criptografia era a habilidade do auxiliar de criptografia fazer as transformações

necessárias, em geral com poucos equipamentos e no campo de batalha. Uma

outra restrição era a dificuldade de alternar os métodos criptográficos

rapidamente, pois isso exigia a repetição do treinamento de um grande número

de pessoas. No entanto, o perigo de um auxiliar de criptografia ser capturado

pelo inimigo tornou indispensável a possibilidade de se alterar o método

criptográfico instantaneamente, se necessário. Essas necessidades conflitantes

fizeram surgir o modelo da Figura 8.2.

[arte: ver original p. 725]

[Dísticos]

[1] Intruso passivo apenas escuta

[2] Intruso

[3] Intruso ativo pode alterar mensagens

[4] Texto simples, P               Método de criptografia, E        Método de

descriptografia, D                 Texto simples, P

[5] Texto cifrado, C = E K(P)

[6] Chave de criptografia, K
TANENBAUM, ANDREW S.               Computer Networks 4a edição.            EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 9 de 199
[7] Chave de descriptografia, K

[F]Figura 8.2

[FL] O modelo de criptografia (para uma cifra de chave simétrica)



As mensagens a serem criptografadas, conhecidas como texto simples, são

transformadas por uma função que é parametrizada por uma chave. Em seguida,

a saída do processo de criptografia, conhecida como texto cifrado, é

transmitida, normalmente através de um mensageiro ou por rádio. Presumimos

que o inimigo, ou intruso, ouça e copia cuidadosamente o texto cifrado

completo. No entanto, ao contrário do destinatário pretendido, ele não conhece

a chave para descriptografar o texto e, portanto, não pode fazê-lo com muita

facilidade. Às vezes, o intruso pode não só escutar o que se passa no canal de

comunicação (intruso passivo), como também pode gravar mensagens e

reproduzi-las mais tarde, injetar suas próprias mensagens ou modificar

mensagens legítimas antes que elas cheguem ao receptor (intruso ativo). A arte

de solucionar mensagens cifradas é chamada criptoanálise. A arte de criar

mensagens cifradas (criptografia) e solucioná-las (criptoanálise) é chamada

coletivamente criptologia.

Com freqüência, será útil e prático ter uma notação para estabelecer uma

relação entre o texto simples, o texto cifrado e as chaves. Utilizaremos C = EK(P)

para denotar que a criptografia do texto simples P usando a chave K gera o

texto cifrado C. Da mesma forma, P = DK(C) representa a descriptografia de C

para se obter o texto simples outra vez. Então, temos:

DK(EK(P)) = P

Essa notação sugere que E e D são simplesmente funções matemáticas, o que é

verdade. A única parte complicada é que ambas são funções de dois

parâmetros, e escrevemos um desses parâmetros (a chave) como um caractere
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 10 de 199
subscrito, em vez de representá-lo como um argumento, para distingui-lo da

mensagem.

Uma regra fundamental da criptografia é que se deve supor que o criptoanalista

conhece os métodos genéricos de criptografia e descriptografia que são

utilizados. Em outras palavras, o criptoanalista sabe como funciona o método de

criptografia, E, e o método de descriptografia D da Figura 8.2. O esforço

necessário para criar, testar e instalar um novo algoritmo toda vez que o antigo

método (supostamente) é comprometido sempre dificultou a manutenção desse

segredo. Imaginar que o algoritmo de criptografia é secreto quando ele não é

resulta em mais prejuízo do que em benefícios.

É nesse ponto que entra a chave. A chave consiste em um string (relativamente)

curto que seleciona uma das muitas formas possíveis de criptografia. Ao

contrário do método genérico, que só pode ser modificado a cada período de

alguns anos, a chave pode ser alterada sempre que necessário. Portanto, nosso

modelo básico é um método genérico publicamente conhecido, parametrizado

por uma chave secreta que pode ser alterada com facilidade. A idéia de que o

criptoanalista conhece os algoritmos e que o segredo reside exclusivamente nas

chaves é chamada princípio Kerckhoff, que recebeu esse nome em homenagem

ao criptógrafo militar flamengo Auguste Kerckhoff que e enunciou primeiro em

1883 (Kerckhoff, 1883). Desse modo, temos:

        Princípio de Kerckhoff: Todos os algoritmos devem ser públicos; apenas

as chaves são secretas

Devemos enfatizar o caráter não sigiloso do algoritmo. Tentar manter o

algoritmo secreto, uma estratégia conhecida no ramo como segurança pela

obscuridade, nunca funciona. Além disso, ao tornar o algoritmo público, o

especialista em criptografia se livra de te de consultar inúmeros criptólogos

ansiosos por decodificar o sistema para poderem publicar artigos demonstrando
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 11 de 199
sua esperteza e inteligência. Caso muitos especialistas tenham tentado

decodificar o algoritmo durante cinco anos após sua publicação e nenhum tenha

obtido sucesso, isso provavelmente significa que o algoritmo é sólido.

Na verdade, o sigilo está na chave, e seu tamanho é uma questão muito

importante do projeto. Considere um bloqueio de combinação simples. Segundo

o princípio geral, você insere dígitos em seqüência. Todo mundo sabe disso,

mas a chave é secreta. Uma chave com um tamanho de dois dígitos significa que

existem 100 possibilidades, uma chave de três dígitos significa mil

possibilidades e uma chave de seis dígitos significa um milhão de

possibilidades. Quanto maior for a chave, mais alto será o fator de trabalho

com que o criptoanalista terá de lidar. O fator de trabalho para decodificar o

sistema através de uma exaustiva pesquisa no espaço da chave é exponencial

em relação ao tamanho da chave. O sigilo é decorrente da presença de um

algoritmo forte (mas público) e de uma chave longa. Para impedir que o seu

irmãozinho leia suas mensagens de correio eletrônico, serão necessárias chaves

de 64 bits. Para uso comercial de rotina, devem ser usados pelo menos 128 bits.

Para manter o governo de outros países à distância, são necessárias chaves de

pelo menos 256 bits, de preferência maiores.

Do ponto de vista do criptoanalista, o problema da criptoanálise apresenta três

variações principais. Quando tem um determinado volume de texto cifrado mas

nenhum texto simples, o analista é confrontado com o problema de haver

somente texto cifrado. Os criptogramas da seção de palavras cruzadas do jornal

são um exemplo desse tipo de problema. Quando há uma correspondência entre

o texto cifrado e o texto simples, o problema passa a ser chamado texto

simples conhecido. Por fim, quando o criptoanalista tem a possibilidade de

codificar trechos do texto simples escolhidos por ele mesmo, temos o problema

do texto simples escolhido. Os criptogramas dos jornais poderiam ser
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 12 de 199
decodificados de forma trivial se o criptoanalista tivesse a permissão de fazer

perguntas tais como: Qual é a criptografia de ABCDEFGHIJKL?

Com freqüência, os novatos na área de criptografia pressupõem que, se uma

cifra puder resistir a uma estratégia de texto cifrado, isso significa que ela é

segura. Essa suposição é muito ingênua. Em muitos casos, o criptoanalista pode

fazer uma estimativa com base em trechos do texto simples. Por exemplo, a

primeira mensagem que muitos sistemas de tempo compartilhado emitem

quando você os chama é "LOGIN:". Equipado com alguns pares de texto

simples/texto cifrado, o trabalho do criptoanalista se torna muito mais fácil.

Para obter segurança, o autor da criptografia deve ser conservador e se

certificar de que o sistema seja inviolável, mesmo que seu oponente seja capaz

de criptografar o texto simples escolhido.

Historicamente, os métodos de criptografia têm sido divididos em duas

categorias: as cifras de substituição e as cifras de transposição. Em seguida,

trataremos de cada uma dessas técnicas como informações básicas para a

criptografia moderna.



[T3] 8.1.2 Cifras de substituição

Em uma cifra de substituição, cada letra ou grupo de letras é substituído por

outra letra ou grupo de letras, de modo a criar um "disfarce". Uma das cifras

mais antigas é a cifra de César, atribuída a Júlio César. Nesse método, a se

torna D, b se torna E, c se torna F, ... e z se torna C. Por exemplo, ataque

passaria a ser DWDTXH . Nos exemplos, o texto simples é apresentado em letras

minúsculas e o texto cifrado em letras maiúsculas.

Uma ligeira generalização da cifra de César permite que o alfabeto do texto

cifrado seja deslocado k letras, em vez de 3. Nesse caso, k passa a ser uma

chave para o método genérico dos alfabetos deslocados em forma circular. A
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 13 de 199
cifra de César pode ter enganado os cartagineses, mas nunca mais enganou

ninguém.

O próximo aprimoramento é fazer com que cada um dos símbolos do texto

simples, digamos 26 letras, seja mapeado para alguma outra letra. Por exemplo,

texto simples:          a bcd efghi j klmnopqrs tu vwxyz

texto cifrado:          QWERTYUIOPASDFGHJKLZXCVBNM

Esse sistema geral é chamado substituição monoalfabética, sendo a chave o

string de 26 letras correspondente ao alfabeto completo. Para a chave anterior,

o texto simples ataque seria transformado no texto cifrado QZQJXT.

À primeira vista, talvez esse sistema pareça seguro, pois apesar de conhecer o

sistema genérico (substituição de letra por letra), o criptoanalista não sabe qual

das 26!  4  1026 chaves possíveis está em uso. Ao contrário do que acontece

com a cifra de César, experimentar todas elas não é uma estratégia muito

interessante. Mesmo a 1 ns por solução, um computador levaria 10 10 anos para

experimentar todas as chaves.

Todavia, com um volume de texto cifrado surpreendentemente pequeno, a cifra

pode ser descoberta com facilidade. A estratégia básica se beneficia das

propriedades estatísticas dos idiomas. Por exemplo, em inglês e é a letra mais

comum, seguida de t, o, a, n, i etc. As combinações de duas letras, ou digramas,

mais comuns são th, in, er, re e an. As combinações de três letras, ou trigramas,

mais comuns são the, ing, and e ion.

Um criptoanalista que esteja tentando decodificar uma cifra monoalfabética

começaria contando as freqüências relativas de todas as letras do texto cifrado.

Depois disso, através de tentativas, ele atribuiria e à letra mais comum e t à

próxima letra mais comum. Em seguida, verificaria os trigramas para encontrar

um no formato tXe, o que poderia sugerir que X é h. Da mesma forma, se o

padrão thYt ocorrer com freqüência, provavelmente isso significará que Y
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                 EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                  CAPÍTULO 8/P. 14 de 199
representa a. Com essas informações, o criptoanalista poderá procurar por um

trigrama com o formato aZW que ocorra com freqüência (muito provavelmente

and). Fazendo estimativas em relação a digramas, trigramas e letras mais

comuns, e conhecendo os prováveis padrões de vogais e consoantes, o

criptoanalista criaria um texto simples através de tentativas, letra por letra.

Outra estratégia é adivinhar uma palavra ou frase provável. Por exem plo,

considere o seguinte texto cifrado de uma empresa de contabilidade (montado

em grupos de cinco caracteres):

CTBMN BYCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUJ

QJSGS TJQZZ MNQJS VLNSX VSZJU JDSTS                     JQUUS JUBXJ

DSKSU JSNTK BGAQJ ZBGYQ TLCTZ BNYBN QJSW

Nos Estados Unidos, uma palavra muito provável em uma mensagem de uma

empresa de contabilidade é financial . Utilizando nosso conhecimento de que

financial tem um caractere repetido (i), com quatro outras letras entre suas

ocorrências, estamos procurando letras repetidas no texto cifrado com esse

espaço entre elas. Encontramos 12 casos como esse nas posições 6, 15, 27, 31,

42, 48, 56, 66, 70, 71, 76 e 82. No entanto, apenas dois deles, 31 e 42, têm a

letra seguinte (que corresponde a n no texto simples) repetida na localização

adequada. Dessas duas, apenas 31 também tem a letra a corretamente

posicionada; portanto, sabemos que financial começa na posição 30. Desse

ponto em diante, fica fácil deduzir a chave utilizando a estatística de freqüência

para o texto em inglês.



[T3] 8.1.3 Cifras de transposição

As cifras de substituição preservam a ordem dos símbolos no texto simples,

mas disfarçam esses símbolos. Por outro lado, as cifras de transposição

reordenam as letras, mas não as disfarçam. A Figura 8.3 mostra uma cifra de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 15 de 199
transposição muito comum, a transposição de colunas. A cifra se baseia em uma

chave que é uma palavra ou frase que não contém letras repetidas. Nesse

exemplo, MEGABUCK é a chave. O objetivo da chave é numerar as colunas de

modo que a coluna 1 fique abaixo da letra da chave mais próxima do início do

alfabeto e assim por diante. O texto simples é escrito horizontalmente, em

linhas. O texto cifrado é lido em colunas, a partir da coluna cuja letra da chave

seja a mais baixa.

[arte: ver original p. 729]

[Dísticos]

[1]

MEGABUCK

74512836

p1easetr                Texto simples

ansferon                pleasetransferonemilliondollarsto

emi11ion                myswissbankaccountsixtwotwo

do11arst                Texto cifrado

omyswiss                AFLLSKSOSELAWAIATOOSSCTCLNMOMANT

bankacco                ESILYNTWRNNTSOWDPAEDOBUOERIRICXB

untsixtw

otwoabcd

[F]Figura 8.3

[FL] Uma cifra de transposição



Para romper uma cifra de transposição, o criptoanalista deve primeiro estar

ciente de que está lidando com uma cifra de transposição. Examinando a

freqüência de E, T, A, O, I, N etc., fica fácil constatar se essas letras se encaixam

no padrão normal para texto simples. Se houver correspondência, isso significa
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 16 de 199
que a cifra é evidentemente uma cifra de transposição, pois nesse tipo de cifra

cada letra é representada por ela mesma, mantendo intacta a distribuição de

freqüências.

A próxima etapa é fazer uma estimativa do número de colunas. Em muitos

casos, uma palavra ou frase provável pode ser deduzida a partir do contexto da

mensagem. Por exemplo, suponha que o nosso criptoanalista tenha suspeitado

de que a frase em texto simples milliondollars ocorre em algum lugar na

mensagem. Observe que os digramas MO, IL, LL, LA, IR e OS ocorrem no texto

cifrado como um resultado do desdobramento dessa frase. No texto cifrado, a

letra O vem depois da letra M (ou seja, elas são verticalmente adjacentes na

coluna 4), pois estão separadas na provável frase por uma distância igual ao

tamanho da chave. Se tivesse sido usada uma chave de tamanho sete, teriam

surgido os digramas MD, IO, LL, LL, IA, OR e NS. Na verdade, para cada tamanho

de chave, é produzido um conjunto de digramas diferente no texto cifrado. Ao

tentar encontrar diferentes possibilidades, muitas vezes o criptoanalista é capaz

de determinar com facilidade o tamanho da chave.

A última etapa é ordenar as colunas. Quando o número de colunas k é pequeno,

cada um dos k(k - 1) pares de colunas pode ser examinado para que seja

constatado se suas freqüências de digramas correspondem às do texto simples

em inglês. O par que tiver a melhor correspondência será considerado na

posição correta. Em seguida, cada uma das colunas restantes é experi mentada

como sucessora desse par. A coluna cujas freqüências de digramas e trigramas

proporcione a melhor correspondência será experimentalmente considerada

correta. O processo inteiro continua até ser encontrada uma ordenação

potencial. O mais provável é que o texto simples seja reconhecido nesse ponto

(por exemplo, se ocorrer milloin, ficará claro qual é o erro).

Algumas cifras de transposição aceitam um bloco de tamanho fixo como
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 17 de 199
entrada e produzem um bloco de tamanho fixo como saída. Essas cifras podem

ser completamente descritas fornecendo-se uma lista que informe a ordem na

qual os caracteres devem sair. Por exemplo, a cifra da Figura 8.3 pode ser vista

como uma cifra de blocos de 64 caracteres. Sua saída é 4, 12, 20, 28, 36, 44,

52, 60, 5, 13, ..., 62. Em outras palavras, o quarto caractere de entrada, a, é o

primeiro a sair, seguido pelo décimo segundo, f, e assim por diante.



[T3] 8.1.4 Chave única

Na verdade, é fácil criar uma cifra inviolável; a técnica é conhecida há décadas.

Primeiro, escolha como chave um string de bits aleatórios. Em seguida, converta

o texto simples em um string de bits, utilizando por exemplo sua representação

ASCII. Por fim, calcule o OR exclusivo (XOR) desses dois strings. O texto cifrado

resultante não pode ser violado porque, em uma amostra suficientemente

grande de texto cifrado, cada letra ocorrerá com a mesma freqüência, bem

como digrama, cada trigrama e assim por diante. Esse método, conhecido como

chave única, é imune a todos os ataques presentes e futuros, quanta capacidade

computacional tenha o intruso. A razão deriva da teoria da informação:

simplesmente não existe nenhuma informação na mensagem, todos os textos

simples possíveis com o tamanho dado são igualmente prováveis.

Um exemplo de como as chaves únicas são usadas, é dado na Figura 8.4.

Primeiro, a mensagem 1, "I love you", é convertida em ASCII de 7 bits. Em

seguida, uma chave única chamada chave 1, é escolhida e sujeita à operação

XOR com a mensagem para se obter o texto cifrado. Um criptoanalista poderia

experimentar todas as chaves únicas possíveis para ver que texto resultou para

cada uma. Por exemplo, a chave única listada como chave 2 na figura poderia

ser experimentada, resultando no texto simples 2, "Elvis lives", que pode ser ou

não plausível (um assunto que está além do escopo deste livro). De fato, para
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 18 de 199
cada texto simples ASCII de 11 caracteres, existe uma chave única que o gera. É

isso que queremos dizer quando mencionamos que não existe nenhuma

informação no texto cifrado: é possível obter qualquer mensagem com o

tamanho correto a partir dele.

[arte: ver original p. 731]

[T]Tabela

Mensagem 1:           1001001 0100000 1101100 1101111 1110110 1100101

0100000 1111001 1101111 1110101 0101110

Chave 1:              1010010 1001011 1110010 1010101 1010010 1100011

0001011 0101010 1010111 1100110 0101011

Texto cifrado:        0011011 1101011 0011110 0111010 0100100 0000110

0101011 1010011 0111000 0010011 0000101

Chave 2:              1011110 0000111 1101000 1010011 1010111 0100110

1000111 0111010 1001110 1110110 1110110

Texto simples 2: 1000101 1101100 1110110 1101001 1110011 0100000

1101100 1101001 1110110 1100101 1110011

[F]Figura 8.4

[FL] O uso de uma chave única para criptografia e a possibilidade de conseguir

qualquer texto simples que seja possível a partir do texto cifrado pela utilização

de alguma outra chave



As chaves únicas são ótimas na teoria, mas têm várias desvantagens na prática.

Para começar, a chave não pode ser memorizada; então, tanto o remetente

quanto o destinatário devem levar uma cópia escrita com eles. Se qualquer um

dos dois estiver sujeito à possibilidade de captura, as chaves escritas sem

dúvida serão indesejáveis. Além disso, a quantidade total de dados que podem

ser transmitidos é limitada pelo tamanho da chave disponível. Se o espião ti ver
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 19 de 199
muita sorte e descobrir uma grande quantidade de dados, talvez ele seja

incapaz de transmiti-los de volta para a matriz, porque a chave foi consumida.

Outro problema é a sensibilidade do método para caracteres perdidos ou

inseridos. Se o transmissor e o receptor ficarem fora de sincronismo, todos os

dados a partir desse momento parecerão adulterados.

Com o advento dos computadores, a chave única se tornou potencialmente

prática para algumas aplicações. A origem da chave poderia ser um DVD

especial contendo vários gigabytes de informações que, se transportadas em

uma caixa de filmes em DVD e tivessem no início alguns minutos de vídeo, nem

sequer seriam suspeitas. É claro que, nas redes de gigabits, ter de inserir um

novo DVD a cada 30 segundos seria algo tremendamente entediante. Além

disso, os DVDs devem ser transportados pessoalmente do transmissor para o

receptor, antes de ser possível enviar qualquer mensagem, o que reduz bastante

sua utilidade prática.



[T4] Criptografia quântica

É interessante observar que talvez haja uma solução para o problema de como

transmitir a chave única pela rede, e ela vem de uma fonte muito improvável: a

mecânica quântica. Essa área ainda é experimental, mas os testes iniciais são

promissores. Se eles puderem ser aperfeiçoados e se tornarem eficientes, quase

toda a criptografia será realizada eventualmente com a utilização de chaves

únicas, pois elas talvez sejam seguras. A seguir, explicaremos em linhas gerais

como funciona esse método, denominado criptografia quântica. Em particular,

descreveremos um protocolo chamado BB84 para indicar seus autores e o ano

da publicação (Bennet e Brassard, 1984).

Uma usuária chamada Alice quer estabelecer uma chave única com um segundo

usuário, Bob. Alice e Bob são chamados protagonistas, os personagens
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 20 de 199
principais de nossa história. Por exemplo, Bob é um banqueiro com quem Alice

gostaria de realizar negócios. Os nomes "Alice" e "Bob" foram usados como

protagonistas em praticamente todos os ensaios e livros sobre criptografia na

última década. Os criptógrafos amam a tradição. Se fôssemos usar "Andy" e

"Barbara" como protagonistas, ninguém acreditaria em nada do que fosse

explicado neste capítulo. Então, que seja!

Se Alice e Bob pudessem estabelecer uma chave única, eles teriam a

possibilidade de empregá-la para se comunicarem com segurança. A pergunta

é: como eles podem estabelecê-la sem anteriormente troca DVDs? Podemos

supor que Alice e Bob estão em extremidades opostas de um cabo de fibra

óptica pelo qual podem enviar e receber pulsos de luz. Porém, uma intrépida

intrusa chamada Trudy pode cortar a fibra e criar um grampo ativo. Trudy pode

ler todos os bits em ambos os sentidos. Ela também pode enviar falsas

mensagens nos dois sentidos. A situação pode parecer desesperada para Alice e

Bob, mas a criptografia quântica pode trazer uma nova luz sobre o assunto.

A criptografia quântica se baseia no fato de que a luz se propaga em pequenos

pacotes chamados fótons, que apresentam algumas propriedades peculiares.

Além disso, a luz pode ser polarizada ao passar por um filtro de polarização,

um fato bem conhecido para os usuários de óculos de sol e fotógrafos. Se um

feixe de luz (isto é, um fluxo de fótons) passar por um filtro de polarização,

todos os fótons que emergirem dele serão polarizados na direção do eixo do

filtro (por exemplo, vertical). Se o feixe passar agora por um segundo filtro de

polarização, a intensidade da luz que emergirá do segundo filtro será

proporcional ao quadrado do cosseno do ângulo entre os eixos. Se os dois eixos

forem perpendiculares, nenhum fóton passará pelo filtro. A orientação absoluta

dos dois filtros não importa; só interessa o ângulo entre seus eixos.

Para gerar uma chave única, Alice precisa de dois conjuntos de filtros de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 21 de 199
polarização. O primeiro conjunto consiste em um filtro vertical e um filtro

horizontal. Essa escolha é chamada base retilínea. Uma base é apenas um

sistema de coordenadas. O segundo conjunto de filtros é idêntico, exceto por

estar deslocado 45 graus, de forma que um filtro abrange desde o canto inferior

esquerdo até o canto superior direito, e o outro filtro abrange desde o canto

superior esquerdo até o canto inferior direito. Essa escolha é chamada base

diagonal. Desse modo, Alice tem duas bases, que ela pode inserir rapidamente

em seu feixe à vontade. Na realidade, Alice não tem quatro filtros separados,

mas um cristal, cuja polarização pode ser trocada eletricamente para qualquer

das quatro direções permitidas, em alta velocidade. Bob tem o mesmo

equipamento de Alice. O fato de Alice e Bob terem cada um duas bases

disponíveis é essencial para a criptografia quântica.

Para cada base, Alice atribui agora uma direção como 0 e a outra como 1. No

exemplo apresentado a seguir, supomos que ela escolhe a direção vertical como

0 e a horizontal como 1. Independentemente, ela também escolhe do canto

inferior esquerdo até o canto superior direito como 0, e do canto superior

esquerdo até o canto inferior direito como 1. Alice envia essas escolhas a Bob

como texto simples.

Agora, Alice escolhe uma chave única, por exemplo com base em um gerador de

números aleatórios (um assunto por si só bastante complexo). Ela o transfere

bit por bit para Bob, escolhendo uma de suas bases ao acaso para cada bit. Para

enviar um bit, sua pistola de fótons emite um fóton polarizado de maneira

apropriada, conforme a base que ela está usando para esse bit. Por exemplo, ela

poderia escolher as bases diagonal, retilínea, retilínea, diagonal, retilínea etc.

Para enviar sua chave única igual a 1001110010100110 com essas bases, ela

enviaria os fótons mostrados na Figura 8.5(a). Dada a chave única e a seqüência

de bases, a polarização a ser usada para cada bit é determinada de forma
TANENBAUM, ANDREW S.                          Computer Networks 4a edição.                                                EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza                        AT08.DOC                                                CAPÍTULO 8/P. 22 de 199
exclusiva. Bits enviados um fóton de cada vez são chamados qubits.

[arte: ver original p. 733]

[Dísticos]

[1] Número do bit 0                 1    2     3   4    5       6   7       8        9          10 11           12     13    14    15

[2] Dados           1     0   0     1    1     1    0       0   1       0       1       0       0       1   1     0

[3] (a)                                                                     O que Alice envia

(b)                                                             Bases de Bob

(c)                                                             O que Bob recebe

[4] (d) Não         Sim       Não       Sim       Não       Não     Não             Sim         Sim         Não        Sim   Sim     Sim

Não       Sim       Não                  Base correta?

[5] (e)         0         1                   0         1           1       0       0               1                 Chave única

[6] (f)                                                         Bases de Trudy

[7] (g) x       0    x    1    x    x    x     ?   1    x       ?   ?       0       x       ?       x                 Chave de Trudy

[F]Figura 8.5

[FL] Um exemplo de criptografia quântica



Bob não sabe que base usar, e assim escolhe uma base ao acaso para cada fóton

que chega e simplesmente o utiliza, como mostra a Figura 8.5(b). Se escolher a

base correta, ele receberá o bit correto. Se escolher a base incorreta, ele

receberá um bit aleatório porque, se um fóton acessar um filtro polarizado a 45

graus em relação à sua própria polarização, ele saltará ao acaso para a

polarização do filtro ou para uma polarização perpendicular à do filtro, com

igual probabilidade. Essa propriedade dos fótons é fundamental para a

mecânica quântica. Desse modo, alguns bits estão corretos e alguns são

aleatórios, mas Bob não consegue distingui-los. Os resultados de Bob estão

representados na Figura 8.5(c).

De que maneira Bob pode descobrir quais são as bases corretas e quais são as
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 23 de 199
erradas entre as que recebeu? Ele simplesmente diz a Alice que base usou para

cada bit em texto simples, e ela lhe diz quais são as bases corretas e quais são

as erradas em texto simples, como mostra a Figura 8.5(d). A partir dessas

informações, ambos podem construir um string de bits com os palpites

corretos, como mostra a Figura 8.5(e). Em média, esse string de bits terá

metade do comprimento do string de bits original mas, como ambas as partes o

conhecem, elas poderão usá-lo como uma chave única. Tudo que Alice tem a

fazer é transmitir um string de bits um pouco maior que o dobro do tamanh o

desejado, para que ela e Bob tenham uma chave única com o comprimento

apropriado. Problema resolvido.

Porém, espere um minuto. Esquecemos de Trudy. Vamos supor que ela esteja

curiosa para saber o que Alice tem a dizer e corte o cabo de fibra, inserindo seu

próprio detector e transmissor. Infelizmente para Trudy, ela também não sabe

que base usar para cada fóton. O melhor que ela pode fazer é escolher uma

base ao acaso para cada um dos fótons, como fez Bob. Um exemplo de suas

escolhas é mostrado na Figura 8.5(f). Quando mais tarde Bob informar (em texto

simples) que bases usou e Alice disser a ele (em texto simples) quais delas estão

corretas, Trudy saberá quando acertou e quando errou. Na Figura 8.5, ela

acertou nos bits 0, 1, 2, 3, 4, 6, 8, 12 e 13. No entanto, ela sabe pela resposta

de Alice na Figura 8.5(d) que só os bits 1, 3, 7, 8, 10, 11, 12 e 14 fazem parte

da chave única. Em quatro desses bits (1, 3, 8 e 12), ela acertou seu palpite e

captou o bit correto. Nos outros quatro (7, 10, 11 e 14), ela errou e não sabe

qual bit foi transmitido. Desse modo, Bob sabe que a chave única começa com

01011001, a parir da Figura 8.5(e), mas tudo que Trudy tem é 01?1??0?, a partir

da Figura 8.5(g).

É claro que Alice e Bob estão cientes de que Trudy talvez tenha ca ptado parte de

sua chave única, e assim gostariam de reduzir as informações que Trudy tem.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 24 de 199
Eles podem fazer isso executando uma transformação na chave. Por exemplo,

poderiam dividir a chave única em blocos de 1024 bits e elevar ao quadrado

cada uma para formar um número de 2048 bits, usando a concatenação desses

números de 2048 bits como a chave única. Com seu conhecimento parcial do

string de bits transmitido, Trudy não tem como gerar seu quadrado e, portanto,

não tem nada. A transformação da chave única original em uma chave diferente

que reduz o conhecimento de Trudy é chamada amplificação da privacidade. Na

prática, são usadas transformações complexas em que todo bit de entrada

depende de cada bit de saída em lugar da elevação ao quadrado.

Pobre Trudy. Ela não apenas não tem nenhuma idéia de qual é a chave única,

mas sua presença não é mais secreta. Afinal, ela tem de retransmitir cada bit

recebido para Bob, a fim de levá-lo a pensar que está se comunicando com

Alice. Porém, o melhor que ela pode fazer é transmitir o qubit que recebeu,

usando a mesma polarização que empregou para recebê-lo, e durante cerca de

metade do tempo ela estará errada, provocando muitos erros na chave única de

Bob.

Quando finalmente começar a transmitir dados, Alice os codificará usando um

pesado código de correção antecipada de erros. Do ponto de vista de Bob, um

erro de 1 bit na chave única é o mesmo que um erro de transmissão de 1 bit. De

qualquer modo, ele receberá o bit errado. Se houver correção antecipada de

erros suficiente, ele poderá recuperar a mensagem original apesar de todos os

erros, mas poderá contar com facilidade quantos erros foram corrigidos. Se esse

número for muito maior que a taxa de erros esperada do equipamento, ele

saberá que Trudy grampeou a linha e poderá agir de acordo (por exemplo,

informando a Alice que ela deve mudar para um canal de rádio, chamar a

polícia etc.). Se Trudy tivesse um meio de clonar um fóton, de forma que ela

tivesse um fóton para inspecionar e um fóton idêntico para enviar a Bob, ela
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 25 de 199
poderia evitar a detecção mas, no momento, não se conhece nenhum modo

perfeito de clonar um fóton. No entanto, mesmo que Trudy pudesse clonar

fótons, o valor da criptografia quântica para estabelecer chaves únicas não seria

reduzido.

Embora a criptografia quântica opere sobre distâncias de até 60 km de fibra, o

equipamento é complexo e dispendioso. Ainda assim, a idéia é promissora. Para

obter mais informações sobre a criptografia quântica, consulte (Mullins, 2002).



[T3] 8.1.5 Dois princípios fundamentais da criptografia

Ainda estudaremos muitos sistemas criptográficos diferentes nas próximas

páginas, mas é importante entender dois princípios básicos subjacentes a todos

eles.



[T4] Redundância

O primeiro princípio é que todas as mensagens criptografadas devem conter

alguma redundância, ou seja, informações que não são necessárias para a

compreensão da mensagem. Talvez um exemplo esclareça por que isso é

necessário. Considere uma empresa de encomendas postais, a The Couch Potato

(TCP), com 60.000 produtos. Pensando que estavam sendo muito eficientes, os

programadores da TCP decidiram que as mensagens de encomendas deveriam

consistir no nome do cliente com 16 bytes, seguido por um campo de dados de

3 bytes (um para a quantidade e 2 para o número do produto). Os 3 últimos

bytes devem ser criptografados por meio de uma chave muito longa conhecida

apenas pelo cliente e pela TCP.

Em princípio, essa estratégia pode parecer segura, e até certo ponto isso

acontece, porque os intrusos passivos não podem descriptografar as

mensagens. Infelizmente, há uma falha fatal que a torna inútil. Suponha que
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 26 de 199
uma funcionária recém-demitida queira punir a TCP por despedi-la. Antes de

sair da empresa, ela leva consigo parte da lista de clientes e passa a noite

acordada criando um programa para gerar encomendas fictícias utilizando

nomes de clientes verdadeiros. Como não tem a lista das chaves, ela

simplesmente inclui números aleatórios nos três últimos bytes e envia centenas

de encomendas para a TCP.

Quando as mensagens chegam, o computador da TCP utiliza o nome do cliente

para localizar a chave e descriptografar a mensagem. Infelizmente para a TCP,

quase todas as mensagens de 3 bytes são válidas; portanto, o computador

começa a imprimir as instruções de entrega. Apesar de parecer estranho um

cliente encomendar 837 conjuntos de balanços para crianças, ou 540 caixas de

areia, para o computador, o cliente pode estar planejando abrir uma cadeia de

parques de diversões franqueados. Portanto, um intruso ativo (a ex-funcionária)

pode causar muitos problemas, mesmo que não seja capaz de entender as

mensagens que seu computador está gerando.

Esse problema pode ser resolvido através da inclusão de informações

redundantes em todas as mensagens. Por exemplo, se as mensagens de pedidos

forem ampliadas para 12 bytes, os 9 primeiros deverão ser iguais a zero; assim,

essa estratégia de ataque deixa de ser interessante, porque a ex-funcionária

não é mais capaz de gerar um longo fluxo de mensagens válidas. A moral da

história é que todas as mensagens devem conter informações redundantes

suficientes para que os intrusos ativos sejam impedidos de transmitir dados

inválidos que possam ser interpretados como uma mensagem válida.

No entanto, a inclusão de informações redundantes também facilita a ru ptura de

mensagens por parte dos criptoanalistas. Suponha que a empresa de

encomenda postal seja muito competitiva e esteja na posição de principal

concorrente da The Couch Potato. A Sofa Tuber adoraria saber quantas caixas
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 27 de 199
de areia a TCP está vendendo. Portanto, a empresa resolve grampear a linha

telefônica da TCP. No esquema original com mensagens de 3 bytes, a

criptoanálise era praticamente impossível porque, após descobrir uma chave, o

criptoanalista não era capaz de dizer se a mensagem estava correta. Afinal de

contas, quase todas as mensagens são tecnicamente válidas. Com o novo

esquema de 12 bytes, fica mais fácil para o criptoanalista distinguir uma

mensagem válida de uma inválida. Desse modo, temos:

        Princípio criptográfico 1 : as mensagens devem conter alguma redundância

Em outras palavras, ao decifrar uma mensagem, o destinatário deve ser capaz

de saber se ela é válida, simplesmente inspecionando-a e talvez executando

uma computação simples. Essa redundância é necessária para impedir que

intrusos ativos enviem lixo e enganem o receptor, fazendo-o descriptografar o

lixo e agir sobre o "texto simples". No entanto, essa mesma redundância

permite que os intrusos passivos entrem no sistema com maior facilidade;

portanto, há uma zona de tensão nessa situação. Além disso, a redundância

nunca deverá ser criada sob a forma de n zeros no início ou no fim de uma

mensagem, pois a submissão dessas mensagens a determinados algoritmos

criptográficos proporciona resultados mais previsíveis, facilitando o trabalho do

criptoanalista. Um polinômio de CRC é muito melhor que uma seqüência de

valores 0, pois o receptor pode verificá-lo facilmente, mas ele irá gerar mais

trabalho para o criptoanalista. Seria muito melhor usar um hash criptográfico,

um conceito que exploraremos mais adiante.

Voltando à criptografia quântica por um momento, também podemos ver como

a redundância desempenha um papel importante. Devido à interceptação dos

fótons por Trudy, alguns bits na chave única de Bob estarão errados. Bob

precisa de alguma redundância nas mensagens de entrada para descobrir os

erros presentes. Uma forma muito rudimentar de redundância é repetir a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 28 de 199
mensagem duas vezes. Se as duas cópias não forem idênticas, Bob saberá que a

fibra está muito ruidosa, ou que alguém está interferindo na transmissão. É

claro que enviar tudo duas vezes é um exagero; um código de Hamming ou de

Reed-Solomon é um modo mais eficiente de realizar a detecção e correção de

erros. Porém, deve ficar claro que uma certa redundância é necessária para

distinguir uma mensagem válida de uma mensagem inválida, em especial diante

de um intruso ativo.



[T4] Atualidade

O segundo princípio criptográfico é tomar algumas medidas para assegurar que

cada mensagem recebida possa ser confirmada como uma mensagem atual, isto

é, enviada muito recentemente. Essa medida é necessária para impedir que

intrusos ativos reutilizem mensagens antigas. Se tais medidas não fossem

tomadas, nossa ex-funcionária poderia interceptar a linha telefônica da TCP e

ficar simplesmente repetindo mensagens válidas já enviadas. Em outras

palavras, essa idéia nos diz que:

        Princípio criptográfico 2: algum método é necessário para anular ataques

de repetição

Uma medida desse tipo seria incluir em cada mensagem um timbre de hora

válido apenas por, digamos, 10 segundos. Em seguida, o receptor poderia

manter as mensagens durante 10 segundos, a fim de comparar as mensagens

recém-chegadas com as anteriores e filtrar duplicatas. As mensagens

transmitidas há mais de 10 segundos poderiam ser descartadas, pois as

repetições enviadas mais de 10 segundos depois da mensagem original serão

rejeitadas por serem muito antigas. Outras medidas além dos timbres de hora

serão discutidas mais adiante.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 29 de 199
[T2] 8.2 Algoritmos de chave simétrica

Embora a criptografia moderna utilize as mesmas idéias básicas da criptografia

tradicional (transposição e substituição), sua ênfase é diferente.

Tradicionalmente, as pessoas que criam a criptografia têm utilizado algoritmos

simples. Hoje em dia, acontece o inverso: o objetivo é tornar o algoritmo de

criptografia tão complexo e emaranhado que, mesmo que o criptoanalista

adquira enormes volumes de texto cifrado de sua própria escolha, sem a chave

ele não seja capaz de captar qualquer sentido em tudo que conseguir.

A primeira classe de algoritmos de criptografia que estudaremos neste capítulo

é a dos algoritmos de chave simétrica, porque utilizam a mesma chave para

codificação e decodificação. A Figura 8.2 ilustra o uso de um algoritmo de chave

simétrica. Em particular, vamos nos concentrar nas cifras de bloco, que obtêm

um bloco de n bits de texto simples como entrada e o transformam usando a

chave em um bloco de n bits de texto cifrado.

Os algoritmos criptográficos podem ser implementados em hardware (para se

obter velocidade) ou em software (para se obter flexibilidade). Embora a maior

parte de nosso tratamento esteja relacionado aos algoritmos e protocolos, que

são independentes da implementação real, algumas palavras sobre a construção

de hardware criptográfico podem ser interessantes. As transposições e

substituições podem ser implementadas com circuitos elétricos simples. A

Figura 8.6(a) mostra um dispositivo, conhecido como caixa P (onde P significa

permutação), usado para efetuar uma transposição em uma entrada de 8 bits. S e

os 8 bits forem designados de cima para baixo como 01234567, a saída dessa

caixa P específica será 36071245. Com uma fiação interna adequada, pode -se

criar uma caixa P para executar qualquer transposição praticamente na

velocidade da luz, pois nenhuma computação é envolvida, apenas a propagação

e sinais. Esse projeto segue o princípio de Kerckhoff: o atacante sabe que o
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 30 de 199
método geral é permutar os bits. O que ele não sabe é qual bit fica em cada

posição, e isso é a chave.

[arte: ver original p. 737]

[Dísticos]

[1] Caixa P

(a)

[2] Caixa S

Decodificador: 3 para 8

Codificador: 8 para 3

(b)

[3] Cifra de produto

S1      S5      S9

S2      S6      S10

P1      P2      P3      P4

S3      S7      S11

S4      S8      S12

(c)

[F]Figura 8.6

[FL] Elementos básicos de cifras de produtos. (a) Caixa P. (b) Caixa S. (c) Produto



As substituições são realizadas por caixas S, como mostra a Figura 8.6(b).

Nesse exemplo, é introduzido um texto simples de 3 bits, e a saída é um texto

cifrado de 3 bits. A entrada de 3 bits seleciona uma das oito linhas de saída do

primeiro estágio e a define como 1; todas as outras são iguais a 0. O segundo

estágio é uma caixa P. O terceiro estágio codifica a linha selecionada novamente

em binário. Com a fiação mostrada, se os oito números octais 01234567 fossem

introduzidos um após o outro, a seqüência de saída seria 24506713. Em outras
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 31 de 199
palavras, 0 foi substituído por 2, 1 foi substituído por 4 etc. Mais uma vez, com

a fiação apropriada da caixa P dentro da caixa S, qualquer substituição pode ser

realizada. Além disso, tal dispositivo pode ser construído em hardware e pode

alcançar grande velocidade, pois os codificadores e os decodificadores têm

apenas um ou dois retardos de porta (subnanossegundo) e o tempo de

propagação pela caixa P pode ser menor que 1 picossegundo.

A capacidade real desses elementos básicos se torna aparente quando dispomos

uma série inteira de caixas em cascata para formar uma cifra de produto, como

mostra a Figura 8.6(c). Nesse exemplo, 12 linhas de entrada são transpostas

(isto é, permutadas) pelo primeiro estágio ( P1). Teoricamente, seria possível

fazer com que o segundo estágio fosse uma caixa S que mapeasse um número

de 12 bits em outro número de 12 bits. No entanto, tal dispositivo necessitaria

de 212 = 4096 fios cruzados em seu estágio intermediário. Em vez disso, a

entrada é dividida em quatro grupos de 3 bits, sendo que cada um deles é

substituído de forma independente dos outros. Apesar de ser menos genérico,

esse método ainda é mais eficiente. Através da inclusão de um número de

estágios suficientemente grande na cifra de produto, a saída pode ser

transformada em uma função excessivamente complicada da entrada.

As cifras de produto que operam sobre entradas de k bits para produzir saídas

de k bits são muito comuns. Em geral, o valor de k varia de 64 a 256. Uma

implementação de hardware normalmente tem pelo menos 18 estágios físicos,

em vez de apenas sete, como na Figura 8.6(c). Uma implementação de software

é programada como um loop com pelo menos 8 iterações, cada uma executando

substituições semelhantes às de caixas S em sub-blocos do bloco de dados de

64 bits a 256 bits, seguidas por uma permutação que mistura as saídas das

caixas S. Com freqüência, existe uma permutação especial no início e também

uma no fim. Na literatura, as repetições são chamadas rodadas.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 32 de 199




[T3] 8.2.1 DES — Data Encryption Standard

Em janeiro de 1977, o governo dos Estados Unidos adotou uma cifra de produto

desenvolvida pela IBM como seu padrão oficial para informações não

confidenciais. A cifra, DES (Data Encryption Standard — padrão de criptografia

de dados), foi amplamente adotada pelo setor de informática para uso em

produtos de segurança. Em sua forma original, ela já não é mais segura; no

entanto, em uma forma modificada ela ainda é útil. Agora, amos explicar co mo

o DES funciona.

Na Figura 8.7(a), é mostrado um esboço do DES. O texto simples é criptografado

em blocos de 64 bits, produzindo 64 bits de texto cifrado. O algoritmo,

parametrizado por uma chave de 56 bits, tem 19 estágios distintos. O primeiro

deles é uma transposição independente da chave no texto simples de 64 bits. O

último estágio é exatamente o inverso dessa transposição. O penúltimo estágio

troca os 32 bits mais à esquerda pelos 32 bits mais à direita. Os 16 estados

restantes são funcionalmente idênticos, mas são parametrizados por diferentes

funções da chave. O algoritmo foi projetado para permitir que a decodificação

fosse feita com a mesma chave da codificação, uma propriedade necessária em

qualquer algoritmo de chave simétrica. As etapas são simplesmente executadas

na ordem inversa.

A operação desses estágios intermediários é ilustrada na Figura 8.7(b). Cada

estágio utiliza duas entradas de 32 bits e produz duas saídas de 32 bits. A saída

da esquerda é apenas uma cópia da saída da direita. A saída da direita é

formada pelo resultado do OR exclusivo bit a bit aplicado à entrada da esquerda

e a uma função da entrada da direita com a chave desse estágio, Ki. Toda a

complexidade reside nessa função.

A função consiste em quatro etapas, executadas em seqüência. Primeiro, um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 33 de 199
número de 48 bits, E, é construído através da expansão do Ri - 1 de 32 bits, de

acordo com uma regra fixa de transposição e duplicação. Em segundo lugar, E e

Ki são submetidos a uma operação XOR. Em seguida, essa saída é particionada

em oito grupos de 6 bits, sendo cada um deles entregue a uma caixa S

diferente. Cada uma das 64 entradas possíveis para uma caixa S é mapeada em

uma saída de 4 bits. Por fim, esses 8  4 bits passam por uma caixa P.

Em cada uma das 16 iterações, é utilizada uma chave diferente. Antes de se

iniciar o algoritmo, é aplicada à chave uma transposição de 56 bits. Antes de

cada iteração, a chave é particionada em duas unidades de 28 bits, sendo cada

uma delas girada à esquerda um número de bits que depende do número da

iteração. Ki é derivada dessa chave girada, pela aplicação de mais uma

transposição de 56 bits sobre ela. Em cada rodada, um subconjunto de 48 bits

dos 56 bits é extraído e permutado.

[arte: ver original p. 739]

[Dísticos]

[1] Chave de 56 bits

[2] Texto simples de 64 bits

Transposição inicial

Iteração 1

Iteração 2

        .

        .

        .

Iteração 16

Troca (swap) de 32 bits

Transposição inversa

Texto cifrado de 64 bits
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 34 de 199
        (a)

[3] Li – 1              Ri – 1

[ver símbolo]

32 bits         32 bits

   Li              Ri

        (b)

[F]Figura 8.5

[FL] O DES (Data Encryption Standard — padrão de criptografia de dados). (a)

Esboço geral. (b) Detalhe de uma iteração. O sinal de adição dentro do círculo

significa OR exclusivo (XOR)



Uma técnica às vezes utilizada para tornar o DES mais forte é chamada

@@@branqueamento. Ela consiste em operação XOR entre uma chave aleatória

de 64 bits e cada bloco de texto simples, antes de sua entrega ao DES e depois

uma operação XOR ente uma segunda chave de 64 bits e o texto cifrado

resultante, antes de sua transmissão. O branqueamento pode ser removido com

facilidade pela execução das operações inversas (se o receptor tiver as duas

chaves de branqueamento). Tendo em vista que essa técnica acrescenta

efetivamente mais bits ao tamanho da chave, ela torna uma pesquisa exaustiva

do espaço de chaves muito mais demorada. Observe que a mesma chave de

branqueamento é utilizada para cada bloco (isto é, só existe uma chave de

branqueamento).

O DES esteve envolvido em controvérsias desde seu lançamento. Ele se baseia

em uma cifra desenvolvida e patenteada pela IBM, cujo nome é Lucifer. A

diferença é que a cifra da IBM utilizava uma chave de 128 bits, em vez de uma

chave de 56 bits. Quando quis padronizar o uso de uma cifra para informações

não confidenciais, o governo dos Estados Unidos "convidou" a IBM para
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 35 de 199
"discutir" o problema com a NSA, o órgão do governo especializado em decifrar

códigos, que é o maior empregador de matemáticos e criptólogos do mundo. A

NSA é tão secreta que no setor existe a seguinte brincadeira com seu nome:

P: O que significa NSA?

R: No Such Agency (em português: não existe tal agência).

Na verdade, NSA significa National Security Agency.

Após essas discussões, a IBM reduziu a chave de 128 para 56 bits e decidiu

manter em segredo o processo segundo o qual o DES foi projetado. Muita gente

suspeitou de que o tamanho da chave foi reduzido para garantir que a NSA

pudesse decifrar o DES, mas nenhuma organização com um orçamento menor

foi de fazê-lo. Supostamente, o motivo para manter o projeto em segredo foi

ocultar uma porta dos fundos (back door) que pudesse facilitar ainda mais a

decifração do DES por parte da NSA. Quando um funcionário da NSA disse

discretamente para o IEEE cancelaria uma conferência sobre criptografia, as

pessoas ficaram ainda mais desconfortáveis com a situação. A NSA negou tudo.

Em 1977, dois pesquisadores de criptografia de Stanford, Diffie e Hellman

(1977), projetaram uma máquina para decifrar o DES e estimaram que ela

poderia ser montada por um custo de 20 milhões de dólares. Com base em um

pequeno trecho de texto simples e no texto cifrado correspondente, essa

máquina poderia descobrir a chave através de uma pesquisa exaustiva do

espaço de chaves de 2 56 entradas em menos de 1 dia. Atualmente, essa

máquina custaria bem menos de 1 milhão de dólares.



[T4] DES triplo

No início de 1979, a IBM percebeu que o tamanho da mensagem DES era muito

pequeno e criou uma forma de aumentá-lo usando a criptografia tripla

(Tuchman, 1979). O método escolhido, que desde então foi incorporado ao
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 36 de 199
padrão internacional 8732, está ilustrado na Figura 8.8. Nesse caso, são usados

três estágios e duas chaves. No primeiro estágio, o texto simples é

criptografado com K1 da maneira usual do DES. No segundo estágio, o DES é

executado no modo de descriptografia, com o uso de K2 como chave. Por fim,

outra criptografia é feita com K1.

[arte: ver original p. 741]

[Dísticos]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.8

[FL] (a) Criptografia tripla usando o DES. (b) Descriptografia



Esse projeto levanta duas questões. Primeiro, por que são utilizadas apenas

duas chaves em vez de três? Segundo, por que foi usado EDE (Encrypt Decrypt

Encrypt), em vez de EEE (Encrypt Encrypt Encrypt)? São utilizadas duas chaves

porque até mesmo os criptógrafos mais paranóicos concordam que 112 bits

serão suficientes para aplicações comerciais durante um bom tempo. (E, entre

os criptógrafos, a paranóia é considerada um recurso, não um bug.) O uso de

168 bits só criaria overhead desnecessário de gerenciar e transportar outra

chave, com pouco ganho real.

O motivo para criptografar, descriptografar e criptografar mais uma vez é a

compatibilidade retroativa com os sistemas DES de chave única existentes.

Tanto as funções de criptografia quanto as de descriptografia são mapeamentos

entre conjuntos de números de 64 bits. Do ponto de vista da criptografia, os

dois mapeamentos são igualmente fortes. No entanto, ao usar EDE em vez de

EEE, um computador que utiliza a criptografia tripla pode se comunicar com
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 37 de 199
outro que utiliza a criptografia apenas definindo K1 = K2. Essa propriedade

permite que a criptografia tripla seja ajustada gradualmente, o que não

interessa aos criptógrafos acadêmicos, mas que é de grande importância para a

IBM e seus clientes.



[T3] 8.2.2 AES — Advanced Encryption Standard

À medida que o DES começou a se aproximar do fim de sua vida útil, mesmo

com o DES triplo, o NIST (National Institute of Standards and Technology), o

órgão do departamento de comércio dos Estados Unidos encarregado de

aprovar padrões para o Governo Federal dos Estados Unidos, decidiu que o

governo precisava de um novo padrão criptográfico para uso não confidencial. O

NIST estava ciente de toda a controvérsia que cercava o DES e sabia muito bem

que, se anunciasse um novo padrão, todas as pessoas que soubessem algo

sobre criptografia concluiriam automaticamente que a NSA havia criado uma

porta dos fundos no DES, e assim a NSA poderia ler tudo que fosse

criptografado com ele. Sob essas condições, talvez ninguém utilizasse o padrão

e seria mais provável que ele desaparecesse.

Dessa forma, o NIST adotou uma estratégia diferente e surpreendente para um

órgão do governo: patrocinou um concurso de criptografia. Em janeiro de 1997,

pesquisadores do mundo inteiro foram convidados a submeter propostas para

um novo padrão, a ser chamado AES (Advanced Encryption Standard). As regras

do concurso eram:

1. O algoritmo teria de ser uma cifra de bloco simétrica.

2. Todo o projeto teria de ser público.

3. Deveriam ser admitidos tamanhos de chaves iguais a 128, 192 e 256 bits.

4. Teriam de ser possíveis implementações de software e de hardware.

5. O algoritmo teria de ser público ou licenciado em termos não
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 38 de 199
discriminatórios.

Foram feitas quinze propostas sérias e foram organizadas conferências públicas

nas quais essas propostas eram apresentadas, e os participantes eram

encorajados ativamente a encontrar falhas em todas elas. Em agosto de 1998, o

NIST selecionou cinco finalistas, baseado principalmente em seus requisitos de

segurança, eficiência, simplicidade, flexibilidade e memória (importante para

sistemas incorporados). Foram realizadas outras conferências e mais tentativas

de encontrar falhas nos algoritmos. Na última conferência, houve uma votação

sem compromisso. Os finalistas e suas pontuações foram:

1. Rijndael (de Joan Daemen e Vincent Rijmen, 86 votos).

2. Serpent (de Ross Anderson, Eli Biham e Lars Knudsen, 59 votos).

3. Twofish (de uma equipe liderada por Bruce Schneier, 31 votos).

4. RC6 (da RSA Laboratories, 23 votos).

5. MARS (da IBM, 13 votos).

Em outubro de 2000, o NIST anunciou que também votou no Rijndael e, em

novembro de 2001, o Rijndael se tornou um padrão do Governo dos Estados

Unidos publicado como Federal Information Processing Standard FIPS 197.

Devido à extraordinária abertura da competição, às propriedades técnicas do

Rijndael e ao fato de que a equipe premiada consistia em dois jo vens

criptógrafos belgas (com pouca probabilidade de terem criado uma porta dos

fundos só para agradar a NSA), esperava-se que o Rijndael se tornasse o padrão

criptográfico dominante no mundo por pelo menos uma década. O nome

Rijndael deriva dos sobrenomes dos autores: Rijmen + Daemen.

O Rijndael admite tamanhos de chaves e tamanhos de blocos desde 128 bits até

256 bits em intervalos de 32 bits. O comprimento da chave e o do bloco podem

ser escolhidos independentemente. Porém, o AES especifica que o tamanho do

bloco deve ser 128 bits e o comprimento da chave deve ser 128, 192 ou 256
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                     EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                      CAPÍTULO 8/P. 39 de 199
bits. É pouco provável que alguém utilize chaves de 192 bits; assim, de fato, o

AES tem duas variantes: um bloco de 128 bits com uma chave de 128 bits e um

bloco de 128 bits com uma chave de 256 bits.

Em nosso tratamento do algoritmo apresentado a seguir, examinaremos apenas

o caso de 128/128, porque é provável que esse se torne a norma comercial.

Uma chave de 128 bits oferece um espaço de chaves de 2 128  3  1038 chaves.

Ainda que o NSA consiga construir uma máquina com 1 bilhão de processadores

paralelos, cada um capaz de avaliar uma chave por picossegundo, tal máquina

levaria cerca de 10 10 anos para pesquisar o espaço de chaves. Nessa época, o

sol já terá explodido e as pessoas que sobreviverem terão de ler os resultados a

luz de vela.



[T4] Rijndael

Sob uma perspectiva matemática, o Rijndael se baseia na teoria de campo de

Galois, o que proporciona ao algoritmo algumas propriedades de segurança

demonstráveis. Porém, ele também pode ser visto como código em C, sem a

necessidade de entrarmos nos detalhes matemáticos.

Como o DES, o Rijndael utiliza substituição e permutações, e também emprega

várias rodadas. O número de rodadas depende do tamanho da chave e do

tamanho do bloco, sendo 10 para chaves de 128 bits com blocos de 128 bits,

passando para 14 no caso da maior chave ou do maior bloco. No entanto,

diferente do DES, todas as operações envolvem bytes inteiros, a fim de permitir

implementações eficientes, tanto em hardware quanto em software. Um esboço

do código é apresentado na Figura 8.9.

[arte: ver original da p. 743]

[TD]

#define LENGTH 16                                                 /* número de bytes em bloco
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                       EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                        CAPÍTULO 8/P. 40 de 199
de dados ou chave */

#define NROWS 4                                                   /* número de linhas em

estado */

#define NCOLS 4                                                   /* número de colunas em

estado */

#define ROUNDS 10                                                 /* número de iterações */

typedef unsigned char byte;                                       /* inteiro de 8 bits sem sinal

*/



rijndael(byte plaintext[LENGTH], byte ciphertext[LENGTH], byte key[LENGTH])

{

    int r;                                                        /* índice de loop */

    byte state[NROWS][NCOLS];                                     /* estado atual */

    struct {byte k[NROWS][NCOLS];} rk[ROUNDS + 1]; /* chaves de rodadas */

    expand_key(key, rk);                                          /* cria as chaves de rodadas

*/

    copy_plaintext_to_state(state, plaintext);                    /* inicializa estado atual*/

    xor_roundkey_into_state(state, rk[0]);                        /* efetua XOR de chave em

estado */

    for (r = 1; r <= ROUNDS; r++) {

        substitute(state);                                        /* aplica caixa S a cada byte

*/

        rotate_rows(state);                                       /* gira linha i por i bytes */

        if (r < ROUNDS) mix_columns(state);                       /* função mix */

        xor_roundkey_into_state(state, rk[r]);                    /* efetua XOR de chave em

estado */

    }
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                      EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                       CAPÍTULO 8/P. 41 de 199
 copy_state_to_ciphertext(ciphertext, state);                     /* retorna resultado */

} [TN]

[F]Figura 8.9

[FL] Um esboço do Rijndael



A função rijndael tem três parâmetros. Esses parâmetros são: plaintext, um

array de 16 bytes contendo os dados de entrada, ciphertext, um array de 16

bytes no qual será retornada a saída cifrada e key, a chave de 16 bytes. Durante

o cálculo, o estado atual dos dados é mantido no array de bytes state, cujo

tamanho é NROWS  NCOLS . No caso de blocos de 128 bits, esse array tem 4  4

bytes. Em 16 bytes, é possível armazenar todo o bloco de dados de 128 bits.

O array state é inicializado como o texto simples e modificado por cada etapa

da computação. Em algumas etapas, é executada a substituição byte a byte. Em

outras etapas, os bytes são permutados dentro do array. Outras transformações

também são usadas. No final, o conteúdo do array state é retornado como texto

cifrado.

O código começa expandindo a chave em 11 arrays do mesmo tamanho que o

estado. Eles são armazenados em rk, um array de structs, cada uma contendo

um array de estado. Um desses arrays será utilizado no início do cálculo, e os

outros 10 serão usados durante as 10 rodadas, um por rodada. O cálculo das

chaves de rodadas a partir da chave de criptografia é muito complicado para ser

examinado aqui. Basta saber que as chaves de rodadas são produzidas pela

rotação e pela operação XOR repetida de vários grupos de bits da chave. Para

ver todos os detalhes, consulte (Daemen e Rijmen, 2002).

A próxima etapa é copiar o texto simples no array state de forma que ele possa

ser processado durante as rodadas. O texto é copiado em ordem de colunas,

com os quatro primeiros bytes na coluna 0, os quatro bytes seguintes na coluna
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 42 de 199
1 e assim por diante. Tanto as colunas quanto as linhas são numeradas a partir

de 0, embora as rodadas se iniciem em 1. Essa configuração inicial dos 12

arrays de bytes com tamanho 4  4 é ilustrada na Figura 8.10.

[arte: ver original p. 744]

[Dísticos]

[1] Texto simples de 128 bits

[2] Chave de criptografia de 128 bits

[3] state        rk[0] rk[1] rk[2] rk[3] rk[4] rk[5] rk[6] rk[7] rk[8] rk[9]

        rk[10]

[4] Chaves de rodadas

[F]Figura 8.10

[FL] Criação dos arrays state e rk



Há mais uma etapa antes do início da principal computação: rk[0] é submetido a

uma operação XOR em state byte por byte. Em outras palavras, cada um dos 16

bytes em state é substituído pelo XOR do próprio valor com o byte

correspondente em rk[0].

Agora chegou a hora da atração principal. O loop executa 10 repetições, uma

por rodada, transformando state em cada repetição. O conteúdo de cada

redonda consiste em quatro etapas. A etapa 1 efetua uma substituição byte a

byte em state. Por sua vez, cada byte é usado como um índice para uma caixa S,

a fim de substituir seu valor pelo conteúdo dessa entrada da caixa S. Essa etapa

é uma cifra de substituição monoalfabética. Diferente do DES, que tem diversas

caixas S, o Rijndael tem apenas uma caixa S.

A etapa 2 gira cada uma das quatro linhas para a esquerda. A linha 0 é girada 0

bytes (isto é, não se altera), a linha 1 é girada 1 byte, a linha 2 é girada 2 bytes

e a linha 3 é girada 3 bytes. Essa etapa difunde o conteúdo dos dados atuais em
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 43 de 199
torno do bloco, de modo análogo às permutações da Figura 8.6.

A etapa 3 mistura cada coluna independentemente das outras. A mistura é

realizada com o uso da multiplicação de matrizes, na qual a nova coluna é o

produto da coluna antiga por uma matriz constante, sendo a multiplicação feita

com o campo finito de Galois, GF(28). Embora isso possa parecer complicado,

existe um algoritmo que permite calcular cada elemento da nova coluna usando

duas pesquisas de tabelas e três operações XOR (Daemen e Rijmen, 2002,

Apêndice E).

Finalmente, a etapa 4 efetua o XOR da chave correspondente a essa rodada no

array state.

Tendo em vista que cada etapa é reversível, a decodificação pode ser feita

simplesmente executando-se o algoritmo no sentido inverso. Porém, também

existe um artifício, pelo qual a decodificação pode ser realizada executando -se

o algoritmo de criptografia com a utilização de tabelas diferentes.

O algoritmo foi projetado não só por segurança, mas também para aumentar a

velocidade. Uma boa implementação de software em uma máquina de 2 GHz

deve ser capaz de alcançar uma taxa de criptografia de 700 Mbps, que é rápida

o suficiente para codificar mais de 100 vídeos MPEG-2 em tempo real. As

implementações de hardware são ainda mais rápidas.



[T3] 8.2.3 Modos de cifra

Apesar de toda essa complexidade, o AES (ou o DES, ou ainda qualquer cifra de

bloco) é basicamente uma cifra de substituição monoalfabética que utiliza

caracteres grandes (caracteres de 128 bits para AES, e caracteres de 64 bits para

DES). Sempre que o mesmo bloco de texto simples chega ao front end, o mesmo

bloco de texto cifrado sai pelo back end. Se codificar o texto simples abcdefgh

100 vezes com a mesma chave DES, você obterá o mesmo texto cifrado 100
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC              CAPÍTULO 8/P. 44 de 199
vezes. Um intruso pode explorar essa propriedade para ajudar a subverter a

cifra.



[T4] O modo Electronic Code Book

Para ver como essa propriedade das cifras de substituição monoalfabética

podem ser usadas para anular parcialmente a cifra, usaremos o DES (triplo), por

ser mais fácil representar blocos de 64 bits que blocos de 128 bits, mas o AES

tem exatamente o mesmo problema. A maneira direta de usar o DES para

codificar um longo fragmento de texto simples é dividi-lo em blocos

consecutivos de 8 bytes (64 bits) e codificá-los uns após outros com a mesma

chave. O último fragmento de texto simples é completado até 64 bits, se

necessário. Essa técnica é conhecida como modo ECB (modo Electronic Code

Book) em analogia aos antigos livros de código em que cada palavra de texto

simples era listada, seguida por seu texto cifrado (em geral, um número decimal

de cinco dígitos).

Na Figura 8.11, temos o início de um arquivo de computador listando as

gratificações anuais que uma empresa decidiu oferecer a seus funcionários. Esse

arquivo consiste em registros de 32 bytes consecutivos, um por funcionário, no

formato mostrado: 16 bytes para o nome, 8 bytes para o cargo e 8 bytes para a

gratificação. Cada um dos dezesseis blocos de 8 bytes (numerados de 0 até 15)

é codificado pelo DES (triplo).

[arte: ver original p. 746]

[Dísticos]

[1] Nome        Posição            Gratificação

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 45 de 199
[F]Figura 8.11

[FL] O texto simples de um arquivo codificado como 16 blocos DES



Leslie acabou de ter uma briga com o chefe e sabe que não deve esperar uma

grande gratificação. Em contraste, Kim é a favorito do chefe e todo mund o sabe

disso. Leslie pode acessar o arquivo após a codificação, mas antes do arquivo

ser enviado ao banco. Leslie pode retificar essa situação injusta, tendo apenas o

arquivo criptografado?

Não há problema. Leslie só precisa fazer uma cópia do 12° bloco de texto

cifrado (que contém a gratificação de Kim) e usá-lo para substituir o 4° bloco de

texto cifrado (que contém a gratificação de Leslie). Mesmo sem saber o que

contém o 12° bloco, Leslie pode esperar ter um Natal muito mais feliz este ano.

(Copiar o 8° bloco de texto cifrado também é uma possibilidade, mas a

probabilidade de ser descoberto é maior; além disso, Leslie não é uma pessoa

gananciosa.)



[T4] Modo de encadeamento de blocos de cifras

Para contrariar esse tipo de ataque, todos as cifras de blocos podem ser

encadeadas de várias maneiras, para que a substituição de um bloco como a

que Leslie fez transforme o texto simples decodificado em lixo, a partir do

bloco substituído. Uma forma de encadeamento é o encadeamento de blocos de

cifras. Nesse método, mostrado na Figura 8.12, cada bloco de texto simples é

submetido a uma operação XOR com o bloco de texto cifrado anterior, antes de

ser codificado. Conseqüentemente, o mesmo bloco de texto simples não é mais

mapeado para o mesmo bloco de texto cifrado, e a criptografia não é mais uma

grande cifra de substituição monoalfabética. O primeiro bloco é submetido a

uma operação XOR com um IV (Initialization Vector — vetor de inicialização),
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 46 de 199
escolhido ao acaso, que é transmitido (em texto simples) juntamente com o

texto cifrado.

Podemos ver como funciona o modo de encadeamento de blocos de cifras

examinando o exemplo da Figura 8.12. Começamos calculando C0 = E(P0 XOR

IV). Em seguida, calculamos C1 = E(P1 XOR C0) e assim por diante. A

decodificação também utiliza XOR para inverter o processo, com P0 = IV XOR

D(C0) e assim por diante. Observe que a criptografia de bloco i é uma função de

todo o texto simples contidos nos blocos 0 a i - 1, e assim o mesmo texto

simples gera um texto cifrado diferente, dependendo de onde ele ocorre. Uma

transformação do tipo que Leslie fez resultará em texto sem sentido para dois

blocos a partir do campo de gratificação de Leslie. Para um funcionário de

segurança astuto, essa peculiaridade pode sugerir onde iniciar a investigação

legal.

[arte: ver original p. 747]

[Dísticos]

[1] Chave

[2] Caixa de criptografia

[3] Chave

[4] Caixa de descriptografia

[5] OR exclusivo

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.12

[FL] Encadeamento e blocos de cifras. (a) Codificação. (b) Decodificação



O encadeamento de blocos de cifras também tem uma vantagem: o mesmo
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 47 de 199
bloco de texto simples não resultará no mesmo bloco de texto cifrado. Assim, a

criptoanálise será difícil. De fato, essa é a principal razão de seu uso.



[T4] Modo de feedback de cifra

No entanto, o encadeamento de blocos de cifras tem a desvantagem de exigir a

chegada de um bloco de 64 bits inteiro para poder iniciar a decodificação.

Quando é utilizado em terminais interativos, nos quais as pessoas podem

digitar linhas com menos de oito caracteres e parar à espera de uma resposta,

esse modo é inadequado. No caso da codificação byte a byte, é usado o modo

de feedback de cifra, empregando o DES (triplo), como mostra a Figura 8.13.

Para o AES, a idéia é exatamente a mesma, sendo usado um registrador de

deslocamento de 128 bits. Na figura, o estado da máquina de criptografia é

mostrado após os bytes 0 a 9 terem sido codificados e enviados. Ao chegar o

byte 10 do texto simples, conforme ilustra a Figura 8.13(a), o algoritmo DES

opera sobre o registrador de deslocamento de 64 bits para gerar um texto

cifrado de 64 bits. O byte mais à esquerda desse texto cifrado é extraído e

submetido a uma operação XOR com P10. Depois, esse byte é encaminhado à

linha de transmissão. Além disso, o registrador de deslocamento (shift register)

é deslocado 8 bits à esquerda, fazendo C2 ficar fora da extremidade esquerda, e

C10 é inserido na posição que acabou de ficar vaga na extremidade direita, logo

depois de C9. Observe que o conteúdo do registrador de deslocamento depende

de todo o histórico anterior do texto simples; assim, um padrão que se repetir

várias vezes no texto simples será criptografado de maneira diferente do texto

cifrado a cada repetição. Como ocorre no encadeamento de blocos de cifras, é

necessário um vetor de inicialização para dar início ao processo.

A decodificação com o modo de feedback de cifra funciona exatamente como a

codificação. Em particular, o conteúdo do registrador de deslocamento é
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC              CAPÍTULO 8/P. 48 de 199
codificado e não decodificado , e assim o byte selecionado que é submetido à

operação XOR com C10 para se obter P10 é o mesmo que sofreu a operação XOR

com P10 para gerar C10 na primeira vez. Desde que os dois registradores de

deslocamento permaneçam idênticos, a decodificação funcionar corretamente.

Ela é ilustrada na Figura 8.13(b).

[arte: ver original p. 748]

[Dísticos]

[1] Registrador de deslocamento de 64 bits Registrador de deslocamento de 64

bits

C2 C3 C4 C5 C6 C7 C9               C2 C3 C4 C5 C6 C7 C9

[2] Chave       E       Caixa de criptografia             C10

[3] Chave       E       Caixa de criptografia             C10

[4] Seleciona o byte mais à esquerda

[5] Seleciona o byte mais à esquerda

[6]P10 +        C10

XOR

(a)

[7] C10         +       P10

(b)

[F]Figura 8.13

[FL] Modo de feedback de cifra. (a) Codificação. (b) Decodificação



O modo de feedback de cifra apresenta um problema: se um bit do texto cifrado

for invertido acidentalmente durante a transmissão, os 8 bytes decodificados

enquanto o byte defeituoso estiver no registrador de deslocamento serão

danificados. Depois que o byte defeituoso é empurrado para fora do registrador

de deslocamento, o texto simples correto será gerado mais uma vez. Desse
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 49 de 199
modo, os efeitos de um único bit invertido são relativamente localizados e não

arruinam o restante da mensagem, mas arruinam uma quantidade de bits igual à

largura do registrador de deslocamento.



[T4] Modo de cifra de fluxo

Apesar disso, existem aplicações em que um erro de transmissão de 1 bit

alterando 64 bits de texto simples provoca um impacto grande demais. Para

essas aplicações, há uma quarta opção, o modo de cifra de fluxo. Ele funciona

codificando um vetor de inicialização, com uma chave para obter um b loco de

saída. O bloco de saída é então codificado, usando-se a chave para se obter um

segundo bloco de saída. Em seguida, esse bloco é codificado para se obter um

terceiro bloco e assim por diante. A seqüência (arbitrariamente grande) de

blocos de saída, chamada fluxo de chaves, é tratada como uma chave única e

submetida a uma operação XOR com o texto simples para se obter o texto

cifrado, como mostra a Figura 8.14(a). Observe que o vetor de inicialização só é

usado na primeira etapa. Depois disso, a saída é codificada. Observe também

que o fluxo de chaves é independente dos dados, e portanto pode ser calculado

com antecedência, se necessário, e é completamente insensível a erros de

transmissão. A decodificação é mostrada na Figura 8.14(b).

A decodificação ocorre gerando-se o mesmo fluxo de chaves no lado receptor.

Como o fluxo de chaves só depende do vetor de inicialização e da chave, ele

não é afetado por erros de transmissão no texto cifrado. Desse modo, um erro

de 1 bit no texto cifrado transmitido gera apenas um erro de 1 bit no texto

simples decodificado.

[arte: ver original p. 749]

[Dísticos]

[1] IV
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 50 de 199
Caixa de criptografia

Chave           E

Fluxo de chaves

Texto simples           Texto cifrado

(a)

[2] IV

Caixa de criptografia

Chave           E

Fluxo de chaves

Texto cifrado           Texto simples

(b)

[F]Figura 8.14

[FL] Uma cifra de fluxo. (a) Codificação. (b) Decodificação



É essencial nunca utilizar o mesmo par (chave, IV) duas vezes com uma cifra de

fluxo, porque isso irá gerar o mesmo fluxo de chaves o tempo todo. O us o de

um mesmo fluxo de chaves duas vezes expõe o texto cifrado a um ataque de

reutilização de fluxo de chaves. Imagine que o bloco de texto simples P0 seja

codificado com o fluxo de chaves para se obter P0 XOR K0. Mais tarde, um

segundo bloco de texto simples Q0 é codificado com o mesmo fluxo de chaves

para se obter Q0 XOR K0. Um intruso que capturar ambos os blocos de texto

cifrado poderá simplesmente efetuar uma operação XOR dos dois juntos para

obter P0 XOR Q0, o que eliminará a chave. Agora, o intruso tem o XOR dos dois

blocos de texto simples. Se um deles for conhecido ou puder ser encontrado, o

outro também poderá ser encontrado. Em todo caso, o XOR de dois fluxos de

texto simples poderá ser atacado com a utilização de propriedades estatísticas

da mensagem. Por exemplo, no caso de texto em inglês, o caractere mais
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 51 de 199
comum no fluxo provavelmente será o XOR de dois espaços, seguido pelo XOR

de espaço e da letra "e" etc. Em resumo, equipado com o XOR de dois textos

simples, o criptoanalista tem uma excelente chance de deduzi-los.



[T4] Modo de contador

Um problema apresentado por todos os modos, com exceção do modo de livro

de código eletrônico, é a impossibilidade de conseguir acesso aleatório a dados

codificados. Por exemplo, suponha que um arquivo seja transmitido por uma

rede e depois armazenado em disco em forma codificada. Isso poderia ser um

meio razoável de operação, se o computador receptor fosse um notebook que

pudesse ser roubado. Armazenar todos os arquivos críticos em forma codificada

reduz muito os danos causados pelo vazamento de informações secretas na

eventualidade do computador cair em mãos erradas.

Porém, com freqüência os arquivos de disco são acessados em ordem não

seqüencial, especialmente arquivos de bancos de dados. No caso de um arq uivo

codificado pela utilização do encadeamento de blocos de cifras, o acesso a um

bloco aleatório exige primeiro a decodificação de todos os blocos situados à

frente dele, uma proposta dispendiosa. Por essa razão, foi criado mais um

modo, o modo de contador, como ilustra a Figura 8.15. Aqui, o texto simples

não é codificado diretamente. Em vez disso, o vetor de inicialização somado a

uma constante é codificado, e o texto cifrado resultante é submetido a um XOR

com o texto simples. Aumentar o vetor de inicialização em 1 unidade a cada

novo bloco, facilita a decodificação de um bloco em qualquer lugar no arquivo

sem que primeiro seja preciso decodificar todos os seus predecessores.

[arte: ver original p. 750]

[Dísticos]

[1] Chave
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 52 de 199
[2] Caixa de codificação

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.15

[FL] Codificação com a utilização do modo de contador



Embora seja útil, o modo de contador tem um ponto fraco que vale a pena

assinalar. Suponha que a mesma chave K seja usada novamente no futuro (com

um texto simples diferente, mas com o mesmo IV) e um atacante adquira todo o

texto cifrado de ambas as execuções. O fluxos de chaves são nos dois casos,

expondo a cifra a um ataque de reutilização de fluxo de chaves do mesmo tipo

que vimos no caso de cifras de fluxo. O criptoanalista tem de efetuar a operação

XOR dos dois textos cifrados juntos, a fim de eliminar toda a proteção

criptográfica e simplesmente obter o XOR dos textos simples. Essa debilidade

não significa que o modo de contador é má idéia. Ela simplesmente quer dizer

que tanto as chaves quanto os vetores de inicialização devem ser escolhidos de

forma independente e ao acaso. Ainda que a mesma chave seja utilizada duas

vezes por acidente, se o IV for diferente em cada utilização, o texto simples

estará seguro.



[T3] 8.2.4 Outras cifras

DES e Rijndael são os algoritmos criptográficos de chave simétrica mais

conhecidos. Porém, vale a pena mencionar que foram criados várias outras

cifras de chave simétrica. Algumas delas estão incorporadas a vários produtos.

A Figura 8.16 mostra algumas dentre as cifras de chave simétrica mais comuns.

[arte: ver original p. 751]
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 53 de 199
[T]Tabela

Cifra

Blowfish

DES

IDEA

RC4

RC5

Rijndael

Serpent

DES triplo

Twofish

Autor

Bruce Schneier

IBM

Massey e Xuejia

Ronald Rivest

Ronald Rivest

Daemen e Rijmen

Anderson, Biham, Knudsen

IBM

Bruce Schneier

Comprimento da chave

1 a 448 bits

56 bits

128 bits

1 a 2048 bits

128 a 256 bits
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 54 de 199
128 a 256 bits

128 a 256 bits

168 bits

128 a 256 bits

Comentários

Velho e lento

Muito fraco para usar agora

Bom, mas patenteado

Atenção: algumas chaves são fracas

Bom, mas patenteado

Melhor escolha

Muito forte

Segunda melhor escolha

Muito forte; amplamente utilizado

[F]Figura 8.16

[FL] Alguns algoritmos criptográficos de chave simétrica comuns



[T3] 8.2.5 Criptoanálise

Antes de deixar o assunto de criptografia de chave simétrica, vale a pena

mencionar pelo menos quatro desenvolvimentos em criptoanálise. O primeiro

desenvolvimento é a criptoanálise diferencial (Biham e Shamir, 1993). Essa

técnica pode ser usada para atacar qualquer cifra de bloco. Ela funcion a a partir

de um par de blocos e texto simples que diferem apenas por um pequeno

número de bits e pela observação cuidadosa do que acontece em cada iteração

interna à medida que a codificação prossegue. Em muitos casos, alguns padrões

de bits são muito mais comuns que outros, e essa observação leva a um ataque

probabilístico.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 55 de 199
O segundo desenvolvimento que vale a pena notas é a criptoanálise linear

(Matsui, 1994). Ela pode romper o DES com apenas 2 46 textos simples

conhecidos. Essa técnica funciona efetuando o XOR de certos bits no texto

simples e no texto cifrado, e examinando o resultado em busca de padrões.

Quando isso é feito repetidamente, metade dos bits deve ter o valor 0 e metade

deve ter o valor 1. Porém, com freqüência as cifras introduzem uma incl inação

em um sentido ou no outro, e essa inclinação, embora pequena, pode ser

explorada para reduzir o fator de trabalho. Para ver os detalhes, consulte o

ensaio de Matsui.

O terceiro desenvolvimento é o uso da análise do consumo de energia elétrica

para encontrar chaves secretas. Em geral, os computadores utilizam 3 volts para

representar um 1 bit e 0 volts para representar um bit 0. Desse modo, o

processamento de um bit 1 exige mais energia elétrica que o processamento de

um 0. Se um algoritmo criptográfico consistir em um loop no qual os bits da

chave são processados em ordem, um atacante que substituir o clock principal

de n GHz por um clock lento (por exemplo, 100 Hz) e prender pinças dentadas

(pinças jacaré) nos pinos de energia da CPU e de terra poderá monitorar com

precisão a energia consumida por cada instrução de máquina. A partir desses

dados, será surpreendentemente fácil deduzir a chave. Esse tipo de criptoanálise

só pode ser anulado por codificação cuidadosa do algoritmo em linguagem

assembly para ter certeza de que o consumo de energia será independente da

chave e também independente de todas as chaves de rodadas individuais.

O quarto desenvolvimento é a análise de sincronismo. Os algoritmos

criptográficos estão repletos de instruções [TD]if[TN] que testam bits nas chaves

de rodadas. Se as partes [TD]then[TN] e [TD]else[TN] demorarem períodos de

tempo diferentes, tornando mais lento o clock e verificando quanto tempo

demoram diversas etapas, talvez seja possível deduzir as chaves de rodadas.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 56 de 199
Uma vez que todas as chaves de rodadas sejam conhecidas, em geral será

possível calcular a chave original. A análise da energia e da sincronização

também podem ser empregadas simultaneamente para facilitar o trabalho.

Embora a análise da energia e da sincronização possam parecer exóticas, na

realidade são técnicas eficientes que podem romper qualquer cifra não

projetada de forma específica para resistir a elas.



[T2] 8.3 Algoritmos de chave pública

Historicamente, o problema da distribuição de chaves sempre foi o elo mais

fraco da maioria dos sistemas de criptografia. Independente de quanto um

sistema de criptografia fosse sólido, se um intruso conseguisse roubar a chave,

o sistema acabava sendo inútil. Como todos os criptólogos sempre presumem

que a chave de criptografia e a chave de descriptografia são iguais (ou

facilmente derivadas uma da outra) e que a chave é distribuída a todos os

usuários do sistema, tinha-se a impressão de que havia um problema inerente

ao sistema: as chaves tinham de ser protegidas contra roubo, mas também

tinham de ser distribuídas; portanto, elas não podiam ser simplesmente

trancadas na caixa-forte de um banco.

Em 1976, dois pesquisadores da University of Stanford, Diffie e Hellman (1976),

propuseram um sistema de criptografia radicalmente novo, no qual as chaves de

criptografia e de descriptografia eram diferentes, e a chave de descriptografia

não podia ser derivada da chave de criptografia. Em sua proposta, o algoritmo

de criptografia (chaveado) E e o algoritmo de descriptografia (chaveado) D

tinham de atender a três requisitos, que podem ser declarados da seguinte

forma:

1. D(E(P)) = P.

2. É extremamente difícil deduzir D a partir de E.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 57 de 199
3. E não pode ser decifrado por um ataque de texto simples escolhido.

O primeiro requisito diz que, se aplicarmos D a uma mensagem criptografada,

E(P), obteremos outra vez a mensagem de texto simples original P. Sem essa

propriedade, o destinatário legítimo não poderia decodificar o texto cifrado. O

segundo é auto-explicativo. O terceiro é necessário porque, como veremos em

um minuto, os intrusos podem experimentar o algoritmo até se cansarem. Sob

essas condições, não há razão para a chave criptográfica não se tornar pública.

O método funciona da seguinte forma: uma pessoa, digamos Alice, desejando

receber mensagens secretas, primeiro cria dois algoritmos que atendem aos

requisitos anteriores. O algoritmo de criptografia e a chave de Alice se tornam

públicos, daí o nome criptografia de chave pública. Por exemplo, Alice poderia

colocar sua chave pública na home page que ela tem na Web. Usaremos a

notação EA para indicar o algoritmo de criptografia parametrizado pela chave

pública de Alice. De modo semelhante, o algoritmo de descriptografia (secreto)

parametrizado pela chave privada de Alice é DA. Bob faz o mesmo, publicando

EB, mas mantendo secreta a chave DB.

Agora vamos ver se podemos resolver o problema de estabelecer um canal

seguro entre Alice e Bob, que nunca haviam tido um contato anterior. Supondo

que tanto a chave de criptografia de Alice, EA, quanto a chave de criptografia de

Bob, EB, estejam em arquivos de leitura pública. Agora, Alice pega sua primeira

mensagem P, calcula EB(P) e a envia para Bob. Em seguida, Bob a descriptografa

aplicando sua chave secreta DB [ou seja, ele calcula DB(EB(P)) = P]. Ninguém mais

pode ler a mensagem criptografada EB(P), porque o sistema de criptografia é

considerado sólido e porque é muito difícil derivar DB da chave EB publicamente

conhecida. Para enviar uma resposta R, Bob transmite EA(R). Agora, Alice e Bob

podem se comunicar com segurança.

Talvez seja interessante fazer uma observação sobre a terminologia. A
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 58 de 199
criptografia de chave pública exige que cada usuário tenha duas chaves: uma

chave pública, usada pelo mundo inteiro para criptografar as mensagens a

serem enviadas para esse usuário, e uma chave privada, que o usuário utiliza

para descriptografar mensagens. Faremos referência a essas chaves como chave

pública e chave privada , respectivamente, e vamos distingui-las das chaves

secretas (também chamadas chaves simétricas) usadas na criptografia de chave

simétrica convencional.



[T3] 8.3.1 RSA

O único problema é que temos de encontrar algoritmos que realmente

satisfaçam a todos os três requisitos. Devido às vantagens potenciais da

criptografia de chave pública, muitos pesquisadores estão se dedicando

integralmente a seu estudo, e alguns algoritmos já foram publicados. Um

método muito interessante foi descoberto por um grupo de pesquisadores do

MIT (Rivest et al., 1978) e é conhecido pelas iniciais dos três estudiosos que o

criaram (Rivest, Shamir, Adleman): RSA. Ele sobreviveu a todas as tentativas de

rompimento por mais de um quarto de século e é considerado um algoritmo

muito forte. Grande parte da segurança prática se baseia nele. Sua principal

desvantagem é exigir chaves de pelo menos 1024 bits para manter um bom

nível de segurança (em comparação com 128 bits para os algoritmos de chave

simétrica), e isso o torna bastante lento.

O método RSA se baseia em alguns princípios da teoria dos números. Agora

vamos mostrar de forma resumida como usar o método; para obter mais

detalhes, consulte o documento original.

1. Escolha dois números primos extensos, p e q (geralmente, de 1024 bits).

2. Calcule n = p  q e z = (p - 1)  (q - 1).

3. Escolha um número d tal que z e d sejam primos entre si.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 59 de 199
4. Encontre e de forma que e  d = 1 mod z .

Com esses parâmetros calculados com antecedência, estamos prontos para

começar a criptografia. Divida o texto simples (considerado um string de bits)

em blocos, de modo que cada mensagem de texto simples P fique no intervalo 0

 P < n. Isso pode ser feito agrupando-se o texto simples em blocos de k bits,

onde k é o maior inteiro para o qual a desigualdade 2 k < n é verdadeira.

Para criptografar a mensagem P, calcule C = Pe (mod n). Para descriptografar C,

calcule P = Cd (mod n). É possível provar que, para todo P na faixa especificada,

as funções de criptografia e descriptografia são inversas entre si. Para realizar a

criptografia, você precisa de e e n, enquanto para a descriptografia, são

necessários d e n. Portanto, a chave pública consiste no par ( e, n) e a chave

privada consiste em ( d, n).

A segurança do método se baseia na dificuldade de fatorar números extensos.

Se pudesse fatorar o valor n (publicamente conhecido), o criptoanalista poderia

então encontrar p e q e, a partir desses, encontrar z. Com o conhecimento de z

e e, é possível encontrar d utilizando-se o algoritmo de Euclides. Felizmente, os

matemáticos têm tentado fatorar números extensos por pelo menos 300 anos, e

o conhecimento acumulado sugere que o problema é extremamente difícil.

De acordo com Rivest e seus colegas, a fatoração de um número de 500 dígitos

requer 1025 anos, usando-se a força bruta. Nesse caso, eles pressupõem o

melhor algoritmo conhecido e um computador com um tempo por instrução de

1 μs. Mesmo que os computadores continuem a se tornar cada vez mais rápidos

na proporção de uma ordem de magnitude por década, ainda se passarão

séculos até que a fatoração de um número de 500 dígitos se torne v iável e,

nesse tempo, nossos descendentes poderão simplesmente escolher p e q ainda

maiores.

Um exemplo didático muito comum do algoritmo RSA é mostrado na Figura
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 60 de 199
8.17. Para esse exemplo, escolhemos p = 3 e q = 11, o que gera n = 33 e z =

20. Um valor adequado para d é d = 7, visto que 7 e 20 não têm fatores

comuns. Com essas opções, e pode ser encontrado resolvendo-se a equação 7 e

= 1 (mod 20), que produz e = 3. O texto cifrado C para uma mensagem de texto

simples P é dado por C = P3 (mod 33). O texto cifrado é decodificado pelo

receptor usando a regra P = C7 (mod 33). A figura mostra a codificação do texto

simples "SUZANNE" como exemplo.

[arte: ver original p. 754]

[Dísticos]

[1] Texto simples (P)

Simbólico       Numérico

S         19

U         21

Z         26

A         01

N         14

N         14

E         05

[2] Texto cifrado (C)

P3        P3 (mod 33)

    6859        28

    9261        21

17576           20

      1           1

    2744          5

    2744          5

     125        26
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 61 de 199
[3]

C7

13492928512

 1801088541

 1280000000

                1

            78125

            78125

  8031810176

[4] Depois da decodificação

C7 (mod 33)             Simbólico

19      S

21      U

26      Z

 1      A

14      N

14      N

 5      E

[5] Cálculo do transmissor             Cálculo do receptor

[F]Figura 8.17

[FL] Um exemplo do algoritmo RSA



Como os números primos escolhidos para esse exemplo são muito pequenos, P

tem de ser menor que 33; portanto, cada bloco do texto simples só pode conter

um caractere isolado. O resultado é uma cifra de substituição monoalfabética,

que não impressiona muito. Se em vez disso, tivéssemos escolhido p e q  2512,

teríamos n  21024 e assim cada bloco poderia ter até 1024 bits ou 128
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 62 de 199
caracteres de 8 bits, em comparação com 8 caracteres para o DES e 16

caracteres para o AES.

Devemos destacar que o uso do RSA da forma como descrevemos é semelhante

ao uso de um algoritmo simétrico no modo ECB — o mesmo bloco de entrada

gera o mesmo bloco de saída. Portanto, é necessário algum tipo de

encadeamento para a criptografia de dados. No entanto, na prática, a maior

parte dos sistemas baseados no RSA utiliza a criptografia de chave pública

principalmente para distribuir chaves únicas de sessão que, por sua vez, são

empregadas com algum algoritmo de chave simétrica, como AES ou DES triplo.

O RSA é lento demais para codificar grandes volumes de dados, mas é

amplamente utilizado para a distribuição de chaves.



[T3] 8.3.2 Outros algoritmos de chave pública

Apesar de ser amplamente utilizado, o RSA não é de forma alguma o único

algoritmo de chave pública conhecido. O primeiro algoritmo de chave públ ica foi

o algoritmo da mochila (Merkle e Hellman, 1978). A idéia aqui é que alguém

possui um grande número de objetos, cada objeto com um peso diferente. O

dono dos objetos codifica a mensagem selecionando secretamente um

subconjunto dos objetos e colocando-os na mochila. O peso total dos objetos

contidos na mochila torna-se público, e o mesmo acontece com a lista de todos

os objetos possíveis. A lista de objetos contidos na mochila é mantida em

segredo. Com outras restrições específicas, o problema de descobrir uma lista

de objetos possíveis com o peso fornecido foi considerado computacionalmente

inviável e formou a base do algoritmo de chave pública.

O inventor do algoritmo, Ralph Merkle, estava bastante seguro de que esse

algoritmo não poderia ser decifrado; portanto, ofereceu um prêmio de 100

dólares a quem conseguisse fazê-lo. Adi Shamir (o "S" do RSA) se prontificou a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 63 de 199
decifrar o algoritmo e ganhou o prêmio. Indignado, Merkle reforçou o algoritmo

e ofereceu um prêmio de 1.000 dólares a quem pudesse decifrá-lo. Ronald

Rivest (o "R" do RSA) também conseguiu decifrar o novo algoritmo e ganhou o

prêmio. Merkle não ousou oferecer 10.000 dólares pela nova versão revisada;

portanto, "A" (Leonard Adleman) não teve sorte. Apesar de ter sido refeito, o

algoritmo da mochila não é mais considerado seguro e não é usado.

Outros esquemas de chave pública se baseiam na dificuldade de calcular

logaritmos discretos. Os algoritmos que utilizam esse princípio foram criados

por El Gamal (1985) e Schnorr (1991).

Existem alguns outros esquemas, como os que se baseiam em curvas elípticas

(Menezes e Vanstone, 1993), mas as duas principais categorias são aquelas que

se baseiam na dificuldade de fatorar números extensos e no cálculo de

logaritmos discretos cuja base é um número primo extenso. Esses problemas

são considerados genuinamente difíceis de resolver — os matemáticos estão

estudando os algoritmos há anos sem grandes resultados.



[T2] 8.4 Assinaturas digitais

A autenticidade de muitos documentos legais, financeiros e outros documentos

é determinada pela presença de uma assinatura autorizada. Isso não vale para

as fotocópias. Para que os sistemas de mensagens computadorizadas possam

substituir o transporte físico de documentos em papel e tinta, deve-se encontrar

um método que permita assinar os documentos de um modo que não possa ser

forjado.

O problema de se criar um substituto para as assinaturas escritas à mão é muito

difícil. Basicamente, necessita-se de um sistema através do qual uma parte

possa enviar uma mensagem "assinada" para outra parte de forma que:

1. O receptor possa verificar a identidade alegada pelo transmissor.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 64 de 199
2. Posteriormente, o transmissor não possa repudiar o conteúdo da mensagem.

3. O receptor não tenha a possibilidade de inventar ele mesmo a mensagem.

Por exemplo, o primeiro requisito diz respeito a sistemas financeiros. Quando o

computador de um cliente pede ao computador de um banco que compre uma

tonelada de ouro, o computador do banco precisa se certificar de que o

computador que está emitindo o pedido realmente pertence à empresa cuja

conta deve ser debitada.

O segundo requisito é necessário para proteger o banco contra fraudes.

Suponha que o banco compre a tonelada de ouro e que logo depois disso o

preço do ouro caia abruptamente. Um cliente desonesto poderia processar o

banco, afirmando nunca ter feito qualquer pedido para a compra de ouro.

Quando o banco mostra a mensagem no tribunal, o cliente nega tê-la enviado. A

propriedade segundo a qual nenhuma parte de um contrato pode negar mai s

tarde tê-lo assinado é chamada não repúdio. Os esquemas de assinatura digital

que estudaremos agora ajudam a garantir o não repúdio.

O terceiro requisito é necessário para proteger o cliente caso o preço do ouro

dispare e o banco tente montar uma mensagem assinada na qual o cliente pedia

uma barra de ouro em vez de uma tonelada. Nesse cenário de fraude, o bando

simplesmente guarda para si próprio o restante do ouro.



[T3] 8.4.1 Assinaturas de chave simétrica

Uma estratégia para as assinaturas digitais é ter uma autoridade central que

saiba de tudo e na qual todos confiem, digamos, Big Brother ( BB). Em seguida,

cada usuário escolhe uma chave secreta e a leva para o escritório de BB. Assim,

somente Alice e BB conhecem a chave secreta de Alice, KA e assim por diante.

Quando deseja enviar uma mensagem em texto simples assinada, P, ao gerente

de sua conta, que é Bob, Alice gera KA (B, RA, t, P), onde B é a identidade de Bob,
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 65 de 199
RA é um número aleatório escolhido por Alice, t é um timbre de hora para

assegurar a atualidade e KA (B, RA, t, P) é a mensagem criptografada com sua

chave, KA. Em seguida, ela envia a mensagem, da maneira descrita na Figura

8.18. BB vê que essa mensagem veio de Alice, descriptografa a mensagem e a

envia a Bob, exatamente como mostramos. A mensagem para Bob contém o

texto simples da mensagem de Alice e também a mensagem assinada KBB (A, t,

P). Agora Bob executa a solicitação de Alice.

O que acontecerá se mais tarde Alice negar ter enviado a mensagem? Na etapa

1, todo mundo processa todo mundo (pelo menos, nos Estados Unidos). Por fim,

quando o caso parar nos tribunais e Alice continuar negando ter enviado a

mensagem a Bob, o juiz perguntará a Bob como ele pode ter certeza de que a

mensagem veio de Alice e não de Trudy. Primeiro, Bob destaca que BB só

aceitará uma mensagem de Alice se ela tiver sido criptografada com KA.

Portanto, não há possibilidade de Trudy ter enviado a BB uma mensagem falsa

no lugar de Alice, sem que BB detectasse esse farto de imediato.

[arte: ver original p. 757]

[Dísticos]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.18

[FL] Assinaturas digitais com Big Brother



Em seguida, drasticamente, Bob apresenta a Prova A, KBB (A, t, P). Bob afirma

tratar-se de uma mensagem assinada por BB que prova o fato de Alice ter

enviado P a Bob. Em seguida, o juiz solicita que BB (em quem todos confiam)

descriptografe a Prova A. Quando BB testemunha que Bob está dizendo a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 66 de 199
verdade, o juiz decide a favor de Bob. Caso encerrado.

Um problema potencial com o protocolo de assinatura da Figura 8.22 é Trudy

repetir uma das mensagens. Para minimizar esse problema, são utilizados

timbres de hora em todas as mensagens. Além disso, Bob pode verificar todas

as mensagens mais recentes para ver se RA foi usada em alguma delas. Caso

isso tenha acontecido, a mensagem será descartada por ser uma repetição.

Observe que Bob rejeitará as mensagens muito antigas ao verificar seus timbres

de hora. Para se proteger contra ataques de repetição repentinos, Bob verifica RA

em cada uma das mensagens recebidas para ver se a mensagem foi enviada por

Alice durante a última hora. Caso contrário, Bob pode pressupor com toda

segurança que essa solicitação é nova.



[T3] 8.4.2 Assinaturas de chave pública

Um problema estrutural com o uso da criptografia de chave simétrica para

assinaturas digitais é que todos têm de confiar em Big Brother. Além disso, Big

Brother tem de ler todas as mensagens assinadas. Os candidatos mais lógicos à

execução do servidor de Big Brother são o governo, os bancos, os contadores e

os advogados. Infelizmente, nenhuma dessas organizações inspira total

confiança a todos os cidadãos. Daí, seria interessante se o ato de ass inatura de

documentos não exigisse a presença de uma autoridade confiável.

Felizmente, a criptografia de chave pública pode trazer uma impor tante

contribuição para esse caso. Vamos supor que os algoritmos de criptografia e

descriptografia de chave pública tenham a propriedade de que E(D(P)) = P além,

é claro, da propriedade habitual de que D(E(P)) = P. (O RSA tem essa

propriedade; portanto, a suposição não é irracional.) Supondo-se que seja esse

o caso, Alice pode enviar uma mensagem de texto simples assinada, P, para Bob

transmitindo EB(DA(P)). Observe que Alice conhece sua própria chave de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                 EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                  CAPÍTULO 8/P. 67 de 199
descriptografia (privada), DA, assim como a chave pública de Bob, EB; portanto, a

criação dessa mensagem é algo que Alice pode fazer.

Quando recebe a mensagem, Bob a transforma usando sua chave privada e

produz DA(P), como mostra a Figura 8.19. Ele guarda esse texto em um lugar

seguro e depois aplica EA para obter o texto simples original.

[arte: ver original p. 758]

[Dísticos]

[1] Computador de Alice

P       Chave privada de Alice, D A             Chave pública de Bob, E B

DA(P)

[2] Linha de transmissão

EB(DA(P))

[3] Computador de Bob

Chave privada de Bob, D B              Chave pública de Alice, E A          P

DA(P)

[F]Figura 8.19

[FL] Assinaturas digitais com o uso da criptografia de chave pública



Para ver como a propriedade de assinatura funciona, suponha que

posteriormente Alice negue ter enviado a mensagem P para Bob. Quando o caso

chegar aos tribunais, Bob poderá produzir tanto P quanto DA(P). O juiz pode

confirmar com facilidade que Bob certamente tem uma mensagem válida

criptografada por DA simplesmente aplicando EA à mensagem. Como Bob não

sabe qual é a chave privada de Alice, a única forma de Bob ter adquirido uma

mensagem criptografada por essa chave seria se Alice de fato a tivesse enviado.

Enquanto estiver presa por perjúrio e fraude, Alice terá bastante tempo para

inventar novos algoritmos de chave pública muito interessantes.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 68 de 199
Apesar da utilização da criptografia de chave pública para assinaturas digitais

ser um esquema elegante, existem problemas relacionados ao ambiente no qual

elas operam e não ao algoritmo básico. De um lado, Bob só poderá provar que

uma mensagem foi enviada por Alice enquanto DA permanecer secreta. Se Alice

revelar sua chave secreta, o argumento deixará de existir, pois qualquer um

poderia ter enviado a mensagem, inclusive o próprio Bob.

Por exemplo, pode ocorrer um problema se Bob for o corretor de ações de Alice.

Alice solicita a Bob que ele compre ações ou títulos de uma determi nada

empresa. Logo depois disso, o preço cai abruptamente. Para repudiar a

mensagem que enviou a Bob, Alice vai à polícia afirmando que sua casa foi

assaltada, e o PC que continha sua chave foi roubado. Dependendo das leis do

estado ou do país onde mora, ela poderá ou não ser legalmente processada, em

especial se afirmar que só descobriu o roubo quando chegou em casa após o

trabalho, muitas horas depois do ocorrido.

Outro problema com o esquema de assinatura é o que acontecerá se Alice

decidir alterar sua chave. Isso é legal, e provavelmente é uma boa idéia fazê-lo

de vez em quando. Se mais tarde surgir um caso jurídico, como descrevemos

antes, o juiz aplicará a EA atual a DA(P) e descobrirá que ela não produz P. Nesse

momento, a situação de Bob ficará complicada.

Em princípio, qualquer algoritmo de chave pública pode ser usado para

assinaturas digitais. O padrão de facto do setor é o algoritmo RSA. Muitos

produtos de segurança o utilizam. No entanto, em 1991, o NIST (National

Institute of Standards and Technology) propôs a utilização de uma variante do

algoritmo de chave pública de El Gamal em seu novo padrão, o DSS (Digital

Signature Standard). O El Gamal obtém sua segurança a partir da dificuldade de

calcular logaritmos discretos, e não da dificuldade de fatorar números muito

extensos.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 69 de 199
Como sempre acontece quando o governo tenta ditar padrões criptográficos,

houve um tumulto. O DSS foi criticado por ser:

1. Secreto demais (a NSA projetou o protocolo para utilizar o El Gamal).

2. Novo demais (o El Gamal ainda não foi amplamente analisado).

3. Lento demais (10 a 40 vezes mais lento do que o RSA para verificar

assinaturas).

4. Inseguro demais (chave fixa de 512 bits).

Em uma versão posterior, o quarto ponto rendeu muita discussão quando foram

permitidas chaves com até 1024 bits. Apesar disso, os dois primeiros pontos

permanecem válidos.



[T3] 8.4.3 Sumários de mensagens

Uma crítica aos métodos de assinatura é a de que com freqüência eles reúnem

duas funções distintas: autenticação e sigilo. Em geral, a autenticação é

necessária, mas o sigilo não. Como a criptografia é lenta, normalmente as

pessoas preferem enviar documentos em texto simples assinados. A seguir,

descreveremos um esquema de autenticação que não exige a criptografia da

mensagem inteira.

Esse esquema se baseia na idéia de uma função de hash unidirecional que extrai

um trecho qualquer do texto simples e a partir dele calcula um string de bits de

tamanho fixo. Essa função de hash, representada por MD, geralmente é

chamada sumário de mensagens e tem quatro importantes propriedades:

1. Se P for fornecido, o cálculo de MD(P) será muito fácil.

2. Se MD(P) for fornecido, será efetivamente impossível encontrar P.

3. Dado P, ninguém pode encontrar P' tal que MD(P') = MD(P).

4. Uma mudança na entrada de até mesmo 1 bit produz uma saída muito

diferente.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 70 de 199
Para atender ao critério 3, a função de hash deve ter pelo menos 128 bits, de

preferência mais. Para atender ao critério 4, o hash deve @@@desfigurar

completamente os bits, o que não é diferente dos algoritmos de criptogra fia de

chave simétrica que vimos.

Calcular um sumário de mensagens a partir de um trecho de texto simples é

muito mais rápido que criptografar esse texto simples com um algoritmo de

chave pública; portanto, os sumários de mensagens podem ser usados para

agilizar algoritmos de assinatura digital. Para ver como isso funciona, considere

mais uma vez o protocolo de assinatura da Figura 8.18. Em vez de assinar P

com KBB(A, t, P), agora BB calcula a compilação da mensagem aplicando MD a P,

produzindo MD(P). Em seguida, BB inclui KBB(A, t, MD(P)) como o quinto item da

lista criptografada com KB que é enviada a Bob, em vez de KBB(A, t, P).

Se houver uma contestação, Bob poderá produzir tanto P quanto KBB(A, t, MD(P)).

Depois que Big Brother tiver descriptografado o item para o juiz, Bob terá MD(P)

que, certamente, é genuíno, além do P alegado. No entanto, como é impossível

para Bob encontrar outra mensagem que produza esse hash, o juiz será

facilmente convencido de que Bob está falando a verdade. A utilização de

sumários de mensagens dessa forma poupa tempo de criptografia e reduz os

custos com o armazenamento e o transporte de mensagens.

Além disso, sumários de mensagens funcionam muito bem em sistemas de

criptografia de chave pública, como mostra a Figura 8.20. Aqui, primeiro Alice

calcula o sumário de mensagens de seu texto simples. Em seguida, ela assina a

mensagem e envia tanto a compilação assinada quando o texto simples a Bob.

Se Trudy substituir P durante a operação, Bob perceberá a troca quando calcular

MD(P).

[arte: ver original p. 760]

Atenção, produção!
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 71 de 199
Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.20

[FL] Assinaturas digitais utilizando sumários de mensagens



[T4] MD5

Foram propostas diversas funções de sumário de mensagens. As mais

amplamente utilizadas são o MD5 (Rivest, 1992) e SHA-1 (NIST, 1993). O MD5 é

o quinto de uma série de sumários de mensagens criadas por Ronald Rivest. Ele

opera desfigurando os bits de uma forma tão complicada que todos os bits de

saída são afetados por todos os bits de entrada. Resumindo, a função começa

aumentando o tamanho da mensagem até chegar a 448 bits (módulo 512). Em

seguida, o tamanho original é anexado como um inteiro de 64 bits, a fim de

gerar uma entrada total cujo tamanho seja um múltiplo de 512 bits. A última

etapa antes dos cálculos serem efetuados é inicializar um buffer de 128 bits

com um valor fixo.

Agora começam os cálculos. Em cada rodada, um bloco de entrada de 512 bits é

extraído e colocado no buffer de 128 bits. Para que os cálculos sejam feitos com

maior precisão, também é incluída uma tabela criada a partir da função de seno.

O objetivo da utilização de uma função conhecida, como o seno, é evitar

qualquer suspeita de que o projetista tenha criado uma armadilha secreta para

seu próprio uso, e não pelo fato dessa função ser mais aleatória do que um

gerador de números aleatórios. A recusa da IBM em revelar os princípios em que

se baseava o projeto das caixas S do DES criou muita especulação sobre esses

artifícios secretos. Há quatro rodadas para cada bloco de entrada. Esse processo

continua até que todos os blocos de entrada tenham sido consumidos. O

conteúdo do buffer de 128 bits forma o sumário de mensagens.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 72 de 199
O MD5 já é usado há mais de uma década, e muitos pessoas o têm atacado.

Foram encontradas algumas vulnerabilidades, mas certas etapas internas

impedem que ele seja rompido. Porém, se as barreiras restantes dentro do MD5

caírem, ele poderá falhar eventualmente. Apesar disso, no momento em que

escrevemos, ele ainda resiste.



[T4] SHA-1

A outra função importante do sumário de mensagens é o SHA-1 (Secure Hash

Algorithm 1), desenvolvido pela NSA e aprovado pelo NIST no FIPS 180-1. A

exemplo do MD5, esse algoritmo processa os dados de entrada em blocos de

512 bits. No entanto, ao contrário do MD5, ele gera um sumário de mensagens

de 160 bits. Um modo típico de Alice enviar uma mensagem não secreta mas

assinada para Bob é ilustrado na Figura 8.21. Nessa figura, sua mensagem de

texto simples é colocada no algoritmo SHA-1 para se obter um hash de 160 bits

do SHA-1. Em seguida, Alice assina o hash com sua chave privada RSA e envia a

mensagem de texto simples e o hash assinado para Bob.

[arte: ver original p. 761]

[Dísticos]

[1] Mensagem M de Alice em texto simples (tamanho arbitrário)

[2] Algoritmo SHA-1

[3] Hash SHA-1 de 160 bits de M

H

[4] Chave privada de Alice, D A

Algoritmo RSA

[5] Hash assinado

DA(H)

[6] Enviado para Bob
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 73 de 199
[F]Figura 8.21

[FL] Utilização do SHA-1 e do RSA para assinar mensagens não secretas



Depois de receber a mensagem, o próprio Bob calcula o hash SHA-1 e também

aplica a chave pública de Alice ao hash assinado para obter o hash original, H.

Se os dois corresponderem, a mensagem será considerada válida. Tendo em

vista que não há nenhum meio para Trudy modificar a menagem (de texto

simples) enquanto ela estiver em trânsito e produzir uma nova mensagem com

hash H, Bob pode detectar com facilidade quaisquer mudanças que Trudy tenha

feito na mensagem. Para mensagens cuja integridade é importante, mas cujo

conteúdo não é secreto, o esquema da Figura 8.21 é bastante utilizado. Por um

custo relativamente pequeno em computação, ele garante que as modificações

feitas na mensagem de texto simples em trânsito poderão ser detectadas com

probabilidade muito alta.

Agora, vamos ver rapidamente como o SHA-1 funciona. Ele começa

preenchendo a mensagem com a adição de um bit 1 ao final, seguido pelo

número de bits 0 necessários para tornar o tamanho um múltiplo de 512 bits.

Em seguida, um número de 64 bits contendo o tamanho da mensagem antes do

preenchimento é submetido a uma operação OR nos 64 bits de baixa ordem. Na

Figura 8.22, a mensagem é mostrada com o preenchimento à direita, porque o

texto em inglês e as figuras se estendem da esquerda para a direita (isto é, o

canto inferior direito em geral é percebido como o fim da figura). Com os

computadores, essa orientação corresponde a máquinas big-endian, como

SPARC, mas o SHA-1 sempre preenche o fim da mensagem, não importando que

máquina endian seja usada.

Durante a computação, o SHA-1 mantém cinco variáveis de 32 bits, de H0 a H4,

onde o hash se acumula. Essas variáveis são mostradas na Figura 8.22(b). Elas
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC              CAPÍTULO 8/P. 74 de 199
são inicializadas como constantes especificadas no padrão.

Cada um dos blocos M0 a Mn – 1 é agora processado. Para o bloco atual, primeiro

as 16 palavras são copiadas no início de um array auxiliar de 80 palavras, W,

como mostra a Figura 8.22(c). Em seguida, as outras 64 palavras em W são

preenchidas, usando-se a fórmula:

[Inserir equação do O.A. p. 762a]

onde Sb(W) representa a rotação circular à esquerda da palavra de 32 bits, W,

por b bits. Agora, são inicializados cinco variáveis de rascunho de A até E, com

valores de H0 a H4, respectivamente.

[arte: ver original p. 762]

[Dísticos]

[1] Início da mensagem             Bloco de 512 bits Palavra de 32 bits

[2] M0          H0      W0

M1       H1     W1

M2       H2     W2

Preenchimento           H3

Mn - 1          H4      W79

(a)      (b)    (c)

[F]Figura 8.22

[FL] (a) Uma mensagem preenchida até um múltiplo de 512 bits. (b) As variáveis

de saída. (c) O array de palavras



O cálculo real pode ser expresso em pseudo-C como:

[TD]

for (i = 0; i <80; i++) {

      temp = S 5(A) + f i (B, C, D) + E + W i + Ki;

      E = D; D = C; C = S 30(B); B = A; A = temp;
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 75 de 199
} [TN]

onde as Ki constantes são definidas no padrão. As funções misturadas fi são

definidos como:

[Inserir equação do O.A. p. 762b]

Quando todas as 80 iterações do loop são completadas, as varáveis de A até E

são somadas a H0 até H4, respectivamente.

Agora que o primeiro bloco de 512 bits foi processado, o próximo é iniciado. O

array W é reinicializado a partir do novo bloco, mas H fica como estava. Quando

esse bloco é concluído, o próximo é iniciado e assim por diante, até todos os

blocos da mensagem de 512 bits serem processados. Quando o último bloco é

concluído, as cinco palavras de 32 bits no array H são transmitidas como saída,

formando o hash criptográfico de 160 bits. O código C completo para SHA-1 é

dado na RFC 3174.

Novas versões de SHA-1 estão em desenvolvimento para hashes de 256, 384 e

512 bits, respectivamente.



[T3] 8.4.4 Ataque de aniversário

No mundo da criptografia, nada é o que parece. Talvez você esteja pensando

que são necessárias aproximadamente 2 m operações para subverter um sumário

de mensagens de m bits. Na verdade, normalmente 2 m/2 operações serão

suficientes, utilizando-se o ataque de aniversário, um método publicado por

Yuval (1979) no clássico artigo "How to Swindle Rabin" (Como enganar Rabin).

A idéia para esse ataque vem de uma técnica que freqüentemente os

professores de matemática utilizam em seus cursos de probabilidade. A

pergunta é a seguinte: quantos alunos você deverá ter em uma sala de aula para

que a probabilidade de haver duas pessoas fazendo aniversário no mesmo dia

exceda 1/2? A maioria dos alunos espera que a resposta seja superior a 100. Na
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 76 de 199
verdade, a teoria da probabilidade afirma que esse número é apenas 23.

Intuitivamente, sem fazer uma análise rigorosa, com 23 pessoas podemos

formar (23  22)/2 = 253 pares diferentes, e cada um dos quais tem uma

probabilidade igual a 1/365 de ser um acerto. Sob esse aspecto, essa

probabilidade deixa de ser tão surpreendente.

Mais genericamente, se houver algum mapeamento entre as entradas e as

saídas, com n entradas (pessoas, mensagens etc.) e k saídas possíveis

(aniversários, sumários de mensagens etc.), haverá n(n - 1)/2 pares de entrada.

Se n(n - 1)/2 > k, a chance de haver pelo menos uma correspondência será

muito boa. Portanto, fazendo uma aproximação, é provável que haja uma

correspondência para [ver símbolo]. Esse resultado significa que provavelmente

um sumário de mensagens de 64 bits possa ser rompido gerando-se 232

mensagens e procurando-se duas mensagens com o mesmo sumário.

Agora vejamos um exemplo prático. O departamento de ciência da computação

da State University nos Estados Unidos tem uma única vaga estável para dois

professores, Tom e Dick. Tom foi admitido dois anos antes de Dick e, portanto,

é convocado para os testes primeiro. Se ele for aprovado, Dick será descartado.

Tom sabe que a chefe de seu departamento, Marilyn, gosta muito do trabalho

dele; sendo assim, ele pede que Marilyn escreva uma carta de recomendação ao

reitor, que tomará a decisão a respeito do cargo. Depois de enviadas, tod as as

cartas passam a ser confidenciais.

Marilyn pede que sua secretária, Ellen, escreva a carta para o reitor, fazendo um

esboço do que deseja. Quando a carta está pronta, Marilyn a revisa, calcula e

assina o sumário de 64 bits e o envia ao reitor. Ellen pode enviar a carta mais

tarde através de correio eletrônico.

Infelizmente para Tom, Ellen está envolvida emocionalmente com Dick e

gostaria que Tom fosse descartado; assim, escreve a carta a seguir com as 32
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 77 de 199
opções entre colchetes.

Caro Sr. Reitor,

Esta [carta | mensagem ] tem como objetivo expressar minha [ honesta | franca]

opinião a respeito do professor Tom Wilson, que [ é | está] [candidato | prestes]

[a | para] obter uma vaga permanente nesta universidade [imediatamente | este

ano]. Eu [conheço | trabalho com] o professor Wilson há seis anos. Ele é um

[destacado | excelente ] pesquisador de grande [ talento | capacidade ]

[mundialmente | internacionalmente ] conhecido por suas [ brilhantes | criativas ]

idéias a respeito de [ muitos | uma grande variedade de] problemas [ difíceis |

complicados ].

Ele também é um [ professor | educador ] [bastante | muito ] [respeitado |

admirado ]. Seus alunos fazem críticas [ maravilhosas | espetaculares ] de suas

[aulas | cursos]. Ele é o [ professor | orientador ] [mais querido | mais conhecido ]

[da universidade | do departamento ].

[Além disso | Além do mais], o professor Wilson é um [ grande | fantástico ]

administrador. [ Seus | Suas] [contratos | concessões ] trouxeram uma [ grande |

substancial ] quantia em dinheiro para [ o | nosso] departamento. [ Esse dinheiro |

Esses fundos] [permitiu | permitiram ] que [criássemos | realizássemos] muitos

programas [ especiais | importantes ], [tais como | por exemplo ] o programa

Universidade 2000. Sem esses fundos, [ seríamos incapazes | não seríamos

capazes] de dar continuidade a esse programa, que é tão [ importante |

essencial ] para nós. Afirmo ao senhor que ele é o profissional mais adequado

para essa posição.

Infelizmente para Tom, assim que acaba de redigir e digitar essa carta, Ellen

também digita a seguinte carta:

Caro Sr. Reitor,

Esta [carta | mensagem ] tem como objetivo expressar minha [ honesta | franca]
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 78 de 199
opinião a respeito do professor Tom Wilson, que [ é |está] [candidato | prestes]

[a / para] assumir uma vaga permanente nesta universidade [imediatamente |

este ano]. Eu [conheço | trabalho com] Tom há seis anos. Ele é um

[incompetente | mau] pesquisador, não é bem visto em sua [ especialidade |

área]. Sua pesquisa [ raramente |esporadicamente ] mostra [bom-senso |

conhecimento ] dos [principais | mais importantes ] problemas atuais.

Ele não é um [ professor | educador ] [bastante | muito ] [respeitado |admirado ].

Seus alunos fazem [ duras | pesadas] críticas de suas [ aulas | cursos]. Ele é o

[professor | orientador ] mais impopular [ da universidade | do departamento ]

devido a sua [ tendência | propensão ] a [ridicularizar | embaraçar ] os alunos que

fazem perguntas em suas aulas.

[Além disso | Além do mais], Tom é um administrador [ terrível | fraco ]. [Seus |

Suas] [contratos | concessões ] trouxeram apenas uma [ insignificante | pequena]

quantia em dinheiro para [ o | nosso ] departamento. A menos que mais [ verbas |

fundos] sejam [alocadas | alocados] , teremos de cancelar alguns programas

essenciais, tais como o seu programa Universidade 2000. Infelizmente, sob

essas [condições | circunstâncias ], não posso recomendá-lo em sã consciência

para essa posição.

Ellen passa a noite configurando seu computador para calcular os 2 32 sumários

de mensagens de cada carta. Há chances de que um sumário da primeira car ta

corresponda a um sumário da segunda carta. Caso isso não aconteça, ela

poderá incluir algumas outras opções e tentar de novo durante o fim de semana.

Suponha que ela encontre uma correspondência. Vamos chamar a carta "boa" de

A e a "ruim" de B.

Em seguida, através do correio eletrônico, Ellen envia a carta A a Marilyn para

que seja aprovada. Ela mantém a carta B completamente secreta, sem mostrá-la

a ninguém. É claro que Marilyn aprova a carta, calcula seu sumário de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 79 de 199
mensagens de 64 bits, assina o sumário e envia o sumário assinado ao reitor

Smith utilizando o correio eletrônico. Por outro lado, Ellen envia a carta B ao

reitor (não a carta A, como deveria fazer).

Depois de obter a carta e o sumário de mensagens assinado, o reitor executa o

algoritmo de sumário de mensagens na carta B, observa que ela corresponde ao

sumário que Marilyn enviou e despede Tom. O reitor não percebe que Ellen

gerou duas cartas com o mesmo sumário de mensagens e enviou a ele uma

mensagem diferente da que Marylin viu e aprovou. (Final opcional: Ellen conta a

Dick o que fez. Dick não gosta do que ouve e termina o namoro com ela. Ellen

fica furiosa e confessa tudo a Marilyn. Marilyn telefona para o reitor. Tom acaba

ficando com o cargo.) Com o MD5, o ataque de aniversário se torna

impraticável, pois mesmo com um bilhão de sumários por segundo, seriam

necessários 500 anos para calcular 2 64 sumários de duas cartas com 64

variantes cada um e, de qualquer forma, não poderíamos ter certeza de que

haveria uma correspondência. É claro que, com 5000 computadores trabalhando

em paralelo, 500 anos se transformam em cinco semanas. O SHA-1 é melhor

(por ser mais longo).



[T2] 8.5 Gerenciamento de chaves públicas

A criptografia de chave pública torna possível a comunicação segura para

pessoas que não compartilham uma chave comum, e também possibilita a

assinatura de mensagens sem a presença de uma terceira parte confiável.

Finalmente, os sumários de mensagens assinados permitem verificar com

facilidade a integridade de mensagens recebidas.

Porém, existe um problema que ignoramos até aqui: se Alice e Bob não

conhecem um ao outro, como ele irão obter as respectivas chaves públicas para

iniciar o processo de comunicação? A solução óbvia — colocar a chave pública
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 80 de 199
no Web site — não funciona pela seguinte razão: suponha que Alice queira

pesquisar a chave pública de Bob em seu Web site. Como ela fará isso? Bem,

Alice começa digitando o URL de Bob. Seu navegador então pesquisa o endereço

DNS da home page de Bob e envia a ele uma solicitação GET, como mostra a

Figura 8.23. Infelizmente, Trudy intercepta a solicitação e responde com uma

home page falsa, talvez uma cópia da home page de Bob, exceto pela

substituição da chave pública de Bob pela chave pública de Trudy. Quando Alice

codifica sua primeira mensagem com ET, Trudy a decodificará, lerá e recodificará

com a chave pública de Bob, enviando a mensagem a Bob, que não sabe que

Trudy está lendo suas mensagens recebidas. Pior ainda, Trudy poderia modificar

as mensagens antes de recodificá-las para Bob. É claro que há necessidade de

algum mecanismo para garantir que as chaves públicas possam ser trocadas em

segurança.

[arte: ver original p. 765]

[Dísticos]

[1] Alice

[2]

1. GET home page de Bob

2. Falsifica home page com E T

3. ET(Mensagem)

[3] Trudy

[4] 4. EB(Mensagem)

[5] Bob

[F]Figura 8.23

[FL] Um modo de Trudy subverter a criptografia de chave pública



[T3] 8.5.1 Certificados
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 81 de 199
Como uma primeira tentativa de distribuição de chaves públicas com segurança,

poderíamos imaginar um centro de distribuição de chaves disponível on-line 24

horas por dia a fim de fornecer chaves públicas por demanda. Um dos muitos

problemas com essa solução é o fato de ela não ser escalável, e o centro de

distribuição de chaves rapidamente se tornaria um gargalo. Além disso , se ele

ficasse inativo, a segurança da Internet seria paralisada repentinamente.

Por essas razões, as pessoas desenvolveram uma solução diferente, que não

exige que o centro de distribuição de chaves esteja on-line todo o tempo. De

fato, ele não precisa estar on-line de modo algum. Em vez disso, ele certifica as

chaves públicas pertencentes a pessoas, empresas e outras organizações. Uma

organização que certifica chaves públicas é chamada CA (Certification Authority

— autoridade de certificação).

Como um exemplo, suponha que Bob queira permitir que Alice e outras pessoas

se comuniquem com ele em segurança. Ele pode ir até a CA com sua chave

pública e seu passaporte ou com a carteira de motorista e solicitar a

certificação. A CA emite então um certificado semelhante ao da Figura 8.24 e

assina seu hash SHA-1 com a chave privada da CA. Em seguida, Bob paga a taxa

da CA e obtém um disquete contendo o certificado e seu hash assinado.

[arte: ver original p. 766]

I hereby certify that the public key

1 9836A8B030300F83737E3837837FC3587O92827262643FFA8271

0382828282A

belongs to

Robert John Smith

12345 University Avenue

Berkeley, CA 94702

Birthday: July 4,1958
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 82 de 199
Email: bob@superdupernet.com

SHA-1 hash of the above certificate signed with the CA’s private key

[F]Figura 8.24

[FL] Um certificado possível e seu hash assinado



A principal função de um certificado é vincular uma chave pública ao nome de

um protagonista (indivíduo, empresa etc.). Os certificados em si não são

secretos ou protegidos. Por exemplo, Bob poderia decidir colocar seu novo

certificado em seu Web site, com um link na página principal informando: clique

aqui para ver meu certificado de chave pública. O clique resultante retornaria o

certificado e o bloco de assinatura (o hash SHA-1 assinado do certificado).

Agora vamos percorrer o cenário da Figura 8.23 novamente. Quando Trudy

intercepta a solicitação de Alice para a home page de Bob, o que ela pode fazer?

Trudy pode inserir seu próprio certificado e seu bloco de assinatura na página

falsa; porém, quando Alice ler o certificado, verá imediatamente que não está se

comunicando com Bob, porque o nome de Bob não está no certificado. Trudy

pode modificar a home page de Bob durante a execução, substituindo a chave

pública de Bob pela sua própria chave. Porém, quando Alice executar o

algoritmo SHA-1 no certificado, ela obterá um hash que não concorda com o

que ela recebe ao aplicar a chave pública conhecida da CA ao bloco de

assinatura. Como Trudy não tem a chave privada da CA, ela não tem meios de

gerar um bloco de assinatura que contenha o hash da página da Web modificada

com sua chave pública. Desse modo, Alice pode estar certa de que possui a

chave pública de Bob e não a de Trudy ou de outra pessoa. Como prometemos,

esse esquema não exige que a CA esteja on-line para verificação, eliminando

assim um gargalo potencial.

Embora a função padrão de um certificado seja vincular uma chave pública a um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 83 de 199
protagonista, um certificado também pode ser usado para vincular uma chave

pública a um atributo. Por exemplo, um certificado poderia afirmar: esta chave

pública pertence a alguém com mais de 18 anos. Ela pode ser usada para provar

que o proprietário da chave privada não é menor de idade e, portanto, pode

acessar material não apropriado para crianças e assim por diante, mas sem

revelar a identidade do proprietário. Em geral, a pessoa que tivesse o certificado

o enviaria ao Web site, ao protagonista ou ao processo que solicitasse

informações sobre a idade. Esse site, protagonista ou processo, geraria então

um número aleatório e o codificaria com a chave pública no certificado. Se o

proprietário fosse capaz de decodificá-lo e enviá-lo de volta, essa seria aprova

de que o proprietário de fato tinha o atributo declarado no certificado. Como

alternativa, o número aleatório poderia ser usado para gerar uma chave de

sessão pela duração da conversação.

Outro exemplo de situação em que um certificado poderia conter um atributo é

um sistema distribuído orientado a objetos. Em geral, cada objeto tem diversos

métodos. O proprietário do objeto poderia fornecer a cada cliente um

certificado com um mapa de bits dos métodos que o cliente tem permissão para

invocar e vincular o mapa de bits a uma chave pública, usando um certificado

assinado. Mais uma vez, se o proprietário do certificado puder provar a posse

da chave privada correspondente, ele terá permissão para executar os métodos

no mapa de bits. Ele não precisa conhecer a identidade do proprietário, uma

característica útil em situações nas quais a privacidade é importante.



[T3] 8.5.2 X.509

Se todo mundo quisesse que algo assinado foi enviado a CA com um tipo de

certificado diferente, logo se tornaria um problema administrar todos os

formatos diferentes. Para resolver esse problema, foi criado e aprovado pela ITU
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 84 de 199
um padrão para certificados. O padrão é chamado X.509 e seu uso está

difundido na Internet. Ele passou por três versões desde a padronização inicial

em 1988. Vamos descrever a V3.

O X.509 foi fortemente influenciado pelo mundo OSI, tomando emprestadas

algumas de suas piores características (por exemplo, nomenclatura e

codificação). Surpreendentemente a IETF aceitou o X.509, embora em quase

todas as outras áreas — desde endereços de máquina até protocolos de

transporte e formatos de correio eletrônico — ela tenha ignorado a OSI e

tentado fazer tudo da maneira certa. A versão da IETF do X.509 é descrita na

RFC 3280.

Em seu núcleo, o X.509 é um modo de descrever certificados. Os principais

campos em um certificado estão listados na Figura 8.25. As descrições dadas na

figura devem fornecer uma idéia geral do significado dos campos. Para obter

informações adicionais, consulte o próprio padrão ou a RFC 2459.

Por exemplo, se Bob trabalhar no departamento de empréstimos do Money

Bank, seu endereço X.500 poderá ser:

[TD] /C=US/O=MoneyBank/OU=Loan/CN=Bob/ [TN]

onde C é o país, O é a organização, OU é a unidade organizacional e CN é o

nome comum. As CAs e outras entidades são identificadas de modo semelhante.

Um problema significativo com os nomes X.500 é que, se Alice estiver tentando

entrar em contato com bob@moneybank.com e receber um certificado com um

nome X.500, talvez não fique claro para ela a que Bob o certificado se refere.

Felizmente, a partir da versão 3, os nomes DNS são permitidos, em lugar de

nomes X.500; assim, esse problema eventualmente deve desaparecer.

[arte: ver original p. 768]

[T]Tabela

Campo
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 85 de 199
Version

Serial number

Signature algorithm

Issuer

Validity period

Subject name

Public key

Issuer ID

Subject ID

Extensions

Signature

Significado

A versão do X.509

Este número, somado ao nome da CA, identifica de forma exclusiva o certificado

O algoritmo usado para assinar o certificado

Nome X.500 da CA

A hora inicial e final do período de validade

A entidade cuja chave está estando certificada

A chave pública do assunto e a ID do algoritmo que a utiliza

Uma ID opcional que identifica de forma exclusiva o emissor do certificado

Uma ID opcional que identifica de forma exclusiva o assunto do certi ficado

Muitas extensões foram definidas

A assinatura do certificado (assinado pela chave privada da CA)

[F]Figura 8.25

[FL] Os campos básicos de um certificado X.509



Os certificados são codificados com o uso da ASN.1 (Abstract Syntax Notation
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 86 de 199
1) da OSI, que pode ser considerada uma struct em C, exceto por sua notação

muito peculiar e extensa. Para obter mais informações sobre o X.509, consulte

(Ford e Baum, 2000).



[T3] 8.5.3 Infra-estruturas de chave pública

Fazer uma única CA emitir todos os certificados do mundo evidentemente não

funcionaria. Ela entraria em colapso sob a carga e também seria um ponto

central de falha. Uma solução possível poderia ser a existência de várias CAs,

todas administradas pela mesma organização e todas usando a mesma chave

privada para assinar certificados. Embora isso pudesse resolver o problema da

carga e da falha, há um novo problema: o vazamento de chaves. Se houvesse

dezenas de servidores espalhados pelo mundo, todos com a chave privada da

CA, a chance de que a chave privada fosse roubada ou sofresse algum outro tipo

de vazamento seria bastante aumentada. Tendo em vista que o

comprometimento dessa chave arruinaria a infra-estrutura de segurança

eletrônica do mundo, a existência de uma única CA central é muito arriscad a.

Além disso, que organização operaria a CA? É difícil imaginar uma autoridade

que fosse aceita em todo o mundo como uma entidade legítima e confiável. Em

alguns países, as pessoas insistiriam em que essa entidade fosse um governo;

em outros países, elas insistiriam que não fosse um governo.

Por essas razões, foi desenvolvido um modo diferente de certificar chaves

públicas, identificada pelo nome geral PKI (Public Key Infrastructure). Nesta

seção, resumiremos como ela funciona em linhas gerais, embora existam muitas

propostas relativas aos detalhes que provavelmente irão evoluir com o tempo.

Uma PKI tem vários componentes, incluindo usuários, CAs, certificados e

diretórios. A função da PKI é fornecer um modo de estruturar esses

componentes e definir padrões para os vários documentos e protocolos. Uma
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 87 de 199
forma particularmente simples de PKI é uma hierarquia de CAs, como mostra a

Figura 8.26. Nesse exemplo, mostramos três níveis mas, na prática, pode haver

um número menor ou maior. A CA de nível superior, chamada raiz, certifica CAs

do segundo nível, que denominamos RAs (Regional Authorities), porque podem

cobrir alguma região geográfica, como um país ou um continente. Entretanto,

esse termo não é padrão; de fato, nenhum termo é realmente padrão para os

diferentes níveis da árvore. Por sua vez, as RAs certificam as CAs reais, que

emitem os certificados X.509 para organizações e indivíduos. Quando a raiz

autoriza uma nova RA, ela gera um certificado X.509 anunciando que aprovou a

RA, inclui a chave pública da nova RA no certificado, assina o certificado e o

entrega à RA. De modo semelhante, quando uma RA aprova uma nova CA, ela

produz e assina um certificado declarando sua aprovação e contendo a chave

pública da CA.

Nossa PKI funciona de modo semelhante. Suponha que Alice precise da chave

pública de Bob, a fim de se comunicar com ele; então, ela procura e encontra

um certificado contendo a chave, assinado pela CA 5. Porém, Alice nunca ouviu

falar da CA 5. Tudo que ela sabe é que a CA 5 pode ser a filha de 10 anos de

Bob. Ela poderia ir até a CA 5 e dizer: prove sua legitimidade. A CA 5 responde

com o certificado que recebeu da RA 2, que contém a chave pública da CA 5.

Agora, munida da chave pública da CA 5, Alice pode confirmar que o certificado

de Bob foi de fato assinado pela CA 5 e, portanto, é válido.

A menos que a RA 2 seja o filho de 12 de Bob. Nesse caso, a próxima etapa é

pedir a RA 2 que prove sua legitimidade. A resposta à consulta de Alice é um

certificado assinado pela raiz e contendo a chave pública da RA 2. Agora, Alice

tem certeza de que possui a chave pública de Bob.

[arte: ver original p. 769]

[Dísticos]
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 88 de 199
[1] Raiz

[2] A RA 2 é aprovada. Sua chave pública é 47383AE349...

Assinatura da raiz

[3] A CA 5 é aprovada. Sua chave pública é 6384AF863B...

Assinatura da RA 2

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.26

[FL] (a) Uma PKI hierárquico. (b) Uma cadeia de certificados



No entanto, como Alice encontra a chave pública da raiz? Por mágica. Supõem -

se que todo mundo conhece a chave pública da raiz. Por exemplo, seu

navegador pode ter sido comercializado com a chave pública da raiz embutida.

Bob é o tipo de sujeito amigável e não quer dar muito trabalho a Alice. Ele sabe

que Alice vai ter de verificar a CA 5 e a RA 2; assim, para evitar dificuldades, ele

reúne os dois certificados necessários e os fornece a ela juntamente com o seu

próprio certificado. Agora, ela pode usar seu conhecimento da chave pública da

raiz para confirmar o certificado de nível superior e a chave pública que ele

contém para verificar o segundo certificado. Desse modo, Alice não precisa

entrar em contato com ninguém para fazer a verificação. Como os certificados

são todos assinados, ela pode detectar com facilidade quaisquer tentativas de

falsificar seu conteúdo. Uma cadeia de certificados como essa que volta à raiz,

às vezes é chamada cadeia de confiança ou caminho de certificação. A técnica é

amplamente utilizada na prática.

É claro que ainda temos o problema de saber quem vai administrar a raiz. A

solução é não ter uma única raiz, mas sim várias raízes, cada uma com suas
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 89 de 199
próprias RAs e CAs. De fato, os navegadores modernos são pré-carregados com

as chaves públicas de mais de 100 raízes, às vezes referidas como âncoras de

confiança. Desse modo, pode-se evitar ter uma única autoridade confiável no

mundo inteiro.

Entretanto, agora existe a questão de como o fornecedor do navegador decide

quais das supostas âncoras de confiança são de fato confiáveis e quais são

desprezíveis. Tudo se reduz à confiança do usuário no fornecedor do navegador

para fazer escolhas sensatas e não aprovar simplesmente todas as âncoras de

confiança dispostas a pagar por sua inclusão na lista. A maioria dos

navegadores permite que os usuários inspecionem as chaves da raiz (em geral,

sob a forma de certificados assinados pela raiz) e eliminem qualquer uma que

parecer obscura.



[T4] Diretórios

Outra questão importante para qualquer PKI é onde estão armazenados os

certificados (e suas cadeias de retorno até alguma âncora de confiança

conhecida). Uma possibilidade é fazer cada usuário armazenar seus próprios

certificados. Embora isso seja seguro (isto é, não existe nenhum meio dos

usuários adulterarem certificados assinados sem detecção), também é

inconveniente. Uma alternativa proposta é usar o DNS como um diretório de

certificados. Antes de entrar em contato com Bob, é provável que Alice tenha de

pesquisar seu endereço IP usando o DNS; então, por que não fazer o DNS

retornar toda a cadeia de certificados de Bob juntamente com seu endereço IP?

Algumas pessoas acham que essa é a melhor alternativa, mas outras talvez

prefiram servidores de diretórios dedicados cuja única tarefa seja administrar

certificados X.509. Tais diretórios poderiam fornecer serviços de pesquisa

usando propriedades dos nomes X.500. Por exemplo, na teoria tal serviço de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 90 de 199
diretório poderia transferir uma consulta como: "Forneça uma lista de todas as

pessoas chamadas Alice que trabalham em departamentos de vendas de algum

lugar nos Estados Unidos ou no Canadá". O LDAP poderia conter tais

informações.



[T4] Revogação

O mundo real também está repleto de certificados, como de passaportes e

carteiras de motoristas. Às vezes, esses certificados podem ser revogados, bem

como as carteiras de motoristas que são flagrados dirigindo bêbedos ou

cometendo outras infrações de trânsito. O mesmo problema ocorre no mundo

digital: a autoridade que concede um certificado pode decidir revogá-lo porque

a pessoa ou organização que possui o certificado cometeu algum abuso. Ele

também pode ser revogado se a chave privada foi exposta ou, pior ainda, se a

chave privada da CA foi comprometida. Desse modo, uma PKI precisa lidar com

a questão da revogação.

Um primeiro passo nessa direção é fazer cada CA emitir periodicamente uma

CRL (Certificate Revocation List — lista de revogação de certificados)

fornecendo os números de série de todos os certificados que ela revogou.

Tendo em vista que os certificados contêm prazos de validade, a CRL só precisa

conter os números de série de certificados ainda não vencidos. Uma vez que seu

prazo de validade tenha passado, um certificado se torna automaticamente

inválido, e assim não há necessidade de distinção entre os que alcançaram o

prazo limite e os que foram de fato revogados. Em ambos os casos, eles não

podem mais ser utilizados.

Infelizmente, a introdução de CRLs significa que um usuário prestes a usar um

certificado deve agora adquirir a CRL para ver se o certificado foi revogado. Se

foi, ele não deve ser usado. Porém, mesmo que o certificado não esteja na lista,
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 91 de 199
ele poderia ter sido revogado logo após a lista ter sido publicada. Desse modo,

a única forma de realmente ter certeza é consultar a CA. Além disso, no

próximo uso do certificado, a CA tem de ser consultada de novo, pois o

certificado poderia ter sido revogado alguns segundos antes.

Outra complicação é o fato de um certificado revogado poder ser reabilitado,

por exemplo, se tiver sido revogado por não pagamento de alguma taxa que foi

paga posteriormente. Ter de lidar com a revogação (e talvez com a reabilitação)

elimina uma das melhores propriedades dos certificados, ou seja, a

possibilidade de usá-los sem ter de entrar em contato com uma CA.

Onde as CRLs devem ser armazenadas? Um boa alternativa seria armazená -las

no mesmo local em que estão os próprios certificados. Uma estratégia é a CA

publicar ativamente CRLs periódicas e fazer os diretórios processá-las apenas

removendo os certificados revogados. Se os diretórios não forem usados para

armazenar os certificados, as CRLs poderão ser guardadas no cache em diversos

locais convenientes na rede. Tendo em vista que uma CRL também é um

documento assinado, se ela for adulterada, essa ação poderá ser facilmente

detectada.

Se os certificados tiverem uma longa duração, as CRLs também serão longas.

Por exemplo, se os cartões de crédito forem válidos por 5 anos, o número de

revogações pendentes será muito maior do que seria se fossem emitidos novo s

cartões a cada 3 meses. Um modo padrão de lidar com CRLs longas é emitir

uma lista mestre com pouca freqüência, mas emitir atualizações freqüentes para

a lista. Isso reduz a largura de banda necessária para distribuir as CRLs.



[T2] 8.6 Segurança da comunicação

Agora, concluímos nosso estudo das principais ferramentas. A maior parte das

técnicas e protocolos importantes foi abordada. O restante do capítulo estuda a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 92 de 199
aplicação dessas técnicas na prática para proporcionar segurança às redes, além

de alguns conceitos sobre os aspectos sociais da segurança, no final do

capítulo.

Nas quatro seções a seguir, examinaremos a segurança da comunicação, isto é,

como levar os bits secretamente e sem alteração da origem até o destino, e

como manter bits indesejáveis do lado de fora. Essas não são de modo algum as

únicas questões de segurança em redes, mas certamente estão entre as mais

importantes, o que nos dá um bom ponto de partida.



[T3] 8.6.1 IPsec

A IETF sabia há muitos anos que havia carência de segurança na Internet. Não

era fácil aumentá-la, porque havia uma disputa para definir onde colocá-la. A

maioria dos especialistas em segurança acredita que, para serem realmente

seguras, a criptografia e as verificações de integridade devem ser realizadas de

fim a fim (isto é, na camada de aplicação). Desse modo, o processo de origem

criptografa e/ou protege a integridade dos dados e os envia ao processo de

destino, onde eles são descriptografados e/ou verificados. Qualquer adulteração

realizada entre esses dois processos, inclusive dentro de qualquer sistema

operacional, poderá então ser detectada. A dificuldade com essa abordagem é

que ela exige a troca de todas as aplicações, a fim de torná-las cientes da

segurança. Nessa visão, a segunda melhor abordagem é inserir a criptografia na

camada de transporte ou em uma nova camada entre a camada de aplicação e a

camada de transporte, tornando-a ainda fim a fim, mas sem exigir que as

aplicações sejam alteradas.

A visão oposta é a de que os usuários não entendem de segurança e não serão

capazes de usá-la corretamente e, como ninguém quer modificar programas

existentes, a camada de rede devia autenticar e/ou codificar pacotes sem os
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 93 de 199
usuários estejam envolvidos. Depois de anos de batalhas, essa visão ganhou

apoio suficiente para que fosse definido um padrão de segurança da camada de

rede. Em parte, o argumento era de que realizar a codificação na camada de

rede não impediria que usuários conscientes da segurança a implementassem na

camada de aplicação e, até certo ponto, isso também poderia ajudar aos

usuários sem consciência da segurança.

O resultado dessa guerra foi um projeto chamado IPsec (IP security), descrito

nas RFCs 2401, 2402 e 2406, entre outras. Nem todos os usuários desejam a

criptografia (porque ela é dispendiosa em termos computacionais).Em vez de

torná-la opcional, decidiu-se exigir a criptografia o tempo todo, mas permitir o

uso de um algoritmo nulo. O algoritmo nulo é descrito e louvado por sua

simplicidade, facilidade de implementação e grande velocidade na RFC 2410.

O projeto completo do IPsec é uma estrutura para vários serviços, algoritmos e

granularidades. A razão para vários serviços é que nem todo mundo quer pagar

o preço de ter todos os serviços o tempo todo, e assim os serviços estão

disponíveis à escolha de cada usuário. Os principais serviços são sigilo,

integridade de dados e proteção contra ataques de reprodução (o intruso

reproduz uma conversação). Todos esses serviços se baseiam na criptografia de

chave simétrica, porque o alto desempenho é importante.

Existem vários algoritmos porque um algoritmo que agora é considerado seguro

poderá ser violado no futuro. Tornando o IPsec independente do algoritmo, a

estrutura pode sobreviver até mesmo se algum algoritmo específico for violado

mais tarde.

A razão para várias granularidades é tornar possível a proteção de uma única

conexão TCP, de todo tráfego entre um par de hosts ou de todo o tráfego entre

um par de roteadores seguros, além de outras possibilidades.

Um aspecto um tanto surpreendente do IPsec é que, embora esteja na camada
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 94 de 199
IP, ele é orientado a conexões. Na realidade, isso não é muito surpreendente

porque, para ter qualquer segurança, uma chave tem de ser estabelecida e

usada por algum período de tempo — em essência, um espécie de conexão.

Além disso, as conexões amortizam os custos de configuração por vários

pacotes. Uma "conexão" no contexto do IPsec é chamada SA (security

association). Uma SA é uma conexão simplex entre dois pontos extremos e tem

um identificador de segurança associado a ela. Se houver necessidade de

tráfego seguro em ambos os sentidos, será exigidas duas associações de

segurança. Os identificadores de segurança são transportados em pacotes e

percorrem essas conexões seguras e são usados para pesquisar chaves e outras

informações relevantes ao chegar um pacote seguro.

Tecnicamente, o IPsec tem duas partes principais. A primeira parte descreve

dois novos cabeçalhos que podem ser acrescentados a pacotes, a fim de

transportar o identificador de segurança, os dados de controle de integridade e

outras informações. A outra parte, o ISAKMP (Internet Security Association and

Key Management Protocol) lida com o estabelecimento de chaves. Não

trataremos mais do ISAKMP porque (1) ele é extremamente complexo e (2) seu

principal protocolo, o IKE (Internet Key Exchange), tem falhas profundas e

precisa ser substituído (Perlman e Kaufman, 2000).

O IPsec pode ser usado em dois modos. No modo de transporte, o cabeçalho

IPsec é inserido logo depois do cabeçalho IP. O campo Protocol no cabeçalho IP

é alterado para indicar que um cabeçalho IPsec segue o cabeçalho IP normal

(antes do cabeçalho TCP). O cabeçalho IPsec contém informações de segurança,

principalmente o identificador SA, um novo número de seqüência e,

possivelmente, uma verificação de integridade da carga útil.

No modo de túnel, todo o pacote IP, incluindo o cabeçalho, é encapsulado no

corpo de um novo pacote IP com um cabeçalho IP completamente novo. O modo
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 95 de 199
de túnel é útil quando o túnel termina em um local diferente do destino final.

Em alguns casos, o fim do túnel é uma máquina de gateway de segurança, por

exemplo, um firewall da empresa. Nesse modo, o firewall encapsula e

desencapsula pacotes à medida que eles passam pelo firewall. Quando o túnel

termina nessa máquina segura, as máquinas da LAN da empresa não têm de

tomar conhecimento do IPsec. Isso é tarefa do firewall.

O modo de túnel também é útil quando um conjunto de conexões TCP é

agregado e tratado como um único fluxo codificado, porque isso evita que um

intruso veja quem está enviando, quem está recebendo e quantos pacotes são

enviados. Às vezes, o simples conhecimento da quantidade de tráfego e de seu

destino é uma informação valiosa. Por exemplo, se durante uma crise militar o

volume de tráfego que flui entre o Pentágono e a Casa Branca cair de forma

abrupta, mas o volume de tráfego entre o Pentágono e alguma instalação militar

nas profundezas das Montanhas Rochosas do Colorado aumentar na mesma

proporção, um intruso poderá deduzir algumas informações úteis desses dados.

O estudo dos padrões de fluxo de pacotes, ainda que eles estejam codificados, é

chamado análise de tráfego. O modo de túnel fornece um meio para anular até

certo ponto essa análise. A desvantagem do modo de túnel é que ele acrescenta

um cabeçalho IP extra, aumentando assim substancialmente o tamanho dos

pacotes. Em contraste, o modo de transporte não afeta muito o tamanho dos

pacotes.

O primeiro cabeçalho novo é AH (Authentication Header). Ele fornece verificação

de integridade e segurança contra reprodução, mas não oferece sigilo (isto é,

não há criptografia de dados). O uso do AH no modo de transporte é ilustrado

na Figura 8.27. No IPv4, ele é inserido entre o cabeçalho IP (incluindo quaisquer

opções) e o cabeçalho TCP. No lPv6 ele é simplesmente outro cabeçalho de

extensão e é tratado como tal. De fato, o formato é próximo ao de um
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.                 EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC                  CAPÍTULO 8/P. 96 de 199
cabeçalho de extensão padrão do IPv6. É possível que a carga útil tenha de ser

preenchida até completar algum tamanho específico para o algoritmo de

autenticação, como mostra a figura.

[arte: ver original p. 774]

[Dísticos]

[1] Autenticado

[2] Cabeçalho lP        AH         Cabeçalho TCP          Carga útil + preenchimento

[3]32 Bits

[4] Next header         Payload len (Reservado)

[5] Security parameters index

[6] Sequence number

[7] Authentication data (HMAC)

[F]Figura 8.27

[FL] O cabeçalho de autenticação do IPsec em modo de transporte para o IPv4



Agora, vamos examinar o cabeçalho AH. O campo Next header é usado para

armazenar o valor anterior que o campo Protocol do IP tinha antes de ser

substituído por 51 para indicar que haverá um cabeçalho AH em seguida. Na

maioria dos casos, o código para o TCP (6) ficará aqui. O campo Payload length

é o número de palavras de 32 bits no cabeçalho AH, menos 2 unidades.

O campo Security parameters index é o identificador da conexão. Ele é inserido

pelo transmissor para indicar um registro específico no banco de dados do

receptor. Esse registro contém a chave compartilhada usada nessa conexão e

outras informações sobre a conexão. Se esse protocolo tivesse sido cr iado pela

ITU e não pela IETF, esse campo seria chamado Virtual circuit number .

O campo Sequence number é usado para numerar todos os pacotes enviados em

uma SA. Todo pacote recebe um número exclusivo, mesmo as retransmissões.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 97 de 199
Em outras palavras, a retransmissão de um pacote recebe um número diferente

do original (embora seu número de seqüência do TCP seja o mesmo). O

propósito desse campo é detectar ataques de reprodução. Esses números de

seqüência não podem se repetir. Se todos os 2 32 se esgotarem, terá de ser

estabelecida uma nova SA para dar continuidade à comunicação.

Finalmente, chegamos ao campo Authentication data, um campo de

comprimento variável, que contém a assinatura digital da carga útil. Quando a

SA é estabelecida, os dois lados negociam o algoritmo de assinatura que irão

usar. Normalmente, não é utilizada aqui a criptografia de chave pública, porque

os pacotes devem ser processados de forma extremamente rápida e todos os

algoritmos de chave pública conhecidos são lentos demais. Como o IPsec se

baseia na criptografia de chave simétrica, e como o transmissor e o receptor

negociam uma chave compartilhada antes de instalar uma SA, a chave

compartilhada é usada no cálculo da assinatura. Um modo simples é calcular o

hash sobre o pacote, somado à chave compartilhada. É claro que a chave

compartilhada não é transmitida. Um esquema como esse é chamado HMAC

(Hashed Message Authentication Code). É muito mais rápido calcular o valor

desse esquema que executar primeiro o SHA-1 e depois executar o RSA sobre o

resultado.

O cabeçalho AH não permite criptografia dos dados; portanto, ele é útil

principalmente quando a verificação da integridade é necessária, mas não o

sigilo. Uma característica do AH que vale a pena notar é que a verificação de

integridade abrange alguns dos campos do cabeçalho IP, ou seja, aqueles que

não se alteram à medida que o pacote passa de um roteador para roteador. Por

exemplo, o campo Time to live muda a cada hop e assim não pode ser incluído

na verificação de integridade. Contudo, o endereço de origem IP é incluído na

verificação, o que torna impossível para um intruso falsificar a origem de um
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.                     EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC                      CAPÍTULO 8/P. 98 de 199
pacote.

O cabeçalho IPsec alternativo é a ESP (Encapsulating Security Payload). Seu uso

no modo de transporte e no modo de túnel é mostrado na Figura 8.28.

[arte: ver original p. 775]

[Dísticos]

[1] Autenticado

[2] (a) Cabeçalho IP               Cabeçalho ESP          Cabeçalho TCP         Carga útil +

Preenchimento           Autenticação (HMAC)

Criptografado

[3] Autenticado

[4] (b) Novo cabeçalho IP                Cabeçalho ESP              Antigo cabeçalho IP

        Cabeçalho TCP              Carga útil + Preenchimento            Autenticação (HMAC)

Criptografado

[F]Figura 8.28

[FL] (a) ESP em modo de transporte. (b) ESP em modo de túnel



O cabeçalho ESP consiste em duas palavras de 32 bits. Elas constituem os

campos Security parameters index e Sequence number que vimos no AH. Uma

terceira palavra que geralmente segue esses campos (mas tecnicamente não faz

parte do cabeçalho) é o Initialization vector usado para criptografia de dados, a

menos que seja utilizada a criptografia nula pois, nesse caso, ele será omitido.

A ESP também fornece verificações de integridade do HMAC, como o AH; porém,

em vez de serem incluídas no cabeçalho, elas vêm depois da carga útil, como

mostra a Figura 8.28. A colocação do HMAC no final tem uma vantagem em uma

implementação de hardware. O HMAC pode ser calculado à medida que os bits

saem pela interface de rede e são acrescentados ao final. Por essa razão, as

redes Ethernet e outras LANs têm seus CRCs em um final (trailer), e não em um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.             EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 99 de 199
cabeçalho. Com o AH, o pacote tem de ser armazenado no buffer e a assinatura

deve ser calculada antes de ser possível enviar o pacote, reduzindo

potencialmente o número de pacotes/s que podem ser enviados.

Considerando que a ESP pode fazer tudo que o AH pode fazer e muito mais,

além de ser mais eficiente durante a inicialização, surge a questão: afinal, qual é

a necessidade do AH? A resposta é principalmente histórica. No início, o AH

cuidava apenas da integridade, enquanto a ESP tratava do sigilo. Mais tarde, a

integridade foi acrescentada à ESP, mas as pessoas que projetaram o AH não

queriam deixá-lo morrer depois de tanto trabalho. No entanto, o único

argumento real dessas pessoas se baseava no fato de que o AH é capaz de

verificar uma parte do cabeçalho IP, o que a ESP não faz. Porém, esse é um

argumento fraco, como também o argumento de que um produto com suporte

para o AH, mas não para a ESP, poderia ter menos problemas para obter uma

licença de exportação, porque não poderia efetuar a codificação. É provável qu e

o AH fique defasado no futuro.



[T3] 8.6.2 Firewalls

A capacidade de conectar qualquer computador em qualquer lugar a qualquer

outro computador em qualquer lugar é uma faca de dois gumes. É muito

divertido para as pessoas navegarem pela Internet quando estão em casa. Para

os gerentes de segurança das empresas, trata-se de um pesadelo. Muitas

empresas têm grandes quantidades de informações confidenciais on-line —

segredos comerciais, planos de desenvolvimento de produtos, estratégias de

marketing, análises financeiras etc. A revelação dessas informações para um

concorrente poderia ter terríveis conseqüências.

Além do perigo das informações virem a público, também há o perigo do

vazamento dessas informações dentro da empresa. Em particular, vírus, vermes
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 100 de 199
e outras pestes digitais podem burlar a segurança, destruir dados valiosos e

consumir muito tempo dos administradores, que tentam eliminar a confusão

causada por eles. Com freqüência, eles são trazidos por funcionários

descuidados que querem brincar com algum jogo novo muito divertido.

Em conseqüência disso, são necessários mecanismos para manter os "bons" bits

e descartar os "maus" bits. Um dos métodos é usar o IPsec, que protege os

dados em trânsito entre sites seguros. No entanto, o IPsec não faz nada pa ra

impedir as pestes digitais e os intrusos de invadirem a LAN da empresa. Para ver

como alcançar esse objetivo, precisamos examinar os firewalls.

[arte: ver original p. 777]

[Dísticos]

[1] Roteador de filtragem de pacotes

[2] Gateway de aplicação

[3] Roteador de filtragem de pacotes

[4] Conexões para redes externas

[5] Firewall

[6] LAN externa

[7] LAN interna

[8] Perímetro de segurança

[9] Rede corporativa

[10] Backbone

[F]Figura 8.29

[FL] Um firewall que consiste em dois filtros de pacotes e um gateway de

aplicação



Os firewalls são apenas uma adaptação moderna de uma antiga forma de

segurança medieval: cavar um fosso profundo em torno do castelo. Esse recurso
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 101 de 199
forçava todos aqueles que quisessem entrar ou sair do castelo a passar por uma

única ponte levadiça, onde poderiam ser revistados por guardas. Nas redes, é

possível usar o mesmo artifício: uma empresa pode ter muitas LANs conectadas

de forma arbitrária, mas todo o tráfego de saída ou de entrada da empresa é

feito através de uma ponte levadiça eletrônica (firewall), como mostra a Figura

8.29.

O firewall, nessa configuração, tem dois componentes: dois roteadores que

filtram pacotes e um gateway de aplicação. Também existem configurações mais

simples, mas a vantagem desse projeto é que cada pacote deve passar por dois

filtros e um gateway de aplicação para sair ou entrar na rede. Não existem

outras rotas. Os leitores que consideram um único ponto de conferência

suficiente para fins de segurança, sem dúvida não têm viajado em vôos

internacionais nos últimos meses.

Cada filtro de pacotes é um roteador padrão equipado com algumas funções

complementares, que permitem a inspeção de cada pacote de entrada ou de

saída. Os pacotes que atenderem a algum critério serão remetidos normalmente,

mas os que falharem no teste serão descartados.

Na Figura 8.29, provavelmente o filtro de pacotes da LAN interna verificará os

pacotes enviados, e o da LAN externa conferirá os pacotes recebidos. Os

pacotes que atravessam o primeiro obstáculo vão para o gateway de aplicação,

onde serão submetidos a uma nova verificação. A colocação dos dois filtros de

pacotes em diferentes LANs destina-se a assegurar que nenhum pacote entre ou

saia sem passar pelo gateway de aplicação, pois não há outro caminho.

Em geral, os filtros de pacotes são baseados em tabelas configuradas pelo

administrador do sistema. Essas tabelas listam as origens e os destinos

aceitáveis, as origens ou destinos bloqueados e as regras padrão que orien tam

o que deve ser feito com os pacotes recebidos de outras máquinas ou
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 102 de 199
destinados a elas.

No caso comum de uma configuração TCP/IP, uma origem ou destino consiste

em uma porta e um endereço IP. As portas indicam qual é o serviço desejado.

Por exemplo, a porta 23 do TCP é para telnet, a porta 79 é para fi nger e a porta

119 é para notícias da USENET. Uma empresa poderia bloquear os pacotes

recebidos em relação a todos os endereços IP combinados com uma dessas

portas. Dessa forma, ninguém fora da empresa poderia estabelecer login via

telnet ou procurar alguém usando o daemon Finger. Além disso, a empresa

também evitaria que seus funcionários passassem todo o dia lendo notícias da

USENET.

O bloqueio de pacotes de saída é mais complicado porque, embora muitos sites

adotem as convenções padrão para numeração de portas, eles não são

obrigados a fazê-lo. Além disso, para alguns serviços importantes, como FTP

(File Transfer Protocol), os números de portas são atribuídos dinamicamente.

Além disso, embora o bloqueio das conexões TCP seja difícil, o bloqueio de

pacotes UDP é ainda mais complicado, porque se sabe muito pouco ( a priori )

sobre o que eles farão. Muitos filtros de pacotes simplesmente não aceitam

tráfego UDP.

A segunda metade do mecanismo de firewall é o gateway de aplicação. Em vez

de apenas examinar pacotes brutos, o gateway opera na camada de aplicação.

Por exemplo, um gateway de correio eletrônico pode ser configurado de forma a

examinar cada mensagem recebida ou enviada. O gateway toma a decisão de

transmitir ou descartar cada mensagem, com base nos campos de cabeçalho, no

tamanho da mensagem ou até mesmo em seu conteúdo (por exemplo, em uma

instalação militar, a presença de palavras como "nuclear" ou "bomba" pode

provocar algum tipo de ação especial).

As instalações têm liberdade para instalar um ou mais gateways de aplicação
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 103 de 199
destinados a aplicações específicas, mas não é incomum que organizações

suspeitas permitam a entrada e a saída de mensagens de correio eletrônico e

até usem a World Wide Web, mas proíbam tudo que seja muito arriscado.

Combinada com a criptografia e a filtragem de pacotes, essa estratégia oferece

um nível de segurança limitado ao custo de algumas inconveniências.

Ainda que o firewall esteja perfeitamente configurado, ainda existem vários

problemas de segurança. Por exemplo, se um firewall estiver configurado para

permitir apenas a entrada de pacotes de redes específicas (por exemplo, outras

fábricas da empresa), um intruso fora do firewall pode inserir falsos endereços

de origem para ultrapassar essa verificação. Se um usuário interno quiser

transportar documentos secretos para fora da empresa, ele poderá codificar ou

até mesmo fotografar os documentos e transportar as fotografias como

arquivos JPEG, que conseguirão passar por quaisquer filtros de palavras. Não

discutimos nem mesmo o fato de que 70% de todos os ataques vêm de dentro

do firewall; por exemplo, de funcionários insatisfeitos (Schneier, 2000).

Além disso, há toda uma classe de diferentes ataques com que os firewalls não

podem lidar. A idéia básica por trás de um firewall é impedir a entrada de

intrusos e a saída de dados secretos. Infelizmente, existem pessoas que não

têm nada melhor para fazer do que tentar derrubar certos sites. Para isso, eles

enviam ao destino pacotes legítimos em grande quantidade, até o site entrar em

colapso com a carga. Por exemplo, para incapacitar um Web site, um intruso

pode enviar um pacote SYN do TCP para estabelecer uma conexão. Então, o site

alocará um slot de tabela para a conexão e enviará um pacote SYN + ACK em

resposta. Se o intruso não responder, o slot de tabela ficará retido por alguns

segundos até o timeout. Se o intruso enviar milhares de solicitações de conexão,

todas os slots de tabela serão preenchidos e nenhuma conexão legítima poderá

passar. Os ataques em que o objetivo do intruso é desativar o destino em vez de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 104 de 199
roubar dados são chamados ataques DoS (Denial of Service — negação de

serviço). Em geral, os pacotes solicitados têm endereços de origem falsos, para

que o intruso não possa ser rastreado com facilidade.

Uma variante ainda pior é aquela em que o intruso já entrou em centenas de

computadores em outros lugares do mundo, e depois comanda todos esses

computadores em um ataque ao mesmo alvo ao mesmo tempo. Essa estratégia

não apenas aumenta o poder de fogo do intruso, mas também reduz a chance

de detecção, pois os pacotes estão vindo de um grande número de máquinas

pertencentes a usuários insuspeitos. Um ataque desse tipo é chamado DDoS

(Distributed Denial of Service), e é muito difícil proteger-se contra ele. Ainda

que a máquina atacada pode reconhecer rapidamente uma solicitação falsa,

processar e descartar a solicitação é um processo que leva algum tempo e, se

chegarem solicitações em número suficiente por segundo, a CPU passará todo

seu tempo lidando com elas..



[T3] 8.6.3 Redes privadas virtuais

Muitas empresas têm escritórios e fábricas espalhados por muitas cidades, às

vezes por vários países. Antigamente, antes das redes públicas de dados, era

comum tais empresas arrendarem linhas dedicadas da companhia telefônica

entre alguns pares de locais ou entre todos eles. Algumas empresas ainda fazem

isso. Uma rede construída a partir de computadores de empresas e de linhas

telefônicas dedicadas é chamada rede privada. Um exemplo de rede privada que

conecta três locais é mostrado na Figura 8.30(a).

As redes privadas funcionam muito bem e são bastante seguras. Se as únicas

linhas disponíveis forem as linhas dedicadas, nenhum tráfego poderá vazar para

fora das instalações da empresa, e os intrusos terão de grampear fisicamente as

linhas para entrar, o que não é fácil. O problema das redes privadas é que
TANENBAUM, ANDREW S.               Computer Networks 4a edição.                   EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC                   CAPÍTULO 8/P. 105 de 199
arrendar uma única linha T1 custa milhares de dólares por mês, e as linhas T3

tem um custo muito elevado. Quando surgiram as redes públicas de dados e

mais tarde a Internet, muitas empresas optaram por mover seu tráfego de dados

(e possivelmente o de voz) para a rede pública, mas sem desistirem da

segurança da rede privada.

Essa demanda logo levou à criação de VPNs (Virtual Private Networks), que são

redes sobrepostas às redes públicas, mas com a maioria das propriedades de

redes privadas. Elas são chamadas "virtuais" porque são meramente uma ilusão,

da mesma forma que os circuitos virtuais não são circuitos reais e que a

memória virtual não é memória real.

Embora as VPNs possam ser implementadas sobre redes ATM (ou frame relay),

uma abordagem cada vez mais popular é construir VPNs diretamente sobre a

Internet. Um projeto comum é equipar cada escritório com um firewall e criar

túneis pela Internet entre todos os pares de escritórios, como ilustra a Figura

8.30(b). Se o IPsec for usado no tunneling, será possível agregar todo o tráfego

entre dois pares de escritórios quaisquer em uma única SA autenticada e

criptografada, fornecendo assim controle de integridade, sigilo e até mesmo

uma considerável imunidade à análise de tráfego.

[arte: ver original p. 779]

[Dísticos]

[1] Escritório 1        Linha dedicada          Escritório 2

Escritório 3

(a)

[2] Escritório 1        Firewall       Internet         Escritório 2

Túnel

Escritório 3

(b)
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 106 de 199
[F]Figura 8.30

[FL] (a) Uma rede privada de linha dedicada. (b) Uma rede privada virtual



Quando o sistema é criado, cada par de firewalls tem de negociar os parâmetros

de sua SA, incluindo os serviços, os modos, os algoritmos e as chaves. Muitos

firewalls têm recursos internos de VPN, embora alguns roteadores comuns

possam fazer isso muito bem. Porém, como os firewalls se destinam

principalmente a questões de segurança, é natural fazer os túneis começarem e

terminarem nos firewalls, proporcionando uma separação clara entre a em presa

e a Internet. Desse modo, firewalls, VPNs e IPsec com ESP em modo de túnel

formam uma combinação natural e amplamente usada na prática.

Depois que as SAs são estabelecidas, o tráfego pode começar a fluir. Para um

roteador na Internet, um pacote que viaja por um túnel VPN é apenas um pacote

comum. O único detalhe pouco usual sobre ele é a presença do cabeçalho IPsec

depois do cabeçalho IP; porém, como esses cabeçalhos extras não têm nenhum

efeito sobre o processo de encaminhamento, os roteadores não se preocupam

com esse cabeçalho extra.

Uma vantagem importante dessa forma de organizar uma VPN é sua completa

transparência para todo o software do usuário. Os firewalls configuram e

gerenciam as SAs. A única pessoa consciente dessa configuração é o

administrador de sistema, que tem de configurar e administrar os firewalls. Para

todas as outras pessoas, é como ter de novo uma rede privada de linha

dedicada. Para obter mais informações sobre VPNs, consulte (Brown, 1999; e

Izzo, 2000).



[T3] 8.6.4 Segurança sem fios

É surpreendentemente fácil projetar um sistema com total segurança em termos
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 107 de 199
lógicos usando VPNs e firewalls, muito embora na prática ele vaze como uma

peneira. Essa situação pode ocorrer se algumas das máquinas forem sem fios e

usarem comunicação de rádio, que passa pelo firewall em ambos os sentidos. O

alcance das redes 802.11 freqüentemente é de algumas centenas de metros;

assim, qualquer pessoa que queira espionar uma empresa pode dirigir até o

estacionamento dos funcionários pela manhã, deixar um notebook capaz de

reconhecer sinais 802.11 dentro do carro para registrar tudo que ouvir e partir

no final do dia. À tarde, o disco rígido estará repleto de valiosas informações.

Teoricamente, esse vazamento não deveria acontecer. Na teoria, as pesso as não

deveriam roubar bancos.

Grande parte do problema de segurança pode ter sua origem nos fabricantes de

estações base sem fios (pontos de acesso) que tentam tornar seus produtos

amigáveis para o usuário. Em geral, se o usuário retirar o dispositivo da caixa e

o conectar à tomada da rede elétrica, ele começará a operar de imediato —

quase sempre sem qualquer segurança, revelando segredos para todo mundo

que estiver dentro do alcance de rádio. Se ele for conectado a uma rede

Ethernet, todo tráfego da Ethernet também aparecerá de repente no

estacionamento. A rede sem fio é um sonho que se tornou realidade para o

espião: dados gratuitos sem qualquer trabalho. Por essa razão, não é preciso

dizer que a segurança é ainda mais importante para sistemas sem fios que para

sistemas fisicamente conectados. Nesta seção, examinaremos alguns aspectos

de segurança das redes sem fios. Algumas informações adicionais podem ser

encontradas em (Nichols e Lekkas, 2002).



[T4] Segurança de redes 802.11

O padrão 802.11 prescreve um protocolo de segurança do nível de enlace de

dados, chamado WEP (Wired Equivalent Privacy), projetado para tornar a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 108 de 199
segurança de uma LAN sem fio tão boa quanto a de uma LAN fisicamente

conectada. Tendo em vista que o padrão para LANs fisicamente conectadas é

nenhuma segurança, é fácil alcançar esse objetivo, e a WEP o alcança, como

veremos.

Quando a segurança do 802.11 é ativada, cada estação tem uma chave secreta

compartilhada com a estação base. A forma como as chaves são distribuídas

não é especificada pelo padrão. Elas poderiam ser pré-carregadas pelo

fabricante, trocadas com antecedência pela rede fisicamente conectada.

Finalmente, a estação base ou máquina do usuário poderia escolher uma chave

ao acaso e enviá-la à outra máquina pelo ar, codificada com a chave pública da

outra máquina. Uma vez estabelecidas, em geral as chaves permanecem estáveis

por meses ou anos.

A criptografia da WEP utiliza uma cifra de fluxo baseada no algoritmo RC4. O

RC4 foi projetado por Ronald Rivest e se manteve secreto até vazar e ser

publicado na Internet em 1994. Como assinalamos antes, é quase impossível

manter os algoritmos secretos, mesmo quando o objetivo é proteger a

propriedade intelectual (como nesse caso), em vez da segurança pela

obscuridade (que não era o objetivo no caso do RC4). Na WEP, o RC4 gera um

fluxo de chaves que sofre uma operação XOR com um texto simples para formar

o texto cifrado.

Cada carga útil de pacote é codificada com a utilização do método apresentado

da Figura 8.31. Primeiro, a carga útil é verificada usando-se o polinômio CRC-

32, e o total de verificação é anexado à carga útil para formar o texto simples

que será usado no algoritmo de criptografia. Em seguida, esse texto simples

sofre uma operação XOR com um bloco de fluxo de chaves de igual tamanho. O

resultado é o texto cifrado. O IV usado para iniciar o RC4 é enviado com o texto

cifrado. Quando o receptor obtém o pacote, ele extrai a carga útil criptografada,
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 109 de 199
gera o fluxo de chaves a partir da chave secreta compartilhada e o IV que

acabou de receber, e depois efetua uma operação XOR do fluxo de chaves com a

carga útil para recuperar o texto simples. Em seguida, ele pode conferir o total

de verificação para ver se o pacote foi adulterado.

Embora essa abordagem pareça boa à primeira vista, um método para rompê-la

já foi publicado (Borisov et al., 2001). Resumiremos a seguir seus resultados.

Em primeiro lugar, um número surpreendentemente grande de instalações

utiliza a mesma chave compartilhada para todos os usuários e, nesse caso, cada

usuário pode ler todo o tráfego dos outros usuários. Sem dúvida, isso equivale à

Ethernet, mas não é muito seguro.

Porém, mesmo que cada usuário tenha uma chave distinta, a WEP ainda pode ser

atacada. Como as chaves geralmente são estáveis por longos perío dos, o padrão

WEP recomenda (mas não obriga) que o IV seja alterado em cada pacote para

evitar o ataque de reutilização de fluxo de chaves que discutimos na Seção

8.2.3. Infelizmente, muitos cartões 802.11 para notebooks redefinem o IV como

0 quando o cartão é inserido no computador e incrementam o valor em uma

unidade a cada pacote enviado. Como as pessoas com freqüência removem e

reinserem esses cartões, pacotes com baixos valores de IV são comuns. Se

Trudy puder coletar vários pacotes enviados pelo mesmo usuário com o mesmo

valor de IV (que é enviado em texto simples juntamente com cada pacote), ela

poderá calcular o XOR de dois valores de texto simples e provavelmente violar a

cifra.

[arte: ver original p. 782]

[Dísticos]

[1] Texto simples

[2] Carga útil de pacote Total de verificação

[3] XOR
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 110 de 199
[4] Fluxo de chaves gerado pelo RC4 (chave, IV)

[5] IV          Texto cifrado

[6] Dados transmitidos

[F]Figura 8.31

[FL] Codificação de pacotes usando a WEP



No entanto, ainda que o cartão 802.11 escolha um IV ao acaso para cada

pacote, os IVs só têm 24 bits; portanto, depois que forem enviados 2 24 pacotes,

eles terão de ser reutilizados. Pior ainda, com os IVs escolhidos ao acaso, o

número esperado de pacotes que têm de ser enviados antes de um mesmo IV

ser usado duas vezes é cerca de 5000, devido ao ataque de aniversário descrito

na Seção 8.4.4. Desse modo, se escutar durante alguns minutos, Trudy quase

certamente conseguirá captar dois pacotes com o mesmo IV e a mesma chave.

Efetuando o XOR dos textos cifrados, ela poderá obter o XOR dos textos

simples. Essa seqüência de bits pode ser atacada de várias maneiras para

recuperar os textos simples. Com um pouco mais trabalho, o fluxo de chaves

para esse IV também poderá ser obtido. Trudy será capaz de continuar a

trabalhar assim por algum tempo e de compilar um dicionário de fluxos de

chaves para diversos IVs. Depois que um IV for rompido, todos os pacotes

enviados com ele no futuro (mas também no passado) poderão ser totalmente

decodificados.

Além disso, como os IVs são usados ao acaso, depois que Trudy tiver

determinado um par (IV, fluxo de chaves) válido, ela poderá usar esse par para

gerar todos os pacotes que quiser e, desse modo, interferir ativamente com a

comunicação. Na teoria, um receptor poderia notar que grandes números de

pacotes surgiram de repente, todos com o mesmo IV, mas (1) a WEP permite

isso e (2) ninguém se preocupa em verificar esse detalhe.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 111 de 199
Finalmente, o CRC não compensa muito, pois é possível para Trudy alterar a

carga útil e fazer a mudança correspondente no CRC, sem sequer remover a

codificação. Em suma, romper a segurança do 802.11 é bastante simples, e

ainda nem listamos todos os ataques que Borisov et al. encontraram.

Em agosto de 2001, um mês depois de Borisov et al. apresentarem seu artigo,

foi publicado outro ataque devastador sobre a WEP (Fluhrer et al., 2001). Esse

ataque encontrou deficiências criptográficas no próprio RC4. Fluhrer et al.

descobriram que muitas chaves têm a propriedade de possibilitarem a derivação

de alguns bits da chave a partir do fluxo de chaves. Se esse ataque for

executado repetidamente, será possível derivar a chave inteira com pouco

esforço. Sendo um tanto inclinados aos aspectos teóricos, Fluhrer et al. na

realidade não tentaram invadir nenhuma LAN 802.11.

Em contraste, quando um estudante do curso de verão e dois pesquisadores da

AT&T Labs tomaram conhecimento do ataque descrito por Fluhrer et al., eles

decidiram experimentá-lo na prática (Stubblefield et al., 2002). Em uma semana

eles romperam sua primeira chave de 128 bits em uma LAN 802.11 de

produção, e a maior parte da semana foi dedicada à busca do cartão 802.11 de

preço mais baixo que puderam encontrar, obter permissão para comprá-lo, e

depois instalar e testar o cartão. A programação demorou apenas duas horas.

Quando eles anunciaram seus resultados, a CNN divulgou uma reportagem

intitulada "Ataque com cartão comercial rompe criptografia sem fio", e alguns

gurus da indústria tentaram minimizar seus resultados dizendo que o que eles

tinham feito era trivial. considerando-se os resultados de Fluhrer et al . Embora

esse comentários seja tecnicamente verdadeiro, permanece o fato de que os

esforços combinados dessas duas equipes demonstraram uma falha fatal na WEP

e no 802.11.

Em 7 de setembro de 2001, o IEEE respondeu ao fato da WEP ter sido
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 112 de 199
completamente violada emitindo uma breve declaração de seis pontos que

podem ser resumidos assim:

1. Nós avisamos que a segurança da WEP não era melhor que a da Ethernet.

2. Uma ameaça muito maior é esquecer de ativar a segurança.

3. Tente usar algum outro tipo de sistema de segurança (por exemplo, a

segurança da camada de transporte).

4. A próxima versão, 802.11i, terá melhores recursos de segurança.

5. No futuro, a certificação obrigará a utilização do 802.11i.

6. Tentaremos descobrir o que fazer até a chegada do 802.11i.

Descrevemos essa história com detalhes para enfatizar que não é fácil

implementar recursos de segurança, até mesmo para especialistas.



[T4] Segurança do Bluetooth

O Bluetooth tem um alcance bem mais curto que o 802.11, e portanto não pode

ser atacado a partir do estacionamento, embora a segurança ainda seja uma

questão importante nesse caso. Por exemplo, imagine que o computador de

Alice esteja equipado com um teclado Bluetooth sem fio. Na ausência de

segurança, se Trudy estiver no escritório ao lado, ela poderá ler tudo Alice

digitou, inclusive toda sua correspondência enviada. Ela também poderá captar

tudo que o computador de Alice enviar à impressora Bluetooth mais próxima

(por exemplo, as mensagens de correio eletrônico recebidas e os relatórios

confidenciais). Felizmente, o Bluetooth tem um esquema de segurança

elaborado para tentar anular as Trudies desse mundo. Agora vamos resumir as

principais características desse esquema.

O Bluetooth tem três modos de segurança, variando desde nenhuma segurança

até total criptografia de dados e controle de integridade. Como ocorre com o

802.11, se a segurança for desativada (o padrão), não haverá nenhuma
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 113 de 199
segurança. A maioria dos usuários mantém a segurança desativada até ocorrer

uma séria violação; depois eles a ativam. No mundo agrícola, essa abordagem é

conhecida como trancar a porteira depois que o cavalo escapou.

O Bluetooth fornece segurança em várias camadas. Na camada física, os saltos

de freqüência oferecem um nível mínimo de segurança mas, como qualquer

dispositivo Bluetooth que se desloca em uma piconet tem de ser informado da

seqüência de saltos de freqüência, é óbvio que essa freqüência não é um

segredo. A segurança real começa quando o escravo recém-chegado solicita um

canal ao mestre. Supõem-se que os dois dispositivos compartilham uma chave

secreta configurada com antecedência. Em alguns casos, ambos são fisicamente

conectados pelo fabricante (por exemplo, um fone de ouvido e um telefone

celular vendidos como uma unidade). Em outros casos, um dispositivo (por

exemplo, o fone de ouvido) tem uma chave embutida no código e o usuário tem

de digitar essa chave no outro dispositivo (por exemplo, o telefone celular)

como um número decimal. Essas chaves compartilhadas são chamadas

@@@chaves de passagem.

Para estabelecer um canal, o escravo e o mestre verificam se a outra máquina

conhece a chave de passagem. Nesse caso, eles negociam para ver se esse canal

será criptografado, terá sua integridade controlada ou ambos. Em seguida, eles

selecionam uma chave de sessão aleatória de 128 bits, na qual alguns bits

podem ser públicos. A razão para permitir o enfraquecimento dessa chave é

obedecer a algumas restrições do governo de vários países, criadas para

impedir a exportação ou o uso de chaves mais longas do que o governo pode

violar.

A criptografia utiliza uma cifra de fluxo chamada E 0 ; o controle de integridade

emprega o SAFER+. Ambos são cifras de blocos de chave simétrica tradicional.

O SAFER+ foi submetido aos rígidos testes de aprovação do AES, mas foi
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 114 de 199
eliminado na primeira rodada, porque era mais lento que os outros candidatos.

O Bluetooth ficou pronto antes de ser escolhida a cifra do AES; caso contrário, é

mais provável que ele tivesse usado o Rijndael.

A criptografia real usando a cifra de fluxo é mostrada na Figura 8.14, com o

texto simples sendo submetido a um XOR com o fluxo de chaves para gerar o

texto cifrado. Infelizmente, o próprio E0 (como o RC4) pode ter deficiências

fatais (Jakobsson e Wetzel, 2001). Embora não tenha sido rompido na época em

que escrevemos, sua semelhança com a cifra A5/1, cuja falha espetacular

compromete todo o tráfego de telefones GSM, causa preocupação (Biryukov et

al., 2000). Às vezes, é espantoso perceber (até mesmo para este autor) que, no

eterno jogo de gato e rato entre criptógrafos e criptoanalistas, os criptoanalistas

freqüentemente sejam os vencedores.

Outra questão de segurança é que o Bluetooth efetua a autenticação apenas de

dispositivos, não de usuários; assim, o furto de um dispositivo Bluetooth pode

dar ao ladrão acesso às finanças e às outras contas do usuário. No entanto, o

Bluetooth também implementa segurança nas camadas superiores. Portanto, até

mesmo na eventualidade de uma violação da segurança no nível de enlace, deve

restar alguma segurança, especialmente para aplicações que exigem a digitação

de um código PIN em algum tipo de teclado para completar a transação.



[T4] Segurança do WAP 2.0

O fórum WAP aprendeu a lição por utilizar uma pilha de protocolos não

padronizada no WAP 1.0. Grande parte do WAP 2.0 utiliza protocolos padrão em

todas as camadas. A segurança não é exceção. Tendo em vista que ele se baseia

no IP, o WAP admite o uso total do IPsec na camada de rede. Na camada de

transporte, as conexões TCP podem ser protegidas pelo TLS, um padrão da IETF

que estudaremos mais adiante neste capítulo. Em um nível ainda mais alto, ele
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 115 de 199
utiliza a autenticação de clientes HTTP, definida na RFC 2617. As bibliotecas de

criptografia da camada de aplicação proporcionam controle de integridade e não

repúdio. De modo geral, como o WAP 2.0 se baseia em padrões conhecidos,

existe uma chance de que seus serviços de segurança, em particular,

privacidade, autenticação, controle de integridade e não repúdio possam ser

melhores que a segurança do 802.11 e do Bluetooth.



[T2] 8.7 Protocolos de autenticação

A autenticação é a técnica através da qual um processo confirma que seu

parceiro na comunicação é quem deve ser e não um impostor. Confirmar a

identidade de um processo remoto, face à presença de um intruso ativo mal-

intencionado, é surpreendentemente difícil e exige protocolos complexos

baseados no uso da criptografia. Nesta seção, estudaremos alguns dos muitos

protocolos de autenticação usados em redes de computadores com falhas na

segurança.

Por outro lado, algumas pessoas confundem autorização com autenticação. A

autenticação lida com a questão de determinar se você está ou não se

comunicando com um processo específico. A autorização se preocupa com o

que esse processo tem permissão para fazer. Por exemplo, um processo cliente

entra em contato com um servidor de arquivos e afirma: "Sou o processo do

Scott e quero excluir o arquivo cookbook .old". Do ponto de vista do servidor de

arquivos, as seguintes perguntas devem ser respondidas:

1. Esse processo é realmente de Scott (autenticação)?

2. Scott tem permissão para excluir cookbook .old (autorização)?

Somente depois que ambas as perguntas forem respondidas afirmativamente

sem qualquer ambigüidade, a ação solicitada poderá ser executada. Na verdade,

a primeira pergunta é a mais importante. Depois que o servidor de arquivos
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 116 de 199
sabe com quem está se comunicando, verificar a autorização é simplesmente

uma questão de pesquisar entradas de tabelas ou bancos de dados loca is. Por

essa razão, nesta seção vamos nos concentrar na questão da autenticação.

O modelo genérico que todos os protocolos de autenticação utilizam é descrito

a seguir. Alice começa enviando uma mensagem para Bob ou para um KDC (Key

Distribution Center) no qual confia e que sempre é honesto. Acontecem muitas

outras trocas de mensagens em diferentes sentidos. À medida que essas

mensagens são enviadas, uma intrusa mal-intencionada, Trudy, pode

interceptar, modificar ou reproduzir essas mensagens a fim de enganar Alice e

Bob, ou simplesmente para atrapalhar.

Todavia, quando a execução do protocolo tiver sido concluída, Alice terá certeza

de que está se comunicando com Bob e vice-versa. Além disso, na maioria dos

protocolos, os dois também terão estabelecido uma chave de sessão secreta

que deverá ser usada durante a conversação. Na prática, por motivos de

desempenho, todo o tráfego de dados é criptografado utilizando-se a

criptografia de chave simétrica (em geral, AES ou DES triplo), embora a

criptografia de chave pública seja extensamente usada nos próprios protocolos

de autenticação e para estabelecer a chave de sessão.

O objetivo de se utilizar uma nova chave de sessão escolhida aleatoriamente

para cada nova conexão é minimizar o volume de tráfego provocado pelo envio

das chaves secretas ou públicas dos usuários, reduzir o volume de texto cifrado

que um intruso pode obter e minimizar os danos causados, caso haja uma pane

em um processo e seu dump de memória caia em mãos erradas. É muito

provável que a única chave presente seja a chave de sessão. Todas as chaves

permanentes deverão ser cuidadosamente zeradas depois que a sessão for

estabelecida.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 117 de 199
[T3] 8.7.1 Autenticação baseada em uma chave secreta compartilhada

Para o nosso primeiro protocolo de autenticação, vamos supor que Alice e Bob

já compartilham uma chave secreta, KAB. Essa chave compartilhada pode ter sido

definida pelos dois em uma conversa telefônica ou pessoalmente, mas não na

rede, que apresenta problemas de segurança.

Esse protocolo se baseia em um princípio encontrado em muitos protocolos de

autenticação: um dos lados envia um número aleatório ao outro, que em

seguida o transforma de algum modo especial e retorna o resultado. Tais

protocolos são chamados protocolos de desafio-resposta. Nesse e nos

próximos protocolos de autenticação, será usada a seguinte notação:

A e B são as identidades de Alice e Bob

Ri são desafios, sendo que o caractere subscrito identifica o desafiante

Ki são chaves, onde i indica o proprietário; KS é a chave da sessão

A seqüência de mensagens do nosso primeiro protocolo de autenticação de

chave compartilhada é mostrada na Figura 8.32. Na mensagem 1, Alice envia

sua identidade A para Bob, de uma forma que Bob possa entender. É claro que

Bob não tem como saber se essa mensagem veio de Alice ou de Trudy; portanto,

ele escolhe um desafio, um número aleatório muito extenso, RB, e o envia de

volta a "Alice" como sua mensagem número 2 em texto simples. Os números

aleatórios usados apenas uma vez em protocolos de desafio-resposta como

esse são chamados nonces. Em seguida, Alice criptografa a mensagem com a

chave que compartilha com Bob e envia o texto cifrado, KAB(RB), de volta na

mensagem 3. Quando vê a mensagem, Bob fica sabendo imediatamente que ela

veio de Alice, pois Trudy não conhece KAB e, portanto, não poderia tê-la gerado.

Além disso, como o número RB foi escolhido aleatoriamente a partir de um

espaço muito extenso (digamos, números aleatórios de 128 bits), é muito

improvável que Trudy tenha visto RB e sua resposta em uma sessão anterior. É
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 118 de 199
igualmente improvável que ela conseguisse adivinhar a resposta correta a

qualquer desafio.

[arte: ver original p. 787a]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.32

[FL] Uma autenticação bidirecional utilizando um protocolo de desafio -resposta



A essa altura, Bob tem certeza de que está se comunicando com Alice, mas Alice

não tem certeza de nada, pois sabe que Trudy pode ter interceptado a

mensagem 1 e enviado RB como resposta. Talvez Bob tenha morrido na noite

passada. Para descobrir com quem está se comunicando, Alice seleciona um

número aleatório, RA, e envia a Bob como texto simples, na mensagem 4.

Quando Bob responde com KAB(RA) , Alice fica sabendo que está se comunicando

com Bob. Se eles quiserem estabelecer uma chave de sessão agora, Alice poderá

selecionar uma, Ks, e enviá-la a Bob criptografada com KAB.

O protocolo da Figura 8.32 contém cinco mensagens. Vamos ver se podemos

eliminar algumas delas. Uma abordagem é ilustra na Figura 8.33. Nessa figura,

Alice inicia o protocolo de desafio-resposta em vez de esperar que Bob o faça.

Da mesma forma, enquanto está respondendo ao desafio de Alice, Bob envia o

dele: o protocolo inteiro pode ser reduzido a três mensagens, em vez de cinco.

[arte: ver original p. 787b]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.33
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 119 de 199
[FL] Um protocolo de autenticação bidirecional abreviado



Esse novo protocolo representa um aperfeiçoamento em relação ao original? Em

um certo sentido, isso é verdade, pois agora o protocolo está mais curto.

Infelizmente, agora ele também está errado. Sob determinadas circunstâncias,

Trudy é capaz de enganar esse protocolo utilizando o método conhecido como

ataque por reflexão. Especificamente, Trudy poderá rompê-lo se for possível

abrir várias sessões com Bob ao mesmo tempo. Por exemplo, essa situação seria

verdadeira se Bob fosse um banco e estivesse preparado para aceitar muitas

conexões simultâneas enviadas por caixas eletrônicos ao mesmo tempo.

O ataque por reflexão de Trudy é mostrado na Figura 8.34. Ele começa com

Trudy afirmando ser Alice e enviando RT. Bob responde, como sempre, com seu

próprio desafio, RB. Agora Trudy está em apuros. O que ela pode fazer? Ela não

conhece KAB(RB).

[arte: ver original p. 788]

[Dísticos]

[1] Primeira sessão

[2] Segunda sessão

[3] Primeira sessão

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.34

[FL] O ataque por reflexão



Ela pode abrir uma outra sessão com a mensagem 3, fornecendo o RB extraído

da mensagem 2 como seu desafio. Bob o criptografa calmamente e envia KAB(RB)
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 120 de 199
na mensagem 4. Representamos com sombreados as mensagens da segunda

sessão, a fim de destacá-las. Agora, Trudy tem as informações que faltavam e,

portanto, pode concluir a primeira sessão e abandonar a segunda. Nesse

momento, Bob está convencido de que Trudy é Alice e, quando ela pede o saldo

da conta, ele o informa sem maiores perguntas. Em seguida, quando Trudy pede

que Bob transfira todo o dinheiro para uma conta secreta na Suíça, ele não

hesita em fazê-lo.

A moral da história é a seguinte:

        Projetar um protocolo de autenticação correto é mais difícil do que

parece.

Com freqüência, quatro regras podem nos ajudar nesse caso. Elas são as

seguintes:

1. Fazer com que o transmissor prove quem é antes do receptor responder.

Nesse caso, Bob revela informações valiosas antes de Trudy fornecer alguma

prova de quem é ela.

2. Fazer com que o transmissor e o receptor utilizem chaves específicas para

provarem quem são, mesmo que isso signifique ter duas chaves compartilhadas,

KAB e K'AB.

3. Fazer com que o transmissor e o receptor extraiam seus desafios de

conjuntos distintos. Por exemplo, o transmissor deve usar números pares e o

transmissor deve usar números ímpares.

4. Tornar o protocolo resistente a ataques que envolvam uma segunda sessão

paralela, no qual as informações obtidas em uma sessão sejam usadas em uma

sessão diferente.

Se até mesmo uma dessas regras for violada, isso significa que o protocolo

poderá ser violado com freqüência. Nesse caso, todas as quatro regras foram

violadas, com conseqüências desastrosas.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 121 de 199
Agora examinar mais de perto a Figura 8.32. É possível garantir que esse

protocolo não está sujeito a um ataque por reflexão? Bem, depende. Essa é uma

questão bastante sutil. Trudy foi capaz de violar nosso protocolo usando um

ataque por reflexão, porque foi possível abrir uma segunda sessão com Bob e

enganá-lo, respondendo a suas próprias perguntas. O que aconteceria se Alice

fosse um computador de uso geral que também aceitasse várias sessões, em

vez de ser uma pessoa diante de um computador? Vejamos o que Trudy pode

fazer nesse caso.

Para ver como funciona o ataque de Trudy, observe a Figura 8.35. Alice começa

anunciando sua identidade na mensagem 1. Trudy intercepta essa mensagem e

inicia sua própria sessão com a mensagem 2, afirmando ser Bob. Novamente

sombreamos as mensagens da sessão 2. Alice responde à mensagem 2 com a

mensagem 3, dizendo: "Você afirma ser Bob? Então, prove". Nesse momento

Trudy não em saída, porque não pode provar ser Bob.

[arte: ver original p. 789]

[Dísticos]

[1] Primeira sessão

[2] Segunda sessão

[3] Primeira sessão

[4] Segunda sessão

[5] Primeira sessão

[6] Segunda sessão

[7] Primeira sessão

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.35
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 122 de 199
[FL] Um ataque por reflexão no protocolo da Figura 8.32



O que Trudy faz agora? Ela volta para a primeira sessão, onde é sua vez de

enviar um desafio, e transmite a RA que obteve na mensagem 3. Alice

amavelmente responde na mensagem 5 e, desse modo, fornece a Trudy as

informações de que ela precisa para enviar a mensagem 6 na sessão 2. Nesse

momento, Trudy está à vontade, porque conseguiu responder com sucesso ao

desafio de Alice na sessão 2. Agora ela pode cancelar a sessão 1, transmitir

qualquer número antigo para o restante da sessão 2, e terá uma sessão

autenticada com Alice na sessão 2.

Contudo, Trudy é malvada e quer causar ainda mais danos. Em vez de enviar

qualquer número antigo para concluir a sessão 2, ela espera até Alice enviar a

mensagem 7, o desafio de Alice para a sessão 1. É claro que Trudy não sa be

como responder, e portanto utiliza outra vez o ataque por reflexão, devolvendo

RA2 como a mensagem 8. Alice codifica RA2 de maneira conveniente na

mensagem 9. Agora, Trudy volta para a sessão 1 e envia a Alice, na mensagem

10, o número que ela deseja, cuidadosamente copiado do número que a própria

Alice enviou na mensagem 9. Nesse momento, Trudy tem duas sessões

completamente autenticadas com Alice.

Esse ataque tem um resultado um pouco diferente do ataque no protocolo de

três mensagens, ilustrado na Figura 8.34. Dessa vez, Trudy tem duas conexões

autenticadas com Alice. No exemplo anterior, ela tinha uma conexão

autenticada com Bob. Mais uma vez, se aplicássemos todas as regras gerais de

protocolos de autenticação discutidas antes, esse ataque poderia ter sido

interrompido. Uma descrição detalhada desses tipos de ataques e de como

frustrá-los é apresentada em (Bird et al ., 1993), que também mostram como é

possível construir de forma sistemática protocolos que comprovadamente são
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 123 de 199
corretos. Porém, o mais simples desses protocolos é um pouco complicado;

portanto, mostraremos agora uma classe diferente de protocolos que também

funcionam.

O novo protocolo de autenticação é mostrado na Figura 8.36 (Bird et al ., 1993).

Ele emprega um HMAC do tipo que vimos quando estudamos o IPsec. Alice

começa enviando a Bob um nonce RA como mensagem 1. Bob responde

selecionando seu próprio nonce, RB, e devolvendo-o juntamente com um HMAC.

O HMAC é formado com o objetivo de construir uma estrutura de dados que

consiste no nonce de Alice, no nonce de Bob, em suas identidades e na chave

secreta compartilhada, KAB. Esses dados estruturados passam então por um hash

no HMAC, por exemplo usando SHA-1. Quando receber a mensagem 2, Alice

terá RA (que ela própria escolheu), RB, que chegará sob a forma de texto simples,

as duas identidades e a chave secreta KAB, conhecida desde o início, e depois ela

mesma poderá calcular o HMAC. Se este corresponder ao HMAC da mensagem,

ela saberá que está se comunicando com Bob, porque Trudy não conhece KAB e,

desse modo, não terá como saber qual HMAC enviar. Alice responde a Bob com

um HMAC contendo apenas os dois nonces.

[arte: ver original p. 790]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.36

[FL] Autenticação usando HMACs



Trudy pode subverter de algum modo esse protocolo? Não, porque ela não é

capaz de forçar qualquer das partes a codificar ou fazer o hash de um valor de

sua escolha, como aconteceu na Figura 8.34 e na Figura 8.(Fo [Não conseguimos
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 124 de 199
definir se essa citação se refere à Figura 8.35 ou 8.36. Favor verificar com a

editora do OA]. Ambos os HMACs incluem valores escolhidos pela parte

transmissora, algo que Trudy não pode controlar.

Utilizar HMACs não é o único meio de se empregar essa idéia. Um esquema

alternativo usado com freqüência em vez de calcular o HMAC sobre uma série de

itens é codificar os itens seqüencialmente usando o encadeamento de blocos de

cifras.



[T3] 8.7.2 Como estabelecer uma chave compartilhada: A troca de chaves de

Diffie-Hellman

Até agora partimos do princípio de que Alice e Bob compartilham uma chave

secreta. Suponha que isso não seja verdade (porque até agora não há nenhuma

PKI universalmente aceita para assinar e distribuir certificados). Como eles

podem estabelecer uma chave secreta? Uma possibilidade seria Alice telefonar

para Bob e dar sua chave a ele, mas provavelmente ele começaria a conversa

dizendo: "Como posso saber que você é Alice e não Trudy?" Eles poderiam

tentar se encontrar pessoalmente, com cada um levando passaporte, carteira de

motorista e três cartões de crédito. No entanto, como são muito ocupados,

talvez não consigam encontrar uma data conveniente para ambos durante

meses. Felizmente, apesar de parecer incrível, há uma forma de pessoas que

não se conhecem estabelecerem uma chave secreta em plena luz do dia, mesmo

com Trudy registrando cuidadosamente cada mensagem.

O protocolo que permite o estabelecimento de uma chave secreta entre pessoas

que não se conhecem é chamado troca de chaves de Diffie-Hellman (Diffie e

Hellman, 1976) e funciona da forma descrita a seguir. Alice e Bob têm de

concordar em relação a dois números extensos, n e g, onde n é um número

primo, (n – 1)/2 também é um número primo e onde certas condições se
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 125 de 199
aplicam a g. Esses números podem ser públicos; portanto, um deles só precisa

selecionar n e g e informar ao outro abertamente. Agora, Alice escolhe um

grande número x (digamos, de 512 bits) e o mantém em segredo. Da mesma

forma, Bob seleciona um grande número secreto, y.

Alice inicia um protocolo de troca de chaves enviando a Bob uma mensagem

contendo ( n, g, gx mod n), como mostra a Figura 8.37. Bob responde enviando a

Alice uma mensagem contendo gy mod n. Agora, Alice eleva a x-ésima potência

em módulo n o número que Bob lhe enviou, a fim de obter ( gy mod n)x mod n.

Bob executa uma operação semelhante para obter ( gx mod n)y mod n. Pelas leis

da aritmética modular, ambos os cálculos produzem gxy mod n. Agora, Alice e

Bob compartilham uma chave secreta, gxy mod n.

[arte: ver original p. 791]

[Dísticos]

[1] Alice escolhe x

[2] Bob escolhe y

[3] Alice calcula (g y mod n)x mod n = gxy mod n

[4] Bob calcula (g x mod n) y mod n = gxy mod n

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.37

[FL] A troca de chaves de Diffie-Hellman



É óbvio que Trudy viu as duas mensagens. Com base na mensagem 1, ela

conhece g e n. Se pudesse calcular x e y, Trudy poderia descobrir a chave

secreta. O problema é que com apenas gx mod n, ela não consegue encontrar x.

Não existem algoritmos práticos para o cálculo de logaritmos discretos cuja
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 126 de 199
base é um número primo muito extenso conhecido.

Para tornar o exemplo mostrado antes mais concreto, utilizaremos os valores

(completamente falsos): n = 47 e g = 3. Alice seleciona x = 8 e Bob seleciona y

= 10, o que é mantido em segredo. A mensagem de Alice para Bob é (47, 3, 28),

pois 38 mod 47 é igual a 28. A mensagem de Bob para Alice é (17). Alice calcula

178 mod 47, que é igual a 4. Bob calcula 28 10 mod 47, que é igual a 4. Alice e

Bob determinaram de forma independente que agora a chave secreta é 4. Trudy

tem de resolver a equação 3 x mod 47 = 28, o que pode ser feito por pesquisa

exaustiva de números pequenos como esse, mas não quando todos os números

têm centenas de bits. Todos os algoritmos conhecidos até o momento demoram

muito tempo para realizar esse cálculo, mesmo em supercomputadores

maciçamente paralelos.

Apesar da elegância do algoritmo de Diffie-Hellman, há um problema: quando

Bob obtém a tripla (47, 3, 28), como ele pode saber se ela veio de Alice e não de

Trudy? A resposta é simples: ele não tem como saber. Infelizmente, Trudy pode

explorar esse fato para enganar Alice e Bob, como ilustra a Figura 8.38. Aqui,

enquanto Alice e Bob estão escolhendo x e y, respectivamente, Trudy escolhe

seu próprio número aleatório, z. Alice envia a mensagem 1 para Bob. Trudy a

intercepta e envia a mensagem 2 para Bob, usando g e n corretos (que, de

qualquer forma, são públicos), mas com seu próprio z em vez de x. Ela também

envia a mensagem 3 de volta para Alice. Mais tarde, Bob envia a mensagem 4

para Alice, que Trudy mais uma vez intercepta e guarda.

Agora, todos utilizam a aritmética modular. Alice calcula a chave secreta como

gxz mod n, e Trudy faz o mesmo (para mensagens enviadas a Alice). Bob calcula

gyz mod n e Trudy faz o mesmo (nas mensagens enviadas a Bob). Alice pensa

que está se comunicando com Bob e, portanto, estabelece uma chave de sessão

(com Trudy). Bob faz o mesmo. Todas as mensagens que Alice envia na sessão
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 127 de 199
criptografada são capturadas, armazenadas e modificadas por Trudy para então

(opcionalmente) serem passadas a Bob. Da mesma forma, no outro sentido,

Trudy vê tudo e pode modificar todas as mensagens como quiser, enquanto

Alice e Bob têm a ilusão de que há um canal seguro entre os dois. Esse método

é chamado ataque da brigada de incêndio, pois lembra vagamente um antigo

corpo de bombeiros formado por voluntários que, enfileirados, passavam baldes

d'água de mão em mão do caminhão até o incêndio. Esse método também é

chamado ataque de @@@homem em posição intermediária.

[arte: ver original p. 792]

[Dísticos]

[1] Alice escolhe x

[2] Trudy escolhe z

[3] Bob escolhe y

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.38

[FL] O ataque de brigada de incêndio ou de homem em posição intermediária



[T3] 8.7.3 Autenticação com o uso de um centro de distribuição de chaves

A idéia de compartilhar um segredo com uma pessoa estranha quase funcionou.

Por outro lado, talvez não tenha valido a pena a tentativa (ataque da raposa e

das uvas). Para conversar com n pessoas dessa forma, você precisará de n

chaves. Para pessoas famosas, o gerenciamento de chaves poderia se tornar

uma grande dor de cabeça, especialmente se cada chave tivesse de ser

armazenada em uma placa de chips plásticos separada.

Uma outra estratégia é introduzir um centro de distribuição de chaves (KDC —
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 128 de 199
key distribution center) confiável. Nesse modelo, cada usuário tem uma única

chave compartilhada com o KDC. Agora o gerenciamento de sessão e de

autenticação passa pelo KDC. O protocolo de autenticação para o KDC mais

simples envolve duas partes e um KDC confiável e é descrito na Figura 8.39.

[arte: ver original p. 793]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a imagem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.39

[FL] Uma primeira tentativa de protocolo de autenticação usando um KDC



A idéia por trás desse protocolo é simples: Alice escolhe uma chave de sessão KS

e informa ao KDC que deseja se comunicar com Bob usando KS. Essa mensagem

é criptografada com a chave secreta que Alice compartilha (apenas) com o KDC,

KA. O KDC descriptografa essa mensagem, extraindo a identidade de Bob e a

chave de sessão. Em seguida, cria uma nova mensagem contendo a identidade

de Alice e a chave de sessão, e depois envia essa mensagem a Bob. Essa

criptografia é feita com KB, a chave secreta que Bob compartilha com o KDC.

Quando descriptografa a mensagem, Bob fica sabendo que Alice quer se

comunicar com ele e qual chave ela desejar usar.

Aqui, a autenticação ocorre sem maiores problemas. O KDC sabe que a

mensagem 1 deve vir de Alice, pois ninguém mais teria sido capaz de

criptografá-la com a chave secreta de Alice. Da mesma forma, Bob sabe que a

mensagem 2 deve ter vindo do KDC, em quem ele confia, pois ninguém mais

conhece sua chave secreta.

Infelizmente, esse protocolo tem uma falha muito séria. Trudy precisa de

dinheiro; portanto, ela pensa em alguns serviços legítimos que pode fazer para
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 129 de 199
Alice, faz uma oferta interessante e consegue o trabalho. Depois de fazer o

serviço, Trudy, com toda educação, solicita que Alice faça o pagamento através

de transferência bancária. Em seguida, Alice estabelece uma chave de sessão

com o funcionário do banco, Bob. Em seguida, ela envia a Bob uma mensagem

solicitando que o dinheiro seja transferido para a conta de Trudy.

Nesse ínterim, Trudy volta a bisbilhotar a rede. Ela copia tanto a mensagem 2 da

Figura 8.39 quanto a solicitação de transferência de dinheiro enviada depois da

mensagem. Posteriormente, ela responde a ambas as mensagens de Bob. Bob as

recebe e pensa: "Alice deve ter contratado Trudy outra vez. Percebe-se que o

trabalho dela é muito bom". Em seguida, Bob transfere uma quantia igual em

dinheiro da conta de Alice para a conta de Trudy. Algum tempo depois do 50º

par de mensagens, Bob vai até Trudy e oferece um bom empréstimo para que

ela possa expandir seus negócios, que obviamente vão muito bem. Esse

problema é chamado ataque por repetição.

Existem várias soluções para o ataque por repetição. A primeira é incluir um

timbre de hora em cada mensagem. Em seguida, se alguém receber uma

mensagem obsoleta, ela poderá ser descartada. O problema dessa estratégia é

que os relógios nunca estão sincronizados com exatidão na rede; portanto, deve

haver um período durante o qual esse timbre de hora será válido. Trudy pode

repetir a mensagem durante esse período e se livrar dela.

A segunda solução é colocar um nonce em cada mensagem. Nesse caso, cada

parte terá de se lembrar de todos os nonces anteriores e rejeitar as mensagens

que contenham um nonce já utilizado. No entanto, os nonces têm de ser

memorizados para sempre, a menos que Trudy tente repetir uma mensagem

com 5 anos de existência. Além disso, se alguma máquina apresentar falha e

perder sua lista de nonces, ela estará vulnerável a um ataque por repetição. Os

timbres de hora e os nonces podem ser combinados para limitar o tempo
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 130 de 199
durante o qual os nonces têm de ser memorizados, mas é óbvio que o protocolo

ficará muito mais complicado.

Um enfoque mais sofisticado para a autenticação mútua é usar um protocolo de

desafio-resposta que funcione em diversas direções. Um exemplo bastante

conhecido desse tipo de protocolo é o protocolo de autenticação de Needham-

Schroeder (Needham e Schroeder, 1978), sendo que uma de suas variantes é

mostrada na Figura 8.40.

[arte: ver original p. 794]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a image m seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.40

[FL] O protocolo de autenticação Needham-Schroeder



O protocolo começa com Alice informando ao KDC que deseja se comunicar com

Bob. Essa mensagem contém um número extenso aleatório, RA, que é usado

como nonce. O KDC retorna a mensagem 2 contendo o número aleatório de

Alice, uma chave de sessão e um bilhete que ela pode enviar a Bob. O objetivo

do número aleatório, RA, é garantir a Alice que a mensagem 2 é nova e não uma

repetição. A identidade de Bob também é enviada, caso Trudy pense na

possibilidade de substituir B na mensagem 1 por sua própria identidade, para

que o KDC codifique o bilhete no fim da mensagem 2 com KT em vez de KB. O

bilhete codificado com KB é incluído na mensagem criptografada para impedir

que Trudy o substitua por algo diferente quando ele retornar a Alice.

Agora Alice envia o bilhete a Bob, junto com um novo número aleatório, RA2,

criptografado com a chave de sessão, KS. Na mensagem 4, Bob envia KS (RA2 - 1),

a fim de provar a Alice que ela está se comunicando com o verdadeiro Bob.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 131 de 199
Retornar KS(RA2) não seria uma boa opção, pois Trudy poderia ter acabado de

roubar essa chave na mensagem 3.

Depois de receber a mensagem 4, Alice estará convencida de que está se

comunicando com Bob e de que nenhuma repetição poderia ter sido usada até

agora. Afinal de contas, ela acabou de gerar RA2 há alguns milissegundos. O

objetivo da mensagem 5 é convencer Bob de que ele está se comunicando

realmente com Alice, e que nenhuma repetição está sendo usada aqui. Ao fazer

com que cada parte gere um desafio e responda a outro, a possibilidade de

qualquer tipo de ataque por repetição é eliminada.

Apesar de parecer bastante sólido, esse protocolo tem uma pequena falha. Se

Trudy conseguir obter uma antiga chave de sessão no texto simples, ela poderá

dar início a uma nova sessão com Bob repetindo a mensagem 3 correspondente

à chave comprometida e convencê-lo de que é Alice (Denning e Sacco, 1981).

Dessa vez, ela poderá desfalcar a conta bancária de Alice sem precisar prestar

qualquer serviço honesto.

Mais tarde, Needham e Schroeder publicaram um protocolo que corrige esse

problema (Needham e Schroeder, 1987). No mesmo exemplar do mesmo jornal,

Otway e Rees (1987) também publicaram um protocolo que resolve o problema

de uma forma mais simples. A Figura 8.41 mostra um protocolo de Otway-Rees

ligeiramente modificado.

[arte: ver original p. 795]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a image m seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.41

[FL] O protocolo de autenticação de Otway-Rees (ligeiramente simplificado)
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 132 de 199
No protocolo de Otway-Rees, Alice começa gerando um par de números

aleatórios, R, que será usado como um identificador comum, RA, que Alice

utilizará para desafiar Bob. Quando receber essa mensagem, Bob criará uma

nova mensagem com a parte criptografada da mensagem de Alice e uma outra

mensagem análoga de sua própria autoria. Ambas as partes criptografadas com

KA e KB identificam Alice e Bob, e contêm o identificador e um desafio.

O KDC verifica se o R de ambas as partes é igual. Talvez não seja, porque Trudy

adulterou R na mensagem 1 ou substituiu parte da mensagem 2. Se os dois

números R coincidirem, o KDC considerará a mensagem de solicitação de Bob

válida. Em seguida, o KDC irá gerar uma chave de sessão, criptografada duas

vezes, uma para Alice e outra para Bob. Cada mensagem conterá o número

aleatório do receptor, como prova de que o KDC, e não Trudy, gerou a

mensagem. Nesse momento, tanto Alice quanto Bob têm a posse da mesma

chave de sessão e podem dar início à comunicação. Na primeira vez que eles

trocarem mensagens de dados, cada um poderá ver que o outro tem uma cópia

idêntica de KS, e assim a autenticação é concluída.



[T3] 8.7.4 Autenticação com a utilização do Kerberos

Um protocolo de autenticação usado em muitos sistemas reais (inclusive no

Windows 2000) é o Kerberos, que se baseia em uma variante do protocolo de

Needham-Schroeder. Seu nome se deve ao cão de várias cabeças da mitologia

grega que guardava a entrada para Hades (provavelmente para manter as

pessoas indesejáveis à distância). O Kerberos foi projetado no MIT para permitir

que os usuários de estações de trabalho tivessem acesso a recursos da rede de

uma forma segura. Sua grande diferença em relação ao protocolo de Needham -

Schroeder é sua suposição de que todos os clocks estão muito bem

sincronizados. O protocolo passou por várias iterações. A V4 é a versão mais
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 133 de 199
usada na indústria; sendo assim, vamos descrevê-la. Depois disso, faremos

alguns comentários sobre a versão seguinte, V5. Para obter mais informações,

consulte (Steiner et al., 1988).

O Kerberos envolve três servidores além de Alice (uma estação de trabalho

cliente):

        O Authentication Server (AS): confirma a identidade dos usuários durante

o processo de login.

        O Ticket-Granting Server (TGS): emite "bilhetes de comprovação de

identidade".

        O servidor de arquivos Bob: na verdade, faz o trabalho que Alice deseja

ver pronto.

O AS é semelhante a um KDC, porque compartilha uma senha secreta com todos

os usuários. O trabalho do TGS é emitir bilhetes que possam convencer os

servidores reais de que o portador de um bilhete TGS realmente é quem afirma

ser.

Para dar início a uma sessão, Alice utiliza uma estação de trabalho arbitrária e

digita seu nome. A estação de trabalho envia seu nome ao AS em texto simples,

como mostra a Figura 8.42. O que retorna é uma chave de sessão e um bilhete,

KTGS(A, KS), destinado ao TGS. Esses itens são empacotados juntos e

criptografados com a chave secreta de Alice, de modo que apenas Alice seja

capaz de descriptografá-los. Somente quando a mensagem 2 chega, a estação

de trabalho pede a senha de Alice. Em seguida, a senha é usada para gerar KA, a

fim de descriptografar a mensagem 2 e obter a chave de sessão e o bilhete TGS

que ela contém. Nesse momento, a estação de trabalho substitui a senha de

Alice, para garantir que a senha só estará na estação de trabalho durante alguns

milissegundos, no máximo. Se Trudy tentar estabelecer um login como Alice, a

senha que ela digitar estará errada e a estação de trabalho detectará o
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 134 de 199
problema, porque o trecho padrão da mensagem 2 estará incorreto.

Depois de estabelecer o login, Alice pode informar à estação de trabalho que

deseja entrar em contato com Bob, o servidor de arquivos. Em seguida, a

estação de trabalho envia a mensagem 3 ao TGS solicitando um bilhete para

usar com Bob. O principal elemento nessa solicitação é KTGS(A, KS), que é

criptografado com a chave secreta de TGS e é usado como prova de que o

transmissor realmente é Alice. O TGS responde criando uma chave de sessão,

KAB, para que Alice a utilize com Bob. Duas versões dessa chave são retornadas.

A primeira é criptografada apenas com KS, para que Alice possa ler a mensagem.

A segunda é criptografada com a chave de Bob, KB, de forma que Bob também

possa ler a mensagem.

[arte: ver original p. 797]

[Dísticos]

[1] Login

[2] Obtém um bilhete

[3] Executa o trabalho

Atenção, produção!

Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.42

[FL] A operação do Kerberos V4



Trudy pode copiar a mensagem 3 e tentar usá-la mais uma vez, mas será

frustrada pelo timbre de hora criptografado, t, enviado junto com a mensagem.

Trudy não pode substituir o timbre de hora por outro mais recente, porque não

conhece KS, a chave de sessão que Alice utiliza para se comunicar com o TGS.

Mesmo que Trudy repita a mensagem 3 rapidamente, tudo o que ela obterá será
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 135 de 199
outra cópia da mensagem 4, que não pôde descriptografar antes e que também

não poderá descriptografar agora.

Nesse momento, Alice envia KAB a Bob, com a finalidade de estabelecer uma

sessão com ele. Essa troca também recebe um timbre de hora. A resposta é a

prova de que Alice está realmente se comunicando com Bob, e não com Trudy.

Depois de uma série de trocas, Alice pode se comunicar com Bob sob a proteção

de KAB. Se mais tarde ela chegar à conclusão de que precisa se comunicar com

outro servidor, Carol, Alice simplesmente repetirá a mensagem 3 para o TGS,

apenas especificando C em vez de B. O TGS responderá prontamente com um

bilhete criptografado com KC, que Alice poderá enviar a Carol e que Carol

aceitará como prova de que Alice o enviou.

O objetivo de todo esse trabalho é que agora Alice pode acessar servidores

instalados por toda a rede de forma segura, e sua senha nunca terá de percorrer

a rede. Na verdade, a senha só precisaria permanecer na estação de trabalho da

própria Alice durante alguns milissegundos. No entanto, observe que cada

servidor faz sua própria autorização. Quando Alice apresenta seu bilhete a Bob,

isso prova a Bob quem o enviou. Na verdade, a decisão sobre o que Alice está

autorizada a fazer cabe a Bob.

Como os projetistas do Kerberos não esperavam que o mundo inteiro confiasse

em um único servidor de autenticação, eles reservaram espaço para o uso de

diversos domínios (realms), cada um com seu próprio AS e TGS. Para obter um

bilhete referente a um servidor de um domínio distante, Alice solicitaria a seu

próprio TGS um bilhete aceito pelo TGS do domínio distante. Se o TGS distante

tiver sido registrado com o TGS local (exatamente como fazem os servidores

locais), o TGS local dará a Alice um bilhete válido no TGS distante. Depois disso,

ela poderá usá-lo para executar determinadas ações, como obter bilhetes para

os servidores desse domínio. No entanto observe que, para partes pertencentes
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 136 de 199
a dois domínios interagirem, cada uma delas deverá confiar no TGS da outra.

O Kerberos V5 tem mais recursos do que o V4 e um overhead maior. Ele

também utiliza a ASN.1 (Abstract Syntax Notation 1) da OSI para descrever tipos

de dados e tem pequenas alterações nos protocolos. Além disso, o tempo d e

duração de seus bilhetes é mais longo, ele permite que os bilhetes sejam

renovados e emite bilhetes pós-datados. Além disso, pelo menos na teoria, ele

não é dependente do DES, como é o caso do V4, e aceita vários domínios,

delegando a geração de bilhetes a diversos servidores de bilhetes.



[T3] 8.7.5 Autenticação com a criptografia de chave pública

Também é possível fazer uma autenticação mútua através do uso da criptografia

de chave pública. Para começar, Alice precisa da chave pública de Bob. Se exist ir

uma PKI com o servidor de diretórios que entregue certificados para chaves

públicas, Alice poderá solicitar o certificado de Bob, como mostra a Figura 8.43

na mensagem 1. A resposta na mensagem 2 é um certificado X.509 que contém

a chave pública de Bob. Quando Alice verifica que a assinatura está correta, ela

envia a Bob uma mensagem contendo sua identidade e um nonce.

[arte: ver original p. 798]

[Dísticos]

[1] Diretório

[2]

1. Forneça E B

2. Aqui está E B

[3]

4. Forneça E A

5. Aqui está E A

Atenção, produção!
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 137 de 199
Não foi possível reproduzir os outros dísticos desta figura. Sugiro que a imagem

seja digitalizada integralmente, pois não há mais nada a traduzir.

[F]Figura 8.43

[FL] Autenticação mútua com a utilização da criptografia de chave pública



Quando recebe essa mensagem, Bob não tem certeza se ela veio de Alice ou de

Trudy, mas continua e pede ao servidor de diretórios a chave pública de Alice

(mensagem 4) e logo a recebe (mensagem 5). Em seguida, ele envia a Alice uma

mensagem contendo o RA de Alice, seu próprio nonce, RB, e uma chave de

sessão sugerida, KS, como a mensagem 6.

Quando recebe a mensagem 6, Alice a descriptografa usando sua própria chave

privada. Ela vê RA na mensagem e fica feliz. A mensagem deve ter vindo de Bob,

pois Trudy não tem como determinar RA. Além disso, a mensagem deve ser

nova, e não uma repetição, pois ela acabou de enviar RA a Bob. Alice concorda

com a sessão retornando a mensagem 7. Quando vê RB criptografada com a

chave de sessão que acabou de gerar, Bob fica sabendo que Alice recebeu a

mensagem 6 e confirmou RA.

O que Trudy pode fazer para subverter esse protocolo? Ela pode falsificar a

mensagem 3 e enganar Bob fazendo-o pensar que ela é Alice, mas Alice verá um

RA que não enviou e não prosseguirá com a transmissão. Trudy não poderá

forjar a mensagem 7 de forma convincente, pois não conhece os valores de RB e

de KS e não pode determiná-los sem a chave privada de Alice. Ela está sem

sorte.



[T2] 8.8 Segurança de correio eletrônico

Quando uma mensagem de correio eletrônico é enviada entre dois sites

distantes, geralmente ela transita por dezenas de máquinas até chegar a seu
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 138 de 199
destino. Qualquer uma dessas máquinas pode ler e armazenar a mensagem para

usá-la posteriormente. Na prática, não há privacidade, apesar de muita gente

achar o contrário. Todavia, muitas pessoas gostariam de enviar mensagens de

correio eletrônico para que fossem lidas pelo destinatário pretendido e por

ninguém mais (nem seu chefe, nem o governo). Esse desejo estimulou muitas

pessoas e grupos a aplicarem os princípios da criptografia que estudamos

anteriormente para produzir mensagens seguras. Nas seções a seguir,

estudaremos um sistema de correio eletrônico seguro e bastante utilizado, o

PGP, e depois mencionaremos brevemente dois outros, o PEM e o S/MIME. Para

obter mais informações sobre correio eletrônico seguro, consulte (Kaufman et

al., 2002; e Schneier, 1995).



[T3] 8.8.1 PGP — Pretty Good Privacy

Basicamente, nosso primeiro exemplo, o PGP (Pretty Good Privacy) foi criado

por uma única pessoa, Phil Zimmermann (Zimmermann, 1995a, 1995b).

Zimmermann é um defensor da privacidade cujo lema é: "Se a privacidade for

proscrita, somente os proscritos terão privacidade". Lançado em 1991, o PGP é

um pacote completo para segurança de mensagens de correio eletrônico que

fornece privacidade, autenticação, assinaturas digitais e compactação, tudo de

uma forma fácil de usar. Além disso, o pacote completo, incluindo o código -

fonte, é distribuído de graça via Internet. Devido à sua qualidade, preço (zero) e

disponibilidade em plataformas UNIX, Linux, Windows e Mac OS, esse sistema é

extensamente utilizado hoje.

O PGP codifica dados usando uma cifra de bloco chamada IDEA (International

Data Encryption Algorithm), que utiliza chaves de 128 bits. Ele foi criado na

Suíça em uma época na qual o DES era considerado decadente e o AES ainda não

tinha surgido. Conceitualmente, o IDEA é semelhante ao DES e ao AES: ele
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 139 de 199
mistura os bits em uma série de rodadas, mas os detalhes das funções de

mixagem são diferentes do DES e do AES. O gerenciamento de chaves utiliza o

RSA e a integridade de dados utiliza o MD5, tópicos que já discutimos.

O PGP também esteve envolvido em controvérsias desde o início (Levy, 1993).

Como Zimmermann não fez nada para impedir que outras pessoas colocassem o

PGP na Internet, onde gente de todo o mundo poderia obtê-lo, o governo dos

Estados Unidos afirmou que Zimmermann violou leis americanas que proibiam a

exportação de munições. A investigação que o governo dos EUA fez de

Zimmermann durou 5 anos, mas foi abandonada, provavelmente por duas

razões. Primeiro, Zimmermann não colocou o PGP na Internet, e assim seu

advogado afirmou que ele nunca exportou nada (e, na época, havia dúvidas se

criar um Web site constituiria uma forma de exportação). Em segundo lugar, o

governo percebeu mais tarde que vencer uma disputa judicial significava

convencer um júri de que um Web site contendo um programa de privacidade

que podia ser transferido por download era uma infração sujeita às penas da lei

contra tráfico de armas que proibia a exportação de materiais de guerra como

tanques, submarinos, aeronaves militares e armas nucleares. Vários anos de

publicidade negativa provavelmente também não ajudariam muito.

A propósito, as regras de exportação são bizarras, para dizer o mínimo. O

governo considerava a colocação de código em um Web site um ato de

exportação ilegal e processou Zimmermann durante 5 anos. Por outro lado,

quando alguém publicava o código-fonte completo do PGP em linguagem C sob

a forma de um livro (em uma fonte de tamanho grande com um total de

verificação em cada página para facilitar a digitalização) e depois exportava o

livro, isso era legal para o governo, porque os livros não são classificados como

munições. A espada é mais poderosa que a caneta, pelo menos para Tio Sam.

Outro problema que o PGP enfrentou envolvia a violação de patentes. A empresa
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 140 de 199
que detinha a patente do RSA, denominada RAS Security, Inc., alegou que o uso

que o PGP fazia do algoritmo RSA infringia sua patente, mas esse problema foi

contornado nas versões seguintes, a partir da versão 2.6. Além disso, o PGP usa

outro algoritmo de criptografia patenteado, o IDEA, cujo uso causou alguns

problemas no início.

Tendo em vista que o PGP tem código-fonte aberto, muitas pessoas e grupos o

modificaram e produziram várias versões. Algumas delas foram projetadas para

contornar as leis de munições, outras se concentraram em evitar o uso de

algoritmos patenteados, e ainda outras queriam transformá-lo em um produto

comercial com código–fonte fechado. Embora as leis de munições tenham sido

ligeiramente atenuadas (do contrário, produtos que usassem o AES não

poderiam ter sido exportados pelos Estados Unidos) e a patente do RSA tenha

expirado em setembro de 2000, o legado de todos esses problemas foi a

existência de várias versões incompatíveis do PGP, identificadas por diversos

nomes. A descrição a seguir se concentra no PGP clássico, a versão mais antiga

e mais simples. Outra versão popular, o Open PGP, é descrita na RFC 2440.

Ainda outra é o Privacy Guard do GNU.

O PGP utiliza intencionalmente algoritmos criptográficos que já existiam em vez

de criar novos. Ele se baseia amplamente em algoritmos que passaram por

intensas revisões e não foram projetados ou influenciados por qualquer agência

governamental que tentasse enfraquecê-los. Para pessoas que tendem a não

acreditar no governo, essa característica representa uma excelente opção.

O PGP aceita a compactação de textos, sigilo e assinaturas digitais, e também

oferece amplos recursos de gerenciamento de chaves mas, estranhamente, não

oferece recursos de correio eletrônico. Ele é mais parecido com um pré-

processador que recebe texto simples como entrada e produz texto cifrado

assinado em base64 como saída. Essa saída pode então ser enviada por correio
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 141 de 199
eletrônico. Algumas implementações do PGP chamam um agente do usuário na

etapa final para enviar de fato a mensagem.

Para ver como o PGP funciona, considere o exemplo da Figura 8.44. Aqui, Alice

deseja enviar uma mensagem em texto simples assinada, P, para Bob de forma

segura. Tanto Alice quanto Bob têm chaves RSA privadas ( DX) e públicas ( EX).

Vamos supor que cada um conheça a chave pública do outro; examinaremos em

breve o gerenciamento de chaves do PGP.

[arte: ver original p. 801]

[Dísticos]

[1] KM : Chave de mensagem de uma única vez para IDEA

[ver símbolo] : Concatenação

[2] Chave privada RSA de Alice, D A

P       MD5 RSA         [ver símbolo]           P1

[3] Mensagem em texto simples original enviada por Alice

[4] Concatenação de P e do hash assinado de P

[5] Concatenação de P1.Z criptografada com IDEA e K M criptografada com E B

[6] Base 64

Texto ASCII para a rede

[7] Chave pública RSA de Bob, E B

KM      RSA

[8] Zip         P1.Z    IDEA

P1 compactada

[F]Figura 8.44

[FL] O PGP em operação para enviar uma mensagem



Alice começa invocando o programa PGP em seu computador. Primeiro, o PGP

submete sua mensagem P a um processo de hash, utilizando o MD5; em
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 142 de 199
seguida, criptografa o resultado empregando sua chave privada RSA, DA.

Quando receber a mensagem, Bob poderá descriptografar o hash com a chave

pública de Alice e confirmar que o hash está correto. Mesmo que alguma outra

pessoa (por exemplo, Trudy) pudesse adquirir o hash nesse estágio e

descriptografá-lo com a chave pública de Alice, a robustez do MD5 garante que

seria inviável em termos computacionais produzir outra mensagem com o

mesmo hash MD5.

O hash criptografado e a mensagem original são concatenados em uma única

mensagem P1 e compactados com o programa ZIP, que emprega o algoritmo de

Ziv-Lempel (Ziv e Lempel, 1977). Chame a saída dessa etapa de P1.Z.

Em seguida, o PGP solicita que Alice informe dados aleatoriamente. O conteúdo

e a velocidade de digitação são usados para gerar uma chave IDEA de 128 bits,

KM (denominada chave de sessão na literatura sobre o PGP; no entanto, essa

denominação não é adequada, pois não há sessão). Em seguida, KM é usada para

criptografar P1.Z com o IDEA no modo de feedback de cifra. Além disso, KM é

criptografada com a chave pública de Bob, EB. Em seguida, esses dois

componentes são concatenados e convertidos para base64, como discutimos na

seção sobre o MIME no Capítulo 7. A mensagem resultante contém apenas

letras, dígitos e os símbolos +, / e =, o que significa que ela pode ser incluída

em um corpo RFC 822 e chegar intacta a seu destino.

Ao receber a mensagem, Bob reverte a codificação base64 e decodifica a chave

IDEA utilizando sua chave privada RSA. Empregando essa chave, ele decodifica a

mensagem para obter P1.Z. Após a descompactação, Bob separa o texto simples

do hash criptografado e descriptografa o hash utilizando a chave pública de

Alice. Se o hash de texto simples coincidir com seu próprio cálculo MD5, ele

saberá que P é a mensagem correta e que ela veio de Alice.

Vale a pena observar que o RSA só é usado em duas situações: para criptografar
TANENBAUM, ANDREW S.                 Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza              AT08.DOC              CAPÍTULO 8/P. 143 de 199
o hash MD5 de 128 bits e para criptografar a chave IDEA de 128 bits. Apesar do

RSA ser lento, ele só precisa criptografar 256 bits, e não um grande volume de

dados. Além disso, todos os 256 bits de texto simples são excessivamente

aleatórios; portanto, Trudy terá muito trabalho para descobrir se uma suposta

chave está correta. O trabalho de criptografia é feito pelo IDEA, que é várias

ordens de magnitude mais rápido que o RSA. Portanto, o PGP oferece segurança,

compactação e assinatura digital de uma forma muito mais eficiente do que o

esquema ilustrado na Figura 8.19.

O PGP aceita três tamanhos de chaves RSA. Cabe ao usuário selecionar o mais

apropriado. Os tamanhos são:

1. Casual (384 bits): pode ser decifrado com facilidade atualmente.

2. Comercial (512 bits): pode ser decifrado por empresas de informática.

3. Militar (1024 bits): ninguém no planeta consegue decifrar.

4. Alienígena (2.048 bits): não pode ser decifrado por ninguém de outros

planetas.

Como o RSA só é usado para efetuar dois pequenos cálculos, todos deveriam

usar chaves fortes alienígenas o tempo todo.

O formato de uma mensagem PGP clássica é mostrado na Figura 8.45. A

mensagem tem três partes, contendo a chave IDEA, a assinatura e a mensagem,

respectivamente. A parte referente à chave contém não só a chave, mas também

um identificador de chave, pois os usuários podem ter várias chaves públicas.

[arte: ver original p. 802]

[Dísticos]

[1] Base64

Parte de chave da mensagem

Compactada, criptografada pelo IDEA

Parte da assinatura                Parte da mensagem
TANENBAUM, ANDREW S.                    Computer Networks 4a edição.                  EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza                 AT08.DOC                  CAPÍTULO 8/P. 144 de 199
[2] ID de EB KM         Cab. de assin.               Hora ID de EA Tipos        Hash MD5          Cab.

de msg          Nome de arq.                Hora Mensagem

[3] Criptografada por              EB       DA

[F]Figura 8.45

[FL] Uma mensagem PGP



A parte referente à assinatura contém um cabeçalho, que não nos interessará

aqui. O cabeçalho é seguido por um timbre de hora, pelo identifi cador da chave

pública do transmissor — que pode ser usada para descriptografar o hash de

assinatura — por algum tipo de informação que identifique os algoritmos

utilizados (para permitir que o MD6 e o RSA2 sejam usados quando forem

criados) e pelo próprio hash criptografado.

A parte referente à mensagem também contém um cabeçalho, o nome padrão

do arquivo a ser usado se o receptor gravar o arquivo no disco, o timbre de hora

de criação da mensagem e, por fim, a própria mensagem.

No PGP, o gerenciamento de chaves recebeu muita atenção por ser o tendão de

Aquiles de todos os sistemas de segurança. Cada usuário mantém duas

estruturas de dados localmente: um anel de chave privada e um anel de chave

pública. O anel de chaves privadas contém um ou mais pares de chave

pública/privada. A razão para aceitar vários pares por usuário é permitir que os

usuários alterem suas chaves públicas periodicamente ou quando uma delas for

considerada comprometida, sem invalidar as mensagens que estiverem sendo

preparadas ou em trânsito. Cada par tem um identificador associado, para que o

remetente da mensagem informe ao destinatário qual chave pública foi utilizada

para criptografá-la. Os identificadores de mensagem consistem nos 64 bits de

baixa ordem da chave pública. Os usuários são responsáveis por evitar conflitos

em seus identificadores de chave pública. As chaves privadas armazenadas no
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 145 de 199
disco são criptografadas com o uso de uma senha especial (arbitrariamente

longa) para protegê-las contra ataques sorrateiros.

O anel de chaves públicas contém as chaves públicas correspondentes do

usuário. Esses anéis são necessários para criptografar as chaves associadas a

cada mensagem. Cada entrada do anel de chave pública contém não só a chave

pública, mas também seu identificador de 64 bits e uma indicação de até que

ponto o usuário confia na chave.

O problema que está sendo resolvido é explicado a seguir. Vamos supor que as

chaves públicas sejam mantidas em sistemas BBS. Uma forma de Trudy ler a

correspondência secreta de Bob é atacar o BBS e substituir a chave pública de

Bob por outra de sua escolha. Quando Alice obtiver a chave que supostamente

pertence a Bob, Trudy poderá montar um ataque de brigada de incêndio contra

Bob.

Para impedir tais ataques, ou pelo menos minimizar suas conseqüências, Alice

precisa saber até que ponto pode confiar no item "chave de Bob" em seu anel de

chaves públicas. Se Alice souber que Bob entregou pessoalmente um disquete

contendo a chave, ela poderá definir o valor de confiança como o mais alto. Essa

é uma abordagem descentralizada e controlada pelo usuário para o

gerenciamento de chaves públicas, o que distingue o PGP dos esquemas

centralizados de PKI.

No entanto, na prática freqüentemente as pessoas recebem chaves públicas

consultando um servidor de chaves confiável. Por essa razão, depois da

padronização do X.509, o PGP também passou a admitir esses certificados, bem

como o mecanismo tradicional de anel de chaves públicas do PGP. Todas as

versões atuais do PGP têm suporte X.509.



[T3] 8.8.2 PEM — Privacy Enhanced Mail
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 146 de 199
Ao contrário do PGP, criado inicialmente por uma única pessoa, nosso segundo

exemplo, o PEM (Privacy Enhanced Mail), desenvolvido no final da década de

1980, é um padrão oficial da Internet descrito em quatro RFCs: da RFC 1421 até

a 1424. Grosso modo, o PEM cobre o mesmo território do PGP: privacidade e

autenticação para sistemas de correio eletrônico baseados na RFC 822. Todavia,

ele também tem algumas diferenças em relação ao PGP em termos de estratégia

e tecnologia.

Mensagens enviadas com o uso do PEM primeiro são convertidas em um formato

canônico, de modo que todas elas tenham as mesmas convenções sobre

espaços em branco (por exemplo, tabulações e espaços de separação). Em

seguida, um hash de mensagem é calculado com o MD2 ou o MD5. Depois, a

concatenação do hash e da mensagem é criptografada com o DES.

Considerando-se a conhecida fraqueza de uma chave de 56 bits, essa escolha é

sem dúvida suspeita. A mensagem criptografada pode então ser codificada com

o uso da codificação base64 e transmitida ao destinatário.

A exemplo do que acontece com o PGP, cada mensagem é criptografada com

uma chave de uso único enviada com a mensagem. A chave pode ser protegida

com o RSA ou com o DES triplo, utilizando o EDE.

O gerenciamento de chaves é mais estruturado que no PGP. As chaves têm

certificados X.509 emitidos pelas CAs, organizadas em uma hierarquia rígida

que começa em uma única raiz. A vantagem desse esquema é que a revogação

de certificados é possível, fazendo-se a raiz emitir CRLs periódicas.

O único problema do PEM é que ele jamais foi utilizado, embora já tenha sido

lançado há muito tempo. O problema era em grande parte político: quem ir ia

operar a raiz e sob que condições? Não faltavam candidatos, mas muitas

pessoas tinham receio de confiar a qualquer empresa a segurança do sistema

inteiro. A candidata mais séria era a RSA Security, Inc., que queria cobrar por
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 147 de 199
certificado emitido. Porém, algumas organizações se recusaram a aceitar essa

idéia. Em particular, o governo dos Estados Unidos teve permissão para usar

todas as patentes americanas gratuitamente, e empresas fora dos EUA se

acostumaram a usar o algoritmo RSA sem pagar por ele (a empresa se esqueceu

de patenteá-lo fora dos Estados Unidos). Ninguém ficou entusiasmado com a

possibilidade repentina de ter de pagar à RSA Security, Inc., pelo uso de algo

que sempre foi utilizado de graça. No final, não foi possível criar nenhuma raiz

e o PEM entrou em colapso.



[T3] 8.8.3 S/MIME

O próximo empreendimento da IETF relacionado à segurança de correio

eletrônico, foi denominado S/MIME (Secure/MIME), e é descrito nas RFCs 2632 a

2643. Como o PEM, ele oferece autenticação, integridade de dados, s igilo e não

repúdio. Ele também é bastante flexível, admitindo uma variedade de algoritmos

criptográficos. Considerando-se o nome, não surpreende que o S/MIME se

integre bem ao MIME, permitindo que todos os tipos de mensagens sejam

protegidos. Foi definida uma grande variedade de novos cabeçalhos MIME, por

exemplo, para conter assinaturas digitais.

A IETF definitivamente aprendeu algo com a experiência do PEM. O S/MIME não

tem uma estrutura rígida de certificados começando em uma única raiz. Em vez

disso, os usuários podem ter várias âncoras de confiança. Desde que a origem

de um certificado possa ser acompanhada até alguma âncora de confiança em

que o usuário acredite, ele é considerado válido. O S/MIME utiliza os algoritmos

e protocolos padrão que examinamos até agora; portanto, não o discutiremos

mais aqui. Para ver os detalhes, consulte as RFCs.



[T2] 8.9 Segurança da Web
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 148 de 199
Acabamos de estudar duas áreas importantes em que a segurança é necessária:

comunicações e correio eletrônico. Considere essas a entrada e o aperitivo.

Agora, vamos ao prato principal: a segurança da Web. A Web é o lugar em que

encontramos a maioria dos intrusos, espionando e fazendo seu trabalho sujo.

Nas próximas seções examinaremos alguns problemas e questões relacionadas

à segurança da Web.

Grosso modo, a segurança da Web pode ser dividida em três partes. Primeiro,

como os objetos e os recursos são nomeados com segurança? Em segundo

lugar, como é possível estabelecer conexões seguras e autenticadas? Terceiro, o

que acontece quando um Web site envia a um cliente um fragmento de código

executável? Depois de estudarmos algumas ameaças, vamos examinar todas

essas questões.



[T3] 8.9.1 Ameaças

Quase toda semana, lemos nos jornais notícias sobre problemas de segurança

de Web sites. A situação é realmente bastante séria. Vamos examinar alguns

exemplos do que já aconteceu. Primeiro, a home page de inúmeras

organizações é atacada e substituída por uma nova home page escolhida pelos

crackers. (O imprensa popular chama as pessoas que invadem computadores de

"hackers", mas muitos programadores reservam esse termo para os ótimos

programadores. Preferimos chamar esses invasores de "crackers".) Os sites

invadidos incluem Yahoo, o Exército dos Estados Unidos, a CIA, a NASA e o New

York Times. Na maioria dos casos, os crackers simplesmente colocavam algum

texto engraçado, e os sites eram reparados dentro de algumas horas.

Agora, vamos observar alguns casos muito mais sérios. Numerosos sites foram

derrubados por ataques de negação de serviço, nos quais o cracker inunda o

site com tráfego, tornando-o incapaz de responder a consultas legítimas. Com
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 149 de 199
freqüência, o ataque é montado a partir de um grande números de máquinas

que o cracker já invadiu (ataques DDoS). Esses ataques são tão comuns que já

não geram mais notícias, mas podem custar ao site atacado milhares de dólares

em negócios perdidos.

Em 1999, um cracker sueco invadiu o Web site Hotmail da Microsoft e criou um

site espelho que permitia a qualquer pessoa digitar o nome de um usuário do

Hotmail, e depois ler toda o correio eletrônico atual e arquivado da pessoa.

Em outro caso, um cracker russo de 19 anos chamado Maxim invadiu um Web

site de comércio eletrônico e roubou 300.000 números de cartões de crédito.

Em seguida, o cracker abordou os proprietários do site e informou que, se

recebesse 100.000 dólares, iria postar todos os números de cartões de crédito

na Internet. Eles não cederam à chantagem, e o cracker realmente publicou os

números dos cartões de crédito, causando muitos danos a muitas vítimas

inocentes.

Em um cenário diferente, um aluno da Califórnia de 23 anos enviou por correio

eletrônico um comunicado a uma agência de notícias, afirmando que a Emulex

Corporation iria anunciar um grande prejuízo trimestral e que o CEO da empresa

renunciaria imediatamente. Dentro de poucas horas, as ações caíram 60%,

fazendo os acionistas perderem mais de 2 bilhões de dólares. O atacante

ganhou 250.000 dólares vendendo suas ações pouco antes de enviar o anúncio.

Embora esse evento não represente a invasão de um Web site, é claro que a

inserção de um anúncio desse tipo na home page de qualquer grande

corporação teria um efeito semelhante.

Poderíamos (infelizmente) continuar como esse assunto por muitas páginas,

mas agora devemos examinar algumas questões técnicas relacionadas à

segurança da Web. Para obter mais informações sobre problemas de segurança

de todos os tipos, consulte (Anderson, 2001; Garfinkel com Spafford, 2002; e
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 150 de 199
Schneier, 2000). A pesquisa na Internet também resultará na apresentação de

um grande número de casos específicos.



[T3] 8.9.2 Nomenclatura segura

Vamos iniciar com algo bastante básico: Alice quer visitar o Web site de Bob. Ela

digita o URL de Bob em seu navegador e, em alguns segundos, surge uma

página da Web. Porém, será a página de Bob? Talvez sim e talvez não. Trudy

poderia colocar em prática mais uma vez seus velhos truques. Por exemplo, ela

poderia interceptar todos os pacotes enviados por Alice e examiná-los. Quando

capturar uma solicitação GET de HTTP endereçada ao Web site de Bob, ela

mesma pode ir até o Web site de Bob para obter a página, modificá-la como

desejar e retornar à Alice a página falsa. Alice nem ficaria sabendo. Pior ainda,

Trudy poderia diminuir os preços da loja eletrônica de Bob para tornar suas

mercadorias muito atraentes, fazendo Alice enviar seu número de cartão de

crédito para "Bob", a fim de adquirir algumas mercadorias.

Uma desvantagem desse clássico ataque de homem em posição intermediária é

que Trudy tem de estar em uma posição conveniente para interceptar o tráfego

enviado por Alice e forjar seu tráfego de entrada. Na prática, ela tem de bater

grampear a linha telefônica de Alice ou de Bob, pois é muito difícil grampear o

backbone de fibra óptica. Embora a espionagem ativa certamente seja possível,

ela exige um determinado volume de trabalho e, embora seja inteligente, Trudy

também é preguiçosa. Além disso, existem maneias mais fáceis de enganar

Alice.



[T4] Spoofing de DNS

Por exemplo, suponha que Trudy seja capaz de invadir o sistema DNS, talvez

apenas o cache DNS no ISP de Alice, e substitua o endereço IP de Bob (digamos,
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 151 de 199
36.1.2.3) por seu próprio endereço IP (digamos, 42.9.9.9). Isso leva ao ataque

explicado a seguir. O modo como ele deve funcionar é ilustrado na Figura

8.46(a). Aqui (1) Alice solicita ao DNS o endereço IP de Bob, (2) recebe esse

endereço, (3) pergunta a Bob por sua home page e (4) também recebe a home

page. Depois de Trudy ter modificado o registro de DNS de Bob para conter seu

próprio endereço IP em lugar do endereço de Bob, temos a situação da Figura

8.46(b). Nesse caso, quando Alice procurar o endereço IP de Bob receberá o de

Trudy, e então todo o tráfego destinado a Bob irá para Trudy. Agora, Trudy pode

montar um ataque de home em posição intermediária sem ter o trabalho de

grampear linhas telefônicas. Em vez disso, ela terá de invadir um servidor DNS e

alterar um único registro, uma proposta muito mais fácil.

[arte: ver original p. 807]

[Dísticos]

[1] Servidor DNS

Alice 1         2       Servidor da Web de Bob (36.1.2.3)

3

4

1. Dê-me o endereço IP de Bob

2. 36.1.2.3 (endereço IP de Bob)

3. GET index.html

4. Home page de Bob

(a)

[2] Servidor DNS invadido

Alice 1         2       Servidor da Web de Trudy (42.9.9.9)

3

4

1. Dê-me o endereço IP de Bob
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 152 de 199
2. 42.9.9.9 (endereço IP de Trudy)

3. GET index.html

4. Home page de Bob fraudada por Trudy

(b)

[F]Figura 8.46

[FL] (a) Situação normal. (b) Um ataque baseado na invasão do DNS e na

modificação do registro de Bob



Como Trudy poderia enganar o DNS? Na verdade, é relativamente fácil. Em

resumo, Trudy pode enganar o servidor DNS no ISP de Alice, enviando -lhe uma

consulta do endereço IP de Bob. Infelizmente, como o DNS utiliza o UDP, o

servidor DNS não tem nenhum meio real de verificar quem forneceu a resposta.

Trudy pode explorar essa propriedade forjando a resposta esperada e, desse

modo, injetar um falso endereço IP no cache do servidor DNS. Por simplicidade,

vamos supor que o ISP de Alice não tem inicialmente uma entrada para o Web

site de Bob, bob.com . Se tiver, Trudy pode esperar até ele entrar em timeout e

tentar mais tarde (ou usar outros truques).

Trudy inicia o ataque enviando uma solicitação de pesquisa ao ISP de Alice,

pedindo o endereço IP de bob.com. Tendo em vista que não existe nenhuma

entrada correspondente a esse nome DNS, o servidor de cache consulta o

servidor de nível superior em busca do domínio com, a fim de obter uma

entrada. No entanto, Trudy invade o servidor com e envia de volta uma resposta

falsa que informa: "bob.com é 42.9.9.9" mas, na realidade, o endereço IP é o

dela. Se sua falsa resposta voltar primeiro ao ISP de Alice, ela será guardada no

cache e a resposta real será rejeitada como uma resposta não solicitada a uma

consulta que não está mais pendente. Enganar um servidor DNS fazendo -o

instalar um falso endereço IP é uma ação chamada spoofing de DNS. Um cache
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 153 de 199
que contém um endereço IP intencionalmente falso como esse é chamado cache

envenenado.

Na realidade, nem tudo é assim tão simples. Primeiro, o ISP de Alice verifica se a

resposta contém o endereço IP de origem correto do servidor de nível superior.

Porém, como Trudy pode colocar o que quiser nesse campo de endereço IP, ela

pode anular com facilidade esse teste, pois os endereços IP dos servidores de

nível superior têm de ser públicos.

Em segundo lugar, para permitir que os servidores DNS saibam a resposta

correspondente a cada solicitação, todas as solicitações têm um número de

seqüência. Para enganar o ISP de Alice, Trudy tem de conhecer seu número de

seqüência atual. O modo mais fácil de aprender o número de seqüência atual é

Trudy registrar um domínio ela mesma, digamos, trudy-a-intrusa .com. Vamos

supor que seu endereço IP também seja 42.9.9.9. Ela também cria um servidor

DNS para seu novo domínio, dns.trudy -a-intrusa.com . Esse servidor utiliza

ainda o endereço IP de Trudy, 42.9.9.9, pois Trudy só tem um computador.

Agora, ela tem de dar ciência ao ISP de Alice de seu servidor DNS. Isso é fácil.

Tudo que ela tem de fazer é pedir ao ISP de Alice que lhe forneça foobar .trudy-

a-intrusa.com. Isso fará com que o ISP de Alice descubra quem serve ao novo

domínio de Trudy, solicitando o endereço ao servidor de endereços com de nível

superior.

Com dns.trudy-a-intrusa .com em segurança no cache do ISP de Alice, o ataque

real pode começar. Agora, Trudy consulta o ISP de Alice em busca de

www.trudy-a-intrusa.com . Naturalmente, o ISP envia ao servidor DNS de Trudy

uma consulta solicitando essa página. Essa consulta contém o número de

seqüência que Trudy está procurando. Rápida como um coelho, Trudy pede ao

ISP de Alice que procure Bob. Ela responde de imediato à sua própria pergunta,

enviando ao ISP uma resposta forjada, supostamente do servidor com de nível
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 154 de 199
superior, afirmando: "bob.com é 42.9.9.9". Essa resposta forjada contém um

número de seqüência uma unidade maior que o endereço que ela acabou de

receber. Enquanto isso, ela também pode enviar uma segunda falsificação com

um número de seqüência duas unidades mais alto, e talvez mais uma dezena de

números de seqüência crescentes. Um deles deverá corresponder. Os restantes

serão simplesmente descartados. Quando chegar a resposta forjada de Alice, ele

estará no cache; mais tarde quando chegar a resposta real, ele será rejeitado,

pois não haverá nenhuma consulta pendente nesse momento.

Agora, quando Alice procurar bob.com, será informada de que deve usar

42.9.9.9, o endereço de Trudy. Trudy montou um ataque de homem em posição

intermediária bem-sucedido, no conforto de sua própria sala de estar. As várias

etapas desse ataque estão ilustradas na Figura 8.47. Para piorar, esse não é o

único modo de enganar o DNS. Também existem muitos outros.

[arte: ver original p. 808]

[Dísticos]

[1] Servidor DNS para com

5       7       Cache do ISP de Alice

Trudy

1

2

3

4

6

[2] 1. Procura foobar.trudy-a-intrusa.com

(para forçá-lo no cache do ISP)

2. Procura www.trudy-a-intrusa.com

(para obter o próximo número de seqüência do ISP)
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 155 de 199
3. Solicita www.trudy-a-intrusa.com

(para transportar o próximo número de seqüência do ISP, n)

4. Rápida como um coelho, procura bob.com

(para forçar o ISP a consultar o servidor com na etapa 5)

5. Consulta legítima solicita bob.com usando seq = n+1

6. Resposta forjada de Trudy: Bob é 42.9.9.9, seq = n+1

7. Resposta real (rejeitada, chegou tarde demais)

[F]Figura 8.47

[FL] Como Trudy engana o ISP de Alice



[T4] DNS seguro

Esse ataque específico pode ser anulado fazendo-se os servidores DNS usarem

IDs aleatórias em suas consultas, em vez de simplesmente contarem; porém,

parece que toda vez que um furo é vedado, surge outro. O problema real é que

o DNS foi projetado em uma época na qual a Internet era um recurso de

pesquisa para algumas centenas de universidades e nem Alice, nem Bob, nem

Trudy tinham sido convidados para a festa. A segurança não era uma questão

importante naquele tempo, mas sim fazer a Internet funcionar. O ambiente

mudou de forma radical ao longo dos anos; assim, em 1994, a IETF instalou um

grupo de trabalho para tornar o DNS fundamentalmente seguro. Esse projeto é

conhecido como DNSsec (DNS security), e seu resultado é apresentado na RFC

2535. Infelizmente, o DNSsec ainda não teve uma distribuição total, e portanto

numerosos servidores DNS ainda estão vulneráveis a ataques de spoofing.

Em termos conceituais, o DNSsec é extremamente simples. Ele se baseia na

criptografia de chave pública. Cada zona DNS (no sentido da Figura 7.4) tem um

par chave pública/chave privada. Todas as informações enviadas por um

servidor DNS são assinadas com a chave privada da zona de origem, de forma
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 156 de 199
que o receptor possa verificar sua autenticidade.

O DNSsec oferece três serviços fundamentais:

1. Prova de onde os dados se originaram.

2. Distribuição de chave pública.

3. Autenticação de transação e solicitação.

O principal serviço é o primeiro, que verifica se os dados que estão sendo

retornados foram aprovados pelo proprietário da zona. O segundo é útil para

armazenar e recuperar chaves públicas com segurança. O terceiro é necessário

como proteção contra ataques por reprodução e spoofing. Observe que o sigilo

não é um serviço oferecido, pois todas as informações no DNS são consideradas

públicas. Tendo em vista que a implantação do DNSsec deverá demorar vários

anos, a habilidade de servidores conscientes da segurança para interoperar com

servidores que ignoram os aspectos a segurança é algo essencial; isso implica

que o protocolo não pode ser alterado. Agora, vamos observar alguns detalhes.

Os registros DNS são agrupados em conjuntos chamados RRSets (Resource

Record Sets), com todos os registros que têm o mesmo nome, a mesma classe e

o mesmo tipo sendo reunidos em um único conjunto. Por exemplo, um RRSet

pode conter vários registros A, se um nome DNS for resolvido em um endereço

IP primário e um endereço IP secundário. Os RRSets são estendidos com vários

tipos novos de registros (descritos a seguir). Cada RRSet passa por um hash

criptográfico (por exemplo, com o MD5 ou com o SHA-1). O hash é assinado

pela chave privada da zona (por exemplo, usando-se o RSA). A unidade de

transmissão para clientes é o RRSet assinado. Ao receber um RRSet assinado, o

cliente pode verificar se ele foi assinado pela chave privada da zona de origem.

Se a assinatura coincidir, os dados serão aceitos. Tendo em vista que cada RRSet

contém sua própria assinatura, os RRSets pode ser armazenados no cache em

qualquer lugar, até mesmo em servidores não confiáveis, sem trazer perigo à
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 157 de 199
segurança.

O DNSsec introduz vários tipos novos de registros. Os primeiro deles é o

registro KEY. Esse registro contém a chave pública de uma zona, um usuário,

um host ou outro protagonista, o algoritmo de criptografia usado na assinatura,

o protocolo empregado na transmissão e alguns outros bits. A chave pública é

armazenada em estado bruto. Os certificados X.509 não são usados devido a

seu tamanho. O campo do algoritmo contém um valor 1 para assinaturas

MD5/RSA (a opção preferida) e outros valores para outras combinações. O

campo de protocolo pode indicar o uso do IPsec ou de outros protocolos de

segurança, se houver.

O segundo dentre os novos tipos de registros é o registro SIG. Ele contém o

hash assinado de acordo com o algoritmo especificado no registro KEY. A

assinatura se aplica a todos os registros no RRSet, incluindo quaisquer registros

KEY presentes, mas excluindo ela própria. Ele também contém os horários em

que a assinatura inicia seu período de validade e de vencimento, bem como o

nome do signatário e de alguns outros itens.

O projeto do DNSsec é tal que a chave privada de uma zona pode ser mantida

off-line. Uma ou duas vezes por dia, o conteúdo do banco de dados de uma

zona pode ser transportado manualmente (por exemplo, em CD-ROM) para uma

máquina desconectada na qual a chave privada está localizada. Todos os RRSets

podem ser assinados nessa máquina e os registros SIG assim produzidos podem

ser transportados de volta ao servidor primário da zona em CD-ROM. Desse

modo, a chave privada pode ser armazenada em um CD-ROM bloqueado de

forma segura, exceto quando é inserido na máquina desconectada para assinar

os novos RRSets do dia. Depois que o processo de assinatura é concluído, todas

as cópias da chave são apagadas da memória, sendo o disco e o CD-ROM

devolvidos a um local seguro. Esse procedimento reduz a segurança eletrônica à
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 158 de 199
segurança física, algo que as pessoas entendem como tratar.

Esse método de assinatura prévia de RRSets aumenta bastante a velocidade do

processo de responder a consultas, pois nenhuma criptografia tem de ser feita

durante a execução. Em compensação, é necessário um grande volume de

espaço de disco para armazenar todas as chaves e assinaturas nos bancos de

dados DNS. Alguns registros aumentarão dez vezes em tamanho devido à

assinatura.

Quando um processo cliente obtém um RRSet assinado, ele tem de aplicar a

chave pública da zona de origem para decifrar o hash, calcular o próprio hash e

comparar os dois valores. Se eles concordarem, os dados serão considerados

válidos. Porém, esse procedimento faz surgir a seguinte questão: como o cliente

obtém a chave pública da zona? Uma alternativa é adquiri-la de um servidor

confiável, utilizando uma conexão segura (por exemplo, usando o IPsec).

Porém, na prática, espera-se que os clientes sejam pré-configurados com as

chaves públicas de todos os domínios de nível superior. Se agora Alice quiser

visitar o Web site de Bob, ela poderá solicitar ao DNS o RRSet de bob.com, que

conterá seu endereço IP e um registro KEY contendo a chave pública de Bob.

Esse RRSet será assinado pelo domínio com de nível superior, e assim Alice

poderá verificar facilmente sua validade. Um exemplo do que esse RRSet pode

conter é mostrado na Figura 8.48.

Agora, munida com uma cópia verificada da chave pública de Bob, Alice pode

pedir ao servidor DNS de Bob (executado por Bob) o endereço IP de

www.bob.com. Esse RRSet será assinado pela chave privada de Bob, e assim

Alice pode verificar a assinatura de Bob no RRSet que ele retorna. Se Trudy, de

alguma maneira, conseguir injetar um falso RRSet em qualquer dos caches, Alice

poderá detectar essa falta de autenticidade facilmente, porque o registro SIG

contido nele será incorreto.
TANENBAUM, ANDREW S.                    Computer Networks 4a edição.                 EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza                  AT08.DOC                CAPÍTULO 8/P. 159 de 199
Porém, o DNSsec também fornece um mecanismo criptográfico para vincular

uma resposta a uma consulta específica, a fim de impedir o tipo de ataque que

Trudy tentou realizar na Figura 8.47. Essa medida (opcional) contra o spoofing

adiciona à resposta um hash da mensagem de consulta assinado com a chave

privada do autor da resposta. Como Trudy não conhece a chave privada do

servidor com de nível superior, ela não pode forjar uma resposta a uma consulta

ao ISP de Alice enviada pelo ISP. Sem dúvida, ela pode receber sua resposta de

volta primeiro, mas essa resposta será rejeitada devido à assinatura inválida do

hash.

[arte: ver original p. 811]

[T]Tabela

Nome de domínio Validade                    Classe           Tipo Valor

bob.com.        86400              IN       A        36.1.2.3

bob.com.        86400              IN       KEY      3682793A7B73F73 1 029CE2737D...

bob.com.        86400              IN       SIG      86947503A8B848F5272E53930C...

[F]Figura 8.48

[FL] Um exemplo de RRSet para bob.com . O registro KEY é chave pública de Bob.

O registro SIG é o hash assinado do servidor com de nível superior dos registros

A e KEY, a fim de verificar sua autenticidade



O DNSsec também admite alguns outros tipos de registros. Por exemplo, o

registro CERT pode ser usado para armazenar certificados (por exemplo, X.509).

Esse registro é fornecido, porque algumas pessoas querem transformar o DNS

em uma PKI. Resta saber se de fato isso é possível. Interromperemos nossa

discussão sobre o DNSsec aqui. Para obter mais detalhes, consulte a RFC 2535.



[T4] Nomes de certificação automática
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 160 de 199
O DNS seguro não é a única possibilidade para proteger nomes. Uma abordagem

completamente diferente é usada no Secure File System (Mazières et al., 1999).

Nesse projeto, os autores criaram um sistema de arquivos seguro e escalável de

âmbito mundial, sem modificar o DNS (padrão) e sem usar certificados ou supor

a existência de uma PKI. Nesta seção, mostraremos como suas idéias poderiam

ser aplicadas à Web. Conseqüentemente, na descrição a seguir, usaremos a

terminologia da Web em lugar da terminologia de sistemas de arquivos usada

no artigo original. Porém, para evitar qualquer confusão possível , embora esse

esquema pudesse ser aplicado à Web para alcançar alta segurança, ele não está

em uso no momento e seriam necessárias mudanças significativas no software

para introduzi-lo.

Começaremos supondo que cada servidor da Web tem um par chave

pública/chave privada. A essência da idéia é que cada URL contém um hash

criptográfico do nome do servidor e da chave pública como parte do URL. Por

exemplo, na Figura 8.49 vemos o URL correspondente à foto de Bob. Ele começa

com o esquema habitual http, seguido pelo nome DNS do servidor

(www.bob.com ). Depois, há um ponto-e-vírgula e um hash de 32 caracteres. No

final, tem-se o nome do arquivo, de novo da maneira habitual. Exceto pelo

hash, esse é um URL padrão. Com o hash, ele é um URL de certificação

automática.

[arte: ver original p. 812]

[Dísticos]

[1]

Servidor        SHA-1 (Servidor, Chave pública do servidor)            Nome do arquivo

http://www.bob.com:2g5hd8bfjkc7mf6hg8dgany23xds4pe6/photos/bob.jpg

[F]Figura 8.49

[FL] Um URL de certificação automática contendo um hash do nome e da chave
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 161 de 199
pública do servidor



A pergunta óbvia é: para que serve o hash? O hash é calculado concatenando -se

o nome DNS do servidor com a chave pública do servidor e passando -se o

resultado pela função SHA-1, a fim de se obter um hash de 160 bits. Nesse

esquema, o hash é representado como uma seqüência de 32 dígitos e letras

minúsculas, com exceção das letras "l" e "o" e dos dígitos "1" e "0", para evitar

confusão. Isso nos dá 32 dígitos e letras possíveis. Com 32 caracteres

disponíveis, cada um pode codificar um string de 5 bits. Um string de 32

caracteres pode conter o hash SHA-1 de 160 bits. Na realidade, não é

necessário usar um hash; a própria chave poderia ser empregada. A vantagem

do hash é reduzir o tamanho do nome.

No modo mais simples (embora menos conveniente) de ver a foto de Bob, Alice

digita apenas o string da Figura 8.49 em seu navegador. O navegador envia uma

mensagem ao Web site de Bob, solicitando sua chave pública. Quando chega a

chave pública de Bob, o navegador concatena o nome do servidor e a chave

pública, e executa o algoritmo de hash. Se o resultado coincidir com o hash de

32 caracteres no URL seguro, o navegador terá certeza de que possui a chave

pública de Bob. Afinal, devido às propriedades do SHA-1, ainda que Trudy

intercepte a solicitação e falsifique a resposta, ela não terá como encontrar uma

chave pública que forneça o hash esperado. Qualquer interferência de sua parte

será então detectada. A chave pública de Bob pode ser armazenada no cache

para uso futuro.

Agora, Alice tem de verificar se Bob tem a chave privada correspondente. Ela

elabora uma mensagem contendo uma chave de sessão AES proposta, um nonce

e um timbre de hora. Em seguida, Alice codifica a mensagem com a chave

pública de Bob e a envia a ele. Tendo em vista que somente Bob tem a chave
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 162 de 199
privada correspondente, apenas Bob pode decifrar a mensagem e devolver o

nonce codificado com a chave AES. Ao receber o nonce correto codificado com o

AES, Alice sabe que está se comunicando com Bob. Além disso, Alice e Bob têm

agora uma chave de sessão AES para solicitações GET e respostas subseqüentes.

Uma vez Alice tenha a fotografia de Bob (ou qualquer página da Web), ela pode

identificá-la com um marcador (bookmark), para não ter de digitar outra vez o

URL completo. Além disso, os URLs incorporados a páginas da Web também

podem ser URLs de certificação automática, e portanto podem ser usados com

um simples clique sobre eles, mas com a segurança adicional de se saber que a

página retornada é a página correta. Outras formas de evitar a digitação inicial

dos URLs de certificação automática são: enviá-los por uma conexão segura a

um servidor confiável ou incluí-los em certificados X.509 assinados por CAs.

Outra alternativa para obter URLs de certificação automática seria conectar-se a

um mecanismo de pesquisa confiável digitando seu URL de certificação

automática (na primeira vez) e passando pelo mesmo protocolo descrito

anteriormente, o que leva a uma conexão segura e autenticada para o

mecanismo de pesquisa confiável. Então, o mecanismo de pesquisa poderia ser

consultado, com os resultados aparecendo em uma página assinada repleta de

URLs de certificação automática que poderiam ser ativados por cliques, sem a

necessidade de digitar longos strings.

Agora, vamos ver como essa abordagem se comporta no caso do spoofing de

DNS de Trudy. Se Trudy conseguir envenenar o cache do ISP de Alice, a

solicitação de Alice poderá ser entregue a Trudy, e não a Bob. Contudo, agora o

protocolo exige que o destinatário de mensagem inicial (isto é, Trudy) retorne

uma chave pública que produza o hash correto. Se Trudy retornar sua própria

chave pública, Alice descobrirá imediatamente porque o hash do SHA-1 não

coincidirá com o URL de certificação automática. Se Trudy retornar a chave
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 163 de 199
pública de Bob, Alice não detectará o ataque, mas codificará sua próxima

mensagem, usando a chave de Bob. Trudy receberá a mensagem, mas não terá

como decodificá-la para extrair a chave AES e o nonce. De qualquer modo, tudo

que o spoofing de DNS poderá fazer será um ataque de negação de serviço.



[T3] 8.9.3 SSL — Secure Sockets Layer

A nomenclatura segura é um bom começo, mas existem vários outros detalhes

sobre segurança da Web. A próxima etapa é gerar conexões seguras. Agora,

vamos examinar como as conexões seguras podem ser alcançadas.

Quando a Web repentinamente chegou ao público, ela foi usada no início apenas

para distribuir páginas estáticas. Porém, em pouco tempo, algumas empresas

tiveram a idéia de usá-la para transações financeiras, como a compra de

mercadorias por cartões de crédito, transações bancárias on-line e mercado de

capitais eletrônico. Essas aplicações criaram uma demanda por conexões

seguras. Em 1995, a Netscape Communications Corp., que então dominava o

mercado de fabricantes de navegadores, respondeu introduzindo um pacote de

segurança chamado SSL (Secure Sockets Layer) para atender a essa demanda.

Esse software e seu protocolo agora também são amplamente utilizados pelo

Internet Explorer, e portanto vale a pena examiná-los com mais detalhes.

A SSL constrói uma conexão segura entre dois soquetes, incluindo:

1. Negociação de parâmetros entre cliente e servidor.

2. Autenticação mútua de cliente e servidor.

3. Comunicação secreta.

4. Proteção da integridade dos dados.

Já vimos esses itens antes, e portanto não há necessidade de desenvolvê -los.

O posicionamento da SSL na pilha de protocolos habitual é ilustrado na Figura

8.50. Efetivamente, trata-se de uma nova camada colocada entre a camada de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 164 de 199
aplicação e a camada de transporte, aceitando solicitações do navegador e

enviando-as ao TCP para transmissão ao servidor. Depois que a conexão segura

é estabelecida, a principal tarefa da SSL é manipular a compactação e a

criptografia. Quando o HTTP é usado sobre a SSL, ele se denomina HTTPS

(Secure HTTP), embora seja o protocolo HTTP padrão. Às vezes, ele está

disponível em uma nova porta (443), em lugar da porta padrão (80). A

propósito, a SSL não se limita ao uso apenas com navegadores da Web, mas

essa é sua aplicação mais comum.

[arte: ver original p. 814]

[Dísticos]

[1] Aplicação (HTTP)

[2] Segurança (SSL)

[3] Transporte (TCP)

[4] Rede (IP)

[5] Enlace de dados (PPP)

[6] Física (modem, ADSL, TV a cabo)

[F]Figura 8.50

[FL] Camadas (e protocolos) para um usuário doméstico navegando com a SSL



O protocolo SSL passou por várias versões. Descreveremos apenas a versão 3, a

versão mais amplamente utilizada. A SSL admite uma variedade de algoritmos e

opções distintas. Essas opções incluem a presença ou a ausência de

compactação, os algoritmos criptográficos a serem usados e algumas questões

relativas a restrições de exportação impostas à criptografia. A última se destina

principalmente a assegurar que a criptografia séria será utilizada apenas

quando ambas as extremidades da conexão estiverem nos Estados Unidos. Em

outros casos, as chaves serão limitadas a 40 bits, que os criptógrafos
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 165 de 199
consideram uma piada. A Netscape foi forçada a colocar essa restrição para

obter uma licença de exportação do governo dos Estados Unidos.

A SSL consiste em dois subprotocolos, um para estabelecer uma conexão segura

e outro para usá-la. Vamos começar examinando como as conexões seguras são

estabelecidas. O subprotocolo de estabelecimento de conexões é mostrado na

Figura 8.51. Ele começa com a mensagem 1, quando Alice envia uma solicitação

a Bob para estabelecer uma conexão. A solicitação especifica a versão de SSL

que Alice tem e suas preferências com relação aos algoritmos de compactação e

de criptografia. Ela também contém um nonce RA, a ser usado mais tarde.

Agora é a vez de Bob. Na mensagem 2, Bob faz uma escolha entre os diversos

algoritmos que Alice pode admitir e envia seu próprio nonce RB. Em seguida, na

mensagem 3, ele envia um certificado contendo sua chave pública. Se esse

certificado não for assinado por alguma autoridade conhecida, ele também envia

uma cadeia de certificados que pode ser seguida de volta até chegar a uma

autoridade original. Todos os navegadores, inclusive o de Alice, são pré -

carregados com cerca de 100 chaves públicas; assim, se Bob puder estabelecer

uma cadeia ancorada em uma dessas chaves, Alice será capaz de verificar a

chave pública de Bob. Nesse momento, Bob pode enviar algumas outras

mensagens (como uma solicitação do certificado de chave pública de Al ice). Ao

terminar, Bob envia a mensagem 4 para dizer a Alice que agora é a vez dela.

Alice responde escolhendo ao acaso uma chave pré-mestre de 384 bits e a

envia para Bob, codificada com a chave pública de Bob (mensagem 5). A chave

de sessão real usada para codificar os dados é derivada da chave pré-mestre

combinada com ambos os nonces de modo complexo. Depois que a mensagem

5 é recebida, Alice e Bob são capazes de calcular a chave de sessão. Por essa

razão, Alice informa a Bob que ele deve passar para a nova cifra (mensagem 6) e

também que ela concluiu o subprotocolo de estabelecimento (mensagem 7). Bob
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 166 de 199
então confirma as menagens de Alice (mensagens 8 e 9).

Porém, embora Alice saiba quem é Bob, Bob não sabe quem é Alice (a menos

que Alice tenha uma chave pública e um certificado correspondente a ela, uma

situação improvável para um indivíduo). Portanto, a primeira mensagem de Bob

pode ser uma solicitação para Alice se conectar usando um nome de login e uma

senha estabelecidos anteriormente. No entanto, o protocolo de login está fora

do escopo da SSL. Depois que ele é realizado, por quaisquer meios, o transporte

de dados pode se iniciar.

[arte: ver original p. 815]

Atenção, produção!

Não foi possível reproduzir os dísticos desta figura. Sugiro que a ima gem seja

digitalizada integralmente, pois não há nada a traduzir.

[F]Figura 8.51

[FL] Uma versão simplificada do subprotocolo de estabelecimento de conexões

da SSL



Como mencionamos antes, a SSL admite vários algoritmos de criptografia. O

mais forte usa o DES triplo com três chaves separadas para criptografia e com o

SHA-1, a fim de manter a integridade das mensagens. Essa combinação é

relativamente lenta, e assim é usada principalmente em aplicações bancárias e

outras aplicações nas quais é exigida a mais alta segurança. Para aplicações

comuns de comércio eletrônico, é usado o RC4 com uma chave de 128 bits para

criptografia, e o MD5 é empregado para autenticação de mensagens. O RC4

utiliza a chave de 128 bits como uma semente e a expande até um número

muito maior para uso interno. Em seguida, ele usa esse número interno para

gerar um fluxo de chaves. O fluxo de chaves é submetido a uma operação XOR

com o texto simples para fornecer uma cifra de fluxo clássica, como vimos na
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 167 de 199
Figura 8.14. As versões de exportação também utilizam o RC4 com chaves de

128 bits, mas 88 dos bits são divulgados ao público para facilitar a violação da

cifra.

Para o transporte real, é usado um segundo subprotocolo, como mostra a Figura

8.52. Primeiro, as mensagens do navegador são divididas em unidades de até

16 KB. Se a compactação estiver ativa, cada unidade será então compactada

separadamente. Depois disso, uma chave secreta derivada dos dois nonces e da

chave pré-mestre é concatenada com o texto compactado, e o resultado passa

por um hash com o algoritmo de hash combinado (normalmente, o MD5). Esse

hash é anexado a cada fragmento como o MAC. O fragmento compactado

somado ao MAC é então codificado com o algoritmo de criptografia simétrica

estabelecido de comum acordo (em geral, por uma operação XOR entre ele e o

fluxo de chaves do RC4). Por fim, é anexado um cabeçalho de fragmento e o

fragmento é transmitido pela conexão TCP.

[arte: ver original p. 816]

[Dísticos]

[1] Fragmentação

Compactação

MAC adicionado

Criptografia

Cabeçalho adicionado

[2] Mensagem do navegador

[3] Parte 1             Parte 2

[4] Código de autenticação de mensagens

[F]Figura 8.52

[FL] Transmissão de dados com a SSL
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 168 de 199
No entanto, é importante um alerta. Por ter sido mostrado que o RC4 tem

algumas chaves fracas que podem ser facilmente analisadas com o uso da

criptografia, a segurança da SSL usando o RC4 é instável. (Fluhrer et al., 2001).

Os navegadores que permitem ao usuário escolher o conjunto de cifras devem

ser configurados para usar o DES triplo com chaves de 168 bits e o SHA-1 o

tempo todo, embora essa combinação seja mais lenta que o RC4 e o MD5.

Outro problema com a SSL é que os protagonistas não podem ter certificados e,

mesmo que tenham, eles nem sempre verificam se as chaves que estão sendo

usadas correspondem aos certificados.

Em 1996, a Netscape Communications Corp. submeteu a SSL à IETF para

padronização. O resultado foi a TLS (Transport Layer Security), descrita na RFC

2246.

As mudanças feitas na SSL foram relativamente pequenas, mas suficientes para

a SSL versão 3 e a TLS não conseguirem interoperar. Por exemplo, o modo como

a chave de sessão é derivada da chave pré-mestre e dos nonces mudou para

tornar a chave mais forte (isto é, mais difícil de ser violada por criptoanálise). A

versão da TLS também é conhecida como SSL versão 3.1. As primeiras

implementações apareceram em 1999, mas ainda não está claro se a TLS

substituirá a SSL na prática, embora ela seja um pouco mais forte. Contudo

permanece o problema de chaves RC4 fracas.



[T3] 8.9.4 Segurança do código móvel

A nomenclatura e as conexões são duas áreas de preocupação relacionadas à

segurança da Web, mas existem outras. No início, quando as páginas da Web

eram apenas arquivos estáticos de HTML, elas não continham código executável.

Agora, as páginas freqüentemente contêm pequenos programas, inclusive

miniaplicativos Java, controles ActiveX e JavaScripts. Baixar e executar esse
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 169 de 199
código móvel é sem dúvida um grande risco de segurança; por essa razão,

foram criados vários métodos para minimizá-lo. Agora, veremos rapidamente

algumas questões geradas pelo código móvel e algumas abordagens para lidar

com ele.



[T4] Segurança de miniaplicativos Java

Os miniaplicativos (applets) Java são pequenos programas em Java, compilados

para uma linguagem de máquina orientada para pilhas, chamada JVM (Java

Virtual Machine). Eles podem ser colocados em uma página da Web para serem

transferidos por download juntamente com a página. Depois que a página é

carregada, os miniaplicativos são inseridos em um interpretador JVM no

navegador, como ilustra a Figura 8.53.

[arte: ver original p. 817]

[Dísticos]

[1] Espaço de endereços virtuais

OxFFFFFFFF

[2] Miniaplicativo não confiável

[3] Sandbox

Interpretador

[4] Miniaplicativo confiável

[5] 0           Navegador da Web

[F]Figura 8.53

[FL] Os miniaplicativos podem ser interpretados por um navegador da Web



A vantagem de executar código interpretado sobre código compilado é que cada

instrução é examinada pelo interpretador antes de ser executada. Isso dá ao

interpretador a oportunidade de verificar se o endereço da instrução é válido.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 170 de 199
Além disso, as chamadas do sistema também são captadas e interpretadas. A

forma como essas chamadas são manipuladas é um assunto relacionado à

política de segurança. Por exemplo, se um miniaplicativo for confiável (por

exemplo, se ele veio do disco local), suas chamadas do sistema poderão ser

executadas sem questionamentos. Porém, se um miniaplicativo não for confiável

(por exemplo, se veio da Internet), ele poderá ser encapsulado em uma sandbox

(caixa de areia) para limitar seu comportamento e bloquear suas tentativas de

usar recursos de sistema.

Quando um miniaplicativo tenta usar um recurso do sistema, sua chamada é

repassada a um monitor de segurança para aprovação. O monitor examina a

chamada levando em conta a política de segurança local e depois toma a

decisão de permiti-la ou rejeitá-la. Desse modo, é possível dar aos

miniaplicativos acesso a alguns recursos, mas não a todos. Infelizmente, a

realidade é que o modelo de segurança funciona mal e que os bugs que ele

contém surgem o tempo todo.



[T4] ActiveX

Os controles ActiveX são programas binários do Pentium que podem ser

incorporados às páginas da Web. Quando um deles é encontrado, é realizada

uma verificação para saber se ele deve ser executado e, se passar no teste, o

programa é executado. Um controle AtiveX não é interpretado ou colocado em

uma sandbox de forma alguma; portanto, tem tanto poder como qualquer outro

programa do usuário e tem potencial para causar grandes danos. Desse modo,

toda a segurança se resume à decisão de executar ou não o controle ActiveX.

O método que a Microsoft escolheu para tomar essa decisão se baseia na idéia

de assinatura de código. Cada controle ActiveX é acompanhado por uma

assinatura digital — um hash do código assinado por seu criador com o uso de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 171 de 199
criptografia de chave pública. Quando um controle ActiveX se mostra, primeiro

o navegador verifica a assinatura para ter certeza de que ele não foi adulterado

em trânsito. Se a assinatura estiver correta, o navegador consulta suas tabelas

internas para ver se o criador do programa é confiável, ou se existe uma cadeia

de confiança que leve de volta até um criador confiável. Se o criador for

confiável, o programa será executado; caso contrário, ele não ser á executado. O

sistema da Microsoft para verificar controles ActiveX é chamado Authenticode.

É útil comparar as abordagens Java e ActiveX. Com a abordagem Java, não é

feita nenhuma tentativa para determinar quem escreveu o miniaplicativo. Em vez

disso, um interpretador run-time certifica-se de que ele não executa ações que

o proprietário da máquina afirmou que os miniaplicativos não poderiam

executar. Em contraste, no caso da assinatura de código, não é feita nenhuma

tentativa de monitorar o comportamento run-time do código móvel. Se veio de

uma origem confiável e não foi modificado em trânsito, ele simplesmente é

executado. Não há nenhuma tentativa de verificar se o código é malicioso ou

não. Se era intenção do programador original criar um código que formatasse o

disco rígido e depois apagasse a ROM flash para que o computador nunca mais

pudesse ser inicializado, isso não importa: se o programador foi certificado

como confiável, o código será executado e destruirá o computador (a menos

que os controles ActiveX estejam desativados no navegador).

Muitas pessoas têm receio de confiar em uma empresa de software

desconhecida. Para demonstrar o problema, um programador em Seattle formou

uma empresa de software e conseguiu certificação como origem fidedigna, o

que é fácil. em seguida, desenvolveu um controle ActiveX que provocava um

desligamento limpo da máquina e distribuiu amplamente seu controle ActiveX.

Ele desativou muitas máquinas, mas elas podiam simplesmente ser

reinicializadas, e portanto não havia nenhum dano. O programador estava
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 172 de 199
apenas tentando expor o problema ao mundo. A resposta oficial foi revogar o

certificado para esse controle ActiveX específico, o que encerrou um breve

episódio de forte embaraço, mas o problema subjacente está persiste, à espera

de que um programador diabólico o explore (Garfinkel com Spafford, 2002).

Tendo em vista que não há como policiar milhares de empresas de software que

poderiam desenvolver código móvel, a técnica de assinatura de código é um

desastre que pode ocorrer a qualquer momento.



[T4] JavaScript

O JavaScript não tem nenhum modelo de segurança formal, mas tem um longo

histórico de implementações inseguras. Cada fornecedor cuida da segurança de

um modo diferente. Por exemplo, a versão 2 do Netscape Navigator usava algo

similar ao modelo do Java mas, na versão 4, essa estratégia foi abandonada em

favor de um modelo de assinatura de código.

O problema fundamental é que permitir a execução de código estranho em sua

máquina é procurar problemas. Do ponto de vista da segurança, é como

convidar um assaltante a entrar em sua casa, e depois tentar observá -lo com

cuidado para que ele não possa escapar da cozinha para a sala de estar. Se

acontecer algo inesperado e você estiver distraído por um momento, poderão

surgir conseqüências desastrosas. A tensão aqui é o fato de que o código móvel

permite imagens gráficas atraentes e interação rápida, e muitos projetistas de

Web sites acham que isso é muito mais importante que a segurança,

especialmente quando é a máquina de outra pessoa que está correndo riscos.



[T4] Vírus

Os vírus são outra forma de código móvel. Porém, diferentes dos exemplos

anteriores, os vírus sempre chegam sem ser convidados. A diferença entre um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 173 de 199
vírus e o código móvel comum é que os vírus são desenvolvidos para se

reproduzir. Quando um vírus chega, seja através de uma página da Web, em um

anexo de correio eletrônico ou de algum outro modo, em geral ele começa

infectando programas executáveis no disco. Quando um desses programas é

executado, o controle é transferido para o vírus que, em geral, tenta se difundir

para outras máquinas, por exemplo, enviando cópias de si mesmo por correio

eletrônico para todas as pessoas que têm seus nomes no catálogo de endereços

da vítima. Alguns vírus infectam o setor de inicialização do disco rígido; assim,

quando a máquina é inicializada, o vírus é executado. Os vírus se tornaram um

problema enorme na Internet e causam prejuízos de bilhões de dólares. Não

existe nenhuma solução óbvia. Talvez uma nova geração de sistemas

operacionais, inteiramente baseada em microkernels seguros e rígida divisão

dos usuários, processos e recursos em compartimentos estanques possa ajudar

a resolver o problema.



[T2] 8.10 Questões sociais

A Internet e sua tecnologia de segurança é uma área para a qual convergem as

questões sociais, a política pública e a tecnologia, freqüentemente com enormes

conseqüências. Apresentaremos a seguir um breve exame de três áreas:

privacidade, liberdade de expressão e direito autoral. É desnecessário dizer que

aqui trataremos esse assunto de maneira superficial. Para leitura adicional,

consulte (Anderson, 2001; Garfinkel com Spafford, 2002; e Schneier, 2000). A

Internet também está repleta de material sobre o tema. Basta digitar palavras

como "privacidade", "censura" e "direito autoral" em qualquer mecanismo de

pesquisa. Além disso, veja alguns links no Web site deste livro.



[T3] 8.10.1 Privacidade
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 174 de 199
As pessoas têm direito à privacidade? Boa pergunta. A Quarta Emenda da

Constituição dos Estados Unidos proíbe o governo de realizar buscas nas casas

das pessoas, vasculhar seus documentos e seus bens sem uma boa razão, e

continua a restringir as circunstâncias sob as quais devem ser emitidos os

mandados de busca. Desse modo, a privacidade é um direito público há mais de

200 anos, pelo menos nos Estados Unidos.

O que mudou na última década foi a facilidade com que os governos podem

espionar seus cidadãos e a facilidade com que os cidadãos podem impedir tais

atos de espionagem. No Século 18, para o governo realizar buscas nos

documentos de um cidadão, ele tinha de enviar um policial a cavalo até a

fazenda do cidadão, exigindo a apresentação de certos documentos. Era um

procedimento incômodo. Hoje em dia, as companhias telefônicas e os

provedores da Internet fornecem prontamente grampos ao receberem mandados

de busca. Isso facilita a vida do policial e ele não corre o risco de cair do cavalo.

A criptografia muda tudo isso. Qualquer pessoa que se dê o trabalho de baixar e

instalar o PGP e que utilize uma chave com força de alienígena bem protegida

pode ter certeza de que ninguém no universo conhecido poderá ler sua

correspondência de correio eletrônico, com ou sem mandado de busca. Os

governos entendem bem esse problema e não o apreciam. A privacidade real

significa que é muito mais difícil seus agentes espionarem criminosos de todos

os tipos, mas também é muito mais difícil espionar jornalistas e adversários

políticos. Conseqüentemente, alguns governos restringem ou proíbem o uso ou

a exportação de criptografia. Por exemplo, na França, antes de 1999, toda

criptografia era proibida, a menos que o governo recebesse as chaves.

A França não estava só. Em abril de 1993, o governo dos Estados Unidos

anunciou sua intenção de criar um criptoprocessador em hardware, o

@@@clipper chip, o padrão para todas as comunicações em rede. Desse modo,
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 175 de 199
diziam, a privacidade dos cidadãos estaria garantida. Ele também mencionava

que o chip fornecia ao governo a possibilidade de decodificar todo tráfego por

meio de um esquema chamado custódia de chaves, que permitia o acesso do

governo a todas as chaves. No entanto, ele prometia só espiar quando tivesse

um mandado de busca válido. Não é preciso dizer que o resultado foi uma

enorme agitação, com os defensores da privacidade denunciando todo o plano e

os promotores de justiça elogiando o esquema. Eventualmente, o governo

voltou atrás e descartou a idéia.

Há um grande volume de informações sobre privacidade eletrônica disponível

no Web site da Electronic Frontier Foudation, em www.eff.org.



[T4] Repostadores anônimos

PGP, SSL e outras tecnologias tornam possível duas partes estabelecerem

comunicação segura e autenticada, livre de vigilância e interferência de

terceiros. Porém, às vezes a privacidade é melhor servida quando não há

autenticação, tornando a comunicação anônima. O anonimato pode ser

interessante em mensagens ponto a ponto, newsgroups ou ambos.

Vamos considerar alguns exemplos. Primeiro, dissidentes políticos que vivem

em regimes autoritários muitas vezes desejam se comunicar de forma anônima

para escapar da prisão ou de serem assassinados. Em segundo lugar, delitos em

muitas organizações corporativas, educacionais, governamentais e outras

freqüentemente são expostos por delatores, que muitas vezes preferem

permanecer anônimos para evitar represálias. Em terceiro lugar, pessoas com

visões sociais, políticas ou religiosas impopulares podem desejar se comunicar

umas com as outras por correio eletrônico ou newsgroups, sem se expor. Em

quarto lugar, as pessoas podem desejar discutir alcoolismo, doenças mentais,

abusos sexuais, pedofilia, ou ainda participar de um newsgroup formado por
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 176 de 199
uma minoria perseguida sem terem de revelar sua identidade. É claro que

existem vários outros exemplos.

Vamos considerar um exemplo específico. Na década de 1990, alguns críticos

de um grupo religioso não tradicional postaram suas opiniões em um

newsgroup da USENET por meio de um repostador anônimo. Esse servidor

permitiu que os usuários criassem pseudônimos e enviassem mensagens de

correio eletrônico ao servidor, que então reencaminhava ou repostava as

mensagens usando o pseudônimo; assim, ninguém poderia saber de onde a

mensagem veio de fato. Algumas postagens revelavam que as afirmações do

grupo religioso eram segredos comerciais e documentos protegidos por direitos

autorais. O grupo religioso respondeu informando às autoridades locais que

seus segredos comerciais tinham sido descobertos e seus direitos autorais

infringidos, e ambos os crimes tinham origem no servidor que foi localizado.

Seguiu-se um processo criminal e o operador do servidor foi compelido a

entregar às autoridades as informações de mapeamento que revelavam as

verdadeiras identidades das pessoas que tinham feito as postagens. (A

propósito, essa não foi a primeira vez que uma religião ficou insatisfeita por que

alguém divulgou seus segredos: William Tyndale foi queimado na fogueira 1536

por traduzir a Bíblia para o idioma Inglês).

Um segmento significativo da comunidade da Internet foi ultrajado por essa

brecha de confidencialidade. Todos chegaram à conclusão que um repostador

anônimo que armazena um mapeamento entre endereços reais de correio

eletrônico e pseudônimos (chamado repostador do tipo 1) não vale a pena. Esse

caso estimulou diversas pessoas a criarem repostadores anônimos capazes de

resistir a ataques de intimação.

Esses novos repostadores, freqüentemente chamados repostadores cypherpunk,

funcionam da maneira ilustrada a seguir. O usuário produz uma mensagem de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 177 de 199
correio eletrônico completa, com cabeçalhos RFC 822 (exceto Form:, é claro),

codifica a mensagem com a chave pública do repostador e a envia ao

repostador. Lá, os cabeçalhos RFC 822 externos são extraídos, o conteúdo é

decodificado e a mensagem é repostada. O repostador não tem contas e não

mantém nenhum log; assim, mesmo que o servidor seja confiscado mais tarde,

não conservará nenhum traço de mensagens que tenham passado por ele.

Muitos usuários que desejam anonimato encadeiam suas solicitações por vários

repostadores anônimos, como mostra a Figura 8.54. Aqui, Alice deseja enviar a

Bob um cartão pelo Dia dos namorados (um cartão realmente anônimo) e para

isso ela utiliza três repostadores. Alice redige a mensagem, M, e insere um

cabeçalho contendo endereço de correio eletrônico de Bob. Em seguida, ela

codifica toda a mensagem com a chave pública do repostador 3, E3 (indicada na

figura pela hachura horizontal). Para isso, ela anexa um cabeçalho com o

endereço de correio eletrônico do repostador 3 em texto simples. Essa é a

mensagem mostrada entre os repostadores 2 e 3 na figura.

Depois, Alice codifica essa mensagem com a chave pública do repostador 2, E2

(indicada pela hachura vertical) e acrescenta um cabeçalho de texto simples

contendo o endereço de correio eletrônico do repostador 2. Essa mensagem é

mostrada entre 1 e 2 na Figura 8.54. Finalmente, ela codifica a mensagem

inteira com a chave pública do repostador 1, E1, e acrescenta um cabeçalho de

texto simples com o endereço de correio eletrônico do repostador 1. Essa é a

mensagem mostrada à direita de Alice na figura e é a mensagem que ela de fato

transmite.

[arte: ver original p. 822]

[Dísticos]

[1] Para 1

Para 2
TANENBAUM, ANDREW S.                   Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza                AT08.DOC              CAPÍTULO 8/P. 178 de 199
Para 3

Para Bob

M

[2] Codificada com E 1

[3] Para 2

Para 3

Para Bob

M

[4] Codificada com E 2

[5] Para 3

Para Bob

M

[6] Codificada com E 3

[7] Para Bob

M

[8] Alice       1       2          3       Bob

[9] Repostador anônimo

[F]Figura 8.54

[FL] Como Alice utiliza 3 repostadores para enviar uma mensagem a Bob



Quando a mensagem chega ao repostador 1, o cabeçalho exterior é extraído. O

corpo é decodificado e depois enviado por correio eletrônico para o repostador

2. Etapas semelhantes ocorrem nos outros dois repostadores.

Embora seja extremamente difícil para alguém rastrear a mensagem final de

volta até Alice, muitos repostadores tomam precauções de segurança adicionais.

Por exemplo, eles podem reter as mensagens por um período de tempo

aleatório, adicionar ou remover lixo no fim de uma mensagem e ainda reordenar
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 179 de 199
as mensagens, tudo com a finalidade de tornar mais difícil alguém descobrir

que saída de mensagem de um repostador corresponde a cada entrada, a fim de

frustrar a análise de tráfego. Para ver a descrição de um sistema que representa

o estado da arte em correio eletrônico anônimo, consulte (Mazières e Kaashoek,

1998).

O anonimato não se restringe ao correio eletrônico. Também existem serviços

que permitem a navegação anônima na Web. O usuário configura seu navegador

para usar o @@@anonymizer como um proxy. Daí em diante, todas as

solicitações de HTTP vão para o anonymizer, que solicita a página e a devolve. O

Web site vê o anonymizer como a origem da solicitação, não o usuário. Tendo

em vista que o anonymizer se recusa a manter um log, depois do fato ninguém

pode determinar quem solicitou cada página.



[T3] 8.10.2 Liberdade de expressão

A privacidade se relaciona a indivíduos que desejam restringir o que outras

pessoas podem ver sobre eles. Uma segunda questão social importante é a

liberdade de expressão e sua oponente, a censura, que está relacionada com o

fato de órgãos governamentais desejarem restringir o que os indivíduos po dem

ler e publicar. Contendo milhões e milhões de páginas, a Web se tornou um

paraíso para o censor. Dependendo da natureza e da ideologia do regime, o

material proibido pode incluir Web sites que contém quaisquer dos seguintes

itens:

1. Material impróprio para crianças ou adolescentes.

2. Ódio que tem como alvos vários grupos étnicos, religiosos, sexuais ou

outros.

3. Informações sobre democracia e valores democráticos.

4. Relatos de eventos históricos que contradizem a versão do governo.
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 180 de 199
5. Manuais de arrombamento, montagem de armas, codificação de mensagens

etc.

A justificativa habitual é proibir os sites de má qualidade.

Às vezes, os resultados são inesperados. Por exemplo, algumas bibliotecas

públicas instalaram filtros da Web em seus computadores, a fim de torná-los

amigáveis para as crianças, bloqueando sites de pornografia. Os filtros vetam os

sites contidos em suas listas negras, mas também examinam páginas em busca

de palavras obscenas antes de exibi-las. Em Loudoun County, no estado da

Virgínia, o filtro bloqueou a busca de informações sobre câncer de mama,

porque o filtro encontrou a palavra "mama". O patrono da biblioteca processou

o condado de Loudoun. Porém, em Livermore, Califórnia, um pai processou a

biblioteca pública por não instalar um filtro depois que seu filho de 12 anos

visualizou um site de pornografia. O que é uma biblioteca pode fazer?

Muitas pessoas não percebem que a World Wide Web é de fato uma teia mundial

e, portanto, abrange o mundo inteiro. Nem todos os países concordam sobre o

que deve ser permito na Web. Por exemplo, em novembro de 2000, um tribunal

francês pediu à Yahoo, uma corporação da Califórnia, para impedir que usuários

franceses visualizassem leilões de lembranças nazistas no Web site do Yahoo,

porque a posse de tal material viola a lei francesa. O Yahoo apelou a um tribunal

dos Estados Unidos que o apoiou, mas a questão das leis que se aplicam a cada

país está longe de ser definida.

Imagine estas situações: o que aconteceria se algum tribunal em Utah instruíss e

a França a bloquear Web sites que lidassem com vinhos, porque eles não

concordam com as leis mais estritas do estado de Utah sobre bebidas

alcóolicas? Suponha que a China exigisse que todos os Web sites cujo tema

fosse democracia fossem proibidos por não serem de interesse do Estado. As

leis iranianas sobre religião se aplicam à Suécia? A Arábia Saudita pode bloquear
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 181 de 199
Web sites que tratam dos direitos das mulheres? A questão inteira é uma

verdadeira caixa de Pandora.

Um comentário relevante de John Gilmore é: "A rede interpreta a censura como

algo danoso e procura contorná-la" Para ver uma implementação concreta,

considere o serviço eterno (Anderson, 1996). Seu objetivo é assegurar que

informações publicadas não poderão ser retiradas de circulação ou reescritas,

como era comum na União Soviética durante o regime Josef Stalin. Para usar o

serviço eterno, o usuário especifica quanto tempo o material é deve ser

preservado, paga uma taxa proporcional à sua duração e ao tamanho, e o

transfere por upload. Daí em diante, ninguém poderá removê-lo ou editá-lo,

nem mesmo o próprio usuário que fez a transferência.

Como tal serviço poderia ser implementado? O modelo mais simples é usar um

sistema não hierárquico, nos qual os documentos armazenados seriam

colocados em dezenas de servidores participantes, cada um dos quais receberia

uma fração da tarifa, e portanto um incentivo para se unir ao sistema. Os

servidores devem estar espalhados por muitas jurisdições legais, a fim de

proporcionar a máxima resiliência. Listas de 10 servidores selecionados ao

acaso seriam armazenadas com segurança em vários lugares; assim, se alguma

delas fosse comprometida, ainda existiriam outras. Uma autoridade disposta a

destruir o documento nunca poderia ter certeza de haver encontrado todas as

cópias. O sistema também poderia ser elaborado para reparação automática:

caso algumas cópias fossem destruídas, os sites restantes tentariam encontrar

novos repositórios para substituí-las.

O serviço eterno foi a primeira proposta de um sistema resistente à censura.

Desde então, outros esquemas foram propostos e, em alguns casos,

implementados. Diversas características novas foram acrescentadas, como

criptografia, anonimato e tolerância a falhas. Com freqüência, os arquivos a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 182 de 199
serem armazenados são divididos em vários fragmentos, com cada fragmento

armazenado em muitos servidores. Alguns desses sistemas são o Freenet

(Clarke et al., 2002), PASIS (Wylie et al., 2000) e Publius (Waldman et al., 2000).

Outro trabalho é relatado em (Serjantov, 2002).

Muitos países estão cada vez mais procurando regulamentar a exportação de

itens intangíveis, o que em geral inclui Web sites, software, artigos científicos,

correio eletrônico, assistência técnica por telefone e outros. Até mesmo o Reino

Unido, que tem uma tradição de séculos de liberdade de expressão, agora está

considerando seriamente leis bastante restritivas que, por exemplo, definiriam

discussões técnicas entre um professor britânico e seu aluno estrangeiro na

University of Cambridge como uma forma de exportação regulamentada que

necessita de uma licença governamental (Anderson, 2002). É desnecessário

dizer que tais normas são controvertidas.



[T4] Esteganografia

Em países onde a censura é abundante, os dissidentes com freqüência tentam

usar a tecnologia para burlar sua rigidez. A criptografia permite que mensagens

secretas sejam enviadas (embora talvez isso não seja legal); porém, se o

governo imaginar que Alice é uma pessoa ruim, o mero fato de ela estar se

comunicando com Bob pode incluí-lo nessa categoria, pois governos

repressivos entendem o conceito de fechamento transitivo, ainda que esses

governos não tenham muitos matemáticos entre eles. Os repostadores

anônimos podem ajudar mas, se forem proibidos internamente e as mensagens

para o exterior exigirem uma licença de exportação do governo, eles não serão

muito úteis. No entanto, a Web pode ser de grande auxílio.

Com freqüência, as pessoas que desejam se comunicar secretamente tentem a

ocultar o fato de haver qualquer comunicação. A ciência de ocultar m ensagens é
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 183 de 199
chamada esteganografia, das palavras gregas que correspondem a "escrita

cifrada". Na verdade, os próprios gregos antigos a utilizavam. Heródoto

escreveu sobre um general que raspou a cabeça de um mensageiro, tatuou uma

mensagem em seu couro cabeludo e deixou o cabelo crescer de novo antes de

enviá-lo ao destino. As técnicas modernas são conceitualmente as mesmas,

apenas com uma largura de banda mais alta e uma latência mais baixa.

Um caso interessante é o da Figura 8.55(a). Essa fotografia, tirada pelo autor no

Quênia, contém três zebras contemplando uma acácia. A Figura 8.55(b) parece

ter exatamente as mesmas três zebras e a acácia mas, além disso, ela tem uma

atração a mais. A segunda fotografia contém o texto completo de cinco peças de

Shakespeare incorporado a ela: Hamlet, Rei Lear, Macbeth, O Mercador de

Veneza e Júlio César . Juntas, essas peças totalizam mais de 700 KB de texto.

Como funciona esse canal esteganográfico? A imagem em cores original tem

1024  768 pixels. Cada pixel consiste em três números de 8 bits, cada um

representando a intensidade de uma das cores, vermelha, verde e azul, desse

pixel. A cor do pixel é formada pela superposição linear das três cores. O

método de codificação esteganográfico utiliza o bit de baixa ordem de c ada

valor de cor RGB como um canal oculto. Desse modo, cada pixel tem espaço

para 3 bits de informações secretas, um no valor vermelho, um no valor verde e

um no valor azul. Com uma imagem desse tamanho, podem ser armazenados

até 1024  768  3 bits, ou 294.912 bytes de informações secretas.

[arte: ver original p. 825]

[Dísticos]

[1] (a)

[2] (b)

[F]Figura 8.55

[FL] (a) Três zebras e uma árvore. (b) Três zebras, uma árvore e o texto
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 184 de 199
completo de cinco peças de William Shakespeare



O texto completo das cinco peças e uma pequena nota chegam a 734.891 bytes.

Primeiro, esse texto foi compactado para cerca de 274 KB com um algoritmo de

compactação padrão. A saída compactada foi então criptografada com o uso do

IDEA e inserida nos bits de baixa ordem de cada valor de cor. Como podemos

ver (ou melhor, como não podemos ver), a existência das informações é

completamente invisível. Elas são igualmente invisíveis na versão ampliada e em

cores da fotografia. O olho não consegue distinguir com facilidade entre cores

de 21 bits e cores de 24 bits.

A visualização das duas imagens em preto e branco com baixa resolução não

faz a justiça ao poder dessa técnica. Para lhe dar uma idéia melhor de como a

esteganografia, o autor preparou uma demonstração, incluindo a imagem em

cores de alta resolução da Figura 8.55(b) com as cinco peças incorporadas. A

demonstração, incluindo as ferramentas para inserir e extrair textos em

imagens, pode ser encontrada no Web site deste livro.

Para usar a esteganografia na comunicação não detectada, os dissidentes

poderiam criar um Web site repletos de imagens politicamente corretas, como

fotografias do Grande Líder, esportes locais, filmes e estrelas de televisão etc. É

claro que as figuras estariam recheadas de mensagens esteganográficas. Se a s

mensagens fossem primeiro compactadas e depois criptografadas, mesmo que

alguém suspeitasse de sua presença teria imensa dificuldade para distinguir as

mensagens de ruído branco. É lógico que as imagens devem ser novas; copiar

uma figura da Internet e alterar alguns bits é um segredo inútil.

As imagens não são de forma alguma o único tipo de suporte para mensagens

esteganográficas. Os arquivos de áudio também funcionam bem. Os arquivos de

vídeo têm uma enorme largura de banda esteganográfica. Até mesmo o layout e
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 185 de 199
a ordenação de tags em um arquivo HTML podem transportar informações.

Embora tenhamos examinamos a esteganografia no contexto da liberdade de

expressão, ela tem vários outros usos. Um uso comum permite que os

proprietários de imagens codifiquem mensagens secretas nessas imagens,

declarando seus direitos de propriedade. Se tal imagem for roubada e colocada

em um Web site, o dono legal poderá revelar a mensagem esteganográfica no

tribunal para provar a quem pertence a imagem. Essa técnica é conheci da como

marca d'água. Ela é descrita em (Piva et al., 2002).

Para obter mais informações sobre a esteganografia, consulte (Artz, 2001;

Johnson e Jajoda, 1998; Katzenbeisser e Petitcolas, 2000; e Wayner, 2002).



[T3] 8.10.3 Direitos autorais

A privacidade e a censura são apenas duas áreas nas quais a tecnologia

encontra a política pública. Uma terceira área é a dos direitos autorais. Os

direitos autorais significam a concessão aos criadores de IP (Intellectual

Property), incluindo escritores, artistas, compositores, músicos, fotógrafos,

cineastas, coreógrafos e outros, do direito exclusivo de explorar sua IP por um

certo período de tempo, em geral durante a vida do autor somada a 50 anos ou

75 anos, no caso da propriedade corporativa. Depois de expirar o período de

proteção pelos direitos autorais de uma obra, ela passa para o domínio público

e qualquer pessoa pode usá-la ou vendê-la como desejar. Por exemplo, o

Projeto Gutenberg ( www.promo.net/pg) colocou milhares de obras de domínio

público (por exemplo, obras de Shakespeare, Twain, Dickens) na Web. Em 1998,

a pedido de Hollywood, o Congresso dos Estados Unidos estendeu os direitos

autorais nos EUA por mais 20 anos. O pessoal do cinema alegava que, sem uma

extensão desse período, ninguém criaria mais nada. Em contraste, as patentes

duram apenas vinte anos e, mesmo assim, as pessoas não param de apresentar
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 186 de 199
novas invenções.

A discussão sobre os direitos autorais ganhou espaço quando o Napster, um

serviço de troca de obras musicais, alcançou 50 milhões de membros. Embora o

Napster realmente não copiasse nenhuma música, os tribunais sustentaram que

manter um banco de dados central de quem tinha uma cópia de cada música era

infração contribuinte, isto é, eles ajudava outras pessoas a infringirem a lei.

Apesar de ninguém afirmar que os direitos autorais sejam má idéia (embora

muitos reclamem que o processo é muito longo, favorecendo assim as grandes

empresas em detrimento do público), a próxima geração de compartilhamento

de música já está levantando questões éticas importantes.

Por exemplo, considere uma rede não hierárquica em que pessoas compartilham

arquivos legais (música de domínio público, vídeos domésticos, folhetos

religiosos que não representem segredos comerciais etc.) e talvez alguns deles

sejam protegidos por direitos autorais. Suponha que todas essas pessoas

estejam on-line o tempo todo, por meio de ADSL ou cabo. Cada máquina tem

um índice do que está no disco rígido, além de uma lista de outros membros.

Alguém que procurar um item específico pode escolher um membro ao acaso e

ver se ele tem o item. Caso contrário, a pessoa pode procurar o item em todos

os membros da lista desse primeiro membro, e depois em todos os membros

das listas desses outros membros e assim por diante. Os computadores são

muito bons nesse tipo de trabalho. Tendo encontrado o item, o solicitante

simplesmente o copia.

Se o trabalho estiver protegido por direitos autorais, as chances são de que o

solicitante esteja infringindo a lei (embora, no caso de transferências

internacionais, não esteja claro que lei deve ser aplicada). Entretanto, como

classificar o fornecedor? É crime manter no seu no disco rígido uma música pela

qual você pagou e baixou legalmente, apenas porque outras pessoas podem
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 187 de 199
encontrá-la? Se você tem uma cabana no campo e um ladrão de IP invade sua

cabana levando um notebook e um scanner, copia um livro protegido por

direitos autorais e escapa sorrateiramente, você é culpado do crime de deixar de

proteger os direitos autorais de outra pessoa?

No entanto, existem mais dificuldades na área de direitos autorais. Há uma

grande entre Hollywood e a indústria de informática. Hollywood deseja a

proteção rígida de toda a propriedade intelectual, e a indústria de informática

não quer ser a polícia a serviço de Hollywood. Em outubro de 1998, o

Congresso norte-americano aprovou o DMCA (Digital Millennium Copyright Act)

que torna crime frustrar qualquer mecanismo de proteção presente em uma

obra protegida por direitos autorais ou informar outras pessoas sobre como

lográ-lo. Legislação semelhante está surgindo na União Européia. Embora quase

ninguém pense que piratas do Extremo Oriente devam ter permissão para

duplicar obras protegidas, muitas pessoas imaginam que o DMCA desloca

completamente o equilíbrio entre o interesse do detentor dos direitos autorais e

o interesse público.

Vejamos um exemplo prático. Em setembro de 2000, um consórcio da indústria

da música encarregado de elaborar um sistema inviolável para venda de obras

musicais on-line patrocinou um concurso convidando pessoas a tentarem violar

o sistema (exatamente o que deve ser feito no caso de qualquer sistema de

segurança novo). Pesquisadores da área de segurança provenientes de várias

universidades formaram uma equipe liderada pelo professor Edward Felten de

Princeton que aceitou o desafio e conseguiu romper o sistema. Em seguida, eles

escreveram um ensaio sobre suas descobertas e o submeteram a uma

conferência de segurança do USENIX, onde esse ensaio passou por uma revisão

e foi aceito. Antes de apresentar seu trabalho, Felten recebeu uma carta da

Recording Industry Association of America que ameaça processar os autores
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 188 de 199
com base no DMCA se eles publicassem o ensaio.

A resposta dos pesquisadores foi abrir um processo pedindo que um tribunal

federal decidisse se a publicação de documentos científicos sobre pesquisas na

área de segurança ainda era legal. Temendo uma decisão definitiva dos

tribunais contra ela, a indústria retirou sua ameaça e o tribunal rejeitou a ação

de Felten. Sem dúvida, os fabricantes de discos foram motivados pela

fragilidade de sua posição: eles haviam convidado pessoas a tentarem violar seu

sistema, e depois ameaçaram processar algumas delas por aceitarem o desafio.

Com a ameaça retirada, o ensaio foi publicado (Craver et al., 2001). Uma nova

disputa é quase certa.

Uma questão relacionada a essa é a extensão da doutrina de uso legal,

estabelecida por decisões judiciais em vários países. Essa doutrina afirma que

os compradores de uma obra protegida por direitos autorais têm certos direitos

limitados de copiar a obra, inclusive o direito de citar partes dela para fins

científicos, usá-la como material didático em escolas ou faculdades e, em

alguns casos, criar cópias de reserva para uso pessoal no caso de falha do meio

original. Os testes para definir o que constitui uso legal incluem (1) se o uso é

comercial, (2) que porcentagem do todo está sendo copiada e (3) o efeito da

cópia sobre as vendas da obra. Tendo em vista que o DMCA e leis semelhantes

dentro da União Européia proíbem frustrar os esquemas de proteção contra

cópia, essas leis também proíbem o uso legal. Na realidade, o DMCA prejudica

os direitos históricos dos usuários para dar mais poder aos vendedores de

conteúdo. É inevitável uma confrontação.

Outro desenvolvimento na área que reduz a importância até mesmo do DMCA

em seu deslocamento do equilíbrio entre os detentores de direitos autorais e os

usuários é a TCPA (Trusted Computing Platform Alliance) liderada pela Intel e

pela Microsoft. A idéia é fazer o chip da CPU e o sistema operacional
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 189 de 199
monitorarem cuidadosamente o comportamento do usuário em diversos

aspectos (por exemplo, reprodução de música pirateada) e proibir o

comportamento indesejável. O sistema permite até mesmo que os proprietários

de conteúdo manipulem remotamente os PCs dos usuários para alterar as regras

quando isso for considerado necessário. É desnecessário dizer que as

conseqüências sociais desse esquema são imensas. É ótimo que a indústria

esteja finalmente prestando atenção à segurança, mas é lamentável que ela

esteja inteiramente voltada para impor a lei de direitos autorais, em vez de lidar

com vírus, crackers, intrusos e outras questões de segurança com as quais a

maioria das pessoas está preocupada.

Em resumo, os legisladores e juristas estarão ocupados tentando equilib rar os

interesses econômicos dos proprietários de direitos autorais com o interesse

público nos próximos anos. O espaço virtual não é diferente do espaço físico:

ele constantemente joga um grupo contra outro, resultando em lutas pelo

poder, litígio e (esperamos) eventualmente algum tipo de resolução, pelo menos

até surgir alguma nova tecnologia capaz e romper esse frágil equilíbrio.



[T2] 8.11 Resumo

A criptografia é uma ferramenta que pode ser usada para manter informações

confidenciais e garantir sua integridade e autenticidade. Todos os sistemas

criptográficos modernos se baseiam no princípio de Kerckhoff de um algoritmo

publicamente conhecido e uma chave secreta. Muitos algoritmos criptográficos

usam transformações complexas que envolvem substituições e permutações

para transformar o texto simples em texto cifrado. Porém, se a criptografia

quântica puder se tornar prática, o uso de blocos de uma única vez poderá

fornecer sistemas criptográficos verdadeiramente invioláveis.

Os algoritmos criptográficos podem ser divididos em algoritmos de chave
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 190 de 199
simétrica e algoritmos de chave pública. Os algoritmos de chave simétrica

desfiguram os bits em uma série de rodadas parametrizados pela chave para

transformar o texto simples no texto cifrado. O DES triplo e Rijndael (AES) são

os algoritmos de chave simétrica mais populares no momento. Esses algoritmos

podem ser usados em modo de livro de código eletrônico, em modo de

encadeamento de blocos de cifras, modo de cifra de fluxo, em modo de

contador e outros.

Nos algoritmos de chave pública, são usadas chaves diferentes para codificação

e decodificação, e a chave de decodificação não pode ser derivada a partir da

chave de codificação. Essas propriedades tornam possível divulgar a chave

pública. O principal algoritmo de chave pública é o RSA, cuja força deriva da

grande dificuldade de fatorar números extensos.

Documentos legais, comerciais e outros precisam ser assinados.

Conseqüentemente, foram criados vários esquemas de assinaturas digitais,

empregando algoritmos de chave simétrica e algoritmos de chave pública. Em

geral, as mensagens que devem ser assinadas são submetidas a um hash com a

utilização de algoritmos como MD5 ou SHA-1, e então o hash é assinado em

lugar das mensagens originais.

O gerenciamento de chaves públicas pode ser implementado com o emprego de

certificados, documentos que vinculam um protagonista a uma chave pública.

Os certificados são assinados por uma autoridade confiável ou por alguém

aprovado (recursivamente) por uma autoridade confiável. A raiz da cadeia tem

de ser obtida com antecedência, mas os navegadores em geral têm muitos

certificados de raiz embutidos.

Essas ferramentas criptográficas podem ser usadas para proteger o tráfego de

rede. O IPsec opera na camada de rede, codificando fluxos de pacotes de host

para host. Os firewalls podem efetuar a triagem do tráfego que entra ou sai de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 191 de 199
uma organização, muitas vezes com base no protocolo e na porta utilizados. As

redes privadas virtuais podem simular uma antiga rede de linha dedicada para

oferecer certas propriedades de segurança interessantes. Por fim, as redes sem

fios precisam de uma boa segurança, e o WEP do padrão 802.11 não a oferece,

embora o 802.11i deva melhorar consideravelmente a situação.

Quando duas partes estabelecem uma sessão, elas têm de autenticar uma à

outra e, se necessário, estabelecer uma chave de sessão compartilhada. Existem

diversos protocolos de autenticação, incluindo alguns que usam uma terceira

parte confiável, Diffie-Hellman, Kerberos e criptografia de chave pública.

A segurança de correio eletrônico pode ser alcançada por uma combinação das

técnicas que estudamos neste capítulo. Por exemplo, o PGP compacta as

mensagens, depois as codifica usando o IDEA. Ele envia a chave do IDEA

codificada com a chave pública do receptor. Além disso, ele também efetua o

hash da mensagem e envia o hash assinado para confirmar a integridade da

mensagem.

A segurança da Web também é um tópico importante, começando com a

nomenclatura segura. O DNSsec oferece um modo de evitar o spoofing de DNS,

bem como realizar a certificação automática de nomes. A maioria dos sites de

e-commerce na Web utiliza a SSL para estabelecer sessões autenticadas e

seguras entre o cliente e o servidor. São usadas várias técnicas para lidar com

código móvel, em especial sandboxes e assinatura de código.

A Internet levanta muitas questões em que a tecnologia interage fortemente com

a política pública. Algumas áreas relevantes incluem privacidade, liberdade de

expressão e direitos autorais.



[T2] Problemas

1. Resolva a cifra monoalfabética a seguir. O texto simples, formado apenas por
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 192 de 199
letras, é um trecho de um conhecido poema de Lewis Carroll.

kfd ktbd fzm eubd kfd pzyiom mztx ku kzyg ur bzha kfthcm

ur mfudm zhx mftnm zhx mdzythc pzq ur ezsszcdm zhx gthcm

zhx pfa kfd mdz tm sutythc fuk zhx pfdkfdi ntcm fzld pthcm

sok pztk z stk kfd uamkdim eitdx sdruid pd fzld uoi efzk

rui mubd ur om zid uok ur sidzkf zhx zyy ur om zid rzk

hu foija mztx kfd ezindhkdi kfda kfzhgdx ftb boef rui kfzk

2. Resolva a seguinte cifra de transposição de colunas. O texto simples foi

extraído de um livro sobre computadores; portanto, "computer" é uma palavra

muito provável. O texto simples é formado apenas por letras (sem espaços). O

texto cifrado está dividido em blocos de cinco caracteres para proporcionar

melhor legibilidade.

aauan cvlre rurnn dltme aeepb ytust iceat npmey iicgo gorch srsoc

nntii imiha oofpa gsivt tpsit lbolr otoex

3. Encontre um bloco de 77 bits que gere o texto "Donald Duck" a partir do

texto cifrado da Figura 8.4.

4. A criptografia quântica exige uma pistola de fótons que possa, por demanda,

disparar um único fóton transportando 1 bit. Neste problema, calcule quantos

fótons um bit transporta em um enlace de fibra de 100 Gbps. Suponha que o

comprimento de um fóton seja igual a seu comprimento de onda que, para fins

desse problema, é 1 mícron. A velocidade da luz na fibra é 20 cm/ns.

5. Se Trudy capturar e regenerar fótons quando a criptografia quântica estive

em uso, ela obterá alguns fótons errados e provocará o surgimento de erros no

bloco de uma só vez de Bob. Em média, que fração dos bits do bloco de uma só

vez de Bob estarão errados?

6. Um princípio criptográfico fundamental estabelece que todas as mensagens

devem ter redundância. Porém, também sabemos que a redundância ajuda um
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 193 de 199
intruso a saber se uma chave hipotética está correta. Considere duas formas de

redundância. Primeiro, os n bits iniciais do texto simples contêm um padrão

conhecido. Segundo, os n bits finais da mensagem contêm um hash sobre a

mensagem. Do ponto de vista da segurança, essas duas alternativas são

equivalentes? Comente sua resposta.

7. Na Figura 8.6, as caixas P e S se alternam. Apesar da aparência esteticamente

agradável dessa organização, não seria mais seguro primeiro ter todas as ca ixas

P e depois todas as caixas S?

8. Projete um ataque ao DES baseado no conhecimento de que o texto simples é

formado exclusivamente por letras ASCII em caixa alta, além de espaço, vírgula,

ponto, ponto-e-vírgula, retorno de cursor e avanço de linha. Nada é conhecido

sobre os bits de paridade do texto simples.

9. No texto, calculamos que uma máquina de análise de cifras com um bilhão de

processadores capaz de analisar uma chave em 1 picossegundo demoraria

apenas 1010 anos para romper a versão de 128 bits do AES. Porém, as máquinas

atuais podem ter 1024 processadores e demorar 1 ms para analisar uma chave;

assim, precisamos de um aumento de 10 15 vezes no desempenho apenas para

conseguir igualar a máquina de análise de cifras do AES. Se a lei de Moore (a

potência de computação duplica a cada 18 meses) continuar a ser válida,

quantos anos serão necessários apenas para construir a máquina?

10. O AES admite uma chave de 256 bits. Quantas chaves tem o AES-256? Veja

se é possível encontrar algum número em física, química ou astronomia com

aproximadamente o mesmo tamanho. Use a Internet para ajudá-lo a procurar

números grandes. Tire uma conclusão de sua pesquisa.

11. Suponha que uma mensagem tenha sido criptografada com a utilização do

DES no modo de encadeamento de blocos de texto cifrado. Um bit do texto

cifrado no bloco Ci é acidentalmente transformado de 0 para 1 durante a
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 194 de 199
transmissão. Quanto do texto simples será adulterado em decorrência disso?

12. Agora, considere mais uma vez o encadeamento de blocos de texto cifrado.

Em vez de um único bit 0 ser transformado em um bit 1, um bit 0 extra é

inserido no fluxo de texto cifrado depois do bloco Ci. Que proporção do texto

simples será adulterado em decorrência disso?

13. Compare o encadeamento de blocos de cifras com o modo de feedback de

cifra no que se refere ao número de operações necessárias para a transmissão

de um arquivo muito grande. Qual dos dois é o mais eficiente e em que

proporção?

14. Usando o sistema de criptografia de chave pública RSA, com a = 1, b = 2

etc.,

(a) Se p = 7 e q = 11, cite cinco valores válidos para d.

(b) Se p = 13, q = 31 e d = 7, encontre e.

(c) Usando p = 5, q = 11 e d = 27, encontre e e criptografe "abcdefghij".

15. Suponha que uma usuária, Maria, descubra que sua chave privada RSA ( d1,

n1) é igual à chave pública RSA ( e2, n2) de outra usuária, Frances. Em outras

palavras, d1 = e2 e n1 = n2. Maria deve considerar a hipótese de trocar suas

chaves pública e privada? Explique sua resposta.

16. Considere o uso do modo de contador, como mostra a Figura 8.15, mas com

IV = 0. O uso de 0 ameaça a segurança da cifra em geral?

17. O protocolo de assinatura da Figura 8.18 tem a seguinte falha: se o

computador de Bob travar, ele poderá perder o conteúdo de sua memória RAM.

Quais problemas isso pode causar e o que pode ser feito para evitá-los?

18. Na Figura 8.20, vemos como Alice pode enviar a Bob uma mensagem

assinada. Se Trudy substituir P, Bob poderá descobrir. No entanto, o que

acontecerá se Trudy substituir ao mesmo tempo P e a assinatura?

19. As assinaturas digitais têm uma deficiência potencial devido a usuários
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 195 de 199
preguiçosos. Em transações de comércio eletrônico, um contrato poderia ser

interrompido e o usuário poderia ser solicitado a assinar seu hash SHA-1. Se o

usuário não verificar realmente que o contrato e o hash correspondem, ele

poderá assinar inadvertidamente um contrato diferente. Suponha que a máfia

tente explorar essa fraqueza para ganhar algum dinheiro. Os mafiosos

configuram um Web site de pagamento (por exemplo, pornografia, jogo etc.) e

pedem aos novos clientes um número de cartão de crédito. Em seguida, eles

enviam um contrato ao cliente confirmando que este deseja usar seus serviços e

que pagará com o cartão de crédito; depois, solicitam que o cliente assine o

contrato, sabendo que a maioria dos clientes simplesmente assinará sem

verificar se o contrato e o hash coincidem. Mostre como a máfia pode comprar

diamantes pela Internet de um joalheiro legítimo e debitá-los de clientes

desatentos.

20. Uma turma de matemática tem 20 alunos. Qual é a probabilidade de pelo

menos dois alunos fazerem aniversário no mesmo dia? Suponha que ninguém

tenha nascido no dia 29 de fevereiro; então, há 365 dias de aniversário

possíveis.

21. Depois de Ellen ter confessado a Marilyn que a enganou no episódio da

indicação de Tom, Marilyn resolveu evitar esse problema ditando o conteúdo de

futuras mensagens a um gravador e fazendo sua nova secretária simplesmente

digitá-las. Marilyn planejava examinar as mensagens em seu terminal depois de

serem digitadas, para ter certeza de que continham suas palavras exatas. A nova

secretária ainda pode usar o ataque de aniversário para falsificar uma

mensagem? De que maneira? Dica: Ela pode fazê-lo.

22. Considere a tentativa malsucedida de Alice de conseguir a chave pública de

Bob na Figura 8.23. Suponha que Bob e Alice já compartilhem uma chave

secreta, mas Alice ainda quer a chave pública de Bob. Agora existe um modo de
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 196 de 199
obtê-la em segurança? Em caso afirmativo, como?

23. Alice quer se comunicar com Bob, usando a criptografia de chave pública.

Ela estabelece uma conexão com alguém que espera que seja Bob. Alice pede a

ele sua chave pública e ele a envia em texto simples, juntamente com um

certificado X.509 assinado pela CA raiz. Alice já tem a chave públi ca da CA raiz.

Que etapas Alice deve executar para verificar se ela está se comunicando com

Bob? Suponha que Bob não se importe em saber com quem está se comunicando

(por exemplo, Bob é alguma espécie de serviço público).

24. Suponha que um sistema utilize a PKI baseada em uma hierarquia

estruturada em árvore de CAs. Alice quer se comunicar com Bob e recebe um

certificado de Bob assinado por uma CA X, depois de estabelecer um canal de

comunicação com Bob. Suponha que Alice nunca tenha ouvido falar em X. Que

etapas Alice deve executar para confirmar que está se comunicando com Bob?

25. O IPsec usando a AH pode ser empregando em modo de transporte quando

uma das máquinas está atrás de uma caixa NAT? Explique sua resposta.

26. Apresente uma vantagem de HMACs sobre o uso do RSA para assinar hashes

SHA-1.

27. Apresente uma razão que justifique o fato de um firewall poder ser

configurado de modo a inspecionar o tráfego de entrada. Apresente uma razão

que justifique o fato de um firewall poder ser configurado de modo a

inspecionar o tráfego de saída. Você acredita que as inspeções têm

probabilidade de sucesso?

28. O formato de pacotes WEP é mostrado na Figura 8.31. Suponha que o total

de verificação tenha 32 bits, calculado por uma operação XOR de todas as

palavras de 32 bits da carga útil. Suponha também que os problemas com o RC4

sejam corrigidos substituindo-se esse algoritmo por uma cifra de fluxo sem

deficiências, e que os IVs sejam estendidos até 128 bits. Existe algum meio para
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 197 de 199
um intruso espionar ou interferir com o tráfego sem ser detectado?

29. Suponha que uma organização utilize uma VPN para se conectar em

segurança a seus sites pela Internet. Existe a necessidade do usuário Jim dessa

organização usar a criptografia ou qualquer outro mecanismo de segur ança para

se comunicar com a usuária Mary da mesma organização?

30. Faça uma pequena alteração em uma mensagem no protocolo da Figura

8.34, de modo a torná-la resistente ao ataque por reflexão. Explique por que

sua mudança funciona.

31. A troca de chaves de Diffie-Hellman está sendo usada para estabelecer uma

chave secreta entre Alice e Bob. Alice envia a Bob a mensagem (719, 3, 191).

Bob responde com (543). O número secreto de Alice, x, é 16. Qual é a chave

secreta?

32. Mesmo que Alice e Bob nunca se encontrem, não compartilhem nenhum

segredo e não tenham nenhum certificado, eles podem estabelecer uma chave

secreta compartilhada usando o algoritmo de Diffie-Hellman. Explique por que é

muito difícil se defender contra um ataque de homem em posição intermediária.

33. No protocolo da Figura 8.39, por que A é enviado em texto simples junto

com a chave de sessão criptografada?

34. No protocolo da Figura 8.39, mostramos que iniciar cada mensagem de

texto simples com 32 bits zero é um risco de segurança. Suponha que cada

mensagem comece com um número aleatório por usuário, na verdade uma

segunda chave secreta conhecida somente por seus usuários e pelo KDC. Isso

elimina o problema do ataque por texto simples conhecido? Por quê?

35. No protocolo de Needham-Schroeder, Alice gera dois desafios, RA e RA2. Isso

parece exagero. Apenas um não seria suficiente?

36. Suponha que uma organização utilize o Kerberos para autenticação. Em

termos de segurança e disponibilidade de serviço, qual será o efeito se AS ou
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 198 de 199
TGS for desativado?

37. No protocolo de autenticação por chave pública da Figura 8.43, na

mensagem 7, RB é criptografado com KS. Essa criptografia é necessária, ou teria

sido melhor enviar a mensagem de volta em texto simples? Explique sua

resposta.

38. Terminais de pontos de venda que utilizam cartões com tarja magnética e

códigos PIN têm uma falha fatal: um comerciante inescrupuloso pode modificar

sua leitora de cartões para armazenar todas as informações do cartão, assim

como o código PIN, a fim de informar outras transações (falsas) no futuro. A

próxima geração de terminais de pontos de venda utilizará cartões com uma

CPU completa, teclado e um pequenino visor. Imagine um protocolo para esse

sistema que comerciantes inescrupulosos não consigam burlar.

39. Cite duas razões para o PGP compactar mensagens.

40. Supondo que todos na Internet usassem o PGP, uma mensagem PGP poderia

ser enviada a um endereço arbitrário da Internet e ser decodificada

corretamente por todos os envolvidos? Comente sua resposta.

41. O ataque mostrado na Figura 8.47 omite uma etapa. A etapa não é

necessária para o spoofing funcionar, mas incluí-la poderia reduzir a suspeita

potencial depois do fato. Qual é a etapa omitida?

42. Foi apresentada uma proposta para frustrar o spoofing de DNS que utiliza o

prognóstico de ID, fazendo-se o servidor inserir uma ID aleatória em vez e usar

um contador. Discuta os aspectos de segurança dessa abordagem.

43. O protocolo de transporte de dados de SSL envolve dois nonces, bem como

uma chave de pré-mestre. Que valor, se for o caso, tem o uso dos nonces?

44. A imagem da Figura 8.55(b) contém o texto ASCII de cinco peças de

Shakespeare. Seria possível ocultar música em vez de texto entre as zebras? Em

caso afirmativo, como isso seria feito e que quantidade de música você ocultaria
TANENBAUM, ANDREW S.               Computer Networks 4a edição.              EDITORA CAMPUS
TRADUÇÃO: Vandenberg D. de Souza            AT08.DOC              CAPÍTULO 8/P. 199 de 199
na imagem? Em caso negativo, por que não?

45. Alice era uma usuária pesada de um repostador anônimo do tipo 1. Ela

postava muitas mensagens em seu newsgroup favorito, alt.fanclub .alice, e todo

mundo sabia que as mensagens eram todas de Alice, porque tinham o mesmo

pseudônimo. Supondo-se que o repostador funcionasse corretamente, Trudy

não conseguiria se fazer passar por Alice. Depois que os repostadores do tipo 1

foram desativados, Alice trocou para um repostador cypherpunk e iniciou um

novo thread de mensagens em seu newsgroup. Elabore um meio de impedir que

Trudy possa postar novas mensagens para o newsgroup, fazendo-se passar por

Alice.

46. Procure na Internet algum caso interessante envolvendo privacidade e

escreva um relatório de uma página sobre o tema.

47. Procure na Internet algum caso jurídico envolvendo direitos autorais versus

uso legal e escreva um relatório de uma página resumindo os resultados da sua

pesquisa.

48. Escreva um programa que codifique sua entrada por meio de uma operação

XOR entre ela e um fluxo de chaves. Descubra ou desenvolva o melhor gerador

de números aleatórios que puder para gerar o fluxo de chaves. O programa deve

atuar como um filtro, recebendo texto simples na entrada padrão e gerando

texto cifrado na saída padrão (e vice-versa). O programa deve receber um

parâmetro, a chave que produz a semente do gerador de números aleatórios.

49. Escreva um procedimento que calcule o hash SHA-1 de um bloco de dados.

O procedimento deve ter dois parâmetros: um ponteiro para o buffer de entrada

e um ponteiro para um buffer de saída de 20 bytes. Para ver a especificação

exata do SHA-1, procure na Internet FIPS 180-1, a especificação completa.

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:92
posted:10/5/2012
language:Unknown
pages:199