证书 ​

DAT 证书用一个字符串表示签发和验证令牌所需的时间范围、算法和密钥。

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

时间范围 ​

  • 证书可在 start 至 start + duration 之间签发 DAT,包含两个端点。
  • 已签发 DAT 从签发时间起在 ttl 内有效。
  • 直到 start + duration + ttl 都需要证书进行验证,且在该时刻恰好仍可验证。

签发期结束后立即删除证书,将导致已签发的 DAT 无法验证。管理器和 CMS 分别处理可签发性与可验证性。

证书 ID 与密钥轮换 ​

cid 是识别密钥及其时间范围的公开契约。绝不要用不同密钥覆盖现有 cid。要轮换密钥,请使用新 cid 创建新证书。服务提前同步新证书,并仅在旧证书签发的所有 DAT 过期后才将其删除。

签名算法 ​

名称用途仅验证证书
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 和仅验证证书。

加密算法 ​

名称密钥
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

算法名称是线路契约的一部分。不要将它们替换为 JWT 别名。

完整证书与仅验证证书 ​

完整 ECDSA 证书包含签名所需的私钥。仅验证证书只保留 ECDSA 公钥,但保留解密 secure 所需的 AES 密钥。因此,仅验证服务可验证和解密 DAT,但不能签发新 DAT。