Подтвердить что ты не робот

Стоит ли отзывать токен JWT?

Ранее я задал длинный вопрос относительно безопасности токенов JWT, но хочу сосредоточиться именно на аннулировании токена JWT. Я использую JWT в качестве своего основного механизма аутентификации для аутентификации мобильных клиентов мобильного приложения. Мой вопрос: стоит ли использовать отмену токена? В настоящее время я использую короткий срок для своих токенов, и я полагаюсь на TLS, чтобы предотвратить использование токенов неавторизованными пользователями. Я не реализовал отмену токенов. Но в основном это означает, что если токен украден каким-то образом, его нельзя отменить. Больше всего меня беспокоит то, что когда пользователь выходит из приложения, последний токен, который они использовали, все еще работает, если я не могу его отменить. И это также означает, что я не могу установить ограничение на количество токенов, которые пользователь может запросить, так как я не отслеживаю какие-либо маркеры, которые выпущены. Я видел много приложений, которые просто хранят все выпущенные токены в базе данных, позволяя им отзывать и регулировать токены. Но это просто похоже на то, чтобы победить цель использования JWT. Стоит ли добавлять такую ​​сложность или моя текущая система защищена?

Спасибо заранее. Я ценю любую помощь.

4b9b3361

Ответ 1

Стоит ли оценивать это для любого человека. Это зависит от того, что вы защищаете и от каких рисков вы пытаетесь смягчить.

Вы можете использовать токены ссылок, если считаете необходимым, чтобы иметь возможность отменить токены. Это заставляет сервисы, потребляющие эти токены, разговаривать с сервером авторизации, что ухудшает масштабируемость и вводит одну точку отказа.

Существуют инициативы, направленные на предотвращение кражи токенов. Взгляните на Протокол привязки токенов и Подтверждающий ключ для кодового обмена от OAuth Публичные клиенты.

Ответ 2

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

Вместо того, чтобы проходить через токен, почему бы вам не договориться о секретном ключе с клиентом и вашим сервером? Они могут использовать этот ключ для подписи своих запросов на ваш сервер, и вы можете отслеживать эти секреты - даже отмените их, если кто-то выйдет. Это позволяет вам продлить срок действия подписей на низких уровнях, поэтому даже если они будут захвачены, они будут полезны только пару минут.