Classificador SSL

Não apenas «o certificado é válido?», mas «toda a configuração TLS está atualizada?». Esta página sonda cada versão do protocolo separadamente, lê a chave e a assinatura do certificado, verifica o sigilo direto e o HSTS, e transforma o resultado numa nota em letra — com cada dedução explicada, para que um B ou um C lhe diga exatamente o que corrigir.

Quer vigiar isto continuamente? Monitorize grátis com o myeventwatch — alertas de expiração e indisponibilidade, sem cartão.

O que a nota mede

Uma verificação de certificado responde se um documento é válido. Uma configuração pode passar nessa verificação e continuar fraca: um servidor que responde TLS 1.0 a quem pedir, uma cifra que permite que um futuro comprometimento da chave desencripte o tráfego gravado hoje, um cabeçalho HSTS em falta que deixa a primeira visita degradável. Por isso o classificador mede quatro coisas, cada uma com a sua própria secção no resultado. A matriz de protocolos faz um handshake fixado em cada um de TLS 1.0, 1.1, 1.2 e 1.3 — uma versão só conta como suportada se um handshake fixado nela se concluir de facto, por isso «suportada» é medido, não inferido da versão que por acaso foi negociada. A secção de certificado reporta o que o servidor apresenta mesmo quando falha a validação: emissor, nomes abrangidos, janela de validade, tipo e tamanho da chave e algoritmo de assinatura. O sigilo direto lê-se da cifra negociada: as suites TLS 1.3 são sigilosas por construção; as mais antigas, apenas quando usam troca de chaves efémera. E o HSTS lê-se da resposta raiz do domínio, com o seu max-age e os seus sinalizadores.

Uma omissão deliberada: o OCSP stapling não é verificado. A biblioteca TLS que este serviço usa não expõe respostas com stapling, por isso o classificador não as consegue observar e diz isso, em vez de adivinhar. O stapling nem ajuda nem prejudica a nota; se for importante para si, verifique-o com o openssl a partir da sua própria máquina. A própria rubrica da nota está escrita abaixo, na íntegra, porque uma nota que não pode ser auditada é apenas um distintivo.

A rubrica, em linguagem simples

Cada site começa em A+, e as deduções põem um teto à nota — vence o teto aplicável mais severo, e cada um aparece como um achado no resultado. F significa que os navegadores rejeitam o site ou que não há TLS utilizável: um certificado expirado, um certificado autoassinado, um certificado que não abrange o nome de anfitrião, uma assinatura MD5, ou nenhum handshake bem-sucedido na porta 443. C significa obsoleto ou não fiável: uma cadeia que não valida (normalmente falta um intermédio), uma chave fraca (RSA abaixo de 2048 bits, ou uma curva elíptica pequena), uma assinatura SHA-1, ou um protocolo máximo suportado de TLS 1.1 ou mais antigo. B significa uma fraqueza real mas superável: um protocolo legado ainda ativado ao lado dos atuais, ou uma cifra negociada sem sigilo direto. A significa um problema menor: sem cabeçalho HSTS, um max-age de HSTS inferior a seis meses, ou um certificado dentro da sua janela de renovação de 30 dias. Corrija os achados por ordem — primeiro F e C, depois B, depois A — e volte a classificar após cada mudança; a cache de uma hora significa que pode querer esperar antes de reverificar uma correção. Por baixo, a página chama GET /api/check/ssl-grade no servidor da sysosx, que executa as sondagens e guarda a nota em cache durante uma hora.

Ferramentas relacionadas: o verificador SSL para a vista rápida do certificado e a contagem decrescente de expiração, a verificação de saúde do site para acessibilidade, certificado, expiração e registos em conjunto, a cadeia de estado HTTP quando a configuração TLS está bem mas o caminho de redirecionamentos não, e o scanner de portas para o que mais está à escuta no anfitrião além da porta 443. Para o que alguma vez foi emitido para o domínio, em vez do que ele apresenta hoje, use a pesquisa de Certificate Transparency.

Leitura adicional: como as notas TLS se ganham e se perdem — as falhas comuns por trás de cada teto e as suas correções, pela ordem que vale a pena fazê-las.

Perguntas frequentes

Em que difere do verificador SSL?

O verificador SSL responde a uma pergunta: que certificado apresenta este servidor, e é válido? O classificador audita toda a configuração TLS: que versões do protocolo o servidor ainda oferece (TLS 1.0 a 1.3, cada uma sondada separadamente), se a cifra negociada dá sigilo direto, o tamanho da chave e o algoritmo de assinatura do certificado, e se o HSTS está definido. Use o verificador para uma contagem decrescente rápida de expiração; use o classificador quando quer saber se a configuração em si está atualizada.

O que significa cada nota?

A+ é um resultado limpo: apenas protocolos atuais, sigilo direto, uma cadeia válida que abrange este nome de anfitrião e HSTS de longa duração. A significa um problema menor, normalmente HSTS em falta ou curto, ou um certificado dentro da sua janela de renovação de 30 dias. B significa uma fraqueza real mas superável: um protocolo legado ainda ativado, ou uma cifra sem sigilo direto. C significa algo obsoleto ou não fiável: uma cadeia que não valida, uma chave fraca ou uma assinatura SHA-1, ou um protocolo máximo de TLS 1.1 ou mais antigo. F significa que os navegadores rejeitam o site ou que não há TLS utilizável: um certificado expirado, autoassinado ou incompatível, ou uma assinatura MD5.

Por que fica um servidor limitado a B só por suportar TLS 1.0?

Porque «suportado» é um facto sobre o servidor, não sobre os seus visitantes. Nada atual negoceia TLS 1.0, por isso mantê-lo ativado não compra compatibilidade nenhuma e mantém em oferta as cifras mais fracas. O teto é o classificador a recusar chamar atual a uma configuração enquanto um protocolo de 1999 continuar a responder. Desativá-lo é normalmente uma única linha de configuração, e a nota recupera de imediato.

Por que o classificador não verifica o OCSP stapling?

Limitação honesta, declarada na página: a biblioteca TLS que este serviço usa não expõe respostas OCSP com stapling, por isso o classificador não as consegue observar. Em vez de adivinhar, reporta o stapling como «não verificado» e deixa que ele nem ajude nem prejudique a nota. Se o stapling for importante para si, verifique-o com openssl s_client -connect host:443 -status a partir da sua própria máquina.

Por que o resultado fica em cache durante uma hora?

Uma nota só muda quando muda a configuração TLS do servidor, o que é raro e deliberado — ao contrário da propagação de DNS, em que a resposta é o objetivo. As verificações novas são limitadas por visitante (cerca de vinte por hora, com uma pequena margem de pico) tal como as outras verificações do lado do servidor, e um resultado em cache é assinalado como tal. Se acabou de corrigir alguma coisa, espere que a hora passe ou volte a verificar quando a cache expirar.