Сертификат DAT — это спецификация для управления правами выпуска DAT (Data Authentication Token), а также для хранения информации об алгоритмах подписи и шифрования токена и соответствующих ключах (Key).
Каждый сертификат имеет уникальный идентификатор (CID) и обеспечивает безопасное управление жизненным циклом токена путём принудительного задания периода, в течение которого возможен выпуск DAT, а также базового срока действия (TTL) создаваемых токенов.
CID : Hex (uint64)
CID в DAT и определяет, какой сертификат использовать при верификации.Время начала выдачи DAT : uint64 (Unix Time)
Срок выдачи DAT : uint64 (Seconds)
Время начала выдачи DAT выпуск новых DAT с помощью этого сертификата невозможен.DAT TTL (Время жизни) : uint64 (Seconds)
expire устанавливается как сумма времени выпуска (текущего времени) и dat-ttl.Алгоритм подписи : String / Enum
signature в DAT.Алгоритм шифрования : String / Enum
secure в DAT.Ключ подписи : Base64Url (Binary)
Ключ шифрования : Base64Url (Binary)
secure.Список алгоритмов подписи для защиты DAT от подделки и фальсификации.
Поддерживаются методы с симметричным и асимметричным ключом.
ECDSA-P256
ECDSA-P384
ECDSA-P521
HMAC-SHA256-MFS
HMAC-SHA384-MFS
HMAC-SHA512-MFS
MFS (Maximum Fixed Secret): Метод, при котором используется секретный ключ фиксированного размера в битах, равного размеру выходных данных (Output) хэш-алгоритма.
Список алгоритмов аутентифицированного шифрования (Authenticated Encryption) для защиты конфиденциальных данных (поле secure) внутри DAT.
Результат шифрования представляет собой комбинацию IV и зашифрованных данных для предотвращения расшифровки и атак повторного воспроизведения (Replay Attack).
IV-AES128-GCM
IV-AES256-GCM
Встраивание IV (Initialization Vector): Для предотвращения атак повторного воспроизведения (Replay Attack) уникальный 96-битный NONCE (IV), генерируемый при каждом шифровании, добавляется в виде префикса (Prefix) перед зашифрованными данными и включается в бинарный результат. При расшифровке первые 96 бит выделяются как IV и используются для расшифрования.