O que é a fixação de certificados?

A fixação de certificados é uma técnica de segurança em que apenas certificados autorizados ou fixados são aceitos ao estabelecer uma sessão segura. Qualquer tentativa de estabelecer uma sessão segura usando um certificado diferente é rejeitada.

Histórico de fixação de certificados

A fixação de certificados foi originalmente concebida como um meio de impedir ataques Man-in-the-Middle (MITM). A fixação de certificados tornou-se popular pela primeira vez em 2011 como resultado do comprometimento da Autoridade de Certificação (CA) DigiNotar, onde um invasor foi capaz de criar certificados curinga para vários sites de alto perfil, incluindo o Google. O Chrome foi atualizado para "fixar" os certificados atuais dos Websites da Google e rejeitaria qualquer ligação se fosse apresentado um certificado diferente. Mesmo que um invasor encontrasse uma maneira de convencer uma autoridade de certificação a emitir um certificado fraudulento, ele ainda seria reconhecido pelo Chrome como inválido e a conexão rejeitada.

Embora navegadores como Chrome e Firefox estivessem entre os primeiros aplicativos a implementar essa técnica, a gama de casos de uso se expandiu rapidamente. Dispositivos de Internet das Coisas (IoT), aplicativos móveis iOS e Android e uma coleção díspar de aplicativos de software começaram a usar essa técnica para se defender contra ataques Man-in-the-Middle.

Durante vários anos, a fixação de certificados foi considerada uma boa prática de segurança. A supervisão sobre o cenário de Infraestrutura de Chave Pública (PKI) pública melhorou com a transparência nas práticas de emissão de autoridades de certificação publicamente confiáveis.

Como abordar a fixação de certificados em seu aplicativo

Normalmente, um aplicativo contém uma lista de certificados autorizados ou propriedades de certificados, incluindo Nomes Distintos de Entidade, impressões digitais, números de série e chaves públicas. Os aplicativos podem se comparar com certificados de folha ou entidade final individuais, certificados de CA subordinados ou até mesmo certificados de CA raiz.

Se seu aplicativo especificar explicitamente uma lista de CAs aceitáveis, talvez seja necessário atualizar periodicamente os certificados fixados quando as Autoridades de Certificação forem alteradas ou expirarem. Para detetar a fixação do certificado, recomendamos seguir as seguintes etapas:

  • Se você for um desenvolvedor de aplicativos, pesquise seu código-fonte para qualquer uma das seguintes referências para a autoridade de certificação que está mudando ou expirando. Se houver uma correspondência, atualize o aplicativo para incluir as autoridades de certificação ausentes.

    • Impressões digitais de certificados
    • Nomes Distintos de Assunto
    • Nomes comuns
    • Números de série
    • Chaves públicas
    • Outras propriedades do certificado
  • Se seu aplicativo cliente personalizado se integrar com APIs do Azure ou outros serviços do Azure e você não tiver certeza se ele usa a fixação de certificado, verifique com o fornecedor do aplicativo.

Limitações de fixação de certificados

A prática da fixação de certificados tornou-se amplamente contestada, uma vez que acarreta custos inaceitáveis de agilidade de certificados. Uma implementação específica, HTTP Public Key Pinning (HPKP), foi completamente preterida

Como não há um padrão único da Web para como a fixação de certificados é executada, não podemos oferecer orientação direta na deteção de seu uso. Embora não recomendemos a fixação de certificados, os clientes devem estar cientes das limitações que essa prática cria se optarem por usá-la.

Próximos passos