Зачем использовать JSON Web Tokens (JWT) вместо обычного шифрования - PullRequest
0 голосов
/ 31 марта 2020

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

Но я мог бы так же легко зашифровать данные сеанса с использованием стандартных алгоритмов шифрования и отправить их обратно клиенту и клиенту просто возвращает его при каждом вызове.

Так что же я на самом деле получил, используя JWT? Во всяком случае, размещение типа алгоритма в JWT представляется недостатком безопасности, так как он сообщает хакеру, какой тип шифрования использовался, тем самым сокращая типы алгоритмов, необходимых для расшифровки токена. Просто кодируя мои данные сеанса в каком-то проприетарном формате (не обязательно JSON) и используя даже собственный алгоритм шифрования, разве это не будет лучшим решением, чем использование JWT? Или я бы что-то упустил, не используя JWT?

1 Ответ

0 голосов
/ 31 марта 2020

Прежде всего:

Раскрытие хакерами вашего алгоритма шифрования - это плохо

Нет, это не так. Никогда не пытайтесь повысить безопасность, используя нестандартные алгоритмы. Это «безопасность по неизвестности». Как гласит принцип Kerckhoffs, безопасность алгоритма должна основываться только на секретности ключа, а не на алгоритме.

Относительно реального вопроса: вы должны использовать JWT (или любой другой стандартизированный метод) вместо простого шифрования данные сеанса (которые в основном просто строят ваш собственный механизм токенов), потому что они поддерживают гораздо больше функций из коробки. Вам, вероятно, понадобится гораздо меньше времени на использование jwt, чем на реализацию и тестирование собственного решения.

Также, вероятно, существует много аспектов, связанных с безопасностью (например, атаки с использованием воспроизведения токенов и т. Д. c.), О которых вы могли не знать , Поэтому довольно сложно реализовать такую ​​систему, которая защищена любым известным в настоящее время способом. Всегда лучше использовать проверенные и проверенные решения, если они предоставляют необходимые функции.

Дополнительная информация: https://security.stackexchange.com/questions/180208/what-is-the-difference-between-jwt-and-encrypting-some-json-manually-with-aes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...