Glossaire

Qu'est-ce que JSON Web Token ?

Un JSON Web Token (JWT) est un format de jeton compact et sûr pour les URL, défini dans le RFC 7519, qui représente des revendications entre deux parties sous la forme d'un objet JSON signé numériquement, permettant une authentification sans état et l'échange d'informations.

Aussi connu sous le nom de : JSON Web Token, JWTs

Un JWT se compose de trois parties encodées en base64url et séparées par des points : un en-tête (qui indique l'algorithme de signature), une charge utile (qui contient des revendications — des paires clé-valeur comme l'identifiant utilisateur, les rôles et l'échéance) et une signature (calculée sur l'en-tête et la charge utile avec une clé secrète ou privée). La signature permet à toute partie détenant la clé de vérification de confirmer que le jeton n'a pas été altéré.

Les JWT sont couramment utilisés comme jetons porteurs dans l'authentification d'API. Après la connexion, le serveur émet un JWT contenant l'identité et les permissions de l'utilisateur. Le client inclut ce JWT dans les requêtes suivantes (généralement dans l'en-tête Authorization), et le serveur vérifie la signature sans avoir à interroger une base de données ni un magasin de sessions. Cette absence d'état rend les JWT attrayants pour les systèmes distribués et les architectures de microservices, où le partage de l'état de session entre services est peu pratique.

Les JWT s'accompagnent d'importantes considérations de sécurité. Comme la charge utile est seulement encodée en base64 (et non chiffrée), quiconque intercepte un JWT peut en lire le contenu — ne place jamais de secrets dans la charge utile d'un JWT, sauf si tu utilises JWE (JSON Web Encryption). Les jetons devraient avoir des échéances courtes, car ils ne peuvent pas être facilement révoqués après émission. Les attaques par confusion d'algorithme, où un attaquant remplace l'en-tête par « none » ou bascule d'une vérification asymétrique à symétrique, ont été des vulnérabilités récurrentes des bibliothèques JWT.

Comment Vaulted utilise JSON Web Token

Vaulted n'utilise pas les JWT pour l'authentification ni la gestion de session, puisqu'il n'a pas de comptes d'utilisateur. Les JWT et autres jetons porteurs sont toutefois des identifiants fréquemment partagés qui nécessitent une transmission sécurisée — par exemple le partage d'un jeton d'API à longue durée de vie ou d'un secret JWT de service à service avec un collègue lors d'un incident. Vaulted offre une transmission chiffrée et autodestructrice pour de tels jetons, garantissant qu'ils ne persistent pas dans les canaux de communication.