menuDAT

DAT سرٹیفکیٹ

1. تعارف (Introduction)

DAT سرٹیفکیٹ ایک ایسی وضاحت (specification) ہے جو DAT (Data Authentication Token) کے اجراء کے اختیارات کو کنٹرول کرتی ہے اور ٹوکن کے دستخط اور خفیہ کاری الگورتھم اور کلید (Key) کی معلومات کا انتظام کرتی ہے۔

ہر سرٹیفکیٹ کا ایک منفرد ID (CID) ہوتا ہے، اور یہ DAT کے اجراء کی ممکنہ مدت اور تیار ہونے والے ٹوکن کی بنیادی میعاد (TTL) کو لازمی قرار دے کر ٹوکن کے لائف سائیکل کو محفوظ طریقے سے منظم کرتا ہے۔


2. سرٹیفکیٹ ڈھانچہ (Structure)

Structure
Example refresh

2.1. فیلڈ کی تفصیلی وضاحت

CID : Hex (uint64)

  • سرٹیفکیٹ کی شناخت کرنے والا منفرد سرٹیفکیٹ ID ہے۔ یہ DAT کے CID فیلڈ سے نقشہ بند (mapped) ہوتا ہے اور تصدیق کے وقت یہ طے کرتا ہے کہ کون سا سرٹیفکیٹ استعمال کیا جائے۔

DAT اجراء شروع ہونے کا وقت : uint64 (Unix Time)

  • اس سرٹیفکیٹ کو استعمال کرتے ہوئے DAT جاری کیے جانے کا آغاز وقت سیکنڈز (Seconds) کی اکائی میں ظاہر کرتا ہے۔

DAT اجراء کی مدت : uint64 (Seconds)

  • سرٹیفکیٹ کی اجراء کی میعاد ہے۔ DAT اجراء شروع ہونے کا وقت سے یہ مدت (سیکنڈز) گزر جانے کے بعد اس سرٹیفکیٹ سے نئے DAT جاری نہیں کیے جا سکتے۔

DAT TTL (درستگی کا وقت) : uint64 (Seconds)

  • اس سرٹیفکیٹ سے جاری ہونے والے DAT کی بنیادی میعاد (Time To Live) ہے۔ DAT بنانے کے وقت expire کی قدر اجراء کے وقت (موجودہ وقت) میں dat-ttl جوڑ کر مقرر کی جاتی ہے۔

دستخط الگورتھم : String / Enum

  • DAT کے signature فیلڈ کو تیار کرنے اور تصدیق کرنے کے لیے استعمال کیا جانے والا دستخط الگورتھم ہے۔

خفیہ کاری الگورتھم : String / Enum

  • DAT کے secure فیلڈ کو خفیہ کرنے اور ڈی کوڈ کرنے کے لیے استعمال کیا جانے والا خفیہ کاری الگورتھم ہے۔

دستخط کی چابی : Base64Url (Binary)

  • دستخط اور تصدیق میں استعمال ہونے والا کلیدی ڈیٹا ہے۔ (الگورتھم کے مطابق یہ غیر ہم وزن (asymmetric) کلید کی Public/Private Key یا ہم وزن (symmetric) کلید ہو سکتی ہے۔)

خفیہ کاری کی چابی : Base64Url (Binary)

  • secure فیلڈ کی خفیہ کاری اور ڈی کوڈنگ میں استعمال ہونے والا خفیہ کاری کلیدی ڈیٹا ہے۔

3. الگورتھم

دستخط الگورتھم

DAT کی جعلسازی اور تبدیلی سے بچاؤ کے لیے دستخط الگورتھم کی فہرست ہے۔

ہم وزن (symmetric) اور غیر ہم وزن (asymmetric) کلید کے طریقوں کو سپورٹ کرتا ہے۔


ECDSA-P256

  • بیضوی منحنی ڈیجیٹل دستخط الگورتھم (NIST secp256r1)

ECDSA-P384

  • بیضوی منحنی ڈیجیٹل دستخط الگورتھم (NIST secp384r1)

ECDSA-P521

  • بیضوی منحنی ڈیجیٹل دستخط الگورتھم (NIST secp521r1)

HMAC-SHA256-MFS

  • 256-bit مقررہ سائز خفیہ کلید (MFS) پر مبنی Keyed-Hashing

HMAC-SHA384-MFS

  • 384-bit مقررہ سائز خفیہ کلید (MFS) پر مبنی Keyed-Hashing

HMAC-SHA512-MFS

  • 512-bit مقررہ سائز خفیہ کلید (MFS) پر مبنی Keyed-Hashing

MFS (Maximum Fixed Secret): ہیش الگورتھم کے آؤٹ پٹ (Output) کے سائز کے برابر بٹس کی مقررہ سائز خفیہ کلید استعمال کرنے کا طریقہ ہے۔


خفیہ کاری الگورتھم

DAT کے اندر خفیہ ڈیٹا (secure فیلڈ) کی حفاظت کے لیے تصدیق شدہ خفیہ کاری (Authenticated Encryption) الگورتھم کی فہرست ہے۔

خفیہ کاری کا نتیجہ ڈی کوڈنگ اور دوبارہ استعمال کے حملوں سے بچاؤ کے لیے IV اور خفیہ کردہ ڈیٹا کے ملے جلے شکل میں ہوتا ہے۔


IV-AES128-GCM

  • IV(96bit) + خفیہ کاری_نتیجہ(Binary)
  • 128-bit کلید استعمال کرنے والا AES-GCM موڈ

IV-AES256-GCM

  • IV(96bit) + خفیہ کاری_نتیجہ(Binary)
  • 256-bit کلید استعمال کرنے والا AES-GCM موڈ

IV (Initialization Vector) اندرونی شمولیت: دوبارہ استعمال کے حملے (Replay Attack) سے بچاؤ کے لیے ہر خفیہ کاری کے وقت تیار کیا جانے والا منفرد 96-بٹ سائز کا NONCE (IV) خفیہ کاری کے نتیجے کے ڈیٹا سے پہلے سابقہ (Prefix) کی شکل میں جوڑ کر بائنری میں شامل کیا جاتا ہے۔ ڈی کوڈنگ کے وقت پہلے 96-بٹس کو IV کے طور پر الگ کر کے ڈی کوڈنگ کی جاتی ہے۔