sexta-feira, 24 de agosto de 2007

Criptografia RSA em Javascript


Hoje um colega meu estava "quebrando a cabeça" para trocar dados de forma segura entre o servidor e o browser. A solução que estava sendo utilizada era com o uso de certificados e usando conexão SSL (https).


Mas vasculhando a minha biblioteca de links (vulgarmente chamada de Favoritos do IE boca aberta) achei o link para esta página: http://www.ohdave.com/rsa/ que apresenta um código em JavaScript (juntamente com as bibliotecas) capaz de realizar criptografia RSA.


Ele é meio lento, mas funciona relativamente rápido para encriptação. Pode ser usado, por exemplo, em conjunto com o Blowfish, para fazer troca segura de dados quando uma conexão SSL não está disponível. Do lado do servidor, pode ser gerado um par de chaves RSA, a partir de código PHP, por exemplo. Assim, o servidor pode enviar a chave pública junto com o código JavaScript, que poderá escolher uma chave Blowfish aleatória, criptografá-la com a chave pública RSA, e enviá-la de volta ao servidor. A vantagem é que a criptografia Blowfish é mais rápida, então utilizamos o RSA apenas para trocar as chaves de forma segura. A partir daí, o cliente, em JavaScript, terá um canal seguro para trocar dados com o servidor mesmo que não haja SSL disponível, por exemplo via AJAX.


maneiro

Nenhum comentário: