Pular para o conteúdo
ecdsa.com

Fixação de certificado ou de chave pública

Restringir a um conjunto fixo os certificados ou as chaves públicas que um cliente aceita para um host, além da habitual validação da cadeia, comparando hashes da chave de uma CA, de um certificado intermediário ou da própria chave do servidor.
Também escrito comocertificate pinningpublic key pinningHPKPSSL pinningpin-sha256

Os pins geralmente são o hash do SubjectPublicKeyInfo (sha256/… no OkHttp e na configuração de segurança de rede do Android), de modo que um certificado renovado com a mesma chave continua correspondendo. Fixar a chave de uma CA ou de um intermediário é mais resiliente do que fixar um certificado folha; qualquer conjunto de pins precisa de pelo menos uma chave de backup que não esteja em produção.

A web desistiu da fixação dinâmica: o HTTP Public Key Pinning (RFC 7469) causou interrupções autoinfligidas e a “fixação hostil” (hostile pinning); o Chrome o removeu na versão 72 (2019), e o Firefox o desativou por padrão na versão 72 (2020). Os navegadores mantêm uma pequena lista embutida de pins para os domínios dos próprios fabricantes. O Certificate Transparency e o CAA cobrem a maior parte da ameaça que o HPKP visava.

Em aplicativos móveis e IoT, a fixação continua comum, mas traz o mesmo risco: vidas úteis de certificado mais curtas, rotações de chaves de CAs (a Let's Encrypt trocou de intermediários em 2024 e 2026) e remoções de confiança quebram clientes com fixação que não podem ser atualizados rapidamente. O gerador de pins SPKI calcula pins a partir de certificados ou chaves.

Padrões e referências

Todos os termos