Сегодня многие системы используют JWT, однако в реальных производственных средах существуют следующие структурные ограничения.
Для их устранения был разработан новый стандарт токена — DAT.
JWT предоставляет стандарты шифрования, такие как JWE, однако их использование не является обязательным.
В результате многие среды разработки пропускают шифрование или передают данные нестандартными методами, что порождает уязвимости в безопасности.
Ротация подписывающих ключей не является обязательной, поэтому один ключ нередко используется длительное время. Это может привести к полному краху системы безопасности при компрометации ключа; подобные инциденты уже происходили на крупных e-commerce платформах.
JWT выполняет разбор JSON при каждом запросе, что требует значительных ресурсов CPU. В высоконагруженных средах эти затраты на разбор могут стать серьёзным узким местом всей системы.
DAT разработан по принципу: безопасность должна быть обязательной, а не опциональной, и производительность не может быть принесена в жертву.
expire.cid.plain.secure.signature
DAT имеет лёгкую структуру данных, как показано выше.
DAT физически разделяет области открытого текста (Plain) и зашифрованных данных (Secure) при передаче.
Конфиденциальная информация гарантированно шифруется, а весь процесс защищён стандартизированными алгоритмами (P256, AES-GCM и др.) через DatKey.
DatKey — ядро системы DAT — напрямую управляет жизненным циклом ключей, а также выпуском и истечением срока действия токенов.
Система спроектирована для регулярной ротации ключей на системном уровне, что полностью исключает «инциденты со статическими ключами» по причине халатности администратора.
| Категория | DAT | JWT | Сессия |
|---|---|---|---|
| Метод аутентификации | Распределённая верификация | Распределённая верификация | Централизованная |
| Структура данных | Raw Bytes (на основе фиксированного смещения) | JSON (текст в формате ключ-значение) | Serialized Object (сериализация объектов) |
| Механизм разбора | Прямое отображение байтовых данных | Требует разбора JSON и приведения типов | Требует десериализации объектов и I/O |
| Производительность | Максимальная (минимальные накладные расходы) | Средняя (зависит от скорости обработки JSON) | Низкая (сетевой/дисковый I/O) |
| Шифрование | Встроено по умолчанию | Требует отдельной реализации JWE (сложно) | Не применимо |
| Управление ключами | Принудительная системная ротация | Требует самостоятельной реализации (риск халатности) | Не применимо |
| Срок действия ключа | Явно задан в спецификации ключа | Опционально (бессрочно при отсутствии управления) | Управляется центральным сервером |