Bearer-токен
Что такое Bearer-токен?
Bearer-токенНепрозрачный или структурированный мандат (RFC 6750), дающий доступ к ресурсу самим фактом владения, без подтверждения, что обладатель — законный владелец.
Bearer-токен — учётные данные, аутентификация которых обеспечивается только владением: кто предъявит токен API, тот и получит соответствующий доступ. Обычно передаётся в заголовке HTTP Authorization: Bearer и определён RFC 6750 в контексте OAuth 2.0. Поскольку нет доказательства владения, обязательны TLS-передача, безопасное хранение, узкий scope и короткое время жизни. Более стойкие альтернативы — sender-constrained-токены: DPoP, mTLS-bound, Token Binding. Утекший bearer-токен можно использовать немедленно до отзыва или истечения.
Почему мандаты «только владение» продолжают проваливаться
Два инцидента 2023 года это показывают. При взломе системы поддержки Okta (первичный доступ около 28 сентября 2023 года) злоумышленники прочитали загруженные клиентами HAR-файлы, в которых оставались действующие сессионные cookie и токены, и воспроизвели их, чтобы проникнуть к клиентам вроде BeyondTrust (2 октября) и Cloudflare (18 октября). Отдельно кампания Storm-0558 подделала bearer-токены Azure AD/MSA украденным ключом подписи Microsoft, незаметно получив доступ к почтовым ящикам Exchange Online примерно 25 организаций, включая Госдепартамент и Министерство торговли США. В обоих случаях токен работал, потому что был действительным, — в этом и состоит слабость семантики bearer.
Более стойкие схемы делают украденный токен бесполезным. Sender-constrained-токены (доказательство владения) привязывают мандат к ключу, обладание которым клиент обязан подтверждать при каждом вызове: DPoP (RFC 9449) на прикладном уровне через подписанный JWT-заголовок и привязанные к сертификату mTLS-токены (RFC 8705) на транспортном уровне через claim cnf.x5t#S256. Оба обязательны в профиле FAPI 2.0. Дополнительно: короткие TTL с ротацией refresh, ограничение audience/scope, привязка к устройству или сетевому контексту и немедленный отзыв при аномалиях.
flowchart TD
C[Client] -->|Authorization: Bearer token| API[Resource server]
API -->|token valid?| API
API -->|yes| G[Grant access]
L[Attacker steals token] -->|replays same token| API
API -.no possession proof.-> G
subgraph Mitigation
D["DPoP / mTLS binds token to client key"] --> R[Stolen token rejected]
end● Примеры
- 01
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
- 02
Вызов https://api.example.com/v1/orders с утёкшим OAuth access-токеном.
● Частые вопросы
Что такое Bearer-токен?
Непрозрачный или структурированный мандат (RFC 6750), дающий доступ к ресурсу самим фактом владения, без подтверждения, что обладатель — законный владелец. Относится к категории Идентификация и доступ в кибербезопасности.
Что означает Bearer-токен?
Непрозрачный или структурированный мандат (RFC 6750), дающий доступ к ресурсу самим фактом владения, без подтверждения, что обладатель — законный владелец.
Как защититься от Bearer-токен?
Защита от Bearer-токен обычно сочетает технические меры и операционные практики, как описано в определении выше.