Сертификаты
Сертификат DAT выражает одной строкой временные диапазоны, algorithms и ключи для выпуска и проверки токенов.
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-MFS | HMAC SHA-256 | Не поддерживается |
HMAC-SHA384-MFS | HMAC SHA-384 | Не поддерживается |
HMAC-SHA512-MFS | HMAC SHA-512 | Не поддерживается |
ECDSA-P256 | ECDSA P-256 | Поддерживается |
ECDSA-P384 | ECDSA P-384 | Поддерживается |
ECDSA-P521 | ECDSA P-521 | Поддерживается |
HMAC подписывает и проверяет одним ключом, поэтому передача ключа проверяющему серверу даёт ему и право выпуска. Если право выпуска нужно отделить, используйте ECDSA и сертификаты verify-only.
Алгоритмы шифрования
| Имя | Ключ |
|---|---|
IV-AES128-GCM | AES-128 |
IV-AES256-GCM | AES-256 |
Имена алгоритмов — часть wire contract. Не заменяйте их псевдонимами JWT.
Полные сертификаты и verify-only
Полный сертификат ECDSA включает private key для подписи. Сертификат verify-only оставляет только public key ECDSA, но сохраняет AES key для расшифровки secure. Поэтому сервис verify-only может проверять и расшифровывать DAT, но не выпускать новые.