আপনি ইন্টারনেট থেকে সফটওয়্যার ডাউনলোড করলে, আপনাকে ডেভেলপার(রা)র ওপর ট্রাস্ট করতে হয় যে তাদের প্রোগ্রাম ম্যালিশিয়াস নয়। যাইহোক, আপনাকে হ্যাকারদের ওপরও চিন্তা করতে হয়। একজন আক্রমণকারী একটি ওয়েবসাইট হ্যাক করে সফটওয়্যাকে একটি ব্যাকডোরড ভার্সন দিয়ে রিপ্লেস করলে সে অনেক কিছু লাভ করতে পারে।
একটি সাইট সোচুন যেটি একটি বিটকয়েন ওয়ালেট ইউটিলিটি হোস্ট করে। যদি একজন আক্রমণকারী লেজিটিমেট ভার্সনকে একটি ম্যালিশিয়াস ওয়ান দিয়ে রিপ্লেস করতে সক্ষম হয়, তবে সে দশ হাজার ইউজার থেকে টাকা চুরি করতে পারে। ব্যাকডোর করার জন্য আরেকটি মূল্যবান লক্ষ্য হচ্ছে একটি অপারেটিং সিস্টেম। এটি অতীতে লিনাক্স মিন্টের সাথে ঘটেছে।
তাহলে, আপনি কী করতে পারেন?
হ্যাশ এবং সিগনেচার
সিকিউরিটি-কনশাস ডেভেলপাররা প্রায়শই তাদের সেটআপ ফাইল বা আর্কাইভ চেকসামসের সাথে বান্ডেল করে যা আপনি ভেরিফাই করতে পারেন। আপনি উইন্ডোজ বা লিনাক্সে সেগুলো কীভাবে ভেরিফাই করবেন সেটি পড়তে পারেন। কিন্তু এই হ্যাশগুলোর সমস্যা হচ্ছে, যদি একজন হ্যাকার ওয়েবসাইটে ফাইলগুলো রিপ্লেস করে, তবে সে সহজে হ্যাশগুলোকেও রিপ্লেস করতে পারে। এটি হ্যাশগুলোকেই প্রায় অনुपযোগী করে তোলে, বিশেষ করে যদি সেগুলো একই সার্ভারে হোস্ট করা থাকে যেখানে প্রোগ্রামগুলো রয়েছে।
এই চেকসামগুলো উপকারী করার জন্য, ডেভেলপাররা এগুলোকেও ডিজিটালি সাইন করতে পারেন, একটি পাবলিক এবং প্রাইভেট কী পেয়ারের সাহায্যে। শুধু যে ব্যক্তি এই প্রাইভেট কীতে মালিকানা রাখে সে সিগনেচার তৈরি করতে পারে। এগুলো শুধু সম্পর্কিত পাবলিক কী দিয়ে ভেরিফাই করা যায়, যা ইন্টারনেটে পাবলিশ করা থাকে। ভেরিফিকেশন পাস করলে, আপনি (প্রায় সবসময়) নিশ্চিত হতে পারেন যে প্রাইভেট কী-এর মালিক তার সফটওয়্যার সাইন করেছে।
এই সিকিউরিটি মেকানিজম বাইপাস করার জন্য একজন হ্যাকারকে প্রাইভেট কী চুরি করতে হবে, যা করা অনেক কঠিন যদি মালিক সেটি গোপন রাখতে যথার্থ ব্যবস্থা নেন। এবং এমনকি কী চুরি হলে, মালিক এটি রিভোক করে এবং ঘোষণা করে ইনভ্যালিড করতে পারেন। যদি এটা হয়, যখন আপনি তার/তার পাবলিক কী ডাউনলোড করুন এবং সেটি ব্যবহার করে একটি সিগনেচার ভেরিফাই করার চেষ্টা করুন, আপনাকে নোটিফাই করা হবে যে এটি রিভোকড হয়েছে।
GnuPG (GPG) ব্যবহার করে সিগনেচার ভেরিফাই করুন
gpg ইউটিলিটি সাধারণত সকল ডিস্ট্রোতে ডিফল্টরূপে ইনস্টলড থাকে। যদি কোনো কারণে এটি মিসিং থাকে, তবে আপনি নিচের কমান্ডগুলো দিয়ে ইনস্টল করতে পারেন। কিছু ডিস্ট্রিবিউশনে, আপনি যদি "gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory" এরর পান, তবে আপনাকে dirmngrও ইনস্টল করতে হবে।
ডেবিয়ন, উবুন্টু বা ডেবিয়ন-ভিত্তিক ডিস্ট্রোর জন্য, চালান:
sudo apt install gnupg dirmngr
RedHat/CentOS-এর জন্য:
sudo yum install gnupg dirmngr
এবং ফেডোরার জন্য:
sudo dnf install gnupg dirmngr
নিচের উদাহরণ ফলো করুন যাতে আপনি একটি ডেবিয়ন ৯.৮.০ ইনস্টলার ISO ভেরিফাই করবেন।
"SHA256SUMS", "SHA256SUMS.sign", এবং "debian-9.8.0-amd64-netinst.iso" ডাউনলোড করুন। প্রথম দুটি ফাইলের জন্য আপনাকে রাইট-ক্লিক করে "Save link as" বা সমতুল্য সিলেক্ট করতে হতে পারে আপনার ওয়েব ব্রাউজারে। অন্যথায়, সেগুলোতে ক্লিক করলে শুধু কন্টেন্টস দেখাবে অটোমেটিক্যালি ডাউনলোড করার বদলে।
একটি টার্মিনাল এমুলেটর খুলুন এবং আপনার ডাউনলোডগুলো যেখানে অবস্থিত সে ডিরেক্টরিতে চেঞ্জ করুন।
cd Downloads/
চেকসাম ভেরিফাই করা
ISO ডাউনলোড ফিনিশ হওয়ার জন্য অপেক্ষা করুন। পরবর্তি, SHA256 চেকসাম ভেরিফাই করুন।
sha256sum -c SHA256SUMS
আপনি ফাইলের নাম এরপর "OK" মেসেজ দেখবেন যখন চেকসাম ভালো। অন্যান্য টাইপের চেকসাম ভেরিফাই করতে, আপনার কাছে নিচের কমান্ডগুলো রয়েছে: sha1sum, sha512sum, md5sum। কিন্তু কমপক্ষে SHA256 সম, বা তার উপরে ব্যবহার করা রিকমেন্ডেড যদি উপলব্ধ থাকে।
কিছু সাইট SHA256SUMS-এর মতো ফাইল অফার করে না, যেখানে ফাইল নাম এবং চেকসাম একসাথে গ্রুপ করা থাকে সহজ ভেরিফিকেশনের জন্য। যদি সোরা শুধু তাদের সাইটে সম দেখান, তবে ফাইলের হ্যাশ ভেরিফাই করুন নিচের মতো কমান্ড দিয়ে:
sha256sum debian-9.8.0-amd64-netinst.iso
GPG ব্যবহার করে সাইনড চেকসাম ভেরিফাই করা
এই উদাহরণে ডেবিয়ন টিম "SHA256SUMS" ফাইলটি তাদের প্রাইভেট কী দিয়ে সাইন করেছে এবং "SHA256SUMS.sign" ফাইলে সংরক্ষণ করেছে। সিগনেচার ভেরিফাই করুন:
gpg --verify SHA256SUMS.sign SHA256SUMS
আপনি এই মেসেজ পাবেন:
gpg: Signature made Sun 17 Feb 2019 05:10:29 PM EET gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B gpg: Can't check signature: No public key
এটি মানে আপনার কম্পিউটারে পাবলিক কী নেই, যা স্বাভাবিক। আপনাকে এটি একটি কীসার্ভার থেকে ইম্পোর্ট করতে হবে।
gpg --keyserver keyring.debian.org --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
যদি একটি কীসার্ভার ডাউন থাকে, তবে আপনি একটি অল্টারনেটিভ ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি keyring.debian.org-কে keyserver.ubuntu.com-দিয়ে প্রতিস্থাপন করতে পারেন।
আপনি কীভাবে জানবেন এই কী লেজিটিমেট? দুর্ভাগ্যবশত, একদম নিশ্চিত হতে হলে, আপনাকে কিছু বলা হয় "web of trust" বিল্ড করতে হবে। আপনার কাছে সেটি এই মুহূর্তে নাই। কিন্তু এক-दুটি জিনিস আপনি করতে পারেন।
কী-এর ফিঙ্গারপ্রিন্ট (DF9B9C49EAA9298432589D76DA87E80D6294BE9B) গুগল করুন। আপনি কিছু না পেলে, শুধু শেষ আট ক্যারেক্টার (6294BE9B) দিয়ে গুগল করার চেষ্টা করুন। একটি লেজিটিমেট কী সিমিলার সফটওয়্যার সম্পর্কে অনেক ওয়েবসাইটে menton করা থাকবে। আলাদা, পোস্টগুলো সাধারণত বছরের পর বছরে পসার থাকবে যেহেতু একটি নিরাপদে রাখা কী দীর্ঘদিন ব্যবহার করা হয়।
আপনি যদি খুব প্যারানয়েড হন, একটি বিটটরেন্ট ইমেজ ডাউনলোড করুন এবং তারপর চেকসাম এবং সিগনেচার ভেরিফাই করুন। টরেন্ট কীভাবে কাজ করে সেটির কারণে, সেকড়ো ভিন্ন ইউজার দ্বারা আপলোড করা ফাইলগুলো রিপ্লেস করা অসম্ভব। প্লাস, বিটটরেন্টের নিজস্ব মেকানিজমও রয়েছে ডাউনলোড করা ডেটার প্রতিটি চাঙ্কের ইন্টিগ্রিটি ভেরিফাই করার জন্য।
এখন আপনার কাছে পাবলিক কী থাকায়, আপনি চূড়ান্তভাবে সিগনেচার ভেরিফাই করতে পারেন:
gpg --verify SHA256SUMS.sign SHA256SUMS
আপনি যদি "Good signature" দেখেন, মানে সবকিছু চেক আউট। ওয়ার্নিং-র কথা চিন্তা করবেন না –এটি স্বাভাবিক কারণ, যেমন উল্লেখ করা হয়েছে, আপনার পাবলিক কীর সাথে কোনো ইনস্টাবলিশড web of trust নেই।
উপসংহার
আপনি যেহেতু ইতিমধ্যে জানেন, ইন্টারনেটে কিছুই নিশ্চিত নয়। কিন্তু সাবধানতার উপায় গ্রহণ করা নিশ্চিতভাবেই সেফার, এবং আপনি যে ফাইলগুলো ডাউনলোড করেন সেগুলোর ডিজিটাল সিগনেচার ভেরিফাই করা আপনাকে ম্যালিশিয়াস সফটওয়্যার থেকে বাঁচাতে সাহায্য করতে পারে। অনেক বার যখন ব্যবহারকারীরা ব্যাকডোরড অপারেটিং সিস্টেম, বা বিটকয়েন ওয়ালেট সফটওয়্যার ডাউনলোড করেছে, তারা ট্রাবল এভয়েড করতে পারতো যদি সেরা সিগনেচার চেক করত, কারণ সেগুলো ট্যাম্পার করা হয়নি।