Сертификаты ​

Сертификат DAT выражает одной строкой временные диапазоны, algorithms и ключи для выпуска и проверки токенов.

cid
uint64
.
start
uint64
.
duration
uint64
.
ttl
uint64
.
sig-alg
name
.
crypto-alg
name
.
sig-key
Base64Url
.
crypto-key
Base64Url
Сертификат также состоит из разделённых точками полей ASCII в фиксированном порядке.
text
cid.start.duration.ttl.sig-alg.crypto-alg.sig-key.crypto-key

Временные диапазоны ​

  • Сертификат может выпускать DAT от start до start + duration, включая обе границы.
  • Выпущенный DAT действителен в течение ttl с момента выпуска.
  • Сертификат нужен для проверки до start + duration + ttl и остаётся проверяемым ровно в этот момент.

Удаление сертификата сразу после окончания периода выпуска делает невозможной проверку уже выпущенных DAT. Менеджеры и CMS разделяют доступность для выпуска и проверки.

ID сертификатов и ротация ключей ​

cid — публичный контракт, идентифицирующий ключ и его временные диапазоны. Никогда не заменяйте существующий cid другими ключами. Для ротации создайте новый сертификат с новым cid. Сервисы заранее синхронизируют его и удаляют старый только после истечения всех выпущенных им DAT.

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

ИмяНазначениеСертификат verify-only
HMAC-SHA256-MFSHMAC SHA-256Не поддерживается
HMAC-SHA384-MFSHMAC SHA-384Не поддерживается
HMAC-SHA512-MFSHMAC SHA-512Не поддерживается
ECDSA-P256ECDSA P-256Поддерживается
ECDSA-P384ECDSA P-384Поддерживается
ECDSA-P521ECDSA P-521Поддерживается

HMAC подписывает и проверяет одним ключом, поэтому передача ключа проверяющему серверу даёт ему и право выпуска. Если право выпуска нужно отделить, используйте ECDSA и сертификаты verify-only.

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

ИмяКлюч
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

Имена алгоритмов — часть wire contract. Не заменяйте их псевдонимами JWT.

Полные сертификаты и verify-only ​

Полный сертификат ECDSA включает private key для подписи. Сертификат verify-only оставляет только public key ECDSA, но сохраняет AES key для расшифровки secure. Поэтому сервис verify-only может проверять и расшифровывать DAT, но не выпускать новые.