Привязка токена — это предлагаемый стандарт расширения безопасности транспортного уровня (TLS), целью которого является повышение безопасности TLS за счет использования криптографических сертификатов на обоих концах соединения TLS. Текущая практика часто зависит от токенов на предъявителя, [1] которые могут быть потеряны или украдены. Токены-носители также уязвимы для атак типа «человек посередине» или атак повторного воспроизведения . Напротив, привязанные токены устанавливаются пользовательским агентом , который генерирует пару частного и открытого ключей для каждого целевого сервера, предоставляя открытый ключ серверу и после этого доказывая владение соответствующим секретным ключом при каждом TLS-соединении с сервером.
Привязка токена — это развитие расширения идентификатора канала безопасности транспортного уровня (ранее известного как безопасность транспортного уровня — сертификаты привязки к источнику (TLS-OBC)).
Участие отрасли широко распространено среди разработчиков стандартов, включая Microsoft , [2] Google , [3] PayPal , Ping Identity и Yubico . Однако поддержка браузеров остается ограниченной. Только Microsoft Edge поддерживает привязку токенов. [4]
стандарты IETF
Следующая группа документов IETF RFC и интернет-проектов включает набор взаимосвязанных спецификаций для реализации различных аспектов стандарта привязки токенов.
- Протокол привязки токена версии 1.0 . [5] Позволяет клиент-серверным приложениям создавать долгоживущие, уникально идентифицируемые привязки TLS, охватывающие несколько сеансов и подключений TLS. Затем приложения могут криптографически привязывать токены безопасности к уровню TLS, предотвращая экспорт токенов и атаки повторного воспроизведения. Для защиты конфиденциальности идентификаторы привязки токена передаются только через TLS и могут быть сброшены пользователем в любое время.
- Расширение Transport Layer Security (TLS) для согласования протокола привязки токена . [6] Расширение для согласования версии протокола привязки токена и ключевых параметров.
- Привязка токена через HTTP . [7] Набор механизмов, которые позволяют HTTP-серверам криптографически привязывать токены безопасности (такие как файлы cookie и токены OAuth) к соединениям TLS.
- Привязка токена для соединений Transport Layer Security (TLS) версии 1.3 . [8] Этот сопутствующий документ определяет обратно совместимый способ согласования привязки токена в соединениях TLS 1.3.
- Привязка токена HTTPS с завершением обратных прокси-серверов TLS . [9] Определяет поля заголовка HTTP , которые позволяют завершающему обратному прокси-серверу TLS передавать информацию на внутренний сервер о проверенном сообщении привязки токена, полученном от клиента, что позволяет этому внутреннему серверу связывать или проверять привязку файлов cookie и других средств безопасности. токены к ключу привязки токена клиента. Это облегчает совместную работу обратного прокси-сервера и внутреннего сервера, как если бы они представляли собой единое логическое развертывание привязки токена HTTPS на стороне сервера.
Соответствующий проект стандарта IETF:
- Привязка токена OAuth 2.0 . [10] Позволяет реализациям OAuth 2.0 применять привязку токенов к токенам доступа, кодам авторизации, токенам обновления, грантам авторизации JWT и аутентификации клиента JWT. Это криптографически привязывает эти токены к паре ключей привязки токенов клиента, владение которыми доказывается в соединениях TLS, для которых предназначены токены. Такое использование привязки токенов защищает эти токены от атак «человек посередине», экспорта и воспроизведения токенов.
Сопутствующие стандарты
Использование привязки токена TLS обеспечивает более надежную веб-аутентификацию. Некоторые стандарты веб-аутентификации, разработанные организациями по стандартизации, не входящими в IETF, принимают проекты стандартов.
- Проект аутентификации с привязкой к токену OpenID Connect 1.0 . [11] OpenID Connect (OIDC) — это простой уровень идентификации поверх протокола OAuth 2.0 . OIDC позволяет Клиентам проверять личность Конечного пользователя на основе аутентификации, выполняемой Сервером авторизации, а также получать базовую информацию о профиле Конечного пользователя совместимым способом, подобным REST. Спецификация аутентификации с привязкой к токену OIDC позволяет реализациям OIDC применять привязку токена к токену идентификатора OIDC. Это криптографически привязывает токен идентификатора к соединению TLS, по которому произошла аутентификация. Такое использование привязки токенов защищает поток аутентификации от атак «человек посередине», экспорта и воспроизведения токенов.
- Предлагаемая рекомендация W3C по веб-аутентификации: API для доступа к учетным данным открытого ключа . [12] Веб-аутентификация ( WebAuthn ), интерфейс для аутентификации пользователей с открытым ключом для веб-приложений и служб, поддерживает привязку токенов.
Рекомендации
- ^ М. Джонс, Microsoft; Д. Хардт, Независимый (2012). «Структура авторизации OAuth 2.0: использование токена носителя». Инструменты IETF . Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC6750 . Проверено 23 августа 2018 г.
- ^ Алекс Саймонс (21 августа 2018 г.). «Пришло время привязки токенов». Microsoft Enterprise Mobility + Security . Майкрософт . Проверено 23 августа 2018 г.
- ^ «Информационный документ о конфиденциальности Google Chrome» . Google . Проверено 23 августа 2018 г.
- ^ «Представляем привязку токенов» . Майкрософт. 8 ноября 2016 г. Проверено 15 января 2019 г.
- ^ А. Попов, Ред.; М. Нистрем; Д. Балфанц; Дж. Ходжес. «Протокол привязки токена версии 1.0». Инструменты IETF . IETF . дои : 10.17487/RFC8471 . RFC 8471 . Проверено 22 января 2019 г.
- ^ А. Попов, Ред.; М. Нистрем; Д. Бальфанц. «Расширение Transport Layer Security (TLS) для согласования протокола привязки токена». Инструменты IETF . IETF . дои : 10.17487/RFC8472 . RFC 8472 . Проверено 22 января 2019 г.
- ^ А. Попов; М. Нистрем; Д. Балфанц, редактор; Н. Харпер; Дж. Ходжес. «Привязка токена через HTTP». Инструменты IETF . IETF . дои : 10.17487/RFC8473 . RFC 8473 . Проверено 22 января 2019 г.
- ^ Харпер, Н. Привязка токена для соединений Transport Layer Security (TLS) версии 1.3. IETF . Идентификатор черновика-ietf-tokbind-tls13 . Проверено 22 января 2019 г.
- ^ Кэмпбелл, Б. «Привязка токена HTTPS с завершением обратных прокси-серверов TLS». Инструменты IETF . IETF . Идентификатор черновика-ietf-tokbind-ttrp . Проверено 22 января 2019 г.
- ^ Джонс, М.; Кэмпбелл, Б.; Брэдли, Дж.; Деннисс, В. «Привязка токена OAuth 2.0». Инструменты IETF . IETF . ID черновика-ietf-oauth-token-binding . Проверено 22 января 2019 г.
- ^ М. Джонс, Microsoft; Дж. Брэдли, Юбико; Б. Кэмпбелл, Ping Identity. «Аутентификация с использованием токена OpenID Connect». Фонд OpenID . Проверено 23 августа 2018 г.
- ^ Дирк Балфанц, Google; Алексей Ческис, Google; Джефф Ходжес, PayPal; Джей Си Джонс, Mozilla; Майкл Б. Джонс, Microsoft; Акшай Кумар, Microsoft; Анджело Ляо, Microsoft; Рольф Линдеманн, Nok Nok Labs; Эмиль Лундберг, Юбико; Виджай Бхарадвадж, Microsoft; Арнар Биргиссон, Google; Юбер Ле Ван Гонг, PayPal; Кристиан Брэнд, Google; Адам Лэнгли, Google; Гиридхар Мандьям, Qualcomm; Майк Уэст, Google; Джеффри Яскин, Google. «Веб-аутентификация: API для доступа к учетным данным открытого ключа». Консорциум Всемирной паутины . Проверено 23 августа 2018 г.
Внешние ссылки
- Привязка токена на BrowserAuth.net
- Презентация привязки токенов на Identiverse 2018
- Клингенштейн, Нейт; Скаво, Том (10 августа 2010 г.). «Профиль SSO веб-браузера SAML V2.0» . ОАЗИС . Проверено 23 августа 2018 г.
- Блог о привязке токена OAuth 2.0