Criptografia Numaboa
Comunicação usando chave pública
Qua 3 Out 2007 10:46 |
- Detalhes
- Categoria: Chave Pública
- Atualização: Terça, 21 Abril 2009 21:46
- Autor: vovó Vicki
- Acessos: 14353
Depois que Whitfield Diffie e Martin Hellman inventaram a criptografia de chave pública em 1976, a criptografia nunca mais foi a mesma: as chaves pública e privada que substituíram a chave única mudaram completamente o cenário e as regras do jogo.
Só para relembrar
Os algoritmos simétricos, também conhecidos como algoritmos de chave secreta ou algoritmos de chave única, dependem de uma prévia combinação entre os remetentes sobre o uso de uma determinada chave. A segurança destes algoritmos reside exclusivamente no segredo desta chave. Manter o segredo entre os remetentes já não é das coisas mais fáceis - principalmente se forem mais de dois - e os problemas só aumentam quando a distribuição desta chave entra em cena.
Um algoritmo simétrico pode ser comparado a um cofre. A chave é a combinação do cofre. Qualquer pessoa que conheça a combinação pode abri-lo, colocar uma mensagem dentro dele e fechá-lo novamente. Pessoas que tenham a combinação também podem abri-lo e retirar documentos, mas aqueles que a desconhecem precisam aprender a arrombar cofres.
A criptografia de chave pública usa duas chaves diferentes, uma pública e outra privada. A chave pública é utilizada por qualquer pessoa que queira cifrar uma mensagem para o proprietário da chave privada. É como se o dono da chave privada possuísse um cofre com uma abertura do tipo caixa de correio. Uma vez cifrada, a mensagem "é colocada no cofre" e não pode ser "retirada" (decifrada), a não ser pelo dono do cofre, o único que possui a combinação (a chave privada).
O universo da criptografia de chave pública
Sob o ponto de vista matemático, o processo da criptografia de chave pública é baseado em funções de mão única. Estas funções têm a característica de serem fáceis de calcular e praticamente impossíveis de serem revertidas (mais sobre o assunto em Funções de mão única). Na criptografia de chave pública a cifragem do texto é a parte fácil. Qualquer pessoa pode cifrar o texto porque as instruções estão na chave pública. A decifração é que é a parte difícil: sem conhecer o segredo, abrir a mensagem cifrada pode levar milhares de anos mesmo se forem usados supercomputadores. O segredo, também chamado de alçapão da função de mão única, é a chave privada.
Na área da segurança da informação existem alguns personagens que já são velhos conhecidos no jogo da comunicação. São Bob e Alice, os dois que querem trocar mensagens sigilosas, e Eva, a espiã bisbilhoteira. Veja a seguir como Bob e Alice trocam mensagens usando criptografia de chave pública:
- Alice e Bob combinam usar um criptossistema de chave pública.
- Bob envia para Alice a sua chave pública.
- Alice cifra uma mensagem usando a chave pública recebida e envia o texto cifrado para Bob.
- Bob decifra a mensagem de Alice usando sua chave privada.
Pela seqüência apresentada fica claro que a criptografia de chave pública resolve o problema da distribuição de chaves, característico dos criptossistemas simétricos. Num sistema convencional, Alice e Bob teriam que combinar o uso de uma chave. Digamos que Alice escolhe uma e precisa fazer com que Bob tenha a mesma chave. Ela poderia marcar um encontro e entregá-la pessoalmente a Bob ou enviá-la pelo correio numa carta registrada. Qualquer solução que encontrar vai sempre implicar num planejamento prévio e custar algum tempo. Isto não acontece com a criptografia de chave pública, pois, sem qualquer tipo de arranjo prévio, Alice pode enviar mensagens seguras para Bob. Eva, a bisbilhoteira, pode monitorar o processo em qualquer ponto, pode conhecer a chave pública de Bob e pode interceptar a mensagem secreta de Alice. De nada vai adiantar, pois precisa da chave privada de Bob para decifrar a mensagem.
O mais comum é que usuários de determinados criptossistemas de chave pública guardem suas chaves públicas num banco de dados. Neste caso, o protocolo é ainda mais simples:
- Alice pega a chave pública de Bob num banco de dados.
- Alice cifra uma mensagem usando a chave pública de Bob e envia o texto cifrado para ele.
- Bob decifra a mensagem de Alice usando sua chave privada.
No primeiro protocolo Bob precisou enviar sua chave pública para Alice. No segundo, Bob só é envolvido no processo no momento em que resolve ler a mensagem.
Ataques contra a criptografia de chave pública
Todo mundo está careca de saber que não existe sistema de segurança 100% perfeito - e a criptografia de chave pública não é uma exceção. Para que um destes criptossistemas possa ser efetivamente usado por milhões de pessoas, a existência de um banco de dados de acesso público que armazena todas as chaves públicas é essencial. Começou o enrosco...
O banco de dados precisa ser protegido e estar sob a responsabilidade de uma ou mais pessoas de confiança. No jogo da segurança da comunicação, esta pessoa é conhecida por Trent. Eu prefiro chamá-la de Pedro, como São Pedro, o guardião de todas as chaves, principalmente as do céu
Só Pedro pode alterar os registros do banco de dados, ou seja, ele garante que a chave pública de Bob pertence a Bob, a da Alice pertence mesmo a Alice e que a minha seja realmente a minha. O cara que inferniza a vida do Pedro é conhecido como Mallet e, novamente, resolvi rebatizar o bacaninha com o apelido Mala. Resumindo: Pedro é o guardião do banco de dados e o Mala é o esperto que quer passar a rasteira em Bob e Alice.
Se o Mala for realmente esperto, ele consegue acessar o banco de dados e trocar a chave pública do Bob por uma da sua escolha. Alice, sem saber o que aconteceu, pega a chave pública de Bob (agora a do Mala), cifra uma mensagem e a envia para Bob. Bob não consegue ler a mensagem de Alice, mas o Mala sim!
Mas isto não é tudo. Mesmo se Pedro for ultra-eficiente impedindo o Mala de alterar diretamente o banco de dados, ainda assim o Mala pode substituir chaves públicas durante as transmissões das mesmas porque Pedro trabalha em casa e atualiza o banco de dados a partir do seu PC. Estando ciente deste perigo, Pedro resolve "assinar" cada uma das chaves públicas que envia para o banco de dados com a sua chave privada e, como mostrou ser realmente confiável, foi promovido: passou a ser chamado de Autoridade de Certificação de Chaves (Key Certification Authority) ou Centro de Distribuição de Chaves (KDC - Key Distribution Center). Na vida real, o KDC assina uma mensagem composta pelo nome do usuário, sua chave pública e várias informações adicionais referentes a este usuário. Esta mensagem assinada é armazenada na íntegra no banco de dados do KDC e, quando Alice requisitar a chave de Bob, ela pode verificar a assinatura do KDC para ter a garantia de que a chave é realmente verdadeira.
O assunto morreu aqui? Nem de longe! Apesar de todas as precauções, o Mala pode continuar fazendo estragos, só que vai ter um pouco mais de trabalho com o KDC. Alice ainda tem a chave pública do KDC guardada em algum lugar. Se ele quiser "malar" vai ter que substituir esta chave pela sua chave pública, vai ter que corromper a base de dados e vai ter que substituir as chaves válidas pelas suas, todas assinadas com a sua chave privada. Acho que até pro Mala seria pedir demais...