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

ব্লক করা আর পড়া ভিন্ন ক্ষমতা

প্রত্যাখ্যান সস্তা ও স্পষ্ট: সকেট খোলে আর কিছুই উত্তর দেয় না, বা সঙ্গে সঙ্গে রিসেট আসে। এর কোনোটিই ইন্সপেকশন বোঝায় না, কারণ কোনো পেলোড তারের উপর দিয়ে যায়নি।

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

মোড়ক বিনামূল্যে কী দিয়ে দেয়

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

হোস্টনেম তাদের মধ্যে নেই। সাইটগুলো অন্য দরজা দিয়ে ফাঁস হয়, আর সবচেয়ে চওড়াটি DNS: ল্যাপটপ যদি এখনও স্থানীয় রিজলভারকে জিজ্ঞাসা করে, নামগুলো খোলাখুলি দেখা যায়।

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

TLS ইন্টারসেপশনের জন্য এমন রুট দরকার যা আপনি ইতিমধ্যেই বিশ্বাস করেন

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

এই কারণেই ব্যবস্থাটি প্রমাণ রেখে যায়। উপস্থাপিত চেইনের ইস্যুয়ার প্রতিষ্ঠানের, কোনো পাবলিক CA-এর নয়, এবং ক্লায়েন্ট বিশেষ টুলিং ছাড়াই তা দেখতে পারে। অভ্যন্তরীণ রুটে শেষ হওয়া চেইনই ইন্টারসেপশনের স্বাক্ষর, কোনো ত্রুটি নয়।

কেন VPN চ্যানেল HTTPS সেশন নয়

VPN ডেটা চ্যানেল ইন্সপেক্টরকে এমন কোনও অবলম্বন দেয় না। IKEv2 আর WireGuard নিজেদের হ্যান্ডশেক ও কী সিডিউল চালায়, শেষ করার মতো TLS নেই, অথচ OpenVPN তার কন্ট্রোল চ্যানেলের জন্য TLS ধার করে পরিবর্তিত রূপে, তারপর নিজের মতো ডেটা সুরক্ষিত করে। HTTPS-এর জন্য বানানো প্রক্সি সেই সেশনকে চিনতে পারে না এমন কিছু হিসেবে যা সে পার্স করতে পারে।

যে যন্ত্র সেশন পার্স করতে পারে না সে তা ফেলে দিতে পারে। এজন্যই VPN ব্লকিং সাধারণত সার্টিফিকেট সতর্কতার বদলে টাইমআউটের মতো দেখায়, আর এজন্যই ব্যতিক্রম কিছুই বদলায় না।

নিজের মেশিন থেকে যাচাই

সাইট যে চেইন উপস্থাপন করে তা দিয়ে শুরু করুন। ব্রাউজারের সাইট বিবরণ ইস্যুয়ার দেখায়, আর কমান্ড লাইন সারসংক্ষেপ ছাড়াই একই কথা জানায়:

openssl s_client -connect example.com:443 -servername example.com

তারপর কাউন্টার দিয়ে প্রত্যাখ্যাত হ্যান্ডশেককে ফিল্টার করা ভেতরের ট্রাফিক থেকে আলাদা করুন। যেকোনো ড্রপ নিয়মের আগে ট্রান্সপোর্ট পোর্ট লগ করুন এবং চেষ্টার পরে পড়ুন:

iptables -I OUTPUT 1 -p udp --dport 1194 -j LOG --log-prefix ovpn-out
iptables -vnL OUTPUT --line-numbers

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

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

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