Public-Key-Pins
Nota:
O mecanismo de Fixação de Chaves Públicas (Public Key Pinning) foi depreciado em favor do Certificado de Transparência e do cabeçalho Expect-CT.
O cabeçalho de resposta HTTP Public-Key-Pins usado para associar uma key pública criptográfica especifica com um certo servidor web para reduzir o risco de ataques MITM com certificados forjados, entretanto, ele foi removido em navegadores modernos e não é mais suportado. Use Certificado de Transparência e o cabeçalho Expect-CT ao invés disso.
Para mais informação, veja o artigo HTTP Public Key Pinning.
| Tipo de cabeçalho | Response header |
|---|---|
| Forbidden request header | não |
Sintaxe
Public-Key-Pins: pin-sha256="<pin-value>";
max-age=<expire-time>;
includeSubDomains;
report-uri="<uri>"
Diretivas
pin-sha256="<pin-value>"-
A cadeia de caracteres entre aspas duplas é a impressão digital da Informação da Chave Pública do Sujeito [Subject Public Key Information (SPKI)] codificada em Base64. É possível especificar múltiplos pins para diferentes chaves públicas. Alguns navegadores podem permitir outros algoritmos de hasheamento além do SHA-256 no futuro.
max-age=<expire-time>-
O tempo, em segundos, que o navegador deve lembrar que o site só deve ser acessado usando uma das chaves definidas.
includeSubDomainsOptional-
Se este parâmetro opcional é especificado, este regra vale para todos os subdomínios do site também.
report-uri="<uri>"Optional-
Se este parâmetro opcional é especificado, validações de pin que falharam são reportadas ao URL dado.
Exemplo
Aviso: HPKP tem o potencial de bloquear usuários por um longo período de tempo de usado incorretamente! O uso de backup de certificados e/ou fixação do Autoridade de Certificados é recomendado.
Public-Key-Pins: pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; max-age=5184000; includeSubDomains; report-uri="https://www.example.org/hpkp-report"
Neste exemplo, pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" fixa a chave pública do servidor usada em produção. A segunda declaração de fixação pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=" também fixa a chave de backup. max-age=5184000 diz ao cliente para guardar esta informação por dois meses, que é um tempo limite razoável de acordo com a IETF RFC. Esta fixação de chave também é valida para todos os subdomínios, que é dito pela declaração do includeSubDomains. Finalmente, report-uri="https://www.example.org/hpkp-report" diz para onde reportar as validação de fixação que falharam.
Especificações
| Especificação | Título |
|---|---|
| RFC 7469, sessão 2.1: Public-Key-Pins | Public Key Pinning Extension for HTTP |