Uma breve introdução sobre alguns conceitos de criptografia, que são largamente utilizados em vários serviços e ferramentas de segurança e no entanto é comum termos algumas dúvidas sobre seu funcionamento básico.
A criptografia de chave simétrica se aplica perfeitamente na comunicação de 1 para 1, mas vamos agora pensar em uma situação diferente, em que João precise trocar informações criptografadas com várias outras. Inicialmente, isso é simples: basta João dar a cada uma dessas pessoas uma cópia de sua chave criptográfica. No entanto, isso traria algumas implicações na segurança:
1° A mensagem que João enviou para uma pessoa desse grupo pode ser lida por todas as outras.
2° Qualquer um pode mandar uma mensagem afirmando que esta foi enviada por João.
A solução para esses problemas é o uso de chaves assimétricas, ou seja, a chave usada para criptografar é diferente da chave usada para decriptografar. Infelizmente não é possível mostrar um exemplo simples como o "algoritmo" de João e José descrito anteriormente, pois a criptografia de chave assimétrica é uma operação complexa por natureza; por isso vamos apenas acreditar que funciona :)
Existe portanto um par de chaves: uma é a Chave Pública (distribuída para todos) e a outra é a Chave Privada (como diz o nome, guardada em segredo). Se quero enviar uma mensagem para João, devo criptografa-la utilizando a chave pública dele, utilizando um algoritmo de chave assimétrica.
Os dados criptografados com a chave pública só podem ser decriptografados com a chave privada, garantindo que ninguém mais terá acesso ao conteúdo da mensagem (CONFIDENCIABILIDADE). Da mesma forma, quando João precisar me enviar uma mensagem esta deve ser criptografada utilizando minha chave pública e só eu poderei abrí-la.
Fica assim solucionado o problema da Confidenciabilidade, mas como a criptografia foi feita com a chave pública (que todos têm acesso) não é possível comprovar a origem da mensagem. Também é possível que alguém me diga: "Olá eu sou o João, essa é minha chave pública. Criptografe suas mensagens com ela para que eu possa abri-las". Como saber se não é alguém mal-intencionado se fazendo passar por João???
Além do mais, em todos esses exemplos não foram utilizados mecanismos para garantir a Integridade dos dados.
Como se percebe, essa foi apenas uma visão inicial sobre o tema; indo um pouco além podemos chegar à solução dos problemas citados acima, através do uso de Hash, Assinatura Digital e Certificados Digitais.
Espero poder em breve complementar esse artigo falando um pouco sobre esses assuntos.
[1] Comentário enviado por y2h4ck em 21/08/2004 - 10:22h
Da hora cara, acho que voce poderia pensar para no futuro um arquivo sobre algo mais concreto usando crypto: PGP, PKI, Certificados Digitais e criptografia para VPNs etc :)
[4] Comentário enviado por zehrique em 22/08/2004 - 12:21h
Bom artigo, Gomes. ;)
E só complementando, o conceito de Certificados Digitais é muito interessante.
Quando tiver algo na "agulha" manda bala que vai repercutir bastante, creio eu.