Faire tourner les clés de signature sans casser personne

Faire tourner une clé de signature n’est pas difficile. Ce qui fait que cela tourne mal, c’est que la partie difficile est invisible : il faut attendre les caches des autres.

Les quatre étapes

  1. Publiez la nouvelle clé publique dans votre jeu de clés. Continuez de signer avec l’ancienne.
  2. Attendez que les consommateurs rafraîchissent. Leur durée de cache fixe ce délai.
  3. Basculez la signature sur la nouvelle clé. Laissez l’ancienne clé publique publiée.
  4. Retirez l’ancienne clé une fois que tous les jetons qu’elle a signés ont expiré.

Les étapes 2 et 4 sont des périodes d’attente, et les deux sont couramment sautées parce que rien ne semble casser dans un environnement de test où un seul consommateur récupère tout à chaque appel.

Nommez vos clés

Mettez un kid dans chaque clé et dans chaque en-tête de jeton. Sans lui, un vérificateur doit essayer chaque clé à son tour, ce qui marche jusqu’à ce que deux clés emploient le même algorithme et qu’il se mette à deviner.

Employez un nom qui dit quelque chose : signing-2026-07 vaut mieux qu’une chaîne aléatoire quand vous lisez un journal à deux heures du matin.

Posez une durée de cache raisonnable

Servez votre jeu de clés avec un Cache-Control explicite. Trop court et vous encaissez du trafic inutile. Trop long et l’étape 2 devient une journée. Une heure est un bon point de départ, et cela rend la période d’attente prévisible, ce qui est tout l’intérêt.

Faites tourner avant d’y être obligé

Une rotation que vous avez répétée un mardi après-midi est une routine. La même opération, exécutée pour la première fois pendant une compromission présumée, ne l’est pas.