Токен имеет вид version.purpose.payload с необязательным .footer, например v4.public.…. Каждая версия фиксирует свою криптографию: в v3 используются алгоритмы NIST (ECDSA P-384 для public-токенов; AES-256-CTR с HMAC-SHA384 для local-токенов), в v4 — Ed25519 и XChaCha20 вместе с BLAKE2b-MAC. Кодирование перед аутентификацией (pre-authentication encoding, PAE) связывает заголовок, полезную нагрузку, footer и необязательные неявные утверждения (контекст, который аутентифицируется, но не передаётся, например идентификатор тенанта) в те данные, которые подписываются или защищаются MAC.
Здесь нет заголовка alg, которым можно злоупотребить, и нет none; префиксы версии и назначения также не дают использовать local-ключ для public-токенов. Ключи сериализуются в формате PASERK (k4.public…, k4.local…). В полезной нагрузке используются зарегистрированные утверждения в стиле JWT (exp, iss, aud — в формате ISO 8601 или как обычные строки).
PASETO не стандарт IETF (спецификация размещена на github.com/paseto-standard/paseto-spec), а библиотек, инструментов и поддержки у поставщиков удостоверений у него меньше, чем у JWT. JWT, который проверяют с жёстко заданным алгоритмом по RFC 8725, обеспечивает почти такую же безопасность. Декодер PASETO разбирает токены локально.