گواهی

گواهی 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، قابلیت صدور و قابلیت راستی‌آزمایی را جداگانه مدیریت می‌کنند.

شناسه گواهی و چرخش کلید

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 جدید نیست.