DAT
DAT یک رشته ASCII جداشده با نقطه (.) است. فیلدها هر یک یکبار و به ترتیب مشخص میآیند و امضا بررسی میکند که فیلدهای پیشین دقیقاً همانگونه که ارسال شدهاند باقی مانده باشند.
expire.cid.plain.secure.signatureفیلدها
| فیلد | نمایش | معنا |
|---|---|---|
expire | عدد دهدهی صحیح بدون علامت | زمان Unix انقضای DAT |
cid | عدد شانزدهی حروف کوچک و بدون علامت | شناسه گواهی برای راستیآزمایی |
plain | Base64Url بدون padding | بایتهای رمزگذارینشده |
secure | Base64Url بدون padding | بایتهای محافظتشده با الگوریتم رمز گواهی |
signature | Base64Url بدون padding | امضای بایتهای ASCII اصلی expire.cid.plain.secure |
plain در محدوده امضاست و قابل دستکاری نیست، اما هر کس میتواند آن را رمزگشایی کند. اسرار، اطلاعات شخصی و مقادیری را که مستقیماً در تصمیم مجوز بهکار میروند در secure قرار دهید. secure خالی هم معتبر است.
قواعد متعارفسازی
- کل DAT باید ASCII باشد.
- اعداد بدون علامت، فاصله، پیشوند و صفرهای ابتدایی غیرضروری نمایش داده میشوند. فقط مقدار
0بهصورت0نوشته میشود. - Base64Url از الفبای URL-safe استفاده میکند و padding با
=یا فاصله مجاز نیست. - نمایش Base64Url غیرمتعارف که همان بایتها را با چند رشته نمایش میدهد، رد میشود.
- اگر تعداد یا ترتیب فیلدها متفاوت باشد، رشته DAT نیست.
این قواعد مانع میشوند پیادهسازیهای مختلف، رشتههای متفاوت را DAT یکسانی بدانند.
صدور
- گواهیای را انتخاب کنید که در حال حاضر قابل صدور است.
- TTL گواهی را به زمان فعلی اضافه کنید تا
expireساخته شود. plainرا به Base64Url رمزگذاری کنید.secureرا با الگوریتم رمز گواهی رمزگذاری کنید.- بایتهای ASCII حاصل از اتصال فیلدهای پیشین با نقطه را امضا کنید.
صدور فقط در بازه صدور گواهی، یعنی start <= now <= start + duration، ممکن است.
راستیآزمایی
- DAT را طبق قواعد متعارف تجزیه کنید.
- بررسی کنید که
expire > nowباشد.expire == nowمنقضی است. - گواهی مطابق
cidرا بیابید و قابلیت راستیآزمایی آن را بررسی کنید. - امضای بایتهای اصلی
expire.cid.plain.secureرا راستیآزمایی کنید. secureرا اصالتسنجی و رمزگشایی کرده و همراهplainبازگردانید.
API تجزیهای که امضا را راستیآزمایی نمیکند، فقط برای مشاهده یا عیبیابی است. از نتیجه آن برای احراز هویت یا اعطای مجوز استفاده نکنید.
مسئولیتهای خارج از مشخصات
DAT مخزن کاربر، روش ورود، مدل مجوز، هدر انتقال توکن یا فهرست ابطال را تعیین نمیکند. این برنامه است که تصمیم میگیرد payload راستیآزماییشده برای کدام درخواست مجاز است.