ใบรับรอง

ใบรับรอง 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

ช่วงเวลา

  • ใบรับรองสามารถออก DAT ได้ตั้งแต่ start จนถึง start + duration โดยรวมเวลาทั้งสองปลายเข้าด้วย
  • 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 แต่ยังคงรักษาคีย์ AES ที่จำเป็นต่อการถอดรหัส secure ดังนั้นบริการสำหรับตรวจสอบเท่านั้นจึงสามารถตรวจสอบและถอดรหัส DAT ได้ แต่ไม่สามารถออก DAT ใหม่ได้