Pular para conteúdo

Aula 09 – TLS/SSL e Segurança em Redes 🌐

Toda vez que você vê o cadeado no navegador, o TLS está trabalhando nos bastidores. Nesta aula vamos juntar tudo que aprendemos — simétrica, assimétrica, hash e certificados — em um único protocolo que protege bilhões de conexões por dia.


🔓 SSL x TLS: qual a diferença?

SSL (Secure Sockets Layer) foi o protocolo original, hoje totalmente aposentado por vulnerabilidades. TLS (Transport Layer Security) é seu sucessor moderno — mas o termo "SSL" continua sendo usado coloquialmente para se referir ao TLS.

Versão Status
SSL 2.0 / 3.0 ❌ Quebrados, proibidos
TLS 1.0 / 1.1 ❌ Obsoletos, desativados pela maioria dos navegadores
TLS 1.2 ✅ Ainda amplamente suportado
TLS 1.3 ✅ Padrão atual, mais rápido e seguro

🤝 O TLS Handshake

Antes de trocar qualquer dado, cliente e servidor negociam uma conexão segura através do handshake — o momento em que tudo que vimos até agora se junta:

sequenceDiagram
    participant C as Cliente (navegador)
    participant S as Servidor
    C->>S: 1. Client Hello (versões TLS, cifras suportadas)
    S->>C: 2. Server Hello + Certificado Digital (Aula 07)
    C->>C: 3. Valida o certificado na cadeia de confiança (PKI)
    C->>S: 4. Troca de chaves (Diffie-Hellman - Aula 05)
    Note over C,S: Ambos agora tem uma chave simétrica compartilhada
    C->>S: 5. Dados cifrados com AES (Aula 04) usando essa chave

Resumindo o handshake

  1. Servidor prova sua identidade com um certificado (PKI).
  2. Cliente e servidor combinam uma chave secreta via Diffie-Hellman.
  3. Toda a comunicação depois disso é cifrada com AES, usando essa chave — rápida e segura.

🔒 HTTPS: HTTP sobre TLS

HTTPS é simplesmente o protocolo HTTP normal, rodando dentro de uma conexão TLS. Ele garante:

  • Confidencialidade: ninguém no meio do caminho consegue ler os dados.
  • Integridade: ninguém consegue alterar os dados sem ser detectado.
  • Autenticidade: você tem garantia de estar falando com o servidor real (via certificado).

🕵️ Ataques que o TLS Previne (e os que não previne)

Ataque TLS previne?
Man-in-the-Middle (interceptação de tráfego) ✅ Sim
Servidor falso se passando pelo real ✅ Sim (se o certificado for validado corretamente)
Phishing (site falso com domínio parecido) ❌ Não — o site falso pode ter certificado TLS válido para o próprio domínio dele

TLS não é prova de site legítimo

Um site de phishing em paypa1-login.com pode perfeitamente ter um cadeado verde válido — o TLS garante que a conexão com aquele domínio é segura, não que o domínio seja confiável.


💻 Inspecionando uma Conexão TLS

$ # Verificando qual versao de TLS um site suporta $ openssl s_client -connect example.com:443 -tls1_3 < /dev/null 2>&1 | grep "Protocol" $ Protocol : TLSv1.3 $ $ # Verificando os cabecalhos de seguranca HSTS $ curl -sI https://example.com | grep -i strict-transport-security

📝 Exercícios de Fixação

  1. Básico: Qual a diferença entre SSL e TLS?
  2. Básico: Por que TLS 1.0 e 1.1 são considerados inseguros hoje?
  3. Intermediário: Descreva, em 4 passos, o que acontece durante um TLS handshake.
  4. Intermediário: Por que o TLS não impede um usuário de cair em um site de phishing?
  5. Desafio: Pesquise o que é HSTS (HTTP Strict Transport Security) e como ele protege contra ataques de downgrade para HTTP.

🚀 Mini-Projeto: Auditor de TLS

Objetivo: Analisar a configuração TLS de 3 sites diferentes usando linha de comando.

  1. Escolha 3 sites (ex: um banco, uma rede social, um site pessoal).
  2. Para cada um, verifique a versão de TLS suportada com openssl s_client.
  3. Verifique se o cabeçalho Strict-Transport-Security está presente com curl -I.
  4. Compare os resultados: qual site parece mais bem configurado em segurança de rede?

Ir para Aula 10