В: На сайте jwt есть отладчик, когда я меняю секрет, только изменения подписи не будут настолько безопасными, если полезная нагрузка будет зашифрована с использованием секрета?
Основное требование для JWT:что он имеет цифровую подпись.Если вы поместите конфиденциальные данные в JWT, вам также потребуется зашифровать их.Но я настоятельно рекомендую вам не помещать туда конфиденциальные данные, потому что если пользователь потеряет свой токен JWT, вы захотите минимизировать ущерб.Например, в веб-приложении OWASP juice shop (намеренно небезопасное веб-приложение с целью обучения людей безопасности) они помещают хэш пароля пользователя в токен /.Это позволяет злоумышленнику восстановить пароль пользователя с помощью межсайтовых сценариев, как показано в этом блоге .
В: Сколько символов должен иметь секрет, чтобы его нельзя было взломать 512, 1024 2048?
Зависит от используемого вами алгоритма JWT.Если вы используете HMAC, то 256 бит (32 байта) - это много, гораздо больше, чем нужно.Если вы используете RSA, то лучше всего использовать 2048-битный (256-байтовый).
В: Как быстро работает секретный брутфорс?Как часто его следует менять, если грубое принуждение является быстрым?
Оно не может быть применено в течение всей жизни Вселенной с использованием всех компьютеров на планете, предполагая, что квантовые компьютеры не становятся реальностью (если квантовые компьютеры делают это).стать реальностью, тогда все ставки сняты).Криптографы - очень умные люди, и они проектируют эти алгоритмы таким образом.Например, если вы хотите узнать о безопасности RSA, начните с просмотра поля с общим номером sieve и времени его атаки.:-) Это не грубая сила - грубая сила - медленная, тупая атака - но вместо этого это интеллектуальный алгоритм, основанный на алгебраических свойствах модуля.
Итак, в общем, используйте рекомендуемый размер ключа для выбранного вами алгоритма и не беспокойтесь о повороте ключа, если у вас нет оснований полагать, что он скомпрометирован.Если для проверки токена требуется только одно место, и это место совпадает с тем, которое генерирует токен, то HMAC является хорошим выбором.Однако в противном случае вам лучше использовать алгоритм с открытым ключом, такой как RSA.
В: Какова наилучшая практика для защиты токена с помощью модуля, упомянутого выше?Кроме того, как установить токен (пример использования показывает только, как читать)?
Поскольку вы помещаете его в файл cookie, следуйте обычным рекомендациям для файлов cookie (Secure, HttpOnly и т. Д. ...).