মিরর থেকে VPN ইনস্টলার? আগে প্রকাশক যাচাই করুন
ডাউনলোড চ্যানেল ঠিক করে কোন কোড চলবে এবং কে তা হালনাগাদ করতে পারবে। আগে স্বাক্ষর, চেকসামের উৎস এবং প্রোফাইল ইস্যুকারী যাচাই করুন।
টানেল কাজ করেছে, ইন্টারফেস এসেছে, আর সেশন এক সপ্তাহ স্থির থেকেছে। এর কোনোটিই বলে না ইনস্টলারটি কে বানিয়েছে। একটি VPN ক্লায়েন্ট রুট পুনর্লিখন ও প্রমাণপত্র পড়ার মতো যথেষ্ট বিশেষাধিকার নিয়ে চলে, তাই প্রকাশক হুমকি-মডেলের অংশ, পাদটীকা নয়।
যাচাইগুলো ক্রমে করুন এবং প্রথম ব্যর্থটিতে থামুন। এগুলো সস্তা, আর প্রতিটি আলাদা ফাঁক বন্ধ করে।
প্রথম ধাপ: প্রকল্প যে চ্যানেলের নাম দেয় সেখান থেকে ডাউনলোড করুন
প্রতিটি প্রকল্প নথিভুক্ত করে তার রিলিজ কোথায় থাকে, আর সেই পৃষ্ঠাই রেফারেন্স। কমিউনিটি বিল্ড, স্টোর তালিকা ও ভেন্ডর পোর্টাল—সবই বৈধ চ্যানেল। প্রতিটি তখনই বৈধ যখন প্রকল্প নিজেই তার দিকে ইঙ্গিত করে। এটাই পরীক্ষা, আর এটি সরকারি দেখানোর সমান কিছু নয়।
প্রকল্পের নামে রাখা ফাইল কিছুই প্রমাণ করে না। ইনস্টলারের নাম বদলানো এক সেকেন্ডের কাজ, আর সার্চ ফলাফল প্রথমে যে নামটি দেখায় সেটাই।
দ্বিতীয় ধাপ: পরিচিত পরিচয়ের বিপরীতে স্বাক্ষর যাচাই করুন
স্বাক্ষর যাচাই একটি সংকীর্ণ প্রশ্নের ভালো উত্তর দেয়। এটি বলে যে একটি নির্দিষ্ট পরিচয় এই বাইনারিতে স্বাক্ষর করেছে এবং সেই থেকে বাইনারিটি বদলায়নি। এটি একটি প্রশ্নের উত্তর দেয় এবং আরেকটি প্রত্যাখ্যান করে। আপনি যে পরিচয়ে ভরসা করতে চেয়েছিলেন এটি সেই পরিচয় কি না, তা এটি বলতে পারে না।
# macOS: who signed this app, and is the signature intact?
codesign -dv --verbose=4 /Applications/Tunnel.app
spctl -a -vvv -t install /Applications/Tunnel.app
# Windows: signature and publisher of the installer
Get-AuthenticodeSignature .\tunnel-setup.exe | Format-List Status, SignerCertificate
# Linux: detached signature from the project's release page
gpg --verify tunnel-1.4.2.tar.gz.asc tunnel-1.4.2.tar.gz
পরিচয় পড়ুন, অবস্থা-শব্দ নয়। বৈধ সার্টিফিকেটধারী একজন অসম্পর্কিত ডেভেলপারও বৈধ স্বাক্ষর তৈরি করেন। যে অপারেটিং সিস্টেম একটি স্বীকৃত প্রকাশক জানায়, সে কেবল বলেছে কেউ একটি সার্টিফিকেটের জন্য টাকা দিয়েছে।
তৃতীয় ধাপ: স্বাধীন উৎসের সঙ্গে হ্যাশ মিলান
চেকসাম একটি রেফারেন্স মানের সঙ্গে মিল প্রমাণ করে। রেফারেন্সটি যদি ডাউনলোডের পাশে আসে, তবে দুটোই একসঙ্গে ভুল হতে পারে আর তুলনাটি তবুও পাস করে। বেশিরভাগ টিউটোরিয়ালে ব্যর্থতার ধরন এটাই। হ্যাশটি যে ফাইলের বর্ণনা দেয় তার সঙ্গে একই পৃষ্ঠায় থাকে।
# Linux and macOS
shasum -a 256 tunnel-1.4.2.dmg
# compare against the value published on the project's own release page
# not against a value copied from the same mirror
কোনো প্রকল্প স্বাক্ষরিত চেকসাম বা স্বাক্ষরিত রিলিজ ম্যানিফেস্ট প্রকাশ করলে প্রতিটি ফাইলের বদলে তালিকার ওপর স্বাক্ষর যাচাই করুন। এভাবে একটি বিশ্বস্ত রেফারেন্স পুরো রিলিজকে ঢেকে দেয়।
ইনস্টলেশনের পরে: হালনাগাদের পথ ধরে রাখুন
ইনস্টল শেষ হওয়ার পরেও একটি সমর্থিত চ্যানেল গুরুত্বপূর্ণ থাকে। পুনঃপ্যাকেজ করা বিল্ড নিজের আপডেটার বহন করতে পারে, আর সেই আপডেটারই ঠিক করে পরের মাসে কী চলবে। যে বিল্ড কখনো হালনাগাদ হয় না সেটি বেশি নিরাপদ নয়। এটি কেবল পুরোনো।
ক্লায়েন্ট কীভাবে হালনাগাদ হওয়ার কথা এবং সেই ধাপটি কোনো ব্যবস্থাপনা ব্যবস্থার হাতে কি না, তা লিখে রাখুন। উত্তর যদি হয় ফোরাম থেকে হাতে ডাউনলোড, তবে সরবরাহ-শৃঙ্খলার প্রশ্নটি সত্যিই কখনো বন্ধ হয়নি।
দুটি উৎস, একটি নয়
ক্লায়েন্ট ডেভেলপার ও প্রোফাইল ইস্যুকারী আলাদা পক্ষ। একটি অফিসিয়াল ক্লায়েন্টের অসম্পর্কিত অপারেটরের প্রোফাইল আমদানি করা স্বাভাবিক ব্যবস্থা, আর প্রোফাইলটি নিজের যাচাই দাবি করে: কে এটি ইস্যু করেছে, কীভাবে পৌঁছেছে, এবং সার্ভার সার্টিফিকেট আপনার প্রত্যাশিত নামের সঙ্গে মেলে কি না।
আপনার নোটে দুটি উৎসকেই চিহ্নিতযোগ্য রাখুন। যেই মুহূর্তে একটি ক্লায়েন্ট বদলানো হয় বা একটি ডিভাইস ব্যাকআপ থেকে পুনরুদ্ধার করা হয়, ওই দুটি লাইনই বাকি ডেটার সঙ্গে অজানা একটি বিল্ড বা অজানা একটি প্রোফাইল ফিরে আসা ঠেকায়।