Aula 2 de 4 · 9 min
Assinaturas digitais, certificados e TLS
Como um navegador sabe que está realmente falando com o seu banco, por que um ícone de cadeado significa algo específico, e o que ele não significa.
A aula anterior deixou uma pergunta em aberto: a criptografia assimétrica permite que você envie um segredo para alguém cuja chave pública você tem — mas como saber que essa chave pública realmente pertence a essa pessoa, e não a um atacante no meio do caminho? As assinaturas digitais e os certificados respondem a isso, e juntos tornam possível o TLS, o protocolo por trás de todo endereço https://.
Assinaturas digitais: prova de origem, não sigilo
Uma assinatura digital executa a criptografia assimétrica ao contrário. Em vez de criptografar uma mensagem com a chave pública de alguém para que só essa pessoa consiga lê-la, o remetente assina uma mensagem com sua própria chave privada, e qualquer pessoa pode verificá-la usando a chave pública do remetente. Se a verificação for bem-sucedida, duas coisas são verdadeiras: a mensagem veio de quem detém aquela chave privada, e ela não foi alterada depois — a mesma propriedade de resistência a colisões discutida na aula anterior sobre hashing é o que torna a adulteração detectável. Uma assinatura prova autenticidade e integridade; ela não mantém, por si só, a mensagem em sigilo.
Certificados: uma assinatura que atesta uma chave pública
Um certificado digital resolve o problema de “de quem é realmente essa chave pública”. Como explica o Learning Center da Cloudflare, um certificado SSL/TLS é “um arquivo de dados hospedado no servidor de origem de um site” contendo o nome de domínio, a chave pública, uma data de expiração e — crucialmente — “a assinatura digital da autoridade certificadora”. Uma autoridade certificadora (CA, na sigla em inglês) é um terceiro confiável que verifica se um site controla o domínio para o qual está solicitando um certificado, e então assina esse certificado com sua própria chave privada. Seu navegador já vem com uma lista integrada de CAs em que confia, então, quando recebe um certificado assinado por uma delas, ele consegue confiar na chave pública contida ali sem nunca ter tido contato com o operador do site. Um certificado autoassinado — um que o próprio site assina em vez de obter de uma CA — não tem esse aval externo, e é por isso que os navegadores tratam esse tipo de certificado como não confiável por padrão.
TLS: colocando as duas coisas para funcionar
A RFC 8446, a especificação do TLS 1.3, descreve um aperto de mão (handshake) em fases: troca de chaves, na qual os dois lados estabelecem material secreto compartilhado; depois autenticação, em que, nas palavras da RFC, “o lado do servidor do canal é sempre autenticado; o lado do cliente é autenticado opcionalmente” — normalmente só o site prova sua identidade, não o visitante. O servidor prova quem é usando seu certificado e uma assinatura que só ele conseguiria produzir com sua chave privada. Quando os dois lados confiam na conexão, eles derivam chaves simétricas rápidas (o AES da aula anterior, tipicamente) para os dados de fato. A RFC 8446 afirma claramente o que isso garante: confidencialidade e integridade para os dados trocados, e autenticação do servidor. Ela também afirma, com a mesma clareza, um limite: “o TLS não oculta o tamanho dos dados que transmite”, e metadados como a qual servidor você se conectou e quando permanecem visíveis para qualquer um posicionado para observar a conexão.
O que o ícone de cadeado significa e o que não significa
| O cadeado / https:// significa | Não significa |
|---|---|
| A conexão com aquele servidor está criptografada e sua integridade está protegida | O site é confiável, honesto ou seguro de usar |
| Você está falando com quem quer que controle aquele nome de domínio | Esse nome de domínio é quem você pensa que é — um domínio parecido e convincente também recebe um certificado válido |
| Ninguém no caminho da rede consegue ler ou alterar silenciosamente o tráfego | Ninguém consegue ver que você visitou o site, quando ou com que frequência |
Um site de phishing construído sobre um domínio parecido pode ter um certificado perfeitamente válido: o TLS autentica o domínio, não a intenção de quem o registrou. É por isso que a aula anterior sobre como os ataques se desenrolam trata uma página de login falsa, cadeado e tudo, como uma ameaça ativa, não como uma contradição.
Para lembrar
- Uma assinatura digital prova quem enviou uma mensagem e que ela não foi alterada — ela não mantém, por si só, a mensagem em sigilo.
- Um certificado é uma declaração assinada, por uma autoridade certificadora na qual o navegador já confia, de que uma determinada chave pública pertence a um determinado domínio.
- Um aperto de mão TLS (RFC 8446) sempre autentica o servidor; o visitante raramente é autenticado da mesma forma.
- O TLS protege confidencialidade e integridade em trânsito, e confirma que você chegou ao domínio pretendido — ele não esconde que uma conexão aconteceu, nem garante que o site por trás dela seja confiável.
- Um site de phishing em um domínio parecido pode exibir um cadeado perfeitamente válido; o certificado autentica o domínio, não a intenção de quem o opera.
Teste seus conhecimentos
1. O que uma assinatura digital válida em uma mensagem prova?
- Que a mensagem é secreta para todos, exceto o destinatário
- Que a mensagem veio de quem detém uma chave privada específica e não foi alterada — Certo.
- Que a mensagem foi enviada usando TLS
- Que a mensagem está livre de qualquer conteúdo prejudicial
As assinaturas verificam autenticidade e integridade usando o par de chaves de quem assina; elas não criptografam a mensagem para mantê-la em sigilo.
2. Que papel uma autoridade certificadora (CA) desempenha no TLS?
- Ela armazena suas senhas em seu nome
- Ela atesta, com sua própria assinatura, que uma chave pública pertence a um determinado domínio — Certo.
- Ela criptografa todo o tráfego da internet
- Ela bloqueia sites de phishing automaticamente
Uma CA verifica o controle do domínio e assina o certificado, permitindo que navegadores que já confiam na CA confiem na chave pública do certificado sem contatar diretamente o operador do site.
3. Segundo a RFC 8446, qual lado de uma conexão TLS típica é sempre autenticado?
- Apenas o cliente (seu navegador)
- O servidor — Certo.
- Nenhum dos dois lados por padrão
- Ambos os lados, sempre, sem exceções
A RFC 8446 afirma que o lado do servidor é sempre autenticado, enquanto a autenticação do cliente é opcional e muito menos comum na navegação comum.
4. Por que um site de phishing ainda pode mostrar um ícone de cadeado válido?
- Ícones de cadeado são cosméticos e não significam nada
- Um certificado autentica um nome de domínio, não a honestidade de quem o registrou — Certo.
- Os navegadores não verificam mais os certificados
- Sites de phishing não conseguem usar HTTPS de forma alguma
Os certificados TLS confirmam que você está falando com o verdadeiro detentor de um determinado domínio; um domínio parecido e convincente pode obter seu próprio certificado perfeitamente válido.
Praticar com o FireAI
Coloque esta lição em prática no seu próprio Mac.
- Inspeção profunda, sem descriptografar nada — Tenha detalhes reais sobre uma conexão segura sem que o FireAI leia nunca o que tem lá dentro.
- O que fica no seu Mac, e as únicas vezes em que o FireAI se conecta sozinho — Leia a lista completa do que o FireAI envia, em vez de confiar na palavra de um firewall.
Fontes
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
- Cloudflare Learning Center: What is an SSL certificate?
Coloque em prática no seu Mac
Teste todos os recursos grátis por 17 dias, sem cartão.