Editor’s Note: Este post foi originalmente publicado em Julho de 2016 e foi actualizado pelo Director Sénior de Marketing de Produtos da GlobalSign Patrick Nohe para reflectir as últimas mudanças na evolução do SSL.
A menos que trabalhe com ele regularmente, há uma boa probabilidade de não saber a diferença entre SSL (Secure Sockets Layers) e TLS (Transport Layer Security). E esta indústria não lhe faz muitos favores ao referir-se coloquialmente ao TLS como SSL. Tem havido quatro iterações do protocolo TLS. O SSL foi (ou é suposto ser) totalmente depreciado. Então, qual é a diferença entre o SSL e o TLS?
Estás prestes a descobrir.
Um breve histórico do SSL e do TLS
SSL e TLS são ambos protocolos criptográficos que fornecem autenticação e encriptação de dados entre servidores, máquinas e aplicações que operam através de uma rede (por exemplo, um cliente que se liga a um servidor Web). Na realidade, o SSL tem apenas cerca de 25 anos de existência. Mas nos anos da Internet, isso é antigo. A primeira iteração do SSL, versão 1.0, foi desenvolvida pela primeira vez em 1995 pela Netscape, mas nunca foi lançada porque estava repleta de graves falhas de segurança. O SSL 2.0 não era muito melhor, por isso apenas um ano mais tarde foi lançado o SSL 3.0. Mais uma vez, tinha graves falhas de segurança.
Naquele momento, o pessoal da Consensus Development fez uma rachadura e desenvolveu o TLS 1.0. O TLS 1.0 era incrivelmente semelhante ao SSL 3.0 – de facto, baseava-se nele – mas ainda assim suficientemente diferente para exigir um downgrade antes do SSL 3.0 poder ser utilizado. Como os criadores do protocolo TLS escreveram:
“As diferenças entre este protocolo e o SSL 3.0 não são dramáticas, mas são suficientemente significativas para que o TLS 1.0 e o SSL 3.0 não interoperem”
>br>A retrogradação para o SSL 3.0 ainda era perigosa, embora, dadas as suas vulnerabilidades conhecidas e exploráveis. Tudo o que um atacante precisava de fazer para atingir um website era rebaixar o protocolo para SSL 3.0. Daí, o nascimento de ataques de downgrade. Isso acabou por ser o prego no caixão para TLS 1.0.
TLS 1.1 saiu sete anos mais tarde em 2006, substituído por TLS 1.2 em 2008. Isso prejudicou a adopção do TLS 1.1, uma vez que muitos websites foram simplesmente actualizados de 1.0 para TLS 1.2. Estamos agora no TLS 1.3, que foi finalizado em 2018 após 11 anos e quase 30 rascunhos da IETF.
TLS 1.3 faz melhorias significativas em relação aos seus predecessores e, neste momento, os principais actores em torno da Internet estão a exercer pressão para a sua proliferação. Microsoft, Apple, Google, Mozilla, e Cloudflare anunciaram todos planos para depreciar tanto o TLS 1.0 como o TLS 1.1 em Janeiro de 2020, tornando o TLS 1.2 e o TLS 1.3 o único jogo na cidade.
Em todo o caso, temos vindo a utilizar o TLS nas últimas duas décadas. Neste momento, se ainda está a usar SSL, está anos atrasado, metaforicamente vivendo numa era desesperada em que as pessoas ainda usam linhas telefónicas para ligar para a Internet.
Deveria estar a usar SSL ou TLS?
Both SSL 2.0 e 3.0 foram depreciados pela Internet Engineering Task Force, também conhecida como IETF, em 2011 e 2015, respectivamente. Ao longo dos anos foram e continuam a ser descobertas vulnerabilidades nos protocolos SSL depreciados (por exemplo, POODLE, DROWN). A maioria dos browsers modernos mostrarão uma experiência de utilizador degradada (por exemplo, linha através do cadeado ou https na barra URL, ou outros avisos de segurança) quando se depararem com um servidor web utilizando os protocolos antigos. Por estas razões, deverá desactivar o SSL 2.0 e 3.0 na configuração do seu servidor, e enquanto o faz – vá em frente e deprecie também o TLS 1.0 e o TLS 1.1.
De acordo com um inquérito recente da WatchGuard, quase 7% dos 100.000 Top 100.000 do Alexa ainda suportam SSL 2.0 e/ou SSL 3.0. Portanto, esses sites ainda estão por aí em abundância.
Certificados não são os mesmos que os protocolos
Antes de alguém começar a preocupar-se com a necessidade de substituir os seus certificados SSL existentes por certificados TLS, é importante notar que os certificados não são dependentes de protocolos. Ou seja, não precisa de usar um Certificado TLS vs. um Certificado SSL. Enquanto muitos vendedores tendem a usar a frase “Certificado SSL/TLS”, pode ser mais preciso chamá-los “Certificados para uso com SSL e TLS”, uma vez que os protocolos são determinados pela configuração do seu servidor, e não pelos próprios certificados.
Isso também se aplica à força de encriptação. Muitos certificados anunciam a força de encriptação, mas são verdadeiramente as capacidades do servidor e do cliente que o determinam. No início de cada ligação, ocorre um processo chamado aperto de mão. Durante este processo, o cliente autentica o certificado TLS do servidor e os dois decidem sobre um conjunto de cifras suportadas mutuamente. Os conjuntos de cifras são uma colecção de algoritmos que trabalham todos juntos para encriptar com segurança a sua ligação com esse website. Quando o conjunto de cifras é negociado durante o aperto de mão, é quando a versão do protocolo e os algoritmos de suporte são determinados. O seu certificado apenas facilita o processo.
Históricamente, houve quatro algoritmos num conjunto de cifras:
- Key Exchange
- Assinatura Digital
- Autenticação de Mensagens
- Algoritmo de Hashing
(Se isso parecer um pouco nas ervas daninhas, não o fará num segundo quando discutirmos as diferenças entre SSL e TLS.)
Por agora, é provável que continue a ver certificados referidos como Certificados SSL, porque neste momento é o termo com o qual mais pessoas estão familiarizadas. Estamos a começar a ver uma maior utilização do termo TLS em toda a indústria, e o SSL/TLS é um compromisso comum até que o TLS se torne mais amplamente aceite.
Are SSL e TLS Qualquer Criptografia Diferente?
Sim. A diferença entre cada versão do protocolo pode não ser enorme, mas se estivesse a comparar o SSL 2.0 com o TLS 1.3, haveria um desfiladeiro entre eles. No seu cerne, o conceito é o mesmo através de cada versão. É apenas a forma como os diferentes protocolos vão realizando a tarefa de encriptar ligações que diverge.
Cada versão recém-lançada do protocolo veio e virá com as suas próprias melhorias e/ou características novas/depreendidas. A versão 1 do SSL nunca foi lançada, a versão 2 sim, mas tinha algumas falhas importantes, a versão 3 do SSL foi uma reescrita da versão 2 (para corrigir estas falhas – com sucesso limitado) e a versão 1 do TLS uma melhoria da versão 3 do SSL. Entre o TLS 1.0 e 1.1, as alterações foram menores. O TLS 1.2 trouxe algumas alterações significativas e o TLS 1.3 aperfeiçoou e racionalizou todo o processo.
Vale a pena notar aqui que SSL e TLS se referem simplesmente ao aperto de mão que tem lugar entre um cliente e um servidor. O aperto de mão não faz de facto qualquer encriptação em si, apenas concorda num segredo partilhado e num tipo de encriptação que vai ser utilizado. Um aperto de mão SSL utiliza uma porta para fazer as suas ligações. A isto chama-se uma ligação explícita. A porta 443 é a porta padrão para HTTPS, mas existem 65.535 portas no total – com apenas algumas dedicadas a uma função específica.
TLS, pelo contrário, inicia as suas ligações via protocolo. A isto chama-se uma ligação implícita. O primeiro passo do aperto de mão – o acto que o inicia – é chamado de olá do cliente. Com TLS isto é enviado através de um canal inseguro e a ligação muda para a porta 443 (ou a porta que designou) uma vez iniciado o aperto de mão.
Tradicionalmente, o aperto de mão tem envolvido várias viagens de ida e volta, uma vez que a autenticação e a troca de chaves têm lugar. Com SSL, isto adicionou latência às ligações. Foi aí que nasceu o mito de que o SSL/HTTPS abranda o seu website. Cada nova iteração do protocolo tem funcionado para reduzir a latência acrescentada pelo aperto de mão. Pelo TLS 1.2, ficou provado que o HTTPS era na realidade mais rápido do que o HTTP devido à sua compatibilidade com o HTTP/2.
TLS 1.3 aperfeiçoou ainda mais o aperto de mão. Pode agora ser realizado com uma única ida e volta e permite o recomeço da ida e volta zero (0-RTT). Parte da forma como isto foi feito foi reduzindo o número de conjuntos de cifras que suporta, de quatro algoritmos para dois.
Agora é simplesmente um algoritmo de encriptação em massa (simétrico/sessão) e um algoritmo de hashing. As negociações de troca de chaves e de assinatura digital foram removidas. A troca de chaves é agora realizada utilizando uma família Diffie-Hellman, o que permite ambos um perfeito sigilo por defeito e permite ao cliente e ao servidor fornecer a sua parte do segredo partilhado na sua primeira interacção. Essa primeira interacção é agora também encriptada, fechando a porta a um possível vector de ataque.
Para mais informações sobre as novas funcionalidades lançadas no TLS 1.3, visite o blog Cloudflare.
Desactivar SSL 2.0 e 3.0 e TLS 1.0
Se não tiver a certeza se os seus servidores ainda suportam protocolos SSL, pode facilmente verificar utilizando o nosso Teste do Servidor SSL. Para instruções sobre como desactivar o SSL 2.0 e 3.0 em tipos de servidores populares, incluindo Apache, NGINX e Tomcat, consulte o nosso artigo de suporte relacionado. Se ainda precisar de desactivar o TLS 1.0, podemos ajudá-lo com isso, também.
Então, qual é a diferença entre o SSL e o TLS? Numa conversa educada, não muito – e muitas pessoas continuam a usar os termos SSL e TLS de forma intercambiável. No entanto, em termos da configuração do seu servidor, existem algumas grandes diferenças arquitectónicas e funcionais. E essas diferenças são o espaço entre vulnerabilidades, conjuntos de cifras desactualizadas, avisos de segurança do navegador – e um servidor seguro. Quando se trata dos seus servidores, só deve ter os protocolos TLS activados.