কেউ যখন জিজ্ঞেস করে VPN কি তার ট্রাফিক লুকায়, তখন তিনজন পর্যবেক্ষক এক প্রশ্নে মিলে যায়: যে নেটওয়ার্কে সে যুক্ত, তার হাতের মেশিন, এবং টানেলের অপারেটর। প্রত্যেকে ভিন্ন কিছু জানতে পারে, আর টানেল সেই দৃশ্যগুলোর প্রতিটিকে ভিন্নভাবে বদলে দেয়। উল্টো দিক থেকে কাজ করা এবং যে দাবিটি করা হচ্ছে সেটি থেকেই শুরু করা ভালো, কারণ দাবিটিই সেই জিনিস যা যাচাইয়ের মুখে টিকে থাকতে হবে। আপনার কোন দাবিটি দরকার তা ঠিক করুন, তারপর তার সঙ্গে সরঞ্জাম তুলনা করুন।

প্রথম দাবি: কেউ ট্রাফিক পড়তে পারে না

সবচেয়ে সংকীর্ণ দাবি দিয়ে শুরু করুন: পেলোড অপাঠ্য থাকে। পথে থাকা নিষ্ক্রিয় পর্যবেক্ষক TLS সেশনের ভেতর দেখতে পারে না, তাই যে সাইট আগেই HTTPS ব্যবহার করে সেখানে টানেল খুব কম যোগ করে, আর দুই প্রান্তের বিরুদ্ধে এটি কিছুই যোগ করে না। এই দাবিটা ভাঙে যে ডিভাইস নিয়ন্ত্রণ করে, কারণ একটি পরিদর্শন প্রক্সি সংযোগটি সমাপ্ত করে এবং মেশিনের আগেই বিশ্বাস করা একটি রুট দিয়ে সেটি আবার স্বাক্ষর করে। তাই সনদ-শৃঙ্খলে যে প্রতিষ্ঠান রুটটি বসিয়েছে তার নাম থাকলেও তালাটি তখনও দেখা যায়।

security find-certificate -a -p /Library/Keychains/System.keychain | openssl crl2pkcs7 -nocrl -certfile /dev/stdin | openssl pkcs7 -noout -print_certs | grep subject
certutil -store Root

macOS-এ সেই পাইপলাইন মেশিনের কীচেইনের প্রতিটি সনদের জন্য একটি করে সাবজেক্ট লাইন ছাপে, কোনো উইন্ডো না খুলেই; Windows-এ certutil -store Root সেই একই স্টোর তালিকা করে যা certlm.msc গ্রাফিকভাবে দেখায়। কোনো স্কুল, নিয়োগকর্তা বা নেটওয়ার্ক নিরাপত্তা পণ্যের মালিকানাধীন রুটই সেই এন্ট্রি যা খুঁজতে হবে। একটি পাওয়া কেবল প্রমাণ করে যে আটকানো সম্ভব, ঘটছে তা নয়।

এ নিয়ে আপনি কী করতে পারেন তা প্রযুক্তিগত নয়, নীতি-সংক্রান্ত প্রশ্ন। যে হার্ডওয়্যার আপনার নয় সেখান থেকে প্রোফাইল বা পরিদর্শন রুট সরানো সাধারণত গ্রহণযোগ্য ব্যবহারের চুক্তি ভাঙে, আর ব্যবস্থাপনা ব্যবস্থা সেটি লক্ষ্য করে আবার প্রয়োগ করে, তাই ডিভাইসের মালিক আপনার ট্রাফিক পড়বে না এই শর্তের জন্য দরকার ভিন্ন ডিভাইস, ভিন্ন সেটিং নয়।

দ্বিতীয় দাবি: কেউ দেখতে পায় না আপনি কোথায় যান

গন্তব্য হলো কঠিনতর দাবি, কারণ একটি পৃষ্ঠা লোড হওয়ার আগেই দুটি প্রকাশ ঘটে। অনুসন্ধান যায় সেই রিজলভারে যা ব্যবহার করতে সিস্টেম কনফিগার করা আছে, আর উত্তরটি বহনকারী নেটওয়ার্কের কাছে দৃশ্যমান। তারপর TLS হ্যান্ডশেক অনুরোধ করা সার্ভারের নাম খোলাখুলি বহন করে, যদি দুই প্রান্তে Encrypted Client Hello সমর্থিত না হয়। কোনো প্রকাশেই ডিক্রিপশন লাগে না, তাই টানেলের কোনোটিতেই কোনো প্রভাব নেই।

resolvectl status | grep -A2 "Link"
nslookup example.com

কোন রিজলভার আসলে ব্যবহৃত হচ্ছে সেটিই প্রকাশের মাত্রা ঠিক করে, আর তা তর্ক না করে মাপা যায়। Linux-এ resolvectl status প্রতি লিঙ্কের DNS সার্ভার ছাপে, আর এর ফল বলে দেয় সাইটের রিজলভার উত্তর দিচ্ছে না পুশ করা রিজলভার। Windows একই প্রশ্নের উত্তর দেয় nslookup example.com দিয়ে, যার ফলের প্রথম ব্লকই উত্তর দেওয়া DNS সার্ভার।

যখন ল্যাপটপ টানেল ওঠার আগেই সাইটের রিজলভারকে জিজ্ঞেস করে, অথবা প্রোফাইল কোনো প্রতিস্থাপক সার্ভার ছাড়া আসে ফলে পুরোটাই ব্যবহৃত থাকে, তখনও প্রশাসক কিছু ডিক্রিপ্ট না করেই হোস্টনাম সংগ্রহ করে। ব্রাউজারের এনক্রিপ্টেড DNS হয় পুশ করা রিজলভারকে পাশ কাটায়, নয়তো সম্পূর্ণভাবে ব্লক হয়ে বন্ধ অবস্থায় ব্যর্থ হয়। প্রস্থান অপারেটর তার দিক থেকে একই নামগুলো দেখে। তাই রিজলভার বদলালে সেই প্রকাশ টানেল সরবরাহকারীর কাছ থেকে সরে যায় না।

তৃতীয় দাবি: কেউ জানে না আপনি যুক্ত হয়েছেন

তৃতীয় দাবিটি টানেল সমর্থন করতে পারে না, কারণ প্যাকেটগুলো এখনও স্থানীয় নেটওয়ার্ক পার হয়। সেই নেটওয়ার্ক প্রান্তবিন্দুর ঠিকানা, আনুমানিক আয়তন, সময় এবং একটি দীর্ঘস্থায়ী এনক্রিপ্টেড সেশনের অস্তিত্ব জানে, যা ব্লক করা, গতি কমানো বা শুধু লক্ষ্য করার জন্য যথেষ্ট। যে ফায়ারওয়াল প্যাকেট পড়তে পারে না সেটিও তা পার হতে দিতে অস্বীকার করতে পারে। নজরে থাকা আর কেউ নজর না করা এক নয়: আপনি পর্যবেক্ষককে সরিয়েছেন, মুছে ফেলেননি।

স্প্লিট টানেলিং এবং পুশ করা রুট উপেক্ষা করা যেকোনো অ্যাপ্লিকেশন টানেলের বাইরে প্রবাহ তৈরি করে যা আগের মতোই দেখায়। সতর্ক পর্যবেক্ষক সেসব প্রবাহই আগে লক্ষ্য করে, আর ক্লায়েন্টের রুট টেবিল দেখায় কোন গন্তব্যগুলো বাদ পড়েছে।

অন্য প্রান্তের অপারেটর সেই দৃশ্যের প্রতিবিম্ব ধরে: প্রস্থান ঠিকানা, সময়, আয়তন এবং সাধারণত সাইটের নামগুলো। আপনার সরবরাহকারীই দৃষ্টিকোণযুক্ত পক্ষ হয়ে ওঠে, যা অদৃশ্যতার চেয়ে ভিন্ন এক চুক্তি। বিশ্বাসযোগ্য সরবরাহকারী বেছে নেওয়া সত্যিই একটি সিদ্ধান্ত; ফলাফলটিকে অ-পর্যবেক্ষিত বলা তা নয়।

কোন দাবিটি আপনার দরকার তা ঠিক করুন

ক্লায়েন্ট ছোঁয়ার আগে প্রয়োজনটি এক লাইনে লিখুন: বিষয়বস্তু লুকান, গন্তব্য লুকান, অথবা আপনি আদৌ যুক্ত হয়েছেন কি না তা লুকান। বিষয়বস্তু ইতিমধ্যেই HTTPS আর টানেল মিলে সামলায়, কিন্তু গন্তব্যের জন্য দরকার এমন রিজলভার ও পথ যা সাইটের যন্ত্রপাতি সম্পূর্ণ পাশ কাটায়।

তৃতীয় প্রয়োজনটিই অস্বস্তিকর, কারণ কোথাও কিছু এখনও দৃশ্যমানভাবে যুক্ত আছে, এনক্রিপ্টেড হোক বা না হোক। কোনো ক্লায়েন্ট সেটিং তা বদলায় না। প্রয়োজন ও নীতির মধ্যে ফাঁক থাকলে সেই ফাঁক নীতির মালিকের সঙ্গে আলোচনার বিষয়, ক্লায়েন্টের কোনো অপশন নয়। যে ব্যক্তি এর উত্তর দিতে পারেন তিনি সেই ব্যক্তি যিনি নীতিটি লিখেছেন।

সম্পর্কিত নিবন্ধ