Перейти к содержимому
ecdsa.com

PASETO (платформонезависимые токены безопасности)

Формат токенов, задуманный как более простая альтернатива JOSE: вместо согласуемых алгоритмов в нём версионированные протоколы. Токены v4.public подписываются Ed25519, а токены v4.local шифруются XChaCha20 и аутентифицируются с помощью BLAKE2b с ключом.
Другие написанияPASETOPlatform-Agnostic SEcurity TOkensv4.publicv4.localPASERK

Токен имеет вид 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 разбирает токены локально.

Стандарты и ссылки

Все термины