1. ভূমিকা
পাসওয়ার্ড ম্যানেজার (PM) হল নিরাপত্তা বৃদ্ধির জন্য অপরিহার্য সরঞ্জাম যা শক্তিশালী, অনন্য পাসওয়ার্ড ব্যবহার করতে সক্ষম করে, মুখস্থ করার জ্ঞানীয় বোঝা ছাড়াই। তাদের সুবিধা সত্ত্বেও, ব্যবহারকারীর আস্থা গ্রহণের একটি উল্লেখযোগ্য বাধা হিসাবে রয়ে গেছে। এই গবেষণাপত্রটি আস্থাকে প্রভাবিত করে এমন একটি গুরুত্বপূর্ণ বৈশিষ্ট্যকে সম্বোধন করে: র্যান্ডম পাসওয়ার্ড জেনারেশন অ্যালগরিদম। আমরা EasyCrypt ফ্রেমওয়ার্ক ব্যবহার করে একটি আনুষ্ঠানিকভাবে যাচাইকৃত রেফারেন্স বাস্তবায়নের প্রস্তাব করি, কার্যকরী সঠিকতা এবং নিরাপত্তা বৈশিষ্ট্য উভয়ই প্রমাণ করার জন্য, PM-এ পাসওয়ার্ড জেনারেশনের জন্য একটি বিশ্বস্ত মান প্রতিষ্ঠা করার লক্ষ্যে।
2. বর্তমান পাসওয়ার্ড জেনারেশন অ্যালগরিদম
এই গবেষণায় ১৫টি পাসওয়ার্ড ম্যানেজার জরিপ করা হয়েছে, যার বিশদ বিশ্লেষণ তিনটি বহুল ব্যবহৃত, ওপেন-সোর্স উদাহরণের উপর কেন্দ্রীভূত: Google Chrome-এর পাসওয়ার্ড ম্যানেজার, Bitwarden, এবং KeePass। লক্ষ্য ছিল সাধারণ অ্যালগরিদমগুলি বোঝা এবং আনুষ্ঠানিক যাচাইকরণের জন্য ক্ষেত্রগুলি চিহ্নিত করা।
2.1 পাসওয়ার্ড কম্পোজিশন পলিসি
পাসওয়ার্ড ম্যানেজার ব্যবহারকারীদের পলিসি সংজ্ঞায়িত করতে দেয় যা জেনারেট করা পাসওয়ার্ডগুলিকে সীমাবদ্ধ করে। এই পলিসিগুলি দৈর্ঘ্য, অক্ষর সেট (যেমন, ছোট হাতের অক্ষর, বড় হাতের অক্ষর, সংখ্যা, বিশেষ অক্ষর), এবং প্রতি সেটে সর্বনিম্ন/সর্বোচ্চ সংঘটন নির্দিষ্ট করে। PDF-এর টেবিল 1-এ Chrome, Bitwarden, এবং KeePass-এ উপলব্ধ নির্দিষ্ট অপশনগুলির বিবরণ দেওয়া হয়েছে, অনুমোদিত অক্ষর সেট এবং পলিসির সূক্ষ্মতার তারতম্য তুলে ধরা হয়েছে (যেমন, KeePass কাস্টম অক্ষর সেট এবং বর্জন সংজ্ঞায়িত করতে দেয়)।
2.2 র্যান্ডম পাসওয়ার্ড জেনারেশন
Chrome-এর উদাহরণে মূল অ্যালগরিদমটি একটি বহু-ধাপ প্রক্রিয়া জড়িত: ১) সংজ্ঞায়িত সর্বনিম্ন সংঘটন সহ সেট থেকে এলোমেলোভাবে অক্ষর তৈরি করুন। ২) সেই সমস্ত সেটের সংঘ থেকে অক্ষর নির্বাচন করে অবশিষ্ট দৈর্ঘ্য পূরণ করুন যেগুলি তাদের সর্বোচ্চ গণনা পর্যন্ত পৌঁছায়নি। ৩) চূড়ান্ত স্ট্রিংটিতে একটি র্যান্ডম পারমুটেশন প্রয়োগ করুন। এই প্রক্রিয়াটিকে এলোমেলোতা এবং পলিসি মেনে চলার মধ্যে ভারসাম্য বজায় রাখতে হবে।
3. আনুষ্ঠানিক যাচাইকরণ পদ্ধতি
এই গবেষণাপত্রটি পাসওয়ার্ড জেনারেশন অ্যালগরিদমকে আনুষ্ঠানিক রূপ দিতে এবং যাচাই করতে EasyCrypt প্রুফ অ্যাসিস্টেন্ট ব্যবহার করে। যাচাইকরণ দুটি মূল বৈশিষ্ট্যের উপর দৃষ্টি নিবদ্ধ করে:
- কার্যকরী সঠিকতা: অ্যালগরিদম সর্বদা একটি পাসওয়ার্ড তৈরি করে যা ব্যবহারকারী-সংজ্ঞায়িত কম্পোজিশন পলিসি পূরণ করে।
- নিরাপত্তা (এলোমেলোতা): আউটপুট পাসওয়ার্ডটি পলিসি-সংজ্ঞায়িত বর্ণমালা থেকে আঁকা একই দৈর্ঘ্যের একটি সম্পূর্ণ এলোমেলো স্ট্রিং থেকে গণনাগতভাবে আলাদা করা যায় না, ধরে নেওয়া হয় একটি ক্রিপ্টোগ্রাফিকভাবে নিরাপদ র্যান্ডম নম্বর জেনারেটর (CSPRNG) ব্যবহৃত হচ্ছে। এটি একটি গেম-ভিত্তিক ক্রিপ্টোগ্রাফিক প্রুফ পদ্ধতি ব্যবহার করে মডেল করা হয়েছে।
এই আনুষ্ঠানিক পদ্ধতি ঐতিহ্যগত পরীক্ষার বাইরে চলে যায়, অ্যালগরিদমের আচরণ সম্পর্কে গাণিতিক নিশ্চয়তা প্রদান করে।
4. প্রযুক্তিগত বিবরণ এবং গাণিতিক সূত্রায়ন
নিরাপত্তা বৈশিষ্ট্যটিকে একটি ক্রিপ্টোগ্রাফিক গেম হিসাবে আনুষ্ঠানিক রূপ দেওয়া হয়েছে। ধরা যাক $\mathcal{A}$ একটি সম্ভাব্য বহুপদী-সময় (PPT) প্রতিপক্ষ। ধরা যাক $\text{Gen}(policy)$ হল পাসওয়ার্ড জেনারেশন অ্যালগরিদম এবং $\text{Random}(policy)$ হল একটি আদর্শ জেনারেটর যা $policy$ পূরণ করে এমন সমস্ত স্ট্রিং থেকে একটি অভিন্নভাবে এলোমেলো স্ট্রিং আউটপুট দেয়। তাদের মধ্যে পার্থক্য করার ক্ষেত্রে $\mathcal{A}$-এর সুবিধা সংজ্ঞায়িত করা হয়েছে:
$\text{Adv}_{\text{Gen}}^{\text{dist}}(\mathcal{A}) = |\Pr[\mathcal{A}(\text{Gen}(policy)) = 1] - \Pr[\mathcal{A}(\text{Random}(policy)) = 1]|$
অ্যালগরিদমটিকে নিরাপদ বলে বিবেচনা করা হয় যদি এই সুবিধাটি সমস্ত PPT প্রতিপক্ষ $\mathcal{A}$-এর জন্য নগণ্য হয়, অর্থাৎ $\text{Adv}_{\text{Gen}}^{\text{dist}}(\mathcal{A}) \leq \epsilon(\lambda)$, যেখানে $\epsilon$ হল নিরাপত্তা প্যারামিটার $\lambda$-এর একটি নগণ্য ফাংশন। EasyCrypt-এ প্রুফটি এই সুবিধাকে সীমাবদ্ধ করার জন্য গেমের একটি ক্রম (Game$_0$, Game$_1$, ...) তৈরি করে, প্রায়শই এই ধারণার উপর নির্ভর করে যে অন্তর্নিহিত PRG নিরাপদ।
5. পরীক্ষামূলক ফলাফল এবং চার্ট বর্ণনা
যদিও PDF প্রাথমিকভাবে আনুষ্ঠানিক স্পেসিফিকেশন এবং প্রুফ কৌশলের উপর দৃষ্টি নিবদ্ধ করে, ব্যবহারিক ফলাফল হল একটি যাচাইকৃত রেফারেন্স বাস্তবায়ন। "পরীক্ষা" হল EasyCrypt পরিবেশে আনুষ্ঠানিক প্রুফের সফল সমাপ্তি। এটি সঠিকতার জন্য একটি নীলনকশা হিসাবে কাজ করে।
ধারণাগত চার্ট বর্ণনা: একটি ফ্লোচার্ট যাচাইকৃত অ্যালগরিদমটিকে কার্যকরভাবে দৃশ্যমান করবে:
- শুরু: ব্যবহারকারী পলিসি ইনপুট করে (দৈর্ঘ্য L, অক্ষর সেট S1...Sn সর্বনিম্ন/সর্বোচ্চ গণনা সহ)।
- ধাপ ১ - সর্বনিম্ন পূরণ: প্রতিটি সেট Si-এর জন্য যেখানে min_i > 0, Si থেকে min_i সংখ্যক র্যান্ডম অক্ষর তৈরি করুন। কাউন্টার: $\sum min_i$ অক্ষর তৈরি হয়েছে।
- ধাপ ২ - দৈর্ঘ্য L পর্যন্ত পূরণ: ধরা যাক $\text{Remaining} = L - \sum min_i$। যতক্ষণ Remaining > 0: সেই সমস্ত সেট Si থেকে একটি পুল তৈরি করুন যেখানে current_count(Si) < max_i। এই পুল থেকে একটি র্যান্ডম অক্ষর নির্বাচন করুন। Remaining হ্রাস করুন।
- ধাপ ৩ - এলোমেলো সাজানো: L অক্ষরের তালিকায় একটি ক্রিপ্টোগ্রাফিকভাবে নিরাপদ র্যান্ডম পারমুটেশন (ফিশার-ইয়েটস শাফল) প্রয়োগ করুন।
- ধাপ ৪ - আউটপুট: চূড়ান্ত এলোমেলো সাজানো স্ট্রিং আউটপুট দিন। এই ধাপে সবুজ চেকমার্কটি লেবেল করা হয়েছে "আনুষ্ঠানিকভাবে যাচাইকৃত (EasyCrypt): সঠিকতা ও এলোমেলোতা"।
6. বিশ্লেষণ কাঠামো: উদাহরণ কেস
পরিস্থিতি: যাচাই করা যে অ্যালগরিদমটি একটি সূক্ষ্ম পক্ষপাত এড়ায় যখন "একইরকম অক্ষর বাদ দিন" অপশন (যেমন, 'l', 'I', 'O', '0' বাদ দেওয়া) সক্রিয় থাকে।
সম্ভাব্য ত্রুটি (যাচাইকরণ ছাড়া): একটি সরল বাস্তবায়ন প্রথমে সম্পূর্ণ সেট থেকে একটি পাসওয়ার্ড তৈরি করতে পারে এবং তারপর বাদ দেওয়া অক্ষরগুলি সরাতে পারে, যার ফলে একটি ছোট পাসওয়ার্ড হতে পারে বা অবশিষ্ট অক্ষর সেটগুলির বন্টন পরিবর্তন হতে পারে, পলিসি লঙ্ঘন করতে পারে বা পক্ষপাত প্রবর্তন করতে পারে।
আনুষ্ঠানিক যাচাইকরণ পদ্ধতি: EasyCrypt-এ, আমরা অক্ষর সেটটিকে $\text{Alphabet}_{\text{final}} = \text{Alphabet}_{\text{full}} \setminus \text{ExcludedSet}$ হিসাবে নির্দিষ্ট করব। তারপর প্রুফটি দেখাবে যে জেনারেশন প্রক্রিয়াটি (উপরের ধাপ ১ ও ২) সংশ্লিষ্ট অক্ষর সেটগুলির জন্য $\text{Alphabet}_{\text{final}}$ থেকে অভিন্নভাবে নমুনা নেয়, এবং সর্বনিম্ন/সর্বোচ্চ সীমাবদ্ধতাগুলি এই হ্রাসকৃত সেটের বিরুদ্ধে সঠিকভাবে মূল্যায়ন করা হয়। এটি নির্মাণের মাধ্যমে ত্রুটিটি দূর করে।
নন-কোড আর্টিফ্যাক্ট: অক্ষর নির্বাচন ধাপের জন্য EasyCrypt-এ আনুষ্ঠানিক স্পেসিফিকেশনটি যৌক্তিকভাবে স্যাম্পলিং পুল সংজ্ঞায়িত করবে, নিশ্চিত করবে যে বাদ দেওয়া অক্ষরগুলি কখনই উৎসের অংশ নয়।
7. মূল অন্তর্দৃষ্টি ও বিশ্লেষকের দৃষ্টিভঙ্গি
মূল অন্তর্দৃষ্টি: গবেষণাপত্রের মৌলিক অবদান হল পাসওয়ার্ড ম্যানেজারের জন্য আস্থার মডেলটিকে "কোড রিভিউ এবং পরীক্ষার মাধ্যমে আশা করা নিরাপদ" থেকে "আনুষ্ঠানিক যাচাইকরণের মাধ্যমে গাণিতিকভাবে প্রমাণিত নিরাপদ"-এ স্থানান্তর করা। এটি সঠিকভাবে পাসওয়ার্ড জেনারেটরকে আস্থার মূল স্তম্ভ হিসাবে চিহ্নিত করে—একটি একক ব্যর্থতার বিন্দু যা, যদি ত্রুটিপূর্ণ হয়, ম্যানেজারের পুরো নিরাপত্তা ভিত্তিকে দুর্বল করে দেয়। এই কাজটি প্রয়োগকৃত ক্রিপ্টোগ্রাফিতে একটি গুরুত্বপূর্ণ কিন্তু কম মূল্যায়ন করা প্রবণতার অংশ, যেমন TLS প্রোটোকলের আনুষ্ঠানিক যাচাইকরণ (প্রজেক্ট এভারেস্ট) বা ক্রিপ্টোগ্রাফিক লাইব্রেরির (HACL*) প্রচেষ্টার মতো।
যৌক্তিক প্রবাহ: যুক্তিটি সঠিক: ১) অস্পষ্ট নিরাপত্তার কারণে ব্যবহারকারীর আস্থা কম। ২) পাসওয়ার্ড জেনারেশন একটি গুরুত্বপূর্ণ, জটিল উপাদান যা সূক্ষ্ম বাগের (যেমন, পক্ষপাত, পলিসি লঙ্ঘন) প্রতি সংবেদনশীল। ৩) আনুষ্ঠানিক পদ্ধতি সর্বোচ্চ নিশ্চয়তা প্রদান করে। ৪) EasyCrypt এই যাচাইকরণের জন্য একটি ব্যবহারিক কাঠামো প্রদান করে। ৫) একটি যাচাইকৃত রেফারেন্স বাস্তবায়ন শিল্পের জন্য একটি স্বর্ণমান হিসাবে কাজ করতে পারে।
শক্তি ও দুর্বলতা: শক্তি: একটি সুনির্দিষ্ট, উচ্চ-প্রভাব সম্পন্ন সমস্যার উপর ফোকাস করা চমৎকার। গেম-ভিত্তিক প্রুফের জন্য একটি পরিপক্ক টুল EasyCrypt ব্যবহার করা বাস্তবসম্মত। বাস্তব-বিশ্বের PM অ্যালগরিদমের বিশ্লেষণ গবেষণাটিকে অনুশীলনে ভিত্তি দেয়। দুর্বলতা: গবেষণাপত্রটি একটি "দিকে" নিবন্ধ—এটি ভিত্তি স্থাপন করে কিন্তু একটি প্রধান PM-এর সমস্ত পলিসির জন্য একটি সম্পূর্ণ, যুদ্ধ-পরীক্ষিত যাচাইকৃত বাস্তবায়ন উপস্থাপন করে না। আসল চ্যালেঞ্জ হল বাণিজ্যিক পাসওয়ার্ড পলিসির জটিলতা (যেমন KeePass-এর ব্যাপক অপশন), যা যাচাইকরণের অবস্থার স্থানকে বিস্ফোরিত করতে পারে। এটি ঘরের হাতিটিও এড়িয়ে যায়: পার্শ্ববর্তী PM সিস্টেমের নিরাপত্তা (UI, মেমরি, স্টোরেজ, অটো-ফিল) সমানভাবে গুরুত্বপূর্ণ, যেমন NCC Group-এর মতো সংস্থার গবেষণায় উল্লেখ করা হয়েছে।
কার্যকরী অন্তর্দৃষ্টি: ১) PM বিক্রেতাদের জন্য: এই যাচাইকৃত রেফারেন্স বাস্তবায়ন গ্রহণ করুন বা এর বিপরীতে ক্রস-চেক করুন। মূল জেনারেশন লজিক যাচাই করে শুরু করুন, এমনকি যদি সম্পূর্ণ UI পলিসি ইঞ্জিন যাচাইকৃত না থাকে। ২) নিরাপত্তা নিরীক্ষকদের জন্য: মূল ক্রিপ্টোগ্রাফিক মডিউলগুলির জন্য আনুষ্ঠানিক যাচাইকরণ দাবি করুন, এটিকে পর্যালোচিত ক্রিপ্টোগ্রাফিক আদিম ব্যবহার করার মতো একটি নতুন সেরা অনুশীলন হিসাবে বিবেচনা করুন। ৩) গবেষকদের জন্য: জেনারেটরের CSPRNG এবং সিস্টেম এনট্রপি উৎসের সাথে একীকরণ যাচাই করতে এই কাজটি প্রসারিত করুন—একটি শিকল তার দুর্বলতম লিঙ্কের মতোই শক্তিশালী। এই ক্ষেত্রের উচিত যাচাইকৃত এন্ড-টু-এন্ড উপাদানগুলির লক্ষ্য রাখা, seL4-এর মতো যাচাইকৃত অপারেটিং সিস্টেমের পিছনের দৃষ্টিভঙ্গির অনুরূপ।
8. প্রয়োগের সম্ভাবনা এবং ভবিষ্যৎ দিকনির্দেশনা
তাত্ক্ষণিক প্রয়োগ হল পাসওয়ার্ড জেনারেশনের জন্য একটি ড্রপ-ইন, যাচাইকৃত লাইব্রেরি তৈরি করা যা Bitwarden এবং KeePass-এর মতো ওপেন-সোর্স পাসওয়ার্ড ম্যানেজারে একীভূত করা যেতে পারে, তাদের বিশ্বাসযোগ্যতা উল্লেখযোগ্যভাবে বৃদ্ধি করে। সামনের দিকে তাকিয়ে:
- মানকীকরণ: এই কাজটি ক্রিপ্টোগ্রাফিকভাবে নিরাপদ পাসওয়ার্ড জেনারেশনের জন্য একটি আনুষ্ঠানিক মান (যেমন, একটি IETF RFC) বিকাশের তথ্য দিতে পারে, NIST SP 800-63B-এর অনুরূপ কিন্তু যাচাইযোগ্য বাস্তবায়ন সহ।
- ব্রাউজার এবং OS ইন্টিগ্রেশন: Chrome, Firefox, এবং iOS/macOS Keychain-এর মতো প্রধান প্ল্যাটফর্মগুলি যাচাইকৃত জেনারেটর গ্রহণ করতে পারে, লক্ষ লক্ষ ব্যবহারকারীর জন্য নিরাপত্তার ভিত্তি স্তর উন্নত করতে পারে।
- অন্যান্য ডোমেনে সম্প্রসারণ: এই পদ্ধতিটি সরাসরি অন্যান্য র্যান্ডম স্ট্রিং জেনারেশন প্রয়োজনীয়তার ক্ষেত্রে প্রযোজ্য, যেমন API কী, টোকেন, বা পুনরুদ্ধার কোড তৈরি করা।
- স্বয়ংক্রিয় পলিসি সম্মতি: ভবিষ্যতের সরঞ্জামগুলি ব্যবহারকারী-কাস্টমাইজড পলিসির জন্য স্বয়ংক্রিয়ভাবে আনুষ্ঠানিক প্রুফ তৈরি করতে পারে, অনন্য পলিসি প্রয়োজনীয়তা সহ এন্টারপ্রাইজ PM-এর জন্য উচ্চ-নিশ্চয়তা জেনারেশন অ্যাক্সেসযোগ্য করে তুলতে পারে।
- হাইব্রিড পদ্ধতি: আনুষ্ঠানিক যাচাইকরণকে PM স্ট্যাকের অযাচাইকৃত অংশগুলির জন্য ফাজিং (যেমন, AFL++-এর মতো সরঞ্জাম ব্যবহার করে) এর সাথে মিলিত করে একটি শক্তিশালী, বহু-স্তরীয় প্রতিরক্ষা প্রদান করতে পারে।
চূড়ান্ত দিকনির্দেশনা হল সমগ্র সমালোচনামূলক নিরাপত্তা উপসিস্টেমের ধীরে ধীরে আনুষ্ঠানিক যাচাইকরণ, শিল্পকে প্রতিক্রিয়াশীল প্যাচিং থেকে সক্রিয়ভাবে প্রমাণিত নিরাপত্তার দিকে নিয়ে যাওয়া।
9. তথ্যসূত্র
- Grilo, M., Ferreira, J. F., & Almeida, J. B. (2021). Towards Formal Verification of Password Generation Algorithms used in Password Managers. arXiv preprint arXiv:2106.03626.
- Barthe, G., Dupressoir, F., Grégoire, B., Kunz, C., Schmidt, B., & Strub, P. Y. (2014). EasyCrypt: A framework for formal cryptographic proofs. Journal of Cryptology.
- Shoup, V. (2004). Sequences of games: a tool for taming complexity in security proofs. IACR Cryptology ePrint Archive.
- NCC Group. (2023). Password Manager Security Review. Retrieved from https://www.nccgroup.com
- Klein, G., et al. (2009). seL4: Formal verification of an OS kernel. Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles.
- National Institute of Standards and Technology (NIST). (2017). Digital Identity Guidelines: Authentication and Lifecycle Management (SP 800-63B).