Quelles sont les différences entre l’épinglage de certificat statique (static pinning) et l’épinglage de certificat dynamique (dynamic pinning)?
Les principales différences entre le "static pinning" (épinglage statique) et le "dynamic pinning" (épinglage dynamique) sur les appareils mobiles sont les suivantes :Épinglage Statique :
L'épinglage statique consiste à coder en dur un ensemble de condensats de certificats attendus ou de clés publiques dans le code de l'application.
Avec l'épinglage statique, le fait de désassembler l'application peut exposer les certificats épinglés.
Les épinglages statiques restent constants, ce qui permet de les contourner une fois identifiés.
Les applications avec un épinlage statique doivent être mises à jour pour changer les certificats épinglés.
Si un certificat épinglé statique est compromis, l'application reste vulnérable jusqu'à sa mise à jour.
L'épinglage statique nécessite de connaître à l'avance tous les certificats du serveur backend, ce qui peut ne pas être réalisable.
L'impact sur les performances est moindre avec l'épinglage statique, car les certificats attendus sont codés en dur.
Épinglage Dynamique :
L'épinglage dynamique fait tourner les condensats de certificats à l'exécution.
Avec l'épinglage dynamique, il est plus difficile d'extraire les certificats attendus.
Les épinglages dynamiques changent fréquemment pour compliquer la tâche des attaquants.
Les applications avec épinglage dynamique permettent la rotation des certificats sans nécessiter de mises à jour.
L'épinglage dynamique limite l'exposition à une courte période de validité par certificat.
L'épinglage dynamique peut récupérer les certificats à la demande, ce qui est pratique lorsque l'on ne connaît pas tous les certificats à l'avance.
En résumé, l'épinglage dynamique offre une sécurité renforcée pour les applications mobiles en faisant évoluer en permanence les certificats attendus, au lieu de s'appuyer sur des épinglages fixes qui peuvent être contournés.