sábado, 3 de maio de 2014

Heartbleed: a importância da falha de segurança em sistemas criptográficos

Sites como Yahoo!, Tumblr e Flicker podem apresentar falhas no sistema criptográfico, um Heartbleed, deixando vazar informações sigilosas dos usuários na rede.

A troca de informações, que devem ser sigilosas, entre usuários e páginas se tornou algo rotineiro
Nos dias atuais, a comunicação é feita sobretudo através dainternet. Trocas de e-mail ou mensagens via redes sociais são algo rotineiro. Compras são frequentemente feitas pela web. Todas essas atividades envolvem a troca de informações entre o usuário e o servidor da página e, muitas vezes, essa informação deve ser mantida em sigilo. Ao se digitar o número de um cartão de crédito durante uma compra, o usuário deseja que apenas a página da loja em questão tenha acesso a essa informação. 
Esse sigilo é garantido através do uso da criptografia. Um protocolo de criptografia frequentemente usado por lojas, redes sociais e e-mails é o SSL (Secure Sockets Layer). Quando há “HTTPS“ antes do endereço da página no browser, é esse o protocolo que está sendo usado.

A criptografia é usada para garantir a segurança dos dados trocados entre usuários e servidor
No protocolo SSL, cada servidor possui um par de chaves criptográficas que são autenticadas por um certificado emitido por uma autoridade confiável. Uma das chaves é pública e a outra é privada e mantida em segredo. Materiais criptografados pela chave pública só podem ser lidos pela chave privada e vice-versa. Quando há comunicação de modo seguro com o servidor de uma página, o browser checa a identidade desse servidor, avaliando o seu certificado. Se o browser confia no certificado, ele envia uma mensagem ao servidor usando a chave pública. O servidor envia, então, um reconhecimento digital e uma seção segura se inicia.

Um erro de programação pode expôr os dados pessoais de diversos usuários

Para ser usado, o SSL precisa ser implementado em um software que é, então, incorporado a um produto maior, como um servidor. A forma de implementação mais comum é chamada de OpenSSL. 
Descobriu-se a presença de erro de programação nessa implementação, que permite que um sistema com OpenSSL seja enganado, revelando os conteúdos presentes na memória do servidor. Essa vulnerabilidade foi chamada de Heartbleed. 
O conteúdo revelado a cada instante pode ser qualquer coisa: um nome de usuário, um número de cartão de crédito ou, até mesmo, a chave criptográfica privada do servidor! Além disso, não fica registrado em nenhum lugar qual o conteúdo revelado. Como não há como saber que informação foi copiada, é possível que nunca saibamos qual a extensão dos danos causados por essa falha. 
Dentre os sites afetados por essa falha encontram-se o Yahoo!, Tumblr e Flickr. Essas páginas iniciarão medidas como a alteração das chaves privadas e outras correções para voltar a apresentar conexões seguras.