পাসওয়ার্ড হ্যাশিং পাসওয়ার্ড সুরক্ষার একটি মৌলিক দিক, যা সাধারণ পাঠ্য থেকে এনক্রিপ্টেড হ্যাশে পাসওয়ার্ড স্টোরেজের পরিপ্রেক্ষিতকে রূপান্তরিত করেছে। এই প্রবন্ধটি পাসওয়ার্ড হ্যাশিংয়ের বিবর্তন অন্বেষণ করে, প্রাথমিক অ্যালগরিদমগুলি যেমন MD5 এবং SHA-1 থেকে আরও সুরক্ষিত পদ্ধতিগুলির দিকে এগিয়ে গিয়েছে, অবশেষে প্রতিটি ওয়েবসাইটের জন্য এলোমেলো পাসওয়ার্ড ব্যবহারের গুরুত্বের মাধ্যমে শেষ হয়েছে।
পাসওয়ার্ড হ্যাশিংয়ের ইতিহাস এবং বিবর্তনে আরও গভীরভাবে যাওয়ার আগে, হ্যাশিং কী তা বোঝা গুরুত্বপূর্ণ। হ্যাশ ফাংশন, যেগুলি হ্যাশিং করে, এমনভাবে ডিজাইন করা হয়েছে যে তারা কোন ডেটার স্ট্রিং, বা "ইনপুট," নেয় এবং নির্দিষ্ট আকারের একটি বাইটের স্ট্রিং তৈরি করে, যা সাধারণত "হ্যাশ" হিসাবে পরিচিত। এই প্রক্রিয়াটির বেশ কয়েকটি মূল বৈশিষ্ট্য রয়েছে যা এটিকে নিরাপত্তার উদ্দেশ্যে বিশেষভাবে উপযোগী করে তোলে।
হ্যাশ ফাংশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল ইনপুট পরিবর্তনের জন্য তাদের সংবেদনশীলতা। এটি অন্তঃস্থ প্রবাহ প্রভাবে পরিচিত। ইনপুটের একটি সামান্য পরিবর্তন, যেমন পাসওয়ার্ডের একটি মাত্র অক্ষর পরিবর্তন করা হলে, সম্পূর্ণ আলাদা একটি হ্যাশ তৈরি হবে। উদাহরণস্বরূপ, "password1" এবং "password2" স্ট্রিংগুলোর হ্যাশ সম্পূর্ণ ভিন্ন দেখাবে, যদিও দুটি ইনপুটের মধ্যে একমাত্র পার্থক্য হল শেষ অক্ষর। এই বৈশিষ্ট্যটি ডেটার অখণ্ডতা রক্ষা করার জন্য গুরুত্বপূর্ণ, কারণ এটি হ্যাশ থেকে মূল ইনপুট নির্ণয় করা প্রায় অসম্ভব করে তোলে।
অধিকন্তু, হ্যাশ ফাংশনগুলি একমুখী কার্যাবলী। এর অর্থ হল এগুলি বিপরীত করা গণনীয়ভাবে অসাধ্য হওয়ার জন্য ডিজাইন করা হয়েছে। আউটপুট (হ্যাশ) ইনপুট সম্পর্কিত এমন নির্দিষ্ট বিবরণ বজায় রাখে না যা কাউকে অসাধারণ গণনা প্রচেষ্টা ব্যতীত মূল ডেটা পুনর্গঠন করতে সহায়ক হবে। হ্যাশ "বিপরীত" করার একমাত্র কার্যকর পদ্ধতি হল একটি পদ্ধতি যাকে বলা হয় ক্রুর-মূল্যনীতি (brute-forcing), যেখানে মূল ডেটার প্রতিটি সম্ভাব্য সংমিশ্রণটি আবার হ্যাশ করা হয় যতক্ষণ না একটি মিলিত হ্যাশ পাওয়া যায়।
ডিজিটাল নিরাপত্তার শুরুর দিনগুলিতে, পাসওয়ার্ড হ্যাশিংয়ের জন্য ব্যাপকভাবে ব্যবহৃত হত MD5 (মেসেজ-ডাইজেস্ট অ্যালগরিদম 5) এবং SHA-1 (নিরাপদ হ্যাশ অ্যালগরিদম 1)। নব্বইয়ের দশকের শুরুর দিকে নির্মিত এই অ্যালগরিদমগুলি সাধারণ পাঠ্য পাসওয়ার্ডকে নির্দিষ্ট আকারের হ্যাশ মানে রূপান্তর করেছিল। তাদের প্রাথমিক নিরাপত্তা সত্ত্বেও, সংঘর্ষ আক্রমণের সম্মুখীন হওয়ার মতো দুর্বলতার কারণে সেগুলি নিরাপদ অ্যাপ্লিকেশনের জন্য অচল হয়ে পড়েছিল।
যদিও হ্যাশ ফাংশনগুলি দ্রুত এবং কার্যকর হওয়ার জন্য ডিজাইন করা হয়েছে, এই বৈশিষ্ট্যটি পাসওয়ার্ড সুরক্ষার ক্ষেত্রে ক্ষতিকারক হতে পারে কারণ এটি ক্রুর-মূল্যনীতি আক্রমণকে সহজ করে তোলে। পাসওয়ার্ড-ভিত্তিক কী ডিরাইভেশন ফাংশন (PBKDFs), যেমন PBKDF2, bcrypt, এবং scrypt, এই আক্রমণগুলি প্রতিরোধ করার জন্য ডিজাইন করা হয়েছে একটি লবণ (রেনবো টেবিল আক্রমণের বিরুদ্ধে সুরক্ষা দিতে) অন্তর্ভুক্ত করে এবং কী প্রসারণ নামে একটি পদ্ধতি প্রয়োগ করে। কী প্রসারণ ইচ্ছাকৃতভাবে হ্যাশিং প্রক্রিয়াটিকে ধীর করে দেয়, যা অননুমোদিত অ্যাক্সেস প্রচেষ্টা প্রতিহত করতে উল্লেখযোগ্যভাবে কার্যকর হতে পারে।
যখন সাইবারসিকিউরিটি উন্নত হয়েছিল, তখন প্রাথমিক হ্যাশিং অ্যালগরিদমগুলি যেমন MD5 এবং SHA-1 এর অপ্রতুলতা স্পষ্ট হয়ে উঠেছিল, এবং পাসওয়ার্ড সুরক্ষার জন্য বিশেষভাবে ডিজাইন করা অ্যালগরিদম যেমন bcrypt, scrypt, এবং Argon2 বা তথাকথিত পাসওয়ার্ড-ভিত্তিক কী ডিরাইভেশন ফাংশন (PBKDFs) তৈরি করতে শুরু হয়েছিল।
OWASP এর মতে, পাসওয়ার্ড হ্যাশিংয়ের জন্য সুপারিশকৃত অ্যালগরিদমগুলি হল bcrypt, scrypt, এবং Argon2। এগুলিকে ক্রুর-মূল্যনীতি আক্রমণের বিরুদ্ধে তাদের দৃঢ় প্রতিরক্ষা এবং তাদের লবণ ও কী প্রসারণের জন্য নির্মিত কাঠামোর জন্য অগ্রগণ্য ধরা হয়।
bcrypt হল ব্লোফিশ সাইফার থেকে উদ্ভূত একটি পাসওয়ার্ড হ্যাশিং ফাংশন। এটি রেনবো টেবিল আক্রমণের বিরুদ্ধে সুরক্ষা দেওয়ার জন্য একটি লবণ যোগ করে এবং হ্যাশ তৈরি করার সময় গণনামূলক সময় বাড়ানোর জন্য (এবং এইভাবে এটি আরও কঠিন করার জন্য) একটি খরচ পরামিতি ব্যবহার করে। এই খরচ ফ্যাক্টরটি সামঞ্জস্যযোগ্য, যা অ্যালগরিদমকে হার্ডওয়্যার উন্নতির সাথে মাপে ব্যপ্ত করতে সক্ষম করে।
মূল পরামিতি:
OWASP 10 বা তার বেশি কাজের ফ্যাক্টর এবং 72 বাইটের পাসওয়ার্ড সীমা ব্যবহারের সুপারিশ করে।
scrypt বৃহৎ আকারের কাস্টম হার্ডওয়্যার আক্রমণ প্রতিরোধ করার জন্য মেমরি এবং সময় উভয়ভাবেই ইচ্ছাকৃতভাবে শ্রমসাধ্য হওয়ার জন্য ডিজাইন করা হয়েছে। এটি নির্দিষ্ট পরিমাণ মেমরি প্রয়োজনীয়তা সহ কনফিগার করা যেতে পারে, এবং এটি একটি লবণ এবং একাউন্টেশন কাউন্ট অন্তর্ভুক্ত করে, PBKDF2 এর মতো।
মূল পরামিতি:
OWASP ন্যূনতম CPU/মেমরি খরচ পরামিতি (2^17), একটি ন্যূনতম ব্লক আকার 8 (1024 বাইট), এবং 1 প্যারালালিজেশন পরামিতি ব্যবহারের সুপারিশ করে।
2015 সালের পাসওয়ার্ড হ্যাশিং প্রতিযোগিতার বিজয়ী Argon2 এর দুটি রূপ আছে: Argon2d এবং Argon2i। Argon2d এমন পরিবেশে মনোনিবেশ করে যেখানে সাইড-চ্যানেল আক্রমণের ঝুঁকি কম, আর Argon2i সাইড-চ্যানেল আক্রমণের প্রতিরোধে উন্নত। এটি bcrypt এবং scrypt উভয়ের মূল বৈশিষ্ট্য অন্তর্ভুক্ত করে।
মূল পরামিতি:
OWASP অন্তত 19 MiB মেমরির সংযোগে Argon2id ব্যবহার করার এবং একটি সংযোজন সংখ্যা 2 এবং 1 ডিগ্রি প্যারালালিজমের সুপারিশ করে।
নিরাপত্তার হুমকি এবং প্রতিক্রিয়া ক্রমাগত প্রসারিত হচ্ছে, ফলে পাসওয়ার্ড নিরাপত্তায় সর্বশেষ পদ্ধতির সাথে আপডেট থাকা গুরুত্বপূর্ণ। সর্বাধিক সাম্প্রতিক এবং সর্বাঙ্গীণ সুপারিশের জন্য, অনুগ্রহ করে OWASP-এর অফিসিয়াল ওয়েবসাইটের OWASP পাসওয়ার্ড স্টোরেজ চিট শীট পর্যালোচনা করুন। সাইবার নিরাপত্তায় সেরা পদ্ধতির সাথে সামঞ্জস্যতা বজায় রাখার জন্য নিয়মিত এই নির্দেশিকা পর্যালোচনা নিশ্চিত করুন।
যদিও আধুনিক হ্যাশিং অ্যালগরিদম ব্যবহার করা জরুরি, যে ভাবে পাসওয়ার্ড তৈরি এবং ব্যবস্থাপনা করা হয় সে পদ্ধতিও নিরাপত্তা রক্ষা করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। প্রতিটি ওয়েবসাইটের জন্য এলোমেলো পাসওয়ার্ড অত্যন্ত গুরুত্বপূর্ণ কয়েকটি কারণের জন্য:
থেকে কম্প্রোমাইজড হলে, ইউনিক পাসওয়ার্ড নিশ্চিত করে যে অন্যান্য অ্যাকাউন্টগুলি সুরক্ষিত থাকে।
MD5 এবং SHA-1 থেকে শুরু করে bcrypt এবং Argon2-এর মতো আধুনিক অ্যালগরিদম পর্যন্ত, পাসওয়ার্ড হ্যাশিং উল্লেখযোগ্য রূপান্তর ঘটিয়েছে। সাইবার হুমকি অব্যাহতভাবে আপডেট হওয়ার সাথে সাথে আধুনিক হ্যাশিং অ্যালগরিদম গ্রহণ করা এবং প্রতিটি ওয়েবসাইটের জন্য এলোমেলো, ইউনিক পাসওয়ার্ডের ব্যবহার নিশ্চিত করা অনলাইন সুরক্ষা রক্ষার অপরিহার্য অনুশীলন। এই কৌশলগুলি শুধুমাত্র ব্যক্তিগত অ্যাকাউন্টের নিরাপত্তা সংরক্ষণ করে না পাশাপাশি ক্রমবর্ধমান অগ্রণী আক্রমণের বিরুদ্ধে সামগ্রিক নিরাপত্তা স্থিতি আরও শক্তিশালী করে।