DAT (Distributed Access Token)
Предпосылки появления DAT
Сегодня многие системы используют JWT, однако в реальной эксплуатации у него есть следующие структурные ограничения.
Чтобы устранить их, и была разработана новая спецификация токена — DAT.
🧩 Фрагментация требований безопасности и отсутствие принуждения
JWT предоставляет стандарты шифрования, такие как JWE, но их применение не является обязательным.
Из-за этого во многих средах разработки шифрование опускают или передают данные нестандартными способами, что порождает уязвимости в безопасности.
🔑 Риски безопасности при использовании статического ключа (Static Key)
Ротация подписывающего ключа (Key Rolling) не является обязательной, поэтому один и тот же ключ нередко используется годами. При компрометации такого ключа это приводит к обрушению безопасности всей системы — подобные инциденты действительно происходили на крупных коммерческих сайтах.
📉 Снижение производительности из-за накладных расходов
JWT выполняет разбор JSON при каждом запросе и потребляет заметный объём ресурсов CPU. В средах с высокими требованиями к производительности эти затраты на разбор способны стать общесистемным узким местом.
Основная философия DAT
DAT разработан по принципу: безопасность должна быть не выбором, а обязанностью, а производительностью нельзя жертвовать.
⚡ Лёгкий и быстрый
Как показано выше, DAT состоит всего из пяти фиксированных полей, разделённых точкой (.). Позиции полей заданы спецификацией, поэтому каждое значение можно вырезать, просто найдя разделители, без разбора JSON.
🔐 Принудительная безопасность
При передаче данных DAT физически разделяет область открытого текста (Plain) и область шифрования (Secure).
Конфиденциальная информация обязательно шифруется, а весь процесс защищён стандартными алгоритмами, объявленными в сертификате (ECDSA, AES-GCM и др.).
Алгоритм шифрования определяет сертификат, а не токен. В токене нет сведений об алгоритме, поэтому у DAT отсутствует поверхность атаки на путаницу алгоритмов, которая возникает из-за заголовка alg в JWT.
🔄 Принудительная ротация ключей
Сертификат DAT управляет не только выпуском и истечением срока действия токенов, но и напрямую жизненным циклом ключей.
В сертификате на уровне спецификации зафиксировано, «с какого и по какой момент разрешён выпуск», и по окончании этого периода создать новый токен этим сертификатом невозможно. Ситуация, когда по невнимательности администратора один ключ используется несколько лет, структурно исключена.
⏱️ Разделение срока выдачи и срока действия
«Период, в течение которого сертификат может выпускать токены», и «период, в течение которого выпущенный токен остаётся живым», — это разные значения.
Благодаря этому уже выданные токены успевают прожить весь свой срок даже после того, как сертификат перестал их выпускать, а кластер тем временем естественным образом переходит на следующий сертификат.
Сравнение механизмов аутентификации
| Категория | DAT | JWT | Сессия |
|---|---|---|---|
| Метод аутентификации | Распределённая верификация | Распределённая верификация | Централизованная |
| Структура данных | Raw Bytes (на основе фиксированного смещения) | JSON (текст в формате ключ-значение) | Serialized Object (сериализация объектов) |
| Механизм разбора | Прямое отображение байтовых данных | Требует разбора JSON и приведения типов | Требует десериализации объектов и I/O |
| Производительность | Максимальная (минимальные накладные расходы на разбор) | Средняя (зависит от скорости обработки JSON) | Низкая (сетевой/дисковый I/O) |
| Шифрование | Встроено по умолчанию | Требует отдельной реализации JWE (сложно) | Не применимо |
| Управление ключами | Принудительная системная ротация (безопасность обязательна) | Требует самостоятельной реализации (риск халатности) | Не применимо |
| Срок действия ключа | Обязательно указан в самой спецификации ключа | Опционально (бессрочно при отсутствии управления) | Управляется центральным сервером |
| Выбор алгоритма | Определяет сертификат (в токене отсутствует) | Заголовок токена alg | Не применимо |
| Время истечения | Обязательное поле по спецификации | Опциональный claim (exp) | Управляется сервером |
Производительность
Дальнейшие документы
- DAT — проводной формат токена и канонические правила
- Сертификат — структура сертификата, алгоритмы, жизненный цикл
- Синхронизация CMS — распространение сертификатов и поведение, о котором нужно знать при эксплуатации