Certificates ​

DAT certificate ٹوکن issue اور verify کرنے کے لیے درکار time ranges، algorithms اور keys ایک string میں بیان کرتا ہے۔

cid
uint64
.
start
uint64
.
duration
uint64
.
ttl
uint64
.
sig-alg
name
.
crypto-alg
name
.
sig-key
Base64Url
.
crypto-key
Base64Url
Certificate بھی مقررہ ترتیب میں نقطوں سے الگ ASCII fields پر مشتمل ہے۔
text
cid.start.duration.ttl.sig-alg.crypto-alg.sig-key.crypto-key

وقت کی حدود ​

  • Certificate start سے start + duration تک، دونوں endpoints سمیت، DAT issue کر سکتا ہے۔
  • Issued DAT اپنے issuance time سے ttl تک valid رہتا ہے۔
  • Certificate start + duration + ttl تک verification کے لیے درکار ہے اور عین اس وقت بھی verifiable رہتا ہے۔

Issuance period ختم ہوتے ہی certificate حذف کرنے سے پہلے جاری شدہ DAT verify نہیں ہو سکیں گے۔ Managers اور CMS issuability اور verifiability کو الگ رکھتے ہیں۔

Certificate IDs اور key rotation ​

cid وہ public contract ہے جو key اور اس کے time ranges شناخت کرتا ہے۔ موجودہ cid کو مختلف keys سے کبھی overwrite نہ کریں۔ keys rotate کرنے کے لیے نئے cid کے ساتھ نیا certificate بنائیں۔ services پہلے ہی نیا certificate synchronize کرتی ہیں اور پرانا صرف اس کے جاری کردہ تمام DAT ختم ہونے کے بعد ہٹاتی ہیں۔

Signature algorithms ​

ناممقصدVerify-only certificate
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 ایک ہی key سے sign اور verify کرتا ہے، اس لیے verifying server کو وہ key دینے سے issuance authority بھی ملتی ہے۔ جہاں issuance authority الگ رکھنی ہو وہاں ECDSA اور verify-only certificates استعمال کریں۔

Encryption algorithms ​

نامKey
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

Algorithm names wire contract کا حصہ ہیں۔ انہیں JWT aliases سے تبدیل نہ کریں۔

Full اور verify-only certificates ​

Full ECDSA certificate میں signing کی private key ہوتی ہے۔ verify-only certificate میں صرف ECDSA public key رہتی ہے، مگر secure decrypt کرنے کی AES key بھی موجود رہتی ہے۔ یوں verify-only service DAT verify اور decrypt کر سکتی ہے لیکن نئے DAT issue نہیں کر سکتی۔