Финал серии. Алгоритм Шора ломает все асимметричные JWT-алгоритмы. ML-DSA подписи по 2.4 KB не влезают в cookie. SD-JWT для selective disclosure. Harvest Now, Decrypt Later — почему миграция JWE на постквантовую криптографию нужна уже сейчас.
RFC 8725 — пятнадцать правил безопасности JWT от авторов стандарта. Для каждого — какую атаку из серии оно предотвращает, какие CVE существуют, и почему ~65% приложений не проверяют aud. Плюс три новых правила из bis-обновления 2026.
JWT не идеален — 70+ CVE за десять лет. Разбираем альтернативы: PASETO без поля alg, Macaroons с уникальным attenuation, opaque tokens с мгновенным отзывом, серверные сессии Google/Netflix. Для каждой — что ломать на пентесте.
Утечка трёх бит nonce из каждой ECDSA-подписи — и 100 подписей спустя у тебя полный приватный ключ. Minerva, TPM-FAIL, EUCLEAK: реальные атаки на реальные устройства, и что из этого применимо на веб-пентесте прямо сейчас.
Нашёл Reflected XSS? Если приложение хранит JWT в localStorage, это не просто alert(1) — это захват всех аккаунтов. Разбираем кражу из каждого хранилища, CSP bypass через WebRTC и CSS injection, и единственные защиты, которые реально работают.
На стыках компонентов OAuth/OIDC появляются атаки, которых нет в изоляции: token confusion, cross-service relay, ALBeast в AWS и обход DPoP — с конкретными CVE и пошаговыми проверками для пентеста.
От выбора библиотеки зависит, какие атаки сработают: рейтинг самых уязвимых, tier-классификация от рекомендуемых до опасных, и fingerprinting бэкенда по заголовку токена без единого запроса к серверу.
JWE - зашифрованные JWT с пятью частями и двумя уровнями шифрования. Разбираем весь зоопарк атак: Invalid Curve на ECDH-ES, Bleichenbacher на RSA1_5, Padding Oracle на AES-CBC, PBES2 DoS одним запросом и forbidden attack на AES-GCM.
Разбираем математику за HMAC, RSA и ECDSA изнутри: почему Sony потеряла PlayStation 3 из-за одного повторяющегося числа, и как частичная утечка nonce позволяет восстановить приватный ключ.
JWT содержит все для офлайн-атаки: сообщение и подпись. Hashcat на GPU перебирает 150 миллионов HS256 в секунду. Секрет 'secret' подбирается за 2 секунды.
RFC не определяет структуру kid. Разработчики используют его как путь к файлу, SQL-параметр или аргумент команды. Каждый вариант - отдельный класс уязвимостей.
Берешь публичный ключ сервера из открытого доступа, подписываешь им токен - и сервер его принимает. Подпись есть, подпись корректна, но токен поддельный.