Ein Token hat die Form version.purpose.payload mit optionalem .footer, zum Beispiel v4.public.…. Jede Version legt ihre Kryptografie fest: v3 nutzt NIST-Algorithmen (ECDSA P-384 für public-Tokens; AES-256-CTR mit HMAC-SHA384 für local-Tokens), v4 nutzt Ed25519 und XChaCha20 plus BLAKE2b-MAC. Das Pre-Authentication Encoding (PAE) bindet Header, Payload, Footer und optionale implizite Assertions (Kontext, der authentifiziert, aber nicht übertragen wird, etwa eine Tenant-ID) in das ein, was signiert oder per MAC geschützt wird.
Es gibt keinen Header alg, der sich missbrauchen ließe, und kein none; die Präfixe für Version und Zweck verhindern außerdem, dass ein local-Schlüssel für public-Tokens verwendet wird. Schlüssel werden mit PASERK serialisiert (k4.public…, k4.local…). Payloads verwenden registrierte Claims im JWT-Stil (exp, iss, aud als ISO 8601 oder einfache Strings).
PASETO ist kein IETF-Standard (die Spezifikation liegt unter github.com/paseto-standard/paseto-spec), und die Unterstützung durch Bibliotheken, Tools und Identity Provider ist dünner als bei JWT. Ein JWT, das mit fest vorgegebenem Algorithmus nach RFC 8725 geprüft wird, bietet weitgehend dieselbe Sicherheit. Der PASETO-Decoder parst Tokens lokal.