DAT سرٹیفکیٹ ایک ایسی وضاحت (specification) ہے جو DAT (Data Authentication Token) کے اجراء کے اختیارات کو کنٹرول کرتی ہے اور ٹوکن کے دستخط اور خفیہ کاری الگورتھم اور کلید (Key) کی معلومات کا انتظام کرتی ہے۔
ہر سرٹیفکیٹ کا ایک منفرد ID (CID) ہوتا ہے، اور یہ DAT کے اجراء کی ممکنہ مدت اور تیار ہونے والے ٹوکن کی بنیادی میعاد (TTL) کو لازمی قرار دے کر ٹوکن کے لائف سائیکل کو محفوظ طریقے سے منظم کرتا ہے۔
CID : Hex (uint64)
CID فیلڈ سے نقشہ بند (mapped) ہوتا ہے اور تصدیق کے وقت یہ طے کرتا ہے کہ کون سا سرٹیفکیٹ استعمال کیا جائے۔DAT اجراء شروع ہونے کا وقت : uint64 (Unix Time)
DAT اجراء کی مدت : uint64 (Seconds)
DAT اجراء شروع ہونے کا وقت سے یہ مدت (سیکنڈز) گزر جانے کے بعد اس سرٹیفکیٹ سے نئے DAT جاری نہیں کیے جا سکتے۔DAT TTL (درستگی کا وقت) : uint64 (Seconds)
expire کی قدر اجراء کے وقت (موجودہ وقت) میں dat-ttl جوڑ کر مقرر کی جاتی ہے۔دستخط الگورتھم : String / Enum
signature فیلڈ کو تیار کرنے اور تصدیق کرنے کے لیے استعمال کیا جانے والا دستخط الگورتھم ہے۔خفیہ کاری الگورتھم : String / Enum
secure فیلڈ کو خفیہ کرنے اور ڈی کوڈ کرنے کے لیے استعمال کیا جانے والا خفیہ کاری الگورتھم ہے۔دستخط کی چابی : Base64Url (Binary)
خفیہ کاری کی چابی : Base64Url (Binary)
secure فیلڈ کی خفیہ کاری اور ڈی کوڈنگ میں استعمال ہونے والا خفیہ کاری کلیدی ڈیٹا ہے۔DAT کی جعلسازی اور تبدیلی سے بچاؤ کے لیے دستخط الگورتھم کی فہرست ہے۔
ہم وزن (symmetric) اور غیر ہم وزن (asymmetric) کلید کے طریقوں کو سپورٹ کرتا ہے۔
ECDSA-P256
ECDSA-P384
ECDSA-P521
HMAC-SHA256-MFS
HMAC-SHA384-MFS
HMAC-SHA512-MFS
MFS (Maximum Fixed Secret): ہیش الگورتھم کے آؤٹ پٹ (Output) کے سائز کے برابر بٹس کی مقررہ سائز خفیہ کلید استعمال کرنے کا طریقہ ہے۔
DAT کے اندر خفیہ ڈیٹا (secure فیلڈ) کی حفاظت کے لیے تصدیق شدہ خفیہ کاری (Authenticated Encryption) الگورتھم کی فہرست ہے۔
خفیہ کاری کا نتیجہ ڈی کوڈنگ اور دوبارہ استعمال کے حملوں سے بچاؤ کے لیے IV اور خفیہ کردہ ڈیٹا کے ملے جلے شکل میں ہوتا ہے۔
IV-AES128-GCM
IV-AES256-GCM
IV (Initialization Vector) اندرونی شمولیت: دوبارہ استعمال کے حملے (Replay Attack) سے بچاؤ کے لیے ہر خفیہ کاری کے وقت تیار کیا جانے والا منفرد 96-بٹ سائز کا NONCE (IV) خفیہ کاری کے نتیجے کے ڈیٹا سے پہلے سابقہ (Prefix) کی شکل میں جوڑ کر بائنری میں شامل کیا جاتا ہے۔ ڈی کوڈنگ کے وقت پہلے 96-بٹس کو IV کے طور پر الگ کر کے ڈی کوڈنگ کی جاتی ہے۔