TLS na prática: handshake e certificados
O cadeado no navegador não significa 'site confiável' — significa só 'ninguém no meio consegue ler isso'.
A lição de HTTP/HTTPS já mostrou que o "S" significa criptografia via TLS. O que faltou explicar é como os dois lados chegam a uma chave de criptografia em comum sem já compartilhar um segredo antes, e por que o navegador confia no certificado que o servidor apresenta.
O handshake, passo a passo
Clique em “Reproduzir fluxo” para ver a requisição passo a passo.
Repare que a chave de criptografia usada depois do handshake é gerada na hora, só pra essa sessão — nem cliente nem servidor precisavam conhecer essa chave antes da conversa começar. O certificado do passo 2 não serve pra criptografar o tráfego em si; ele serve pra provar identidade antes de qualquer chave ser combinada.
Certificado — quem garante que ele é legítimo?
Um certificado é assinado por uma autoridade certificadora (CA — Certificate Authority), uma entidade cuja chave pública raiz já vem pré-instalada como confiável no seu sistema operacional e no seu navegador. Se o certificado do servidor faz parte de uma cadeia que termina numa dessas raízes confiáveis, o navegador aceita sem perguntar nada a você.
curl -vI https://howtodev.site 2>&1 | grep -E "subject|issuer"issuer é quem assinou o certificado; nesse exemplo, a Let's Encrypt — uma CA gratuita e automatizada, que emite certificados via um protocolo chamado ACME. Uma ferramenta como o certbot automatiza esse processo inteiro: prova que você controla o domínio, recebe o certificado, e agenda a renovação sozinha (certificados da Let's Encrypt valem só ~90 dias, de propósito, justamente pra forçar esse tipo de automação em vez de renovação manual esquecida).
O que o cadeado NÃO garante
O cadeado prova só duas coisas: a conexão está criptografada, e o certificado corresponde ao domínio que você está acessando. Ele não prova que o site por trás é confiável, legítimo, ou que a empresa é quem diz ser. Uma página de phishing registrada em seu-banc0-online.com consegue um certificado válido gratuito com a mesma facilidade que qualquer outro site — a CA verifica só que quem pediu o certificado controla aquele domínio, não a reputação de quem está por trás dele.
Exercício
Um colega diz: "não tem como ser phishing, o site tem cadeado e certificado válido". O que está errado nesse raciocínio?