O que é a Fixação de certificado?

A Fixação de certificado é 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 certificado

A Fixação de certificado foi originalmente concebida como um meio de frustrar ataques de MITM (Man-in-the-Middle). A fixação de certificados tornou-se popular pela primeira vez em 2011 como resultado do comprometimento da AC (Autoridade de Certificação) 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 para os sites do Google e rejeitar qualquer conexão se um certificado diferente fosse apresentado. Mesmo que um invasor tenha encontrado uma maneira de convencer uma AC a emitir um certificado fraudulento, ele ainda seria reconhecido pelo Chrome como inválido e a conexão seria rejeitada.

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

Por vários anos, a fixação de certificado foi considerada uma boa prática de segurança. A supervisão sobre o cenário de PKI (infraestrutura de chave pública) melhorou com transparência nas práticas de emissão de ACs publicamente confiáveis.

Como resolver a fixação de certificado em seu aplicativo

Normalmente, um aplicativo contém uma lista de certificados autorizados ou propriedades de certificados, incluindo Nomes diferenciados da entidade, impressões digitais, números de série e chaves públicas. Os aplicativos podem fixar em certificados de folha ou entidade final individuais, certificados de autoridade de certificação subordinados ou até mesmo certificados de autoridade de certificação raiz.

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

  • Se você for um desenvolvedor de aplicativos, pesquise no código-fonte qualquer uma das referências a seguir para a AC que está mudando ou expirando. Se houver uma correspondência, atualize o aplicativo para incluir as ACs ausentes.

    • Impressões digitais do certificado
    • Nomes diferenciados da entidade
    • Nomes Comuns
    • Números de série
    • Chaves públicas
    • Outras propriedades de certificado
  • Se seu aplicativo cliente personalizado se integrar às APIs do Azure ou a 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 certificado

A prática de fixação de certificado tornou-se amplamente contestada, pois traz custos inaceitáveis de agilidade do certificado. Uma implementação específica, HPKP (Fixação de Chave Pública HTTP), foi preterida completamente

Como não há um único padrão da Web para como a fixação de certificado é executada, não podemos oferecer diretrizes diretas para detectar seu uso. Embora não estejamos recomendando contra a fixação de certificado, os clientes devem estar cientes das limitações que essa prática cria se optarem por usá-la.

Próximas etapas