0

Я реализовал токены JWT для моего проекта nodejs, но требование для токенов отзыва привело к тому, что я переключился на опорные токены-носители, чтобы иметь полный контроль над временем жизни токена. В соответствии с моими требованиями к проекту:Рекомендации по использованию топологии маркера

  1. Токены должны быть значительно короче самоописательных жетонов JWT.
  2. Должен быть какой-то способ, чтобы маркеры выдавались сервером (например, проверка hs256 в JWT), но поскольку в ссылочных токенах нет раздела полезной нагрузки, ситуация становится более сложной.

Каковы наилучшие методы реализации безопасного, неосуществимого для гадания, ссылочного токена?

ответ

0

Непрозрачный токен - это всего лишь строка ramdom, которая сопоставляется на сервере с аутентифицированным именем пользователя. Посмотрите на https://security.stackexchange.com/questions/19676/token-based-authentication-securing-the-token

Такого знака достаточно хорошо для безопасности, пока злоумышленник не сможет создать действительный маркер с пренебрежимо малой вероятностью, «действительным знаком» быть «лексема, которая находится в базе данных испускаемых токенов ". Достаточно того, что значения маркеров имеют длину по меньшей мере, 16 байт и производятся с криптостойким ПГСЧЕМ

Чтобы уменьшить требования к памяти сервера, маркер может содержать имя пользователя и дату выдачи, и зашифрованы с Закрытый ключ HMAC, чтобы сервер мог проверить подлинность.

Последнее решение очень близко к JWT. С помощью JWT вы также можете отметить недействительные токены, используя черный список, хранить до истечения срока их действия и проверять его в каждом запросе. (Черный список нарушает безгражданство JWT, потому что он требует поддержания состояния)

Смежные вопросы