Как стать автором
Обновить

Комментарии 9

Это просто JWT с зашифрованным payload, больше я не вижу никаких улучшений в безопасности. При этом особого смысла в этом нет. Если токен украли, то злоумышленник сможет им воспользоваться.

Про скорость кодирования/декодирования спорно. В JWT только парсинг JSON, а здесь еще нужно расшифровать. Уже 4 версии выпустили, а RFC нет и где тут про безопасность?

Тут согласен. Немаловажно ещё, что именно может получить доступ к токену - может ли javascript? А может ли вредоносное расширение браузера? В таком случае токен даже расшифровывать не надо, а просто переиспользовать и всё - привет доступ к системе.

токен не должен вызывать сложностей для анализа и исследования у разработчиков, аудиторов и т. д.

Поле payload — это всегда JSON, который шифруется при создании токена

Мне кажется, или это противоречащие друг другу пункты? Для просмотра JWT достаточно декодировать BASE64, а тут нужна полноценная дешифровка.

Не совсем, бывают токены подписанные и зашифрованные, наверное ещё бывают подписанные и зашифрованные, но не сталкивался. В том случае, если токен подписан, то да - его можно спокойно декодировать.

В JWT нет шифрации токена. Отдельные элементы payload могут быть зашифрованы, но это на совести разработчика. Сами поля JWT только кодируются в BASE64 без шифрации.

Формально, шифрованный вариант называется JWE. Подробнее в RFC https://datatracker.ietf.org/doc/html/rfc7516 Некоторые могут назвать его шифрованным JWT, потому что для конечного разработчика работа с ним схожа с JWT и многие библиотеки реализуют оба варианта.

Поле payload — это всегда JSON, который шифруется при создании токена

Шифруется только local токены, т.е. изначально идея в том, что прочитать данные могут только те у кого есть ключ, в статье подробно разбирался этот вариант, но есть еще public токены, которые подписываются и их содержимое можно прочитать также как и у JSON.

токен не должен вызывать сложностей для анализа и исследования у разработчиков, аудиторов и т. д.

PASETO позволяет без расшифровки узнать версию токена и алгоритм шифрования, а также определить тип токена local (данные зашифрованы и их можно узнать только при знании секретного ключа) или public (данные подписаны и их можно прочитать). Если нужно узнать другие данные, то также придется либо расшифровывать токен, либо декодировать

Очень странно что называется platform agnostic, но полностью приколочен к cookies, uri, headers.

И не решена главная проблема JWT -- отзыв токенов...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий