IPAddress-Lookup.com

Certificados SSL e HTTPS explicados

IPAddress-Lookup.com ·

Sempre que visita um site e vê um pequeno cadeado ao lado do endereço, ou repara que o URL começa por https:// em vez de http://, está a confiar numa das tecnologias mais importantes da Internet moderna: a encriptação SSL/TLS e os certificados digitais que a tornam possível. Estes certificados protegem discretamente as suas palavras-passe, números de cartão de crédito, mensagens privadas e hábitos de navegação contra qualquer pessoa que possa estar a espreitar na rede entre si e o servidor. No entanto, para algo tão fundamental, o funcionamento dos certificados SSL e do HTTPS continua a ser um mistério para a maioria das pessoas. Este guia levanta o véu e explica, em linguagem simples, exatamente o que é o SSL/TLS, como funciona a encriptação, o que um certificado realmente comprova e como o seu navegador decide se deve ou não confiar num site.

O que são, na verdade, o SSL e o TLS

SSL significa Secure Sockets Layer, um protocolo originalmente concebido pela Netscape em meados da década de 1990 para proteger a comunicação entre navegadores da Web e servidores. O problema que resolveu era simples de descrever, mas difícil de resolver: a Web original (HTTP) enviava tudo como texto simples e legível. Qualquer pessoa posicionada entre si e um site — um ponto de acesso Wi-Fi malicioso, um fornecedor de Internet, um router comprometido — podia ler ou até mesmo alterar os dados que circulavam entre ambos. O SSL envolveu esse tráfego numa camada de criptografia, de modo a que se tornasse incompreensível para quem tentasse espreitar.

O SSL, por si só, está agora obsoleto. Descobriu-se que o SSL 2.0 e o SSL 3.0 continham falhas de segurança graves e foram retirados de circulação há anos. O protocolo que hoje em dia protege efetivamente a Web chama-se TLS, ou Transport Layer Security. O TLS é o sucessor direto do SSL e, quando as pessoas dizem «certificado SSL», referem-se quase sempre a um certificado utilizado com o TLS. O nome simplesmente pegou porque era familiar. A evolução é a seguinte:

  • SSL 1.0 — nunca foi lançado publicamente devido a falhas de segurança.
  • SSL 2.0 (1995) e SSL 3.0 (1996) — ambos agora obsoletos e desativados em todo o lado.
  • TLS 1.0 (1999) — a primeira versão sob o nome TLS; também obsoleta atualmente.
  • TLS 1.1 (2006) — retirada de circulação juntamente com a versão 1.0.
  • TLS 1.2 (2008) — ainda amplamente utilizado e considerado seguro quando configurado corretamente.
  • TLS 1.3 (2018) — o padrão atual, mais rápido e sem os algoritmos fracos herdados do passado.

O TLS 1.3 foi objeto de uma reformulação profunda. Eliminou dezenas de opções de encriptação desatualizadas que causavam vulnerabilidades e simplificou o estabelecimento da ligação, para que as sessões seguras sejam estabelecidas mais rapidamente. Os navegadores modernos negociam a versão mais elevada suportada por ambas as partes, o que, na prática, significa TLS 1.2 ou 1.3.

O que um certificado SSL realmente faz

Um certificado SSL/TLS desempenha duas funções distintas, e é importante compreender que são separadas. A primeira é a encriptação — codificar os dados para que não possam ser lidos durante a transmissão. A segunda é a autenticação, ou verificação de identidade — provar que o servidor com o qual está a comunicar pertence genuinamente ao domínio apresentado na barra de endereços, e não a um impostor que tenha interceptado a sua ligação.

A encriptação sem autenticação seria perigosa. Poderia ter uma ligação perfeitamente encriptada com um atacante que estivesse simplesmente a retransmitir o seu tráfego enquanto lia tudo. O certificado resolve isto ao associar uma chave criptográfica a uma identidade verificada. Quando o seu navegador aceita um certificado, está a confirmar tanto que a ligação será privada como que a outra extremidade é quem afirma ser. Juntas, estas duas garantias são o que torna seguros os serviços bancários online, as compras e os inícios de sessão.

Criptografia assimétrica versus simétrica

Para compreender como funciona o HTTPS, é necessário conhecer dois conceitos da criptografia, que são mais simples do que parecem.

A encriptação simétrica utiliza uma única chave secreta partilhada para encriptar e desencriptar dados. É extremamente rápida e eficiente, o que a torna ideal para encriptar o grande volume de dados numa sessão de navegação real. O problema é óbvio: ambos os lados precisam da mesma chave e, se essa chave for enviada através de uma rede não segura, um intruso pode interceptá-la.

A encriptação assimétrica resolve o problema da partilha de chaves utilizando um par de chaves correspondentes: uma chave pública que qualquer pessoa pode ver e uma chave privada que o proprietário mantém em segredo. Os dados encriptados com a chave pública só podem ser desencriptados com a chave privada, e vice-versa. Isto permite que dois desconhecidos cheguem a acordo sobre um segredo através de um canal aberto. No entanto, a criptografia assimétrica é lenta, pelo que não é utilizada durante toda a conversa.

O HTTPS combina o melhor de ambas as tecnologias. Utiliza a criptografia assimétrica, mais lenta, brevemente, no início, para estabelecer com segurança um segredo partilhado, e depois muda para a encriptação simétrica, mais rápida, durante o resto da sessão. Essa negociação é designada por «handshake» TLS.

Como funciona o HTTPS: um guia pelo «handshake» TLS

Quando introduz um endereço web, o seu navegador primeiro resolve o nome de domínio num endereço IP — um processo intimamente ligado ao funcionamento do DNS — e, em seguida, abre uma ligação a esse servidor. Antes de qualquer página web ser trocada, ocorre o handshake TLS. Eis o que acontece, passo a passo.

  1. ClientHello. O seu navegador envia a primeira mensagem. Esta lista as versões TLS que suporta, os conjuntos de cifragem (combinações de algoritmos de encriptação) que pode utilizar e um valor aleatório que será utilizado na geração da chave. Pense nisso como se dissesse «eis quem eu sou e eis o que sei dizer».
  2. ServerHello. O servidor responde escolhendo a versão TLS e o conjunto de cifras que irá utilizar a partir da lista do navegador e envia o seu próprio valor aleatório. Ambas as partes concordam agora com as regras da comunicação.
  3. Certificado. O servidor apresenta o seu certificado SSL/TLS, que contém a sua chave pública e as informações de identidade assinadas por uma Autoridade Certificadora. Este é o momento em que o seu navegador verifica se o certificado é válido, fiável e emitido para o domínio que está a visitar.
  4. Troca de chaves. Utilizando a chave pública do certificado (ou um algoritmo moderno de acordo de chaves, como o Diffie-Hellman de Curva Elíptica), as duas partes derivam de forma segura um segredo partilhado. Fundamentalmente, um intruso que esteja a espreitar todas as mensagens continua a não conseguir calcular este segredo, porque a chave privada nunca sai do servidor.
  5. Chaves de sessão e conclusão. Ambas as partes utilizam o material trocado e os dois valores aleatórios para gerar o mesmo conjunto de chaves de sessão simétricas. Cada uma envia uma mensagem de «conclusão» encriptada com estas chaves para comprovar que o handshake foi bem-sucedido. A partir deste momento, toda a comunicação é encriptada simetricamente — de forma rápida, privada e à prova de adulteração.

Tudo isto normalmente ocorre numa fração de segundo. No TLS 1.3, o handshake foi reduzido a uma única ida e volta, e os visitantes que regressam podem, por vezes, retomar a ligação ainda mais rapidamente. O resultado final é um canal seguro pelo qual as suas solicitações e respostas HTTPS efetivas transitam.

Autoridades de Certificação e a cadeia de confiança

A fiabilidade de um certificado depende da entidade que o garante. Esse papel cabe a uma Autoridade Certificadora (CA) — uma organização na qual o seu navegador e sistema operativo decidiram confiar antecipadamente. Quando o proprietário de um site solicita um certificado, a CA verifica o seu controlo sobre o domínio (e, por vezes, a identidade da sua empresa) antes de assinar o certificado com a própria chave da CA. É essa assinatura que o seu navegador verifica.

A confiança está organizada como uma cadeia com três elos:

  • Certificado raiz. O topo da cadeia. Os certificados raiz vêm pré-instalados no seu navegador e sistema operativo num «armazém de confiança». As suas chaves privadas são mantidas offline sob rigorosas medidas de segurança, pois comprometer uma delas comprometeria todo o sistema.
  • Certificado intermédio. As raízes não assinam diretamente os certificados dos sites. Em vez disso, assinam um ou mais certificados intermédios, que, por sua vez, assinam os certificados dos sites propriamente ditos. Isto mantém a preciosa chave raiz isolada e permite que um certificado intermédio comprometido seja revogado sem afetar a raiz.
  • Certificado de folha. Também chamado de certificado de entidade final, é aquele instalado no próprio site. É assinado por um certificado intermédio.

Quando o seu navegador valida um site, percorre esta cadeia: o certificado de folha é assinado por um certificado intermédio, o certificado intermédio é assinado por outro certificado intermédio ou por uma raiz, e a raiz é uma que o navegador já considera de confiança. Se todos os elos forem válidos e a raiz estiver no repositório de confiança, o certificado é aceite. A isto chama-se «construção da cadeia», e uma causa comum de erros do tipo «não confiável» é um servidor que se esquece de enviar o seu certificado intermédio, quebrando assim a cadeia.

Tipos de certificados

Nem todos os certificados são iguais. Diferenciam-se no rigor com que a CA verifica o requerente e no número de domínios que abrangem. A tabela abaixo resume os principais tipos.

Tipo Nível de validação O que comprova Utilização típica
DV (Validação de Domínio) Básico — controlo apenas do domínio O requerente controla o domínio Blogues, sites pessoais, a maioria dos sites modernos
OV (Validação da Organização) Moderado — identidade da organização verificada O domínio pertence a uma organização verificada Sites empresariais e corporativos
EV (Validação Alargada) Rigoroso — verificação jurídica exaustiva Confirmação rigorosa da entidade jurídica Bancos, grandes plataformas de comércio eletrónico, serviços de elevada confiança
Wildcard Qualquer uma das opções acima Protege um domínio e todos os seus subdomínios *.example.com, abrangendo loja, blogue, e-mail, etc.
Multidomínio (SAN/UCC) Qualquer um dos anteriores Protege vários domínios distintos num único certificado Organizações que gerem muitos domínios separados

Um ponto-chave para os utilizadores comuns: do ponto de vista da encriptação, os certificados DV, OV e EV são idênticos. Todos oferecem a mesma proteção robusta para os seus dados. A diferença reside exclusivamente na garantia de identidade. Antigamente, os certificados EV exibiam o nome da empresa a verde na barra de endereços, mas os navegadores eliminaram em grande parte essa distinção, pelo que a maioria dos sites utiliza hoje certificados DV económicos ou gratuitos.

Certificados curinga e multidomínio

Um certificado curinga utiliza um asterisco para abranger todos os subdomínios de um domínio base — por exemplo, um único certificado para *.example.com protege www.example.com, shop.example.com e login.example.com ao mesmo tempo. Um certificado multidomínio, por vezes denominado certificado SAN ou UCC, lista vários nomes de domínio completamente diferentes num único certificado. Ambos reduzem o número de certificados que um administrador tem de gerir.

O que contém um certificado

Um certificado é um documento estruturado, e é possível inspecionar todos os campos. Os mais importantes são:

  • Assunto. A identidade a quem o certificado foi emitido, principalmente o nome de domínio (Nome Comum).
  • Emissor. A Autoridade Certificadora que assinou e emitiu o certificado.
  • Período de validade. As datas «não antes de» e «não depois de», entre as quais o certificado é válido.
  • Nomes Alternativos do Assunto (SAN). A lista completa de nomes de domínio abrangidos pelo certificado. Os navegadores modernos baseiam-se no campo SAN, e não no antigo Nome Comum, para identificar o site.
  • Chave pública. A metade pública do par de chaves, utilizada durante o handshake.
  • Algoritmo de assinatura. O método criptográfico utilizado pela CA para assinar, como o SHA-256 com RSA ou ECDSA.
  • Impressão digital. Um hash único de todo o certificado, útil para o identificar com exatidão.
  • Número de série. Um identificador único atribuído pela CA emissora.

Quando o seu navegador valida um site, verifica se a data de hoje se encontra dentro do período de validade, se uma das entradas SAN corresponde ao domínio, se a assinatura está intacta e se a cadeia conduz a uma raiz de confiança.

Caducidade do certificado e por que razão os períodos de validade são curtos

Todos os certificados têm uma data de validade, e os períodos de validade têm vindo a diminuir drasticamente ao longo dos anos. Os certificados que outrora duravam vários anos estão agora limitados a cerca de um ano ou menos, com o setor a avançar para períodos de validade ainda mais curtos, medidos em semanas. Existem boas razões para esta tendência.

Períodos de validade mais curtos limitam os danos caso uma chave privada seja roubada — um certificado comprometido simplesmente expira mais cedo, reduzindo a janela de oportunidade que um atacante pode explorar. Também garantem que algoritmos criptográficos desatualizados e certificados revogados ou emitidos por engano sejam rapidamente retirados do ecossistema. A contrapartida é que os administradores têm de renovar com muito mais frequência, razão pela qual a automatização se tornou essencial, em vez de opcional.

O que acontece quando um certificado é inválido

Se alguma parte da validação falhar, o seu navegador interrompe a ligação com um aviso em página inteira, em vez de um pequeno ícone. Os casos mais comuns de falha são:

  • Certificado expirado. A data atual ultrapassou a data de validade. Esta é a causa mais frequente e, normalmente, significa que alguém se esqueceu de renovar.
  • Certificado autoassinado. O certificado foi assinado pela sua própria chave, em vez de por uma CA de confiança, pelo que não existe uma cadeia de confiança. É adequado para testes internos, mas os navegadores rejeitam-no em sites públicos.
  • Incompatibilidade de nomes. O domínio que visitou não aparece na lista SAN do certificado — por exemplo, um certificado para um domínio a ser servido noutro.
  • Emissor não confiável. A cadeia de certificados remonta a uma raiz que não se encontra no seu repositório de confiança, muitas vezes porque falta um certificado intermédio ou porque a CA não é reconhecida.
  • Certificado revogado. A CA invalidou o certificado antes do seu prazo de validade, normalmente devido a uma violação da chave.

Em cada caso, o navegador apresenta um aviso do tipo «A sua ligação não é privada» e bloqueia a página por predefinição. Estes avisos existem para o proteger: um certificado incompatível ou não fiável pode ser um sinal de um verdadeiro ataque de interceção, pelo que nunca devem ser ignorados de ânimo leve num site que trate de dados sensíveis.

Certificados gratuitos e renovação automática

Um dos avanços mais importantes na segurança na Web foi a chegada dos certificados gratuitos e automatizados. A Let’s Encrypt, uma Autoridade Certificadora sem fins lucrativos, disponibilizou certificados DV sem custos e, o que é igualmente importante, totalmente automatizáveis através de um protocolo chamado ACME (Automated Certificate Management Environment).

Com o ACME, um servidor pode comprovar o controlo do seu domínio, solicitar um certificado, instalá-lo e renová-lo antes do vencimento — tudo sem intervenção humana. É precisamente por isso que os prazos de validade curtos dos certificados são práticos: um certificado que se renova automaticamente a cada dois meses não causa qualquer incómodo operacional. A combinação de emissão gratuita e automatização é uma das principais razões pelas quais o HTTPS passou de uma funcionalidade minoritária para o padrão quase universal em toda a Web.

Como verificar o certificado de um site

Não é necessário software especial para examinar um certificado. Em qualquer navegador moderno, pode clicar no ícone do cadeado na barra de endereços e escolher a opção para visualizar os detalhes do certificado, onde encontrará o titular, o emissor, as datas de validade, a lista SAN e a impressão digital. Esta é uma forma rápida de confirmar que se encontra no site genuíno e de verificar quando um certificado expira.

Para uma visualização mais rápida e detalhada — incluindo a cadeia completa de certificados, o algoritmo de assinatura e quantos dias faltam para o vencimento — pode utilizar uma ferramenta online. A nossa própria ferramenta «Verificador de Certificados SSL» permite-lhe introduzir qualquer domínio e verificar instantaneamente se o respetivo certificado é válido, se está corretamente ligado a uma raiz de confiança e quanto tempo falta até ser necessário renová-lo. É uma forma simples de detetar um certificado prestes a expirar antes que este acione um aviso do navegador para os seus visitantes.

Perguntas frequentes

O SSL é o mesmo que o TLS?

Não exatamente. O SSL é o protocolo mais antigo e está agora obsoleto, enquanto o TLS é o seu sucessor moderno e o que, na verdade, protege os sites atualmente. No entanto, o termo «certificado SSL» permaneceu por uma questão de hábito, pelo que, no uso quotidiano, «SSL» e «TLS» são frequentemente utilizados de forma intercambiável, apesar de a tecnologia subjacente ser o TLS.

O ícone do cadeado significa que um site é seguro?

O cadeado significa que a sua ligação ao site está encriptada e que o certificado é válido para esse domínio. Não garante que o próprio site seja idôneo ou isento de fraudes — mesmo sites fraudulentos podem obter certificados DV gratuitos. Considere o cadeado como um sinal de uma ligação privada, não como um selo de fiabilidade geral.

Os certificados SSL gratuitos são tão seguros quanto os pagos?

Sim, em termos de encriptação. Um certificado DV gratuito de uma CA como a Let's Encrypt oferece exatamente o mesmo nível de encriptação que um certificado caro. Os certificados OV e EV pagos incluem uma verificação adicional da identidade da organização, mas não tornam a ligação encriptada mais segura.

Porque é que recebo um aviso de certificado em alguns sites?

Os avisos de certificado surgem quando a validação falha — na maioria das vezes porque o certificado expirou, não corresponde ao nome de domínio, é autoassinado ou está ligado a uma autoridade não fiável. O aviso é o seu navegador a protegê-lo e, num site que lida com palavras-passe ou pagamentos, não deve ignorá-lo sem compreender por que razão surgiu.

Quanto tempo duram os certificados SSL?

Os certificados públicos modernos têm, normalmente, uma validade de cerca de um ano ou menos, e o setor está a avançar progressivamente para períodos de validade muito mais curtos. Os períodos de validade curtos reduzem o risco decorrente do roubo de chaves e forçam a retirada de uso da criptografia desatualizada. A renovação automatizada através de protocolos como o ACME torna a renovação frequente muito simples.

Posso verificar um certificado sem aceder ao site num navegador?

Sim. Existem ferramentas online que permitem introduzir um nome de domínio e visualizar os detalhes do seu certificado, incluindo o emitente, as datas de validade, a cadeia de confiança completa e os dias que faltam até ao vencimento, sem ter de verificar manualmente o cadeado. Isto é útil para monitorizar os seus próprios sites ou para verificar um domínio antes de o visitar.