Size: a a a

2018 January 09

НС

Никита Сковорода in WebSec
источник

НС

Никита Сковорода in WebSec
источник

НС

Никита Сковорода in WebSec
источник

НС

Никита Сковорода in WebSec
источник

НС

Никита Сковорода in WebSec
С JWT были по крайней мере такие проблемы:

1) Есть волшебный тип подписи none, который может быть указан в токене. Такие токены всегда валидны по спеке, и если тип подписи не проверять — будет ой. Это в либах пофиксили таким образом, что если при проверке указывается ключ — они на тип none ругаются.

2) JWT умеет в симметричное и асимметричное шифрование. Если используется асимметричное шифрование, при генерации используется приватный ключ, при проверке — публичный. Проверка ожидает асимметричного шифрования и в функцию проверки передают публичный ключ примерно так проверитьТокен(токен, публичный ключ). Веселье наступало когда кто-то левый тупо юзал этот известный публичный ключ в качестве psk и генерировал токен с симметричным шифрованием — он тоже проходил через эту проверку по очевидным причинам. Решилось изменением апишечек библиотек и требованием уазания допустимых методов при проверке.

3) Вот сейчас в либе от Cisco (node-jose) нашли такую штуку, что если хедер при асимметричном шифровании указывает свой публичный ключ (в JWT так можно), то токен проходит проверку несмотря на то, какой ключ указан в проверке ручками. То есть там jose.JWS.createVerify('какой угодно ключ', {}).verify('самоподписанный jwt') всегда проходит. Пофиксили со сломом обратной совместимости.
источник

НС

Никита Сковорода in WebSec
Там в библиотеках JWT постоянно находят разную фигню которая тупо ломает аутентификацию (причём связанную с тем, что эти библиотеки следуют спекам JWT), и я не удивлюсь что найдут ещё кучи того же.
источник

НС

Никита Сковорода in WebSec
Плюс там в спеке JWT присутствует ещё и хождение по удалённым урлам, указанным в токене, для проверки валидности этого токена. Причём урлы, понятное дело, грузятся _до_ проверки токена.

Кмк это не эксплойтят активно пока что только по причине того что либы поддержку этого дерьма ещё не вкрутили (но собираются).
источник

НС

Никита Сковорода in WebSec
Фотка замечательной презентации тоже прямо сейчас.
источник

НС

Никита Сковорода in WebSec
И OWASP и гугл, кстати, советуют хранить данные для авторизации в куках, а не в локал сторадже.
источник

НС

Никита Сковорода in WebSec
Если ты думаешь, что что-то из информации в статье joepie91 устарело — скажи, что именно.
источник

DZ

Dmitry Zakharov in WebSec
Да прочитал твои мессаги
источник

DZ

Dmitry Zakharov in WebSec
В общем про куки читал от гугла
источник

DZ

Dmitry Zakharov in WebSec
И ещё где-то
источник

DZ

Dmitry Zakharov in WebSec
Аля токен с httpOnly
источник

DZ

Dmitry Zakharov in WebSec
В куке
источник

DZ

Dmitry Zakharov in WebSec
Но чёт в owasp тут придуман финджерпринт
источник

НС

Никита Сковорода in WebSec
jwt ломают каждый год, он заоверенжинерен, у него серьёзные проблемы с отзывом токенов (когда надо прекратить чьи-то полномочия) и с хранением данных. И он не решает никаких реально существующих проблем по сравнению с сессиями.

Сессии простые, эффективные. Они работают десятки лет без каких-либо эпических дыр.
источник

DZ

Dmitry Zakharov in WebSec
Что спасает от воровства
источник

DZ

Dmitry Zakharov in WebSec
Добавляя user context
источник

DZ

Dmitry Zakharov in WebSec
Я ещё не пробовал
источник