menuDAT

Сертификат DAT

1. Обзор (Introduction)

Сертификат DAT — это спецификация для управления правами выпуска DAT (Data Authentication Token), а также для хранения информации об алгоритмах подписи и шифрования токена и соответствующих ключах (Key).

Каждый сертификат имеет уникальный идентификатор (CID) и обеспечивает безопасное управление жизненным циклом токена путём принудительного задания периода, в течение которого возможен выпуск DAT, а также базового срока действия (TTL) создаваемых токенов.


2. Структура сертификата (Structure)

Structure
Example refresh

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

CID : Hex (uint64)

  • Уникальный идентификатор сертификата. Сопоставляется с полем CID в DAT и определяет, какой сертификат использовать при верификации.

Время начала выдачи DAT : uint64 (Unix Time)

  • Обозначает время начала периода, в течение которого данный сертификат может использоваться для выпуска DAT, в секундах (Seconds).

Срок выдачи DAT : uint64 (Seconds)

  • Срок действия выпуска сертификата. По истечении данного периода (в секундах) с момента Время начала выдачи DAT выпуск новых DAT с помощью этого сертификата невозможен.

DAT TTL (Время жизни) : uint64 (Seconds)

  • Базовый срок действия (Time To Live) DAT, выпускаемых с этим сертификатом. При создании DAT значение expire устанавливается как сумма времени выпуска (текущего времени) и dat-ttl.

Алгоритм подписи : String / Enum

  • Алгоритм подписи, используемый для создания и верификации поля signature в DAT.

Алгоритм шифрования : String / Enum

  • Алгоритм шифрования, используемый для шифрования и расшифрования поля secure в DAT.

Ключ подписи : Base64Url (Binary)

  • Данные ключа, используемого для подписи и верификации. (В зависимости от алгоритма может быть Public/Private Key асимметричного ключа или симметричным ключом.)

Ключ шифрования : Base64Url (Binary)

  • Данные ключа шифрования, используемого для шифрования и расшифрования поля secure.

3. Алгоритм

Алгоритм подписи

Список алгоритмов подписи для защиты DAT от подделки и фальсификации.

Поддерживаются методы с симметричным и асимметричным ключом.


ECDSA-P256

  • Алгоритм цифровой подписи на эллиптических кривых (NIST secp256r1)

ECDSA-P384

  • Алгоритм цифровой подписи на эллиптических кривых (NIST secp384r1)

ECDSA-P521

  • Алгоритм цифровой подписи на эллиптических кривых (NIST secp521r1)

HMAC-SHA256-MFS

  • Keyed-Hashing на основе секретного ключа фиксированного размера 256 бит (MFS)

HMAC-SHA384-MFS

  • Keyed-Hashing на основе секретного ключа фиксированного размера 384 бита (MFS)

HMAC-SHA512-MFS

  • Keyed-Hashing на основе секретного ключа фиксированного размера 512 бит (MFS)

MFS (Maximum Fixed Secret): Метод, при котором используется секретный ключ фиксированного размера в битах, равного размеру выходных данных (Output) хэш-алгоритма.


Алгоритм шифрования

Список алгоритмов аутентифицированного шифрования (Authenticated Encryption) для защиты конфиденциальных данных (поле secure) внутри DAT.

Результат шифрования представляет собой комбинацию IV и зашифрованных данных для предотвращения расшифровки и атак повторного воспроизведения (Replay Attack).


IV-AES128-GCM

  • IV(96bit) + зашифрованные_данные(Binary)
  • Режим AES-GCM с ключом 128 бит

IV-AES256-GCM

  • IV(96bit) + зашифрованные_данные(Binary)
  • Режим AES-GCM с ключом 256 бит

Встраивание IV (Initialization Vector): Для предотвращения атак повторного воспроизведения (Replay Attack) уникальный 96-битный NONCE (IV), генерируемый при каждом шифровании, добавляется в виде префикса (Prefix) перед зашифрованными данными и включается в бинарный результат. При расшифровке первые 96 бит выделяются как IV и используются для расшифрования.