Étiquette : JOSE
-
Un pont entre deux écosystèmes plutôt qu’une fourche
LexikJWTAuthenticationBundle s’occupe de l’authentification. JWT-Framework s’occupe de JOSE. Un pont fait cent lignes ; une fourche aurait été un second projet à maintenir.
-
Faire tourner les clés de signature sans casser personne
Une rotation de clés tient en quatre étapes et une période d’attente. Sauter la période d’attente est ce qui transforme une opération de routine en incident.
-
Signé, chiffré, ou les deux ? Choisir ce que doit être un JWT
Un jeton signé prouve qui l’a écrit. Un jeton chiffré cache ce qu’il dit. Ils répondent à des questions différentes, et la réponse n’est pas toujours « les deux ».
-
Comprendre les JSON Web Tokens : vérifier correctement
Une signature valable est le premier contrôle, pas le dernier. Les revendications à vérifier, celles qu’on oublie, et l’ordre dans lequel le faire.
-
AES-GCM, et la seule chose à ne jamais faire avec
Le mode Galois Counter vous donne le chiffrement et l’authentification en une passe. Réemployez un nonce une seule fois et vous perdez les deux, définitivement.
-
Comprendre les JSON Web Tokens : choisir un algorithme
La RFC 7518 liste des dizaines d’algorithmes. En pratique le choix tient en trois questions, et en quelques noms qu’il faut cesser d’employer.
-
Encapsuler une clé n’est pas la chiffrer
AES Key Wrap existe parce que chiffrer une clé a des exigences que chiffrer un message n’a pas. Les RFC 3394 et 5649, en pratique.
-
Comprendre les JSON Web Tokens : les clés, avec JWK
Un format de clé qui voyage en JSON, des jeux de clés publiables, des empreintes qui identifient une clé par son contenu, et une rotation sans interruption.
-
Comprendre les JSON Web Tokens : chiffrer avec JWE
Le chiffrement cache la charge utile à tous sauf à son destinataire. Cinq parties au lieu de trois, deux clés au lieu d’une, et un vocabulaire à apprendre une fois.
-
Comprendre les JSON Web Tokens : signer avec JWS
Une signature transforme deux objets JSON en quelque chose à quoi un destinataire peut se fier. Comment JWS fonctionne, quelles sont les trois parties d’un jeton compact, et pourquoi l’en-tête est protégé.
-
Comprendre les JSON Web Tokens : la structure
Ce qu’est vraiment un JWT, pourquoi le format existe, quels standards le décrivent, et ce que contiennent ses deux objets JSON.
-
AEAD sans l’étiquette : une histoire de ChaCha20-Poly1305
L’étiquette d’authentification était calculée, puis jetée. Ce qui restait ressemblait à un AEAD et n’authentifiait rien. GHSA-6vvh-pxr4-25r7.
-
Un nombre, un déni de service : PBES2 et p2c
Un algorithme fondé sur un mot de passe laisse le jeton dire combien d’itérations exécuter. Rien ne disait que ce devait être un nombre raisonnable. GHSA-3prj-6hqw-cm82.
-
Un oracle de remplissage dans RSA1_5, et ce qu’est un rejet à temps constant
Distinguer un mauvais remplissage d’un bon suffit à déchiffrer sans la clé. Bleichenbacher, vingt-sept ans plus tard, et le correctif qui ressemble à ne rien faire.
-
Confusion d’algorithme : quand alg vient du mauvais en-tête
Un seul étalement de tableau, et l’algorithme auquel se fie un vérificateur venait d’un en-tête que personne n’avait signé. GHSA-jc38-x7x8-2xc8, trouvée et corrigée dans le JWT-Framework.