Expect-CT

O cabeçalho Expect-CT deixa sites optarem em reportar e/ou forçar requirimentos do Certificado de Transparência, para previnir o uso incorreto de certificados do site passar despercebido.

Os requerimentos do CT podem ser satisfeitos utilizando qualquer um dos seguintes mecanismos:

  • A extensão do certificado X.509v3 permite embebedar uma marcação de data e hora de certificados assinados reportados por logs individuais.
  • A extensão TLS do tipo signed_certificate_timestamp enviada durante um handshake.
  • Dando suporte a OCSP (que é, a extensão TLS status_request) e provendo uma SignedCertificateTimestampList

Quando um site habilita o cabeçalho Expect-CT, ele está requisitando que o navegador verifique se qualquer certificado para aquele site aparece em logs CT públicos .

Navegadores ignoram o cabeçalho Expect-CT através do HTTP; o cabeçalho só tem efeito em conexões HTTPS.

O Expect-CT provavelmente se tornará obsoleto em Junho de 2021. Desde Maio de 2018, esperasse que novos certificados suportem SCTs por padrão. Certificados de antes de Maio de 2018 eram permitidos ter uma vida útil de 39 meses, todos eles serão expirados em Junho de 2021.

Tipo de cabeçalho Response header
Forbidden header name sim

Sintaxe

Expect-CT: report-uri="<uri>",
           enforce,
           max-age=<age>

 Diretivas

max-age

O número de segundos depois da recepção do cabeçalho Expect-CT durante o qual o agente de usuário deve identificar o hospedeiro da mensagem recebida como um hospedeiro Expect-CT conhecido.

Se o cache receber um valor maior do que ele pode representar, or se qualquer um dos seus cálculos subsequentes estourar o limite, o cache vai considerar este valor a ser 2,147,483,648 (231) ou o maior inteiro positivo que ele pode representar.

report-uri="<uri>" Optional

A URI onde o agente de usuário deve reportar falhas Expect-CT.

Quando presente com a diretiva enforce, a configuração é referida como uma configuração "executar-e-reportar", sinalizando ao agente de usuário que ambos o compliance da política do Certificado de Transparência deve ser executado e que as violações devem ser reportadas.
enforce Optional

Sinais ao agente do usuário que conforme a política do Certificado de Transparência deve ser executada (ao invés de somente ser reportada) e o agente de usuário deve recusar futuras conexões que violem a política do Certificado de Transparência.

Quando ambas as diretivas enforce e report-uri estiverem presentes, configuração é referida como uma configuração "executar-e-reportar", sinalizando ao agente de usuário que ambos o compliance da política do Certificado de Transparência deve ser executado e que as violações devem ser reportadas.

Exemplo

O seguinte exemplo especifica uma execução do Certificado de Transparência por 24 horas e reporta violações para foo.example.

Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report"

Notas

Certificados de Autoridade Raiz (Root CAs) manualmente adicionados para a loja de confiança, sobrescrevendo e suprimindo relatórios e execuções do Expect-CT.

Navegadores não vão lembrar de uma política Expect-CT, a menos que o site tenha "provado" que ele pode servir um certificado satisfazendo os requerimentos do certificado de transparência. Navegadores implementam seus próprios modelos em relação a quais logs CT são considerados confiáveis para o certificado logar.

Versões do Chrome são desenvolvidas para parar execução de políticas de Expect-CT 10 semanas depois da data de instalação da versão.

Especificações

Especificação Título
Internet Draft Expect-CT Extension for HTTP

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Expect-CTChrome Full support 61
Notes
Full support 61
Notes
Notes Before later builds of Chrome 64, invalid Expect-CT reports would be sent. Newer versions do not send reports after 10 weeks from the build date. See bug 786563.
Edge Full support ≤79Firefox ? IE ? Opera Full support 48Safari ? WebView Android No support NoChrome Android Full support 61Firefox Android ? Opera Android Full support 45Safari iOS ? Samsung Internet Android Full support 8.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.