menuDAT

DAT (Data Authentication Token)

1. Обзор (Introduction)

По мере роста числа одновременно подключённых пользователей количество сессий (Session) также увеличивается, что приводит к избыточной нагрузке на сессионный сервер.

DAT — это спецификация токена, разработанная для решения проблемы нагрузки на сессионный сервер и реализации эффективной аутентификации без совместного хранения состояния между серверами (Stateless).


2. Структура токена (Structure)

Structure
Example refresh
/

2.1. Детальная спецификация полей

Время истечения : uint64 (Unix Time)

  • Время истечения срока действия токена, выраженное в виде 64-битного беззнакового целого числа в секундах (Seconds).

CID : Hex (uint64)

  • Идентификатор сертификата (Certificate ID), используемый для верификации токена.

Открытые данные : Base64Url (Binary)

  • Содержит данные, открытые для клиента. Поддерживает как строковые, так и бинарные данные (Binary); клиент может декодировать и просмотреть их.

Зашифрованные данные : Base64Url (Binary)

  • Содержит данные, скрытые от клиента. Зашифровано с помощью алгоритма шифрования на основе сертификата, поэтому клиент не может расшифровать содержимое.

Подпись : Base64Url (Binary)

  • Данные подписи для верификации подлинности и целостности токена. Формируется путём подписания предшествующих полей алгоритмом подписи сертификата.

3. Сравнение с JWT

DAT и JWT (JSON Web Token) разделяют структуру токена, разделённого точками (.), и способ верификации через подпись (signature), однако во внутреннем устройстве между ними есть следующие ключевые различия.

3.1. Сравнение структурных различий

  • Структура JWT

    headerbodysignature
    Base64Url (JSON String)Base64Url (JSON String)Base64Url (Binary)
  • Структура DAT

    Время истеченияCIDОткрытые данныеЗашифрованные данныеПодпись
    Unixtime (uint64)Hex (uint64)Base64Url (Binary)Base64Url (Encrypt Binary)Base64Url (Binary)

3.2. Ключевые различия

  • Облегчённость на основе Binary: JWT оперирует заголовком (Header) и телом (Body) в виде JSON-строк, тогда как DAT работает непосредственно с бинарными данными (Binary), оптимизируя размер данных и повышая эффективность парсинга.
  • Встроенная безопасность (поле Зашифрованные данные (secure)): В JWT полезная нагрузка (Payload) по умолчанию передаётся в открытом виде, и для шифрования требуется применение отдельной спецификации, например JWE. DAT, напротив, поддерживает шифрование непосредственно в самом токене через поле Зашифрованные данные.
  • Принудительное ограничение срока действия: В JWT поле exp (Claims) является необязательным, тогда как в DAT поле Время истечения (expire) принудительно закреплено в структуре токена, что делает проверку срока действия обязательной.