PASETO vs JWT
Advanced Ecosystem 🔴 SeniorDéfinition
PASETO (Platform-Agnostic Security Tokens) est un format de jeton conçu pour éliminer les pièges de JWT : pas d'en-tête « alg » négociable, donc aucune attaque par confusion d'algorithme ou « alg: none ». Chaque jeton porte sa version et son but : v4.local est chiffré et authentifié (XChaCha20-Poly1305, clé symétrique), v4.public est signé (Ed25519) et lisible. On perd l'interopérabilité universelle de JWT et de ses profils (OpenID Connect).
Analogie
JWT est une enveloppe où l'expéditeur choisit lui-même le type de cachet, parfois « aucun » ; PASETO impose un seul cachet infalsifiable par version.
Exemple de code
import { V4 } from 'paseto';
// Signature (v4.public) : payload lisible, non modifiable
const { secretKey, publicKey } = await V4.generateKey('public');
const token = await V4.sign(
{ sub: 'user_42', role: 'admin' },
secretKey,
{ expiresIn: '15m', audience: 'api', issuer: 'auth' },
);
// v4.public.eyJzdWIiOiJ1c2VyXzQyIi... (version + but dans le préfixe)
const payload = await V4.verify(token, publicKey, { audience: 'api' });
// Aucun paramètre « algorithms » à sécuriser : il n'y a qu'Ed25519.
Cas d'usage
Jetons internes entre vos propres services ou sessions stateless, quand vous maîtrisez les deux bouts et voulez supprimer une classe entière de vulnérabilités.
Anti-pattern
Termes liés
Sources
Fiche mise à jour le 2026-09-27