DAT
DAT হলো ডট (.) দিয়ে আলাদা করা ASCII string। প্রতিটি ফিল্ড নির্দিষ্ট ক্রমে ঠিক একবার থাকে, এবং স্বাক্ষর নিশ্চিত করে যে আগের ফিল্ডগুলো পাঠানো অবস্থাতেই আছে।
expire.cid.plain.secure.signatureফিল্ড
| ফিল্ড | উপস্থাপন | অর্থ |
|---|---|---|
expire | দশমিক unsigned integer | DAT মেয়াদ শেষ হওয়ার Unix সময় |
cid | lowercase hexadecimal unsigned integer | যাচাইয়ে ব্যবহৃত সার্টিফিকেট ID |
plain | padding-বিহীন Base64Url | এনক্রিপ্ট না করা bytes |
secure | padding-বিহীন Base64Url | সার্টিফিকেটের encryption algorithm দিয়ে সুরক্ষিত bytes |
signature | padding-বিহীন Base64Url | expire.cid.plain.secure-এর মূল ASCII bytes-এর স্বাক্ষর |
plain স্বাক্ষরের আওতায় থাকায় বদলানো যায় না, তবে যে কেউ decode করতে পারে। গোপন তথ্য, ব্যক্তিগত ডেটা এবং authorization সিদ্ধান্তে সরাসরি ব্যবহৃত মান secure-এ রাখুন। খালি secure ফিল্ড বৈধ।
Canonical উপস্থাপন
- পুরো DAT ASCII হতে হবে।
- সংখ্যা sign, space, prefix বা অপ্রয়োজনীয় শুরুর zero ছাড়া লেখা হয়। শুধু zero মান
0লেখা হয়। - Base64Url URL-safe alphabet ব্যবহার করে এবং
=padding বা whitespace অনুমোদন করে না। - একই bytes একাধিকভাবে উপস্থাপনকারী non-canonical Base64Url strings প্রত্যাখ্যান করা হয়।
- ভিন্ন ফিল্ড সংখ্যা বা ক্রমের string DAT নয়।
এই নিয়মগুলো ভিন্ন implementation-কে ভিন্ন string একই DAT হিসেবে গ্রহণ করা থেকে রক্ষা করে।
ইস্যু
- বর্তমানে ইস্যুযোগ্য সার্টিফিকেট নির্বাচন করুন।
- বর্তমান সময়ের সঙ্গে সার্টিফিকেটের TTL যোগ করে
expireতৈরি করুন। plainBase64Url দিয়ে encode করুন।- সার্টিফিকেটের encryption algorithm দিয়ে
secureencrypt করুন। - আগের ফিল্ডগুলো ডট দিয়ে জুড়ে তাদের ASCII bytes স্বাক্ষর করুন।
শুধু সার্টিফিকেটের issuance window-তে ইস্যু অনুমোদিত: start <= now <= start + duration।
যাচাই
- canonical নিয়ম অনুযায়ী DAT parse করুন।
- নিশ্চিত করুন
expire > now।expire == nowহলে DAT মেয়াদোত্তীর্ণ। cid-এর সঙ্গে মেলা সার্টিফিকেট খুঁজে যাচাইয়ের জন্য এখনও বৈধ নিশ্চিত করুন।- মূল
expire.cid.plain.securebytes-এর স্বাক্ষর যাচাই করুন। secureauthenticate ও decrypt করেplain-সহ ফেরত দিন।
স্বাক্ষর যাচাই না করা parsing API শুধু পর্যবেক্ষণ বা diagnostics-এর জন্য। এর output কখনও authentication বা authorization-এ ব্যবহার করবেন না।
স্পেসিফিকেশনের বাইরের দায়িত্ব
DAT user store, login method, authorization model, token transport header বা revocation list নির্ধারণ করে না। কোন অনুরোধ যাচাই করা payload ব্যবহার করবে তা অ্যাপ্লিকেশন ঠিক করে।