ใบรับรอง
ใบรับรอง DAT แสดงช่วงเวลา อัลกอริทึม และคีย์ที่จำเป็นต่อการออกและตรวจสอบโทเค็นไว้ในสตริงเดียว
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-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 และใบรับรองสำหรับตรวจสอบเท่านั้น
อัลกอริทึมเข้ารหัส
| ชื่อ | คีย์ |
|---|---|
IV-AES128-GCM | AES-128 |
IV-AES256-GCM | AES-256 |
ชื่ออัลกอริทึมเป็นสัญญาระดับไวร์ ห้ามเปลี่ยนเป็นนามแฝงที่ใช้ใน JWT
ใบรับรองแบบเต็มและใบรับรองสำหรับตรวจสอบเท่านั้น
ใบรับรอง ECDSA แบบเต็มมีคีย์ส่วนตัวที่จำเป็นต่อการลงนาม ใบรับรองสำหรับตรวจสอบเท่านั้นจะเหลือไว้เฉพาะคีย์สาธารณะ ECDSA แต่ยังคงรักษาคีย์ AES ที่จำเป็นต่อการถอดรหัส secure ดังนั้นบริการสำหรับตรวจสอบเท่านั้นจึงสามารถตรวจสอบและถอดรหัส DAT ได้ แต่ไม่สามารถออก DAT ใหม่ได้