Em um artigo mais técnico, explicamos as diferenças entre os protocolos SSL e TLS , e indicamos algumas ferramentas para ajudar você a compreender seu funcionamento.
Por Sérgio Leal
O início
Por volta de 1995, a Netscape, até então ‘dona da Internet’ lançou o SSLv2 (Security Socket Layer).
O protocolo foi construído para criar um tunel criptográfico entre um navegador e um servidor web, provendo sigilo, autenticação e garantia de integridade da comunicação.
No ano seguinte, eles lançam uma nova versão SSL v3 com uma série de melhorias de segurança.
Quando o protocolo deixou de ser publicado pela Netscape e passou a ser uma RFC da IETF o nome dele foi alterado para Transporte Layer Security, sendo que a nova versão recebeu o numero de versão 1.0. Internamente o protocolo ‘responde’ como SSL v3.1.
Na sequência a IETF publicou as versões 1.1 e 1.2 do protocolo, que trazem uma melhoria significativa no aspecto de segurança.
O que torna o SSL/TLS especial
A jogada da ideia do SSL/TLS é sua capacidade de adequar-se a diversos conjuntos de cifras diferentes, sendo algumas mais antigas e frágeis e outras mais novas e robustas. Por outro lado, esse também é seu calcanhar de Aquiles.
É fundamental que os administradores entendam quais versões de protocolo e cifras devem ser permitidos para garantir a interoperabilidade, sem abrir mão de um alto padrão de segurança.
Configurações de sistemas
Existem muitas configurações que podem tornar o seu servidor seguro ou não.
Abaixo temos um exemplo de configuração (entre diversas outras) que devemos colocar num servidor Apache que utilize SSL/TLS. Ela visa impedir o uso de cifras fracas (ou obsoletas, com falhas já conhecidas).
- EXP refere-se a de 40 bits e 56 bits cifras
- NULL oferecer nenhuma criptografia.
- ADH refere-se a troca de chaves Diffie-Hellman Anonymous que efetivamente desativa a validação do certificado do servidor
- LOW e refere-se a outras cifras de baixa resistência.
SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW
Na configuração o uso de um ponto de exclamação na frente de um código cifrado diz ao Apache para nunca mais usá-lo.
Para testar o cliente e o servidor
Existem diversas ferramentas que podem nos ajudar a avaliar a segurança de um servidor com SSL/TLS. Para o exemplo a seguir utilizamos o recurso online www.ssllabs.com
Testes no cliente
Nos testes realizados utilizamos um Chrome atualizado. e nos resultados apresentados, devemos destacar alguns problemas como cifras fracas (baseadas em RC4, SAH1, MD5), mas apontar entre os pontos positivos o suporte ao TLS 1.2.
Testes no servidor
Decidi testar o TLS do servidor do Google (www.google.com), e ele ganhou uma nota ‘B’.
Devemos destacar 3 aspectos negativos:
- Suporte a SSL v3;
- Certificado de AC assinado com SHA1;
- Suporte a algoritmos criptográficos fracos;
Um aspecto interessante do serviço é a simulação das capacidades de varios navegadores e versões. Na simulação com o IE6, o sistema fecha a conexão utilizando o SSL v3.
Aproveite as dicas das ferramentas e de uma verificada nos seus sistemas!
Sérgio Leal
Ativista de longa data no meio da criptografia e certificação digital.
Trabalha com criptografia e certificação Digital desde o início da década de 90, tendo ocupado posições de destaque em empresas lideres em seu segmento como Modulo e CertiSign.
Criador da ‘ittru’: Primeira solução de certificação digital mobile no mundo.
Bacharel em Ciências da Computação pea UERJ desde 1997.
Certificações:
– Project Management Professional (desde 2007)
– TOGAF 9.1 Certified
– Oracle Certified Expert, Java EE 6 (Web Services Developer, Enterprise JavaBeans Developer)
Sérgio Leal é colunista e membro do conselho editorial do CryptoID.