Aller au contenu
uencoder

TLS Pinning

L'épinglage de certificats TLS intègre dans le client la clé publique ou l'empreinte attendue du certificat et rejette tous les autres, prévenant les attaques de l'homme du milieu (y compris les certificats forgés émis par des CA légitimes).

Objectif

Prévenir les attaques de l'homme du milieu par des adversaires disposant de certificats de CA légitimes (gouvernements ou CA compromises, par exemple).

Mécanisme

Le client préconfigure l'empreinte SPKI (pin) du certificat serveur. Pendant la poignée de main TLS, il compare le certificat au pin et refuse la connexion en cas d'inadéquation. Types : pin SPKI, pin de chaîne. Courant dans les apps mobiles ; les navigateurs épinglent rarement car la rotation des certificats est difficile.

Cas d’usage

  • Défense MITM des API d'apps mobiles
  • Communication d'appareils IoT
  • Clients d'API à haute sécurité
  • Communication entre services

Exemples

  • entrée
    pin: sha256/SPKI=abc...
    Output
    Reject on certificate mismatch

    Public key pinning

Erreurs courantes

Expired pins without updates cause connection failures
Provide backup pins and a rotation policy

Termes associés

References