Existem dezenas de combinações possíveis para as cifras de criptografia e troca de chave que podem ser utilizadas em uma comunicação SSL/TLS. Estão disponíveis desde as mais seguras até algumas com algoritmos de criptografia e assinatura digital mais fracos.
A nomenclatura adotada por padrão, para esses conjuntos de cifra, indicam o algoritmo de troca de chaves (ex: RSA, ECDHE), o algoritmo de assinatura, o de criptografia simétrica (utilizado para a comunicação de dados) e de autenticação de mensagem.
Isso acontece porque o protocolo SSL/TLS permite que o servidor e o cliente negociem que cifras vão utilizar para troca de chaves, assinatura, criptografia e autenticação da mensagem, dentro das várias suportadas por padrão. Sempre é escolhido o conjunto de cifras mais seguro entre as cifras suportadas por ambas as partes (cliente e servidor). Isso faz parte do "SSL Handshake" que acontece no início de uma conexão SSL.
Um navegador web, por exemplo, pode se conectar a um servidor usando qualquer uma das opções de cifras que o servidor fornece e que também sejam suportadas pelo navegador. Assim, se o site oferecer algumas opções seguras (por exemplo, troca de chave com ECDH), mas também algumas opções fracas (como a velha criptografia DES), os usuários podem se conectar com qualquer uma das opções disponíveis. Normalmente o browser e o servidor web negociam a cifra mais forte que seja comum entre os dois, mas um atacante, nesse caso, pode tentar forçar o uso de algoritmos fracos para explorar a conexão da vítima.
O tipo de cifra usada no SSL é algo que pode (e deve!) ser configurado nos servidores, seja ele um servidor Web Apache, a comunicação com um host com VMware, uma API, o pacote Schannel da Microsoft, etc.
A melhor forma que eu conheço para avaliar se a configuração SSL do seu site fornece opções seguras é através do site SSL Test, mantido pela Qualys (https://www.ssllabs.com/ssltest/). Ele avalia as cifras aceitas por padrão em seu site Web, simula os handshake desde vários browsers diferentes, verifica se estão sendo usadas cifras frágeis ou combinações associadas a vulnerabilidades conhecidas, e no final, gera uma pontuação para indicar se a configuração está boa ou ruim. O ideal, claro, é obter nota máxima, "A".
Entre outras informações interessantes, o SSL Test identifica quais são os conjuntos de cifras suportadas pelo servidor web e simula o handshake com diferentes versões de browser, para identificar que cifra cada browser irá adotar como padrão.
Diversas novidades, informações, dicas e casos do dia-a-dia: na vida pessoal, sobre Tecnologia e, principalmente, Segurança da Informação.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário