Introdução aos protocolos SSL e TLS

Esta sessão documenta as versões e protocolos utilizados no TLS, SSL e suas características e limitações. O objetivo é auxiliar a você na escolha dos mais seguros e riscos da utilização de versões legadas.

SSL

O SSL (Secure Sockets Layer) permite a comunicação segura entre servidor e usuários, via canal de criptografia seguro. Tal conexão tem vários benefícios:

  • Protege dados sensíveis que trafegam entre servidor e navegador, como logins, senhas

  • Protege contra o acesso indevido de criminosos e quer intruso

  • Protege, contra captura e consequentemente uso de dados pessoais, como número de cartões de crédito, dados financeiros, endereços e nomes

  • Protege os dados contra mdoificações indevidas durante o transito entre origem e destino na rede

O SSL embaralha os dados transferidos, tornando impossível sua leitura por crackers. Apenas se o invasor obtiver a chave de criptografia, ele conseguirá acesso ao conteúdo.

Para fazer a negociação de conexão, o protocolo SSL estabelece uma relação de confiança entre origem (muitas vezes seu navegador web) e destino para proteger uma conexão. Um certificado conecta o domínio, servidor e hostname a uma identidade que pode ser corporativa ou pessoal. O certificado é instalado no servidor web da organização, e quando o usuário acessa o website seguro, fornecendo conexão segura entre o navegador do usuário e servidor.

Para estabelecer essa relação de confiança, um certificado SSL é emitido por uma CA confiável (ou uma origem confiável), onde a CA autentica a o destino utilizando métodos de confirmação da identidade ou posse do domínio, e-mail, da identidade, etc.

Quando um certificado é gerado, geralmente ele possui os seguintes campos:
  • issued to

    Para quem o certificado foi emitido
  • issued from

    Quem emitiu o certificado
  • start date

    Data inicial no qual o certificado é válido
  • expire date

    Data final de validade (expiração) do certificado
  • domain name

    Domínio onde o certificado é válido
  • CA name

    Nome da entidade certificadora

HTTPS

O HTTPS é um protocolo para comunicação segura sobre HTTP. Esta comunicação é feita dentro de uma conexão que é encriptada utilizando TLS ou SSL.

Se um website tem um certificado SSL, a URL inicia com https:// ao invés de http://, ela também terá um símbolo de cadeado, indicando maior proteção. Caso clique no símbolo de cadeado na barra do navegador, você conseguirá obter detalhes do certificado.

Ataque Man in the Middle (MITM)

O HTTPS protege contra ataques man-in-the-middle, espionagem de conexão, data tampering (alteração) do conteúdo entre o website e usuários. Por outro lado, o HTTP (Hyper Text Transfer Protocol) é vulnerável a estes tipos de ataques, por utilizar a comunicação usando texto plano.

Com o HTTP, invasores podem acessar as contas do website e informações sensíveis, e injetar um malware e outros arquivos maliciosos no website. Desta forma, transações usando dados sensíveis (senhas, cartões de crédito, códigos de autenticação, etc) devem ser protegidos usando HTTPS.

Hoje em dia, o HTTPS se tornou extremamente importante para protegir todos os tipos de sites, devido ao aumento de website atacados. Você nâo deve apenas proteger os sites, mas também proteger a privacidade da comunicações de usuários, informações e identidadees.

TLS

O TLS (Transport Layer Security), que é uma versão atualizada e mais segura do SSL. Atualmente ele se encontra na versão 1.3 (lançada em Agosto de 2018, e coberto na RFC 8446). Assim como o SSL, o TLS fornece autenticação e encriptação de dados entre máquinas, servidores e aplicações.

O TLS foi desenvolvido para substituir o SSl versão 2, devido a diversas vulnerabilidades que haviam sido descobertas na época. Sua primeira versão (a TLS 1.0) foi lançada em 1999, e após isso surgiu o SSL 3.0. A versão 1.3 foi diretamente ligada a equipe de engenharia da CloudFlare e sua primeira implementação foi no navegador Firefox 52, sendo ativado por padrão.

A nova versão 1.3 do TLS é mais rápida que a TLS 1.2, e também eliminou falhas de segurança da versão anterior.

Algumas características notáveis do TLS 1.3 incluem:

  • As diretivas antigas e inseguras de criptografia foram completamente removidas

  • A construção usando técnicas analiticas modernas o tornam seguro

  • Sempre usar PFS, significando que cada sessão é protegida separadamente desde que não exista chave em comum, dando assim melhor proteção caso o tráfego for interceptado ou a chave de um certificado já usado muito tempo for exposto.

  • Encripta mais dados comparado ao TLS 1.2

  • Mais rápido que o TLS 1.2

  • Somente usa ciphers seguros (ChaCHA-Poly e AES-GCM), facilitando a proteção e configuração de aplicativos que são seguros por padrão.

  • Possui o modo 0-RTT, removendo o round-trip da latência de handshake. Isto é possível através de métodos inovadores de reuso de conexões já existentes.

A remoção suporte a ciphers antigos e quebrados de criptografia resultaram no TLS 1.3 ser um padrão bem mais seguro que o TLS 1.2 . Desta forma as falhas que permitiam tais ataques foram removidas, dificultando a exploração por crackers

O TLS 1.3 possui características que o tornam mais rápido em Streaming, dando aos usuários uma melhor experiẽncia de navegação web.

Devido a essas inovações, as maiores empresas como Google, Mozilla, Akamai, CloudFlare, foram as primeiras a adorarem o uso de TLS 1.3, e também assegurando o uso de software mais atualizados em seu ambiente.

Como viu, a atualização de softwares e tecnologias não servem apenas para ganhar novos recursos, mas também auxilia na proteção do ambiente e redução de riscos de segurança, caso estas técnicas não sejam adotadas.