Certificats ​

Un certificat DAT exprime dans une chaîne unique les plages temporelles, les algorithmes et les clés nécessaires à l’émission et à la vérification des jetons.

cid
uint64
.
start
uint64
.
duration
uint64
.
ttl
uint64
.
sig-alg
name
.
crypto-alg
name
.
sig-key
Base64Url
.
crypto-key
Base64Url
Un certificat se compose lui aussi de champs ASCII séparés par des points dans un ordre fixe.
text
cid.start.duration.ttl.sig-alg.crypto-alg.sig-key.crypto-key

Plages temporelles ​

  • Un certificat peut émettre des DAT de start à start + duration, bornes incluses.
  • Un DAT émis est valide pendant ttl à compter de son émission.
  • Le certificat est requis pour la vérification jusqu’à start + duration + ttl. Il reste vérifiable à cet instant précis.

Supprimer un certificat dès la fin de sa période d’émission empêche de vérifier les DAT déjà émis. Les gestionnaires et le CMS traitent séparément la capacité d’émission et la capacité de vérification.

ID de certificat et rotation des clés ​

Le cid est le contrat public qui identifie une clé et ses plages temporelles. Ne remplacez jamais les clés d’un cid existant. Pour effectuer une rotation, créez un nouveau certificat avec un nouveau cid. Les services synchronisent le nouveau certificat à l’avance et ne retirent l’ancien qu’après l’expiration de tous les DAT qu’il a émis.

Algorithmes de signature ​

NomRôleCertificat verify-only
HMAC-SHA256-MFSHMAC SHA-256Non pris en charge
HMAC-SHA384-MFSHMAC SHA-384Non pris en charge
HMAC-SHA512-MFSHMAC SHA-512Non pris en charge
ECDSA-P256ECDSA P-256Pris en charge
ECDSA-P384ECDSA P-384Pris en charge
ECDSA-P521ECDSA P-521Pris en charge

HMAC signe et vérifie avec la même clé. Fournir cette clé à un serveur de vérification lui confère donc également le pouvoir d’émission. Utilisez ECDSA et des certificats verify-only dans les environnements où ce pouvoir doit être séparé.

Algorithmes de chiffrement ​

NomClé
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

Les noms d’algorithmes font partie du wire contract. Ne les remplacez pas par des alias JWT.

Certificats complets et verify-only ​

Un certificat ECDSA complet contient la clé privée requise pour signer. Un certificat verify-only ne conserve que la clé publique ECDSA, mais garde la clé AES nécessaire au déchiffrement de secure. Un service verify-only peut donc vérifier et déchiffrer les DAT, mais pas en émettre de nouveaux.