Curious TechieDev Toolbox
Tous les Guides/Authentification8 min read

Qu’est-ce qu’un JWT ? Architecture des JSON Web Tokens (RFC 7519)

Authentification sans état, structure en 3 parties, Base64URL, attaques de confusion d’algorithmes et signature.

Points Clés
  • Un JWT rassemble 3 sections distinctes : le Header, le Payload et la Signature.
  • Les données sont encodées en Base64URL et restent lisibles par n’importe quel client sans clé secrète.
  • Décoder un JWT n’est PAS le valider : la sécurité repose sur la vérification cryptographique de la signature.
  • L’attaque alg: "none" survient lorsqu’un serveur accepte des jetons non signés.
  • L’architecture sans état rend l’invalidation immédiate dépendante de listes de révocation.

Dans les architectures modernes de microservices sans état et les systèmes OAuth 2.0 / OpenID Connect, les JSON Web Tokens (JWT) sont le standard (RFC 7519) permettant de transmettre en toute sécurité des revendications d’identité.

1. Anatomie du Token en 3 Parties

Un jeton JWT se compose de trois parties encodées en Base64URL séparées par des points (.) :

1. En-tête (Rouge)Algorithme & Type de Jeton
2. Charge Utile (Violet)Revendications & Données
3. Signature (Bleu)Preuve Cryptographique

2. Revendications Enregistrées Standard (iss, exp, sub)

  • iss (Issuer) : Entité ayant émis le jeton.
  • sub (Subject) : Identifiant unique de l’utilisateur.
  • exp (Expiration Time) : Horodatage Unix au-delà duquel le jeton est rejeté.
  • iat (Issued At) : Horodatage de création du jeton.

3. Signature Symétrique (HS256) vs Asymétrique (RS256)

HS256 (HMAC-SHA256) repose sur une clé secrète partagée. À l’inverse, RS256 (RSA-SHA256) utilise une clé privée pour signer et une clé publique (JWKS) pour vérifier, permettant la validation par des tiers sans compromettre la capacité d’émission.

4. Failles de Sécurité et Pièges Fréquents

Les erreurs critiques incluent l’acceptation de l’en-tête "alg": "none", le stockage de jetons dans localStorage (sensible aux failles XSS) et l’oubli de validation de la signature avant utilisation des données.