Partager via


Qu’est-ce que l’épinglage de certificat ?

L’épinglage de certificat est une technique de sécurité où seuls les certificats autorisés ou épinglés sont acceptés lors de l’établissement d’une session sécurisée. Toute tentative d’établissement d’une session sécurisée à l’aide d’un autre certificat est rejetée.

Historique de l’épinglage de certificat

L’épinglage de certificat a été conçu à l’origine comme un moyen de déjouer les attaques de l’intercepteur. L’épinglage de certificat est devenu populaire en 2011 à la suite de la compromission de l’autorité de certification DigiNotar, où un attaquant a pu créer des certificats génériques pour plusieurs sites web de grande envergure, y compris Google. Chrome a été mis à jour pour « épingler » les certificats actuels des sites web de Google et rejetterait toute connexion si un autre certificat était présenté. Même si un attaquant parvenait à convaincre une autorité de certification d’émettre un certificat frauduleux, il serait toujours reconnu par Chrome comme non valide et la connexion serait rejetée.

Bien que les navigateurs web tels que Chrome et Firefox aient été parmi les premières applications à implémenter cette technique, la gamme des cas d’usage s’est rapidement développée. Les appareils Internet des objets (IoT), les applications mobiles iOS et Android, ainsi qu’une collection disparate d’applications logicielles ont commencé à utiliser cette technique pour se défendre contre les attaques de l’intercepteur.

Pendant plusieurs années, l’épinglage de certificat a été considéré comme une bonne pratique en matière de sécurité. La surveillance du paysage de l’infrastructure à clé publique s’est améliorée grâce à la transparence des pratiques d’émission des autorités de certification approuvées publiquement.

Comment résoudre l’épinglage de certificat dans votre application

En général, une application contient une liste de certificats autorisés ou de propriétés de certificats, notamment les noms d’objets uniques, les empreintes, les numéros de série et les clés publiques. Les applications peuvent épingler des certificats feuille ou entité finale individuels, des certificats d’autorité de certification subordonnés ou même des certificats d’autorité de certification racine.

Si votre application spécifie explicitement une liste d’autorités de certification acceptables, vous devrez peut-être régulièrement mettre à jour les certificats épinglés lorsque les autorités de certification changent ou expirent. Pour détecter l’épinglage de certificat, nous vous recommandons d’effectuer les étapes suivantes :

  • Si vous êtes développeur d’applications, recherchez dans votre code source l’une des références suivantes pour l’autorité de certification qui change ou arrive à expiration. S’il existe une correspondance, mettez à jour l’application pour inclure les autorités de certification manquantes.

    • Empreinte numérique de certificat
    • Nom unique des sujets
    • Noms communs
    • Numéros de série
    • Clés publiques
    • Autres propriétés du certificat
  • Si votre application cliente personnalisée s’intègre aux API Azure ou à d’autres services Azure et que vous ne savez pas si elle utilise l’épinglage de certificat, case activée avec le fournisseur de l’application.

Limitations de l’épinglage du certificat

La pratique de l’épinglage de certificats est devenue largement contestée, car elle entraîne des coûts inacceptables d’agilité des certificats. Une implémentation spécifique, l’épinglage de clé publique HTTP, a été complètement dépréciée

Comme il n’existe pas de norme web unique pour la façon dont l’épinglage de certificat est effectué, nous ne pouvons pas fournir de conseils directs concernant la détection de son utilisation. Bien que nous ne déconseillons pas l’épinglage de certificat, les clients doivent être conscients des limitations que cette pratique crée s’ils choisissent de l’utiliser.

Étapes suivantes