কীভাবে কাজ করে : ফাইলের হ্যাশ
যেকোনো ফাইল রাখুন: তার হ্যাশ দেখা যাবে। ডাউনলোডের সাইটটি যেটি ঘোষণা করেছে সেটি বসিয়ে দিন, আর সরঞ্জামটি বলে দেবে দুটি হুবহু এক কি না, অক্ষর ধরে ধরে।
হ্যাশ হল চৌষট্টিটি অক্ষরের একটি সারি, যা একটি ফাইলের ভিতরের জিনিস থেকে হিসাব করে বের করা হয়। ফাইলের একটি বাইট বদলে দিন, আর হ্যাশটি আগাগোড়া বদলে যায়। এটিই একটি নির্দিষ্ট প্রশ্নের উত্তর দিতে দেয়: আমি যে ফাইলটি পেয়েছি সেটি কি হুবহু সেটিই যা আমাকে পাঠাতে চাওয়া হয়েছিল?
ভালো প্রকল্পগুলি ডাউনলোডের লিঙ্কের পাশেই নিজেদের ফাইলের হ্যাশ প্রকাশ করে, ঠিক এই কারণেই যাতে আপনি যাচাই করতে পারেন। পথে নষ্ট হওয়া একটি ফাইল, মাঝপথে থেমে যাওয়া একটি ডাউনলোড, পুরনো একটি সংস্করণ পরিবেশন করা একটি মিরর, বা কারও হাতে বদলে দেওয়া একটি ফাইল: চারটিই হ্যাশে ধরা পড়ে।
হ্যাশ যা বলে না: সে বলে না যে ফাইলটি নিরাপদ। আপনি যদি ফাইলটির সঙ্গে একই পাতা থেকে হ্যাশটি নেন, আর সেই পাতাটিই যদি জাল হয়ে থাকে, তবে দুটি মিলে যাবে অথচ আপনি কিছুই যাচাই করেননি। হ্যাশ পথটুকু বিশ্বস্ত ছিল কি না তা প্রমাণ করে, উৎসটি সৎ কি না তা নয়।
কীভাবে কাজ করে
- রাখার জায়গাটিতে আপনার ফাইলটি রাখুন, অথবা বেছে নিন। যেকোনো ধরনের ফাইলই চলে: সরঞ্জামটি বাইট পড়ে, ভিতরের জিনিস বোঝার চেষ্টা করে না।
- SHA-256 হ্যাশটি সঙ্গে সঙ্গেই দেখা যায়। বোতামটি সেটি ক্লিপবোর্ডে কপি করে দেয়।
- যাচাই করতে: উৎসটি যে হ্যাশটি ঘোষণা করেছে সেটি ঘরে বসিয়ে দিন, আর “মিলিয়ে দেখুন”-এ ক্লিক করুন। সরঞ্জামটি বলে দেয় দুটি এক কি না, আর কোথায় তারা আলাদা তাও দেখিয়ে দেয়।
গৃহীত ফরম্যাট
এই সরঞ্জামটি আপনার ফাইলের ভিতরে কী আছে তা দেখে না: সে তার বাইটগুলি পড়ে আর হ্যাশ করে। তাই ফরম্যাটের কোনো তালিকাই নেই, আর ফরম্যাটের কারণে গোলমাল হওয়ার মতো কিছুই নেই।
যেকোনো ফাইল
একটি ছবি, একটি আর্কাইভ, একটি ইনস্টলার, একটি নথি, একটি ভিডিও, এমনকি যে ফাইলটি আপনি চেনেন না: সবকিছুই একইভাবে হ্যাশ হয়। যে চারটি ফাংশন দেওয়া হয়েছে সেগুলি ব্রাউজার নিজেই দেয়, কোনো লাইব্রেরি ছাড়াই।
এর সীমা
ফাইলপ্রতি 500 মেগাবাইট
ব্রাউজার ধাপে ধাপে হ্যাশ করার কোনো সুযোগই দেয় না: তাকে গোটা ফাইলটি একবারে, মেমরিতে, একটিমাত্র লাগোয়া ব্লকে দিতে হয়। এটি ওয়েবের এনক্রিপশন ইন্টারফেসেরই একটি সীমা, যাচাই করে দেখা, আমাদের কোনো পছন্দ নয়। তার বেশি হলে জায়গা পাওয়া ব্যর্থ হয় আর ট্যাবটি মরে যায়।
MD5 দেওয়া হয় না
ব্রাউজার MD5 হিসাব করতে জানে না: এই ফাংশনটি তার এনক্রিপশন ইন্টারফেসে নেই, আর সেটি যোগ করতে একটি লাইব্রেরি ভিতরে রাখতে হত। তার উপরে নিরাপত্তার যেকোনো কাজের জন্য এই ফাংশনটি কুড়ি বছর ধরে ভাঙা। কোনো উৎস যদি কেবল MD5-ই প্রকাশ করে, তবে সেটিকে ওই উৎসটির সম্পর্কেই একটি লক্ষণ হিসেবে দেখুন।
SHA-1 দেওয়া হয়, তবে ভাঙা বলে চিহ্নিত করে
পুরনো প্রকল্পগুলি এখনও সেটি প্রকাশ করে, তাই মিলিয়ে দেখার সুযোগটা থাকা দরকার। কিন্তু একই SHA-1 নিয়ে দুটি আলাদা ফাইল বানানো এখন জানা: তাই কোনো খারাপ উদ্দেশ্যের মানুষের বিরুদ্ধে সেটি আর কিছুই প্রমাণ করে না। পথে হয়ে যাওয়া নিছক একটি ভুল ধরতে সেটি এখনও কাজে লাগে।
হ্যাশ মিলে গেলেই ফাইলটি নিরাপদ প্রমাণ হয় না
সেটি প্রমাণ করে যে পাওয়া ফাইলটি সেটিরই সমান, যার হ্যাশ আপনাকে দেওয়া হয়েছিল। হ্যাশটি যদি ফাইলটির সঙ্গে একই পাতা থেকে আসে আর সেই পাতাটি জাল হয়, তবে যাচাইটি ফাঁপা। ভালো অভ্যাস হল ফাইলটির থেকে স্বাধীন কোনো উৎস থেকে হ্যাশটি নেওয়া।
এই সরঞ্জাম নিয়ে প্রশ্ন
আমার ফাইলটি কি কোথাও পাঠানো হয়?
না, আর আমাদের কথায় বিশ্বাস করারও দরকার নেই। F12 বোতাম দিয়ে আপনার ব্রাউজারের ইন্সপেক্টর খুলুন, “Network” ট্যাবে যান, তালিকাটি খালি করুন, তারপর আপনার ফাইলটি রাখুন। একটি লাইনও আসে না। আপনি সংযোগও কেটে দিতে পারেন: সরঞ্জামটি চলতেই থাকে। এখানে ব্যাপারটা বিশেষভাবে জরুরি: মানুষ প্রায়ই একটি ফাইলের হ্যাশ বের করে ঠিক এই কারণেই যে সে ওই ফাইলটিকে বিশ্বাস করে না।
হ্যাশ আসলে কী কাজে লাগে?
একটিমাত্র প্রশ্নের উত্তর দিতে: এই ফাইলটি কি বাইট ধরে বাইট সেটিরই সমান, যার হ্যাশ আমাকে দেওয়া হয়েছিল? মাঝপথে থেমে যাওয়া ডাউনলোড, নষ্ট হতে থাকা একটি ডিস্ক, পুরনো সংস্করণ পরিবেশন করা একটি মিরর, পথে বদলে দেওয়া একটি ফাইল: সবই হ্যাশ বদলে দেয়। ফাইলের ভিতরের জিনিস, তার মান বা তার নিরাপত্তা নিয়ে সে কিছুই বলে না।
আপনারা MD5 দেন না কেন?
কারণ ব্রাউজার সেটি হিসাব করতে জানে না: MD5 ওয়েবের এনক্রিপশন ইন্টারফেসে নেই, আর সেটি যোগ করা মানে একটি লাইব্রেরি ভিতরে রাখা। তার চেয়েও বড় কথা, ফাংশনটি 2000-এর দশক থেকেই ভাঙা: একই MD5 নিয়ে দুটি আলাদা ফাইল বানানো সাধারণ একটি কম্পিউটারেরই নাগালের মধ্যে। যে উৎস কেবল MD5-ই প্রকাশ করে, সে তার নিজের গুরুত্ব সম্পর্কেই অনেক কিছু বলে দেয়।
500 মেগাবাইটের সীমা কেন?
কারণ ব্রাউজারের এনক্রিপশন ইন্টারফেস ধাপে ধাপে হ্যাশ করার কোনো সুযোগই দেয় না: তাকে একটি ফাইল টুকরো টুকরো করে দেওয়ার কোনো ফাংশনই নেই। তাকে গোটা ফাইলটি একবারে, মেমরির একটিমাত্র ব্লকে দিতে হয়। একটি সীমার পরে জায়গা পাওয়া ব্যর্থ হয় আর ট্যাবটি মরে যায়। কয়েক গিগাবাইটের ফাইল হ্যাশ করতে মেশিনে বসানো একটি সরঞ্জামই ঠিক পছন্দ, আর তিনটি সিস্টেমেই কমান্ডটি আগে থেকেই আছে।
হ্যাশটি এক। ফাইলটি কি নিরাপদ?
না, আর এটিই সবচেয়ে চালু বিভ্রান্তি। হ্যাশ এক হলে প্রমাণ হয় যে হ্যাশটি প্রকাশ হওয়ার মুহূর্ত থেকে এখন পর্যন্ত ফাইলটি বদলায়নি। যে পাতাটি হ্যাশটি প্রকাশ করেছে সেটি যদি ফাইলটির সঙ্গে একই সময়ে জাল করা হয়ে থাকে, তবে দুটি নিখুঁতভাবেই মিলে যাবে অথচ আপনি কিছুই যাচাই করেননি। এই কারণেই যখন সম্ভব, ডাউনলোডের পাতা ছাড়া অন্য কোথাও থেকে হ্যাশটি খোঁজা হয়।
দুটি আলাদা ফাইলের কি একই SHA-256 হ্যাশ হতে পারে?
তত্ত্বে হ্যাঁ, কারণ সম্ভাব্য হ্যাশের চেয়ে সম্ভাব্য ফাইলের সংখ্যা বেশি। বাস্তবে কেউ কখনও তেমন দুটি বানাতে পারেনি, আর বহুকালের মধ্যে কেউ তেমন আশাও করে না। SHA-1-এর ক্ষেত্রে অবশ্য সেটি 2017 সাল থেকেই করা হয়ে গেছে, আর এই কারণেই আপনি সেটি বেছে নিলে সরঞ্জামটি আপনাকে সতর্ক করে দেয়।
আমার হ্যাশটি বড় হাতের অক্ষরে আর আপনারটি ছোট হাতের।
দুটি একই। হ্যাশ লেখা হয় হেক্সাডেসিমালে, আর সেখানে অক্ষরের আকারের কোনো মানে নেই। সরঞ্জামটি অক্ষরের আকার, ফাঁকা জায়গা, লাইন বদল আর পিছনে লেগে থাকা কোনো ফাইলের নাম ছেড়ে দিয়েই মেলায়, ডাউনলোডের পাশে যেসব চেকসামের ফাইল পাওয়া যায় ঠিক তাদের মতো করেই।
যেকোনো ফাইল রাখুন: তার হ্যাশ দেখা যাবে। ডাউনলোডের সাইটটি যেটি ঘোষণা করেছে সেটি বসিয়ে দিন, আর সরঞ্জামটি বলে দেবে দুটি হুবহু এক কি না, অক্ষর ধরে ধরে।
যাচাই করুনপ্রমাণ, ধাপে ধাপেনেটওয়ার্ক ইন্সপেক্টর দিয়ে যাচাই, প্রতিটি ধাপ আলাদা করে বলা, সঙ্গে স্ক্রিনশট।
কোণনিরাপত্তার কোণএকটি ফাইল এনক্রিপ্ট করা, শক্ত পাসফ্রেজ বানানো, ডাউনলোড করা ফাইলে কেউ হাত দিয়েছে কি না তা দেখা, একটি লিঙ্ক থেকে ট্র্যাকার ছেঁটে ফেলা।