Как сервер проверяет клиента JWT? - PullRequest
0 голосов
/ 17 октября 2018

Мы знаем, что если содержимое JWT изменено, сервер просто находит его, используя подпись.Но что, если JWT будет украден и использован хакером без его изменения?Как сервер проверяет, что JWT исходит от правильного клиента?

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

1 Ответ

0 голосов
/ 18 октября 2018

Хакер не может и не будет изменять токен.Поскольку сам токен является безопасным и полностью доверенным.Это природа JWT.Поэтому без дополнительной информации вы не сможете заметить разницу.

Однако вы можете разработать стратегию защиты своего ресурса.

Самое важное - не дать хакеру «украсть» токен.Это помогает, когда вы всегда отправляете токен по защищенной линии и храните информацию (например, токены) в защищенном месте.

Не стоит взламывать токен.Используйте краткосрочные токены, например, пять минут или меньше.Когда хакер завладеет токеном, он предоставит доступ только на короткий период.Это «приемлемая потеря».С другой стороны, хакеру не рекомендуется, поскольку усилия не стоят результата.

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

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

И добавлять дополнительную информацию к утверждениям в токене.Как и IP-адрес, используемый агент и т. Д. Это быстрые проверки.

Если IP-адрес не совпадает с указанным в заявлении, не принимайте токен.Приложению необходимо отправить токен обновления, чтобы получить новый токен доступа.Хакер не может сделать это без токена обновления.

Отслеживайте успешные IP-адреса входа в систему.Для известного IP-адреса токен может быть обновлен.Для неизвестного IP-адреса (возможный хакер или неизвестная измененная сеть Wi-Fi) аннулируйте маркер обновления.Таким образом, пользователь вынужден снова войти в систему.

В качестве дополнительной меры безопасности свяжитесь с пользователем (отправьте электронное письмо, как это делает Google), когда что-то изменилось.В этом случае пользователь может отозвать токен обновления.

...