একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন (CHF) হল একটি অ্যালগরিদম যা একটি পৃথক ফাইল বা পাসওয়ার্ডের মতো ডেটাতে চালানো যেতে পারে একটি চেকসাম নামক একটি মান তৈরি করতে।
একটি CHF এর প্রধান ব্যবহার হল ডেটার একটি অংশের সত্যতা যাচাই করা। একই ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ব্যবহার করে প্রতিটি ফাইল থেকে তৈরি করা চেকসামগুলি অভিন্ন হলেই দুটি ফাইলকে অভিন্ন বলে ধরে নেওয়া যেতে পারে৷
কিছু সাধারণভাবে ব্যবহৃত ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের মধ্যে রয়েছে MD5 এবং SHA-1, যদিও অন্য অনেকগুলিও বিদ্যমান। এগুলিকে প্রায়শই "হ্যাশ ফাংশন" হিসাবে উল্লেখ করা হয় তবে এটি প্রযুক্তিগতভাবে সঠিক নয়। হ্যাশ ফাংশন হল একটি জেনেরিক শব্দ যা সাইক্লিক রিডানডেন্সি চেকের মতো অন্যান্য ধরণের অ্যালগরিদমের সাথে CHF গুলিকে অন্তর্ভুক্ত করে৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন: একটি ব্যবহার কেস
বলুন আপনি ফায়ারফক্স ব্রাউজারের সর্বশেষ সংস্করণ ডাউনলোড করেছেন। কিছু কারণে, আপনাকে এটি Mozilla'স ছাড়া অন্য কোনো সাইট থেকে ডাউনলোড করতে হবে। যেহেতু আপনি বিশ্বাস করতে শিখেছেন এমন একটি সাইটে এটি হোস্ট করা হচ্ছে না, তাই আপনি নিশ্চিত করতে চান যে আপনি এইমাত্র ডাউনলোড করেছেন এমন ইনস্টলেশন ফাইলটি মোজিলার অফারটির মতোই।
একটি চেকসাম ক্যালকুলেটর ব্যবহার করে, আপনি একটি নির্দিষ্ট ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন, যেমন SHA-2 ব্যবহার করে একটি চেকসাম গণনা করেন এবং তারপরে মোজিলার সাইটে প্রকাশিত একটির সাথে তুলনা করেন। যদি সেগুলি সমান হয়, তাহলে আপনি যুক্তিসঙ্গতভাবে নিশ্চিত হতে পারেন যে আপনার কাছে যে ডাউনলোডটি আছে সেটিই মোজিলা যা আপনার কাছে চেয়েছে৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন কি বিপরীত হতে পারে?
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি তাদের তৈরি করা চেকসামগুলিকে মূল পাঠ্যে ফিরিয়ে আনার ক্ষমতা রোধ করার জন্য ডিজাইন করা হয়েছে। যাইহোক, যদিও সেগুলিকে উল্টানো কার্যত অসম্ভব, তারা ডেটা সুরক্ষিত করার জন্য 100 শতাংশ গ্যারান্টিযুক্ত নয়৷
হ্যাকাররা চেকসামের প্লেইন টেক্সট বের করতে একটি রংধনু টেবিল ব্যবহার করতে পারে। রামধনু টেবিলগুলি এমন অভিধান যা তাদের সংশ্লিষ্ট প্লেইন টেক্সট মানের পাশাপাশি হাজার হাজার, মিলিয়ন বা এমনকি বিলিয়ন চেকসামকে তালিকাভুক্ত করে।
যদিও এটি প্রযুক্তিগতভাবে ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদমকে উল্টে দিচ্ছে না, এটিও হতে পারে, এটি করা খুবই সহজ। বাস্তবে, যেহেতু কোনো রংধনু টেবিল বিদ্যমান প্রতিটি সম্ভাব্য চেকসামকে তালিকাভুক্ত করতে পারে না, তাই তারা সাধারণত দুর্বল পাসওয়ার্ডের মতো সাধারণ বাক্যাংশের জন্য সহায়ক।
SHA-1 ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ব্যবহার করার সময় কীভাবে কাজ করবে তা দেখানোর জন্য এখানে একটি রংধনু টেবিলের একটি সরলীকৃত সংস্করণ রয়েছে:
রেইনবো টেবিলের উদাহরণ | |
---|---|
প্লেইনটেক্সট | SHA-1 চেকসাম |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
পাসওয়ার্ড1 | e38ad214943daad1d64c102faec29de4afe9da3d |
ilovemydog | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
জেনি400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
ডালাস1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
একজন হ্যাকারকে অবশ্যই জানতে হবে কোন ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদম চেকসাম তৈরি করতে ব্যবহার করা হয়েছে মান বের করতে।
অতিরিক্ত সুরক্ষার জন্য, কিছু ওয়েবসাইট যা ব্যবহারকারীর পাসওয়ার্ড সংরক্ষণ করে ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদম মান তৈরি হওয়ার পরে কিন্তু এটি সংরক্ষণ করার আগে অতিরিক্ত ফাংশন সম্পাদন করে। এই প্রক্রিয়াটি একটি নতুন মান তৈরি করে যা শুধুমাত্র ওয়েব সার্ভার বুঝতে পারে এবং এটি মূল চেকসামের সাথে মেলে না।
উদাহরণস্বরূপ, একটি পাসওয়ার্ড প্রবেশ করানো এবং চেকসাম তৈরি হওয়ার পরে, এটি পাসওয়ার্ড ডাটাবেসে সংরক্ষিত হওয়ার আগে এটিকে কয়েকটি অংশে বিভক্ত করা যেতে পারে এবং পুনরায় সাজানো হতে পারে, অথবা কিছু অক্ষর অন্যদের সাথে অদলবদল করা হতে পারে। পরের বার ব্যবহারকারী সাইন অন করার সময় প্রমাণীকরণের চেষ্টা করার সময়, সার্ভার এই অতিরিক্ত ফাংশনটি উল্টে দেয়, এবং ব্যবহারকারীর পাসওয়ার্ড বৈধ কিনা তা যাচাই করার জন্য আসল চেকসাম আবার তৈরি করা হয়।
এই পদক্ষেপগুলি গ্রহণ করা একটি হ্যাকের উপযোগিতাকে সীমিত করে যেখানে সমস্ত চেকসাম চুরি হয়৷ ধারণাটি এমন একটি ফাংশন সম্পাদন করা যা অজানা, তাই হ্যাকার যদি ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদম জানে তবে কাস্টম নয়, তাহলে পাসওয়ার্ড চেকসামগুলি জানা অসহায়৷
পাসওয়ার্ড এবং ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন
একটি ডাটাবেস ব্যবহারকারীর পাসওয়ার্ড সংরক্ষণ করে একটি রংধনু টেবিলের মতো। আপনার পাসওয়ার্ড প্রবেশ করানো হলে, চেকসাম তৈরি হয় এবং আপনার ব্যবহারকারীর নামের সাথে রেকর্ডে থাকা একটির সাথে তুলনা করা হয়। দুটি অভিন্ন হলে আপনাকে অ্যাক্সেস দেওয়া হবে৷
প্রদত্ত যে একটি CHF একটি অ-প্রত্যাবর্তনযোগ্য চেকসাম তৈরি করে, আপনার জন্য 12@34 এর পরিবর্তে 12345 এর মতো সহজ পাসওয়ার্ড করা কি আপনার পক্ষে নিরাপদ? $5, শুধু চেকসামগুলি বোঝা যায় না বলে? না, এবং এখানে কেন।
এই দুটি পাসওয়ার্ড শুধু চেকসাম দেখে বোঝানো অসম্ভব:
MD5 এর জন্য 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 এর জন্য 12@34$5: a4d3cc004f487b18b2ccd4853053818b
প্রথম নজরে, আপনি মনে করতে পারেন যে এই পাসওয়ার্ডগুলির যেকোনো একটি ব্যবহার করা ভালো। এটা সত্য যদি কোনো আক্রমণকারী MD5 চেকসাম অনুমান করে আপনার পাসওয়ার্ড বের করার চেষ্টা করে, যেটি কেউ করে না, কিন্তু সত্যি নয় যদি কোনো নৃশংস শক্তি বা অভিধান আক্রমণ করা হয়, যা একটি সাধারণ কৌশল।
একটি পাশবিক শক্তি আক্রমণ ঘটে যখন একটি পাসওয়ার্ড অনুমান করতে একাধিক এলোমেলো ছুরিকাঘাত করা হয়। এই ক্ষেত্রে, অনুমান করা সহজ হবে 12345, কিন্তু এলোমেলোভাবে অন্যটিকে বের করা বেশ কঠিন।একটি অভিধান আক্রমণ একই রকম যে আক্রমণকারী সাধারণ (এবং সাধারণ নয়) পাসওয়ার্ডের তালিকা থেকে প্রতিটি শব্দ, সংখ্যা বা বাক্যাংশ চেষ্টা করতে পারে এবং 12345 হল সেই সাধারণগুলির মধ্যে একটি পাসওয়ার্ড।
যদিও ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি কঠিন- থেকে অসম্ভব-অনুমান করা চেকসাম তৈরি করে, তবুও আপনার সমস্ত অনলাইন এবং স্থানীয় ব্যবহারকারী অ্যাকাউন্টের জন্য একটি জটিল পাসওয়ার্ড ব্যবহার করা উচিত৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন সম্পর্কে আরও তথ্য
মনে হতে পারে ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি এনক্রিপশনের সাথে সম্পর্কিত, তবে দুটি ভিন্ন উপায়ে কাজ করে৷
এনক্রিপশন হল একটি দ্বি-মুখী প্রক্রিয়া যেখানে কিছু অপাঠ্য হওয়ার জন্য এনক্রিপ্ট করা হয় এবং পরে আবার সাধারণভাবে ব্যবহার করার জন্য ডিক্রিপ্ট করা হয়। আপনি আপনার সংরক্ষিত ফাইলগুলিকে এনক্রিপ্ট করতে পারেন যাতে যে কেউ সেগুলিকে অ্যাক্সেস করে সেগুলি ব্যবহার করতে অক্ষম হয়, অথবা আপনি ফাইল ট্রান্সফার এনক্রিপশন ব্যবহার করতে পারেন এনক্রিপ্ট করার জন্য যে ফাইলগুলি একটি নেটওয়ার্কে চলে যাচ্ছে, যেমন আপনি অনলাইনে আপলোড বা ডাউনলোড করেন৷
ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলি ভিন্নভাবে কাজ করে, যাতে চেকসামগুলিকে একটি বিশেষ ডিহ্যাশিং পাসওয়ার্ড দিয়ে উল্টে দেওয়া হয় না৷ CHF-এর একমাত্র উদ্দেশ্য হল দুটি টুকরো ডেটা তুলনা করা, যেমন ফাইল ডাউনলোড করার সময়, পাসওয়ার্ড সংরক্ষণ করা এবং ডাটাবেস থেকে ডেটা টেনে আনা।
একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের জন্য বিভিন্ন ডেটার টুকরোগুলির জন্য একই চেকসাম তৈরি করা সম্ভব। যখন এটি ঘটে তখন একে সংঘর্ষ বলা হয়, যেটি একটি বিশাল সমস্যা যা ফাংশনের পুরো পয়েন্টটি বিবেচনা করে প্রতিটি ডেটা ইনপুটের জন্য অনন্য চেকসাম তৈরি করা।
সংঘর্ষ ঘটতে পারে কারণ প্রতিটি CHF ইনপুট ডেটা নির্বিশেষে একটি নির্দিষ্ট দৈর্ঘ্যের একটি মান তৈরি করে। উদাহরণ স্বরূপ, MD5 ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন 827ccb0ea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, এবং e10adc3949ba533949ba533949330 3949330B-5330B-533002c7a497983 ব্লকের মোট ডেটার জন্য
প্রথম চেকসামটি 12345 থেকে। দ্বিতীয়টি 700টিরও বেশি অক্ষর এবং সংখ্যা থেকে তৈরি করা হয়েছে এবং তৃতীয়টি 123456 থেকে। তিনটি ইনপুটই বিভিন্ন দৈর্ঘ্যের, কিন্তু ফলাফলগুলি সর্বদা মাত্র 32 অক্ষর দীর্ঘ, যেহেতু MD5 চেকসাম ব্যবহার করা হয়েছিল৷
চেকসামের সংখ্যার কোন সীমা নেই যা তৈরি করা যেতে পারে কারণ ইনপুটে প্রতিটি ক্ষুদ্র পরিবর্তন একটি সম্পূর্ণ ভিন্ন চেকসাম তৈরি করার কথা।যেহেতু একটি CHF তৈরি করতে পারে এমন চেকসামের সংখ্যার একটি সীমা রয়েছে, তাই সবসময় আপনার সংঘর্ষের সম্মুখীন হওয়ার সম্ভাবনা থাকে।
এই কারণেই অন্যান্য ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন তৈরি করা হয়েছে। যদিও MD5 একটি 32-অক্ষরের মান তৈরি করে, SHA-1 40টি অক্ষর তৈরি করে এবং SHA-2 (512) 128 তৈরি করে৷ চেকসামের অক্ষরের সংখ্যা যত বেশি হবে, সংঘর্ষ হওয়ার সম্ভাবনা তত কম৷