Выбор ответа Senior Spring Security обновлено
Проверка алгоритма JWT
Вопрос
Почему сервер не должен брать алгоритм проверки подписи из заголовка alg присланного токена?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Атакующий подставит alg: none или сменит RS256 на HS256. Известные атаки на JWT: принять неподписанный токен с none или перепутать асимметричный алгоритм с HMAC, где публичный ключ используется как общий секрет.
Варианты ответа
- Атакующий подставит
alg: noneили сменит RS256 на HS256правильный ответ - Чтение alg из заголовка заметно замедляет проверку на каждом запросе
- Заголовок alg всегда пустой у токенов OAuth 2
- Так требует только устаревший OAuth 1.0
Разбор
Известные атаки на JWT: принять неподписанный токен с none или перепутать асимметричный алгоритм с HMAC, где публичный ключ используется как общий секрет. Поэтому сервер жёстко задаёт ожидаемые алгоритмы и ключи. Resource Server в Spring Security берёт ключи из JWK Set издателя и проверяет алгоритм по ним.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.