Comunicação Confidencial na Internet
Tradução do Artigo publicado na Revista Scientific American de Dez/95
A criptografia dá às pessoas a possibilidade de autenticar a identidade de seus correspondentes, o primeiro passo no estabelecimento da confiança.
por Thomas Beth
"Cuidado com o lobo," disse a mãe aos cabritinhos. "Se ele conseguir entrar, vai comê-los um a um, com pele e ossos. O vilão quase sempre se disfarça, mas vocês vão reconhecê-lo imediatamente por sua voz rouca e suas patas pretas."
Retirado de O lobo e os sete
cabritinhos, dos Irmãos Grimm.
A bem intencionada mãe dos cabritinhos tentou proteger seus filhotes usando o que um especialista em segurança de computador chamaria de mecanismo de controle de acesso: não deixe ninguém entrar a menos que tenha uma voz suave e patas brancas. Esse método é, em princípio, muito eficaz porque ele verifica as características físicas de quem está autorizado a entrar. No conto de fadas, o erro fatal cometido foi a escassez de informação pedida. Diferenciar um cabrito de um lobo é muito fácil quando se pode ver o corpo inteiro, mas os cabritinhos foram programados para ver apenas a cor das patas e a escutar a voz.
Computadores transferem tanto dinheiro e informação valiosa, que suas comunicações se tornam um alvo extremamente tentador para criminosos. Mesmo tentando proteger seus dados e transmissões, as pessoas se precavêem ainda menos do que os cabritinhos: tentam diferenciar um amigo de um inimigo usando uma mera seqüência de símbolos enviados por um correspondente através de uma rede.
A relativa anonimidade que as redes oferecem atualmente, combinada com a capacidade crescente das máquinas conectadas a elas, causa pavor aos governos, que prevêem uma onda cada vez maior de crime digital. Muitos países estão respondendo com curas draconianas que podem ser muitas vezes tão más quanto a própria doença que pretendem curar. Entretanto, meus colegas e eu acreditamos que encontramos um caminho intermediário entre os perigos do controle estatal sobre as chaves da informação e um campo livre para o crime organizado. Simplesmente tivemos que nos empenhar mais para descobrir esse caminho.
Qualquer pessoa que estiver se comunicando através de um computador precisa ter um sistema de segurança que assegure três requisitos básicos: confidencialidade, autenticação e confiança. Mesmo a supostamente simples rotina de sacar dinheiro de um caixa automático envolve uma comunicação baseada em confiança. Atualmente esse sistema opera de uma maneira estritamente parcial: a máquina garante que a pessoa que inseriu o cartão é o proprietário legítimo, desde que ele digite a senha secreta. Porém, o dono do cartão tem que acreditar cegamente que a máquina não foi adulterada. Apesar desse clássico modelo autoritário ter sido bom até agora, atualmente é ingenuidade supor que nenhuma dessas máquinas envolvidas numa comunicação jamais tenha sido manipulada.
A CADEIA DE CERTIFICAÇÃO no esquema do autor vai das autoridades locais que legitimam a identidade e probidade de uma pessoa, até as autoridades regionais, nacionais e supranacionais (representadas aqui por diferentes nomes e selos), cada um legitimando os que vêm abaixo. As assinaturas digitais impedem adulterações; qualquer um que reconheça uma assinatura na cadeia pode garantir a validade de um documento assinado. |
Desde que ambas as partes envolvidas na comunicação sejam monitoradas por uma instituição comum, o equivalente eletrônico de uma central de bilhetes pode fornecer autenticidade e confidencialidade. Esse princípio é a base do protocolo de Kerberos do sistema Athena do Instituto de Tecnologia de Massachusetts (MIT) [ver "Secure Distributed Computing," por Jeffrey I. Schiller; SCIENTIFIC AMERICAN, Novembro de 1994].
Seria absurdo, entretanto, empregar o mesmo método para milhões de usuários da Internet. Primeiro, é praticamente impossível criar um arquivo servidor central tão imenso e operá-lo continuamente. Segundo, tal concentração de dados sensíveis estimularia ainda mais ataques criminosos.
Além disso, o uso de senhas secretas para se verificar a identidade de uma pessoa num terminal não é seguro em redes abertas. Programas que gravam sub-repticiamente a combinação de senhas e nomes de usuários para serem utilizados com má fé mais tarde já são conhecidos como packet sniffers. Já foram detectados e ligados a dezenas de violações nos Estados Unidos e Europa. Um usuário da Internet não deveria precisar digitar uma senha ou revelar qualquer característica pessoal que qualquer um pudesse copiar. Ao contrário, eles deveriam ser solicitados a dar respostas que dependam do seu conhecimento de algum segredo, sem ao mesmo tempo ter que revelá-lo.
Em 1986, meus colegas do Instituto de Informática da Universidade de Karlsruhe e eu começamos a trabalhar nesse problema. Apesar da verba destinada ao nosso projeto inicial ter sido cortada, conseguimos desenvolver um sistema de segurança de rede que batizamos de SELANE (rede de segurança de área local). O nome também faz alusão à deusa grega da Lua, Selene, que se movimenta no céu em igualdade de condições com seus irmãos Eos e Hélio, com exatamente a mesma igualdade que parceiros de uma transação eletrônica devem ter.
A SELANE é compatível com quase todas as redes comerciais e acadêmicas. Também criamos um cartão "inteligente" que faz todos os cálculos necessários para a segurança de cada usuário. A SELANE já está sendo utilizada em nossa universidade, onde proporciona acesso seguro à rede departamental.
Chaves de Segredos Compartilhados
A criptologia moderna baseia-se na noção de que todos os textos digitais são simplesmente cadeias de bits que podem ser interpretadas como números. Assim, a codificação é simplesmente uma questão de aplicação de uma função matemática apropriada para transformar uma série inteligível de números em pseudo-bobagens que só podem ser lidas por alguém que conhece a função e a sua chave.
O primeiro problema em segurança de rede é a confidencialidade. Como poderiam Alice e Bob (como são chamados os parceiros de uma comunicação pelos criptógrafos) trocar com segurança uma seqüência particular de bits através de um fio que pode ser manipulado? No mínimo, eles deveriam ser capazes de trocar uma chave que possa ser usada para cifrar ou decifrar mensagens subseqüentes. Nos anos 70, Martin Hellman da Universidade de Stanford e seus alunos Whitfield Diffie e Ralph Merkle desenvolveram um método que possibilitava a Alice e Bob obter a mesma seqüência de bits sem enviar os bits ou a informação necessária para a sua reconstrução através do fio (ver o quadro a seguir).
Hellman, Diffie e Merkle utilizaram as chamadas funções de mão única, que são fáceis de calcular, mas quase impossíveis de reverter. Conhecer o resultado da aplicação de uma função de mão única a um número não dá idéia de qual seja esse número. A classe de funções de mão única que utilizamos se baseia numa técnica chamada exponenciação modular.
A exponenciação modular preserva duas relações importantes entre os números embaralhados. Primeiro, ela é comutativa, o que quer dizer que exponenciações múltiplas podem ser realizadas em qualquer ordem numa corrente de dados sem alterar os resultados. Segundo, ela é homomórfica: se dois números são somados a um terceiro, então a multiplicação das suas versões exponenciais resultará na exponenciação do terceiro número.
Funções de Mão Única Despistam Uma técnica conhecida como chave de troca Diffie-Hellman permite que dois correspondentes se comuniquem de maneira segura através de um canal inseguro. A troca se baseia numa espécie de função de mão única (uma transformação numérica que é fácil de desempenhar, mas impossível de desfazer) chamada de exponenciação modular. Para cifrar uma mensagem, é preciso elevar uma constante (digamos 3) à potência do número que representa a mensagem de forma digital e então dividir o resto da divisão por um número primo alto. Para cifrar o número 66, por exemplo, precisa-se calcular o resto de 366 dividido por, digamos 127. (Na verdade, o número primo deveria ser muito mais alto - talvez até de 300 dígitos.) Bob e Alice aplicam as suas exponenciações em seqüência a uma seqüência de bits conhecida; Alice realiza a sua operação primeiro em um caso, e Bob em outro. A ordem não influencia o resultado final, mas a exponenciação embaralha os bits de modo que um bisbilhoteiro não pode determinar os exponentes que Bob e Alice estão usando e nem a seqüência final de bits que eles compartilham - que pode então servir de chave para codificar futuras transações. T.B
|
Para se trocar uma chave com Bob, de acordo com o protocolo Diffie-Hellman, Alice tem que usar um número conhecido publicamente, aplicar sua função de mão única - exponenciação a um potência secreta que só ela conhece - e enviar o resultado através de canais públicos para Bob. Porque a exponenciação é uma função de mão única, um "bisbilhoteiro" não conseguirá extrair o seu segredo da combinação da seqüência de bit pública e sua versão exponencial. Enquanto isso, Bob também aplica o seu exponente secreto ao mesmo número conhecido publicamente e envia o resultado para Alice.
Alice e Bob então aplicam suas funções de mão única para o número recebido um do outro. Porque a combinação das duas funções leva a um mesmo resultado, não importando qual foi aplicada primeiro, ambos os parceiros vão ter a mesma seqüência de bits, conhecida somente por eles dois e mais ninguém. Também podem usar a seqüência como a "chave" para a função que cifra e decifra a informação que querem trocar. Uma terceira pessoa que tenha observado as trocas não será capaz de determinar a chave e nem as funções secretas de Alice e Bob.
Passaporte ao Invés de Senha
O segundo problema é a autenticação: Bob precisa saber se foi mesmo Alice que enviou a mensagem. Não existe uma autoridade central, entretanto, que possa garantir a identidade de cada usuário da Internet. Enquanto estudávamos esse problema, lembramo-nos de um sistema de controle de acesso com necessidades semelhantes que é utilizado diariamente no mundo todo, com bastante sucesso: os passaportes. O passaporte, a fotografia e a assinatura formam uma conexão com o proprietário que é verificada também pela insígnia do governo, pelo carimbo e assinatura da repartição que o concedeu. A característica mais importante é que qualquer pessoa pode verificar a validade de um passaporte, sem ter que se reportar às autoridades que o concederam.
Em 1984, Taher ElGamal, então na Universidade de Stanford, concebeu um esquema de assinatura digital que podia ser usado para verificar quem estava enviando uma mensagem e saber com segurança que o seu conteúdo não tinha sido adulterado. Todo mundo que quer assinar documentos seleciona uma seqüência de bits permanente e secreta como assinatura particular e publica uma versão exponencialmente distorcida desses bits como assinatura pública. A assinatura de um documento particular é feita da seguinte maneira:
- Gerar um selo "one-time" (um digital equivalente a um número de série).
- Executar o selo através de uma função exponencial de mão única para obter uma versão distorcida.
- Formular e resolver uma equação que relacione os valores numéricos da mensagem que está sendo enviada, a seqüência de bits pessoal secreta, o selo e a versão distorcida do selo.
- Transmitir a mensagem.
- Anexar a assinatura que consiste do selo distorcido e a solução da equação.
Protocolo de Autenticação Baseia-se numa seqüência de bits conhecida apenas pela autoridade certificadora e uma série de exponenciações. A autoridade fornece apenas uma imagem distorcida do seu segredo, mas ainda assim é possível verificar que ela assinou um determinado documento. |
Todo o mundo que conhece a assinatura pública do assinante (a versão exponencialmente distorcida da seqüência de bits secreta) pode verificar que os números na assinatura foram realmente gerados da seqüência particular e da mensagem em questão. Na última década, foram criadas inúmeras variações do esquema básico de ElGamal.
Armados com esse processo à prova de falsificações, concebemos um esquema que estabeleceria uma autoridade emissora de chave segura (SKIA), para tomar o lugar da autoridade emissora de passaportes, para cada rede local de computador. Antes de emitir a primeira identificação, a SKIA adota as suas próprias chaves de assinatura, uma versão secreta e uma distorcida. Quem quiser verificar as identidades emitidas pela SKIA salva uma cópia da chave pública, assim como um departamento de emigração estrangeiro guardaria uma amostra de um passaporte americano, por exemplo.
A SKIA emite um dispositivo qualquer (como um chip à prova de adulterações encrustrado num cartão de crédito ou um relógio desenhado especialmente para isso) para cada pessoa, terminal ou computador de sua rede. Esse dispositivo pode ser usado em qualquer transação subseqüente. Quando Alice pede uma identidade para a SKIA, ela lhe fornece um dispositivo cuja memória contém uma mensagem legível - "O portador deste cartão, Alice Maravilha, é uma professora de Ciência da Computação, na Universidade de Karlsruhe"- e uma assinatura do tipo do esquema de ElGamal, baseada na mensagem.
Para convencer Bob de que sua identidade é válida, Alice dá instruções ao seu cartão-chip para que lhe passe a mensagem e o selo "one-time" distorcido da assinatura. Bob utiliza esses valores, com a chave pública da SKIA, para computar uma imagem distorcida do resto da assinatura - que o dispositivo não revela. Para garantir a validade da identidade, Bob pode entrar numa seqüência de desafio-resposta com o dispositivo, fazendo perguntas que ele só será capaz de responder se realmente contiver a parte secreta da assinatura.
Meus colegas Fritz Bauspiess, Christoph Günther e Hans-Joaquim Knobloch e eu criamos um protocolo que junta a autenticação e a verificação com a troca de chave subseqüente. Esse protocolo pode ser executado em uma fração de segundo por um chip em um cartão inteligente. Se as identidades estiverem em ordem, os parceiros terminam sua troca inicial com uma chave comum para codificar comunicações subseqüentes. Se a autenticação falhar, cada um receberá uma seqüência de bits diferente e inútil.
Cadeia de Cofidencialidade
Em princípio, o método de autenticação depende do conhecimento e da confiança que Bob tem da SKIA de Alice. Qualquer um que quisesse verificar as identidades digitais do corpo docente ou do pessoal de uma universidade alemã, por exemplo, teria que conhecer a assinatura de SKIA de cada centro de computação da universidade.
No tráfego internacional de dados, esse método se torna impraticável. Assim, as SKIAS precisam ser legitimadas através de uma identidade de uma SKIA superior. Uma central de distribuição de identidades pode ser criada para atender a todas as universidades alemãs. Isso certificaria a confiabilidade da SKIA de cada uma das universidades, que poderia certificar as SKIAs internas. Esse esquema pode ser estendido a vários níveis. Por exemplo, uma central alemã poderia legitimar-se a si mesma através da identidade digital de uma central de distribuição de identidades europeia, que, por sua vez, seria legitimizada por uma organização internacional. Para se verificar uma identidade, seria necessário conhecer e confiar apenas nas assinaturas digitais de algumas poucas autoridades certificadoras de alto nível.
A mesma estrutura hierárquica poderia servir tanto aos funcionários de uma empresa como às subsidiárias de outras instituições. No futuro que esperamos ajudar a criar, os princípios SELANE permitiriam às pessoas fazer negócios em rede, com a mesma confiança que o fariam cara à cara.
Quando uma Escuta é Necessária
As técnicas criptográficas que meus colegas e eu desenvolvemos oferecem uma solução para o crescente conflito entre as pessoas que querem manter suas mensagens secretas e as agências de aplicação das leis que gostariam de ser capazes de decodificar as provas de crimes. Temeroso de que num futuro próximo as escutas não revelem nada além de bobagens, o governo americano restringiu a exportação de equipamento de codificação. Também começou a pressionar para que seja criado um sistema telefônico "seguro" que utilize um chip de codificação conhecido como Clipper, cujas chaves ficariam guardadas por órgãos do governo e entregues às agências de aplicação das leis a seu pedido. Os detalhes deste sistema são secretos.
Esse plano não inspira nenhuma confiança. Primeiro, não fica bem claro se as chaves serão de fato suficientemente bem guardadas, especialmente quando agências de aplicação das leis de vários países estiverem envolvidas. Segundo, não há maneira das pessoas não envolvidas determinarem se há métodos de decodificação adicionais que não exijam intervenção judicial.
Por outro lado, os métodos desenvolvidos por nós para a SELANE podem ser utilizados como base para um sistema de codificação justo que colocaria os decifradores de códigos civis e do governo em pé de igualdade. Ele fornece uma ferramenta que verifica e autentica a troca de chave que pode funcionar em conjunto com o chip Clipper ou um dispositivo de codificação mais robusto. Para aumentar ainda mais a confiança das pessoas no sistema, chaves digitais que exijam a cooperação de várias agências diferentes de escuta poderiam ser criadas.
Para se entender como esse tipo de garantia pode ser alcançada requer que se imagine que a seqüência que cria uma chave não é um número, mas sim três ou mais. Gustavus J. Simmons do Laboratórios Nacionais de Sandia, por exemplo, concebeu a idéia de usar três partes de uma chave secreta como coordenadas integer de um ponto num espaço tridimensional.
Todas as seqüências secretas de números que podem ser usadas são escolhidas entre as coordenadas que estão numa linha aceita universalmente, (porque existem tantos pontos numa linha, mesmo esse conjunto "restrito" ainda seria muito grande para ser seguro). Para dividir a informação sobre o ponto secreto, um plano que passa através dos pontos e três pontos aleatórios nesse plano são selecionados. Esses pontos podem ser usados para reconstruir o plano e calcular a sua intersecção com a linha.
Cada um dos membros do comitê recebe as coordenadas de dois dos pontos. Assim que dois membros se encontram, podem determinar o ponto secreto. Entretanto, graças à SELANE, eles também podem estar seguros de que receberam as coordenadas precisas, sem realmente descobrir o segredo (o que comprometia a chave associada). Se eles fornecerem versões exponenciais distorcidas dos seus pontos para os seus companheiros, a relação matemática que existe entre os pontos e uma imagem distorcida da linha também existirá entre os pontos reais e a linha ao longo da qual está o ponto secreto.
Esse princípio pode ser generalizado para um comitê de qualquer tamanho, com um subconjunto arbitrário autorizado de membros. Esse tipo de responsabilidade compartilhada também complicaria qualquer tentativa de quebra da segurança através do uso de violência, chantagem ou suborno. Acredito que o mundo dos negócios daria boas vindas a um sistema como esse, particularmente como uma alternativa à guarda imposta pelo governo. Os governos, por sua vez, aceitariam bem esse sistema como uma alternativa para a disseminação de uma criptografia forte e desregulamentada que está acontecendo nesse mesmo instante em que esse artigo está sendo escrito.
O Autor
THOMAS BETH é diretor do Instituto Europeu de Sistemas de Segurança, que ajudou a fundar em 1988. É também professor de Ciência da Computação na Universidade de Karlsruhe, onde trabalha desde 1985. Cursou Matemática na Universidade de Göttingen e fez doutorado também em Matemática e em Ciência da Computação e Engenharia na Universidade de Erlagen. Este artigo foi adaptado de outro artigo escrito por Beth na edição de maio do Spektrum de Wissenschaft, a edição alemã da Scientific American.
Chave Secreta. É derivada das coordenadas de um ponto, cuja posição pode ser calculada de três outros pontos e uma linha ao longo da qual está o segredo.
O conhecimento de três pontos pode ser dividido através de várias representações, para que nenhum isoladamente possa identificar o ponto secreto - devido a um número infinito de possíveis planos que podem passar através de dois pontos, que são dados para cada representação. |
Leituras Recomendadas
A PUBLIC KEY CRYPTOSSYSTEM AND A SIGNATURE SCHEME BASED ON DISCRETE LOGARITIMS. Taher ElGamal in IEEE Transactions on Information Theory, Vol. 31, No. 4, p. 469-472; Julho de 1985.
EFFICIENT ZERO-KNOWLEDGE IDENTIFICATION SCHEME FOR SMART CARDS. T. th in Advances in Cryptology:
EUROCRYPT ’88. Editado por Christoph Günther. Springer-Verlag. 1988.
CONTEMPORARY CRYPTOLOGY: THE SCIENCE OF INFORMATION INTEGRITY. Gustavus J. Simmons, IEEE. Press, 1992.
PUBLIC-KEY CRYPTOGRAPHY: STATE OF THE ART AND FUTURE DIRECTIONS. Editado por T. Beth, M. Frisch e G. J. Simmons. Springer-Verlag, 1992.
KEEPING SECRETS A PERSONAL MATTER OR THE EXPONENTIAL SECURITY SYSTEM. T. Beth in Cryptography and Coding III. Editado por M. J. Ganley, Oxford University Press, 1993.
RFC 1824: The Exponential Security System Tess. H. Danish in European Institute for System Security World Wide Web site at http://avalon.ira.uka.de/eiss/indexe.html