DAT
الوثائق

DAT ​

DAT سلسلة ASCII ذات حقول تفصل بينها نقاط (.). يظهر كل حقل مرة واحدة بترتيب ثابت، ويؤكد التوقيع أن الحقول السابقة نُقلت كما هي تمامًا.

expire
uint64 (عشري)
.
cid
uint64 (ست عشري)
.
plain
Base64Url
.
secure
Base64Url
.
signature
Base64Url
ترتيب الحقول والفواصل جزء من المواصفة.
text
expire.cid.plain.secure.signature

الحقول ​

الحقلالتمثيلالمعنى
expireتمثيل عشري لعدد صحيح غير موقّعUnix time الذي تنتهي عنده صلاحية DAT
cidتمثيل ست عشري بأحرف صغيرة لعدد صحيح غير موقّعمعرّف الشهادة المستخدمة للتحقق
plainBase64Url بلا paddingبايتات غير مشفّرة
secureBase64Url بلا paddingبايتات محمية بخوارزمية التشفير في الشهادة
signatureBase64Url بلا paddingتوقيع بايتات ASCII الأصلية لـ expire.cid.plain.secure

يدخل plain ضمن نطاق التوقيع، فلا يمكن تعديله، لكن يمكن لأي شخص فك ترميزه. ضع الأسرار والبيانات الشخصية والقيم المستخدمة مباشرة في قرار الصلاحيات داخل secure. ويُعد secure الفارغ صالحًا أيضًا.

الصيغة المعيارية ​

  • يجب أن يكون DAT كاملًا بصيغة ASCII.
  • تُمثّل الأعداد بلا إشارة أو مسافات أو بادئة أو أصفار بادئة غير ضرورية. وحدها القيمة 0 تُكتب 0.
  • يستخدم Base64Url الأبجدية URL-safe، ولا يسمح بـ padding على شكل = أو بالمسافات.
  • تُرفض تمثيلات Base64Url غير المعيارية التي تعبّر عن البايتات نفسها بسلاسل مختلفة.
  • إذا اختلف عدد الحقول أو ترتيبها، فالسلسلة ليست DAT.

تمنع هذه القواعد التطبيقات المختلفة من قبول سلاسل مختلفة بوصفها DAT نفسه.

الإصدار ​

  1. اختر شهادة قابلة للإصدار حاليًا.
  2. أضف TTL الخاص بالشهادة إلى الوقت الحالي لإنشاء expire.
  3. رمّز plain بصيغة Base64Url.
  4. شفّر secure باستخدام خوارزمية التشفير في الشهادة.
  5. وقّع بايتات ASCII الناتجة عن وصل الحقول السابقة بنقاط.

لا يمكن الإصدار إلا ضمن فترة إصدار الشهادة: start <= now <= start + duration.

التحقق ​

  1. حلّل DAT وفق القواعد المعيارية.
  2. تحقق من أن expire > now. إذا كان expire == now فقد انتهت الصلاحية.
  3. ابحث عن الشهادة المطابقة لـ cid وتأكد من أنها صالحة للتحقق.
  4. تحقق من توقيع بايتات expire.cid.plain.secure الأصلية.
  5. صادق على secure وفك تشفيره، ثم أعده مع plain.

تُستخدم API الخاصة بالتحليل التي لا تتحقق من التوقيع للمراقبة أو التشخيص فقط. ويجب عدم استخدام نتائجها للمصادقة أو منح الصلاحيات.

مسؤوليات خارج المواصفة ​

لا يحدّد DAT مخزن المستخدمين أو طريقة تسجيل الدخول أو نموذج الصلاحيات أو ترويسة نقل الرمز أو قائمة الإبطال. يقرر التطبيق الطلبات التي يسمح بها بناءً على payload الذي تم التحقق منه.