Подпись токена JWT - PullRequest
0 голосов
/ 22 мая 2019

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

Стандартный алгоритм создания подписи:

HMACSHA256( base64UrlEncode(header) + "." +  base64UrlEncode(payload), secret)

Что, если мы объединяем некоторый уникальный идентификатор клиента (IP / MAC-адрес / отпечаток браузера) (что-то, что можно экспортировать из самого запроса без передачи тела запроса) с нашим секретом?

HMACSHA256( base64UrlEncode(header) + "." +  base64UrlEncode(payload), secret + UNIQUEIDENTIFIER)

Такое решение не позволит хакеру получить доступ к нашим данным, даже если будет похищен весь JWT.

К сожалению, использование IP не является лучшим для UNIQUEIDENTIFIER, потому что клиент может использовать динамический IP. Есть идеи, какой параметр http-запроса можно использовать как UNIQUEIDENTIFIER?

...