Выбор ответа Senior Spring Security обновлено

Проверка алгоритма JWT

Вопрос

Почему сервер не должен брать алгоритм проверки подписи из заголовка alg присланного токена?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Атакующий подставит alg: none или сменит RS256 на HS256. Известные атаки на JWT: принять неподписанный токен с none или перепутать асимметричный алгоритм с HMAC, где публичный ключ используется как общий секрет.

Варианты ответа

  1. Атакующий подставит alg: none или сменит RS256 на HS256правильный ответ
  2. Чтение alg из заголовка заметно замедляет проверку на каждом запросе
  3. Заголовок alg всегда пустой у токенов OAuth 2
  4. Так требует только устаревший OAuth 1.0

Разбор

Известные атаки на JWT: принять неподписанный токен с none или перепутать асимметричный алгоритм с HMAC, где публичный ключ используется как общий секрет. Поэтому сервер жёстко задаёт ожидаемые алгоритмы и ключи. Resource Server в Spring Security берёт ключи из JWK Set издателя и проверяет алгоритм по ним.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.