দোকানটি বাড়িতে ঠিকঠাক লোড হয় এবং টানেল চালু হওয়ার মুহূর্তেই «অস্বাভাবিক ট্রাফিক»-এর দেয়াল দেখায়। একটি ফোরাম আপনাকে লগ ইন করতে দেয় না, আর একটি স্ট্রিমিং পেজ জোর দিয়ে বলে আপনি এমন একটি দেশে আছেন যা কখনো ঘোরেননি। এর কোনোটির জন্য স্পাইওয়্যার দরকার নেই। একটি সাইট আপনার প্যাকেট যে ঠিকানা থেকে আসে তা দেখে, আর VPN-এর ক্ষেত্রে সেই ঠিকানা বাড়ির লাইনের নয়, বরং ডেটা সেন্টারের। VPN শনাক্তকরণ নামে যা কিছু বলা হয় তার বেশিরভাগ এই একটি তথ্যেই শুরু ও শেষ হয়, আর বাকিটা অনুমান, যার ব্যর্থতার হার পূর্বানুমেয়।

ব্লক শুরু হয় আপনার প্যাকেট কোথা থেকে আসছে বলে দেখায়, সেখান থেকেই

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

নিজের ট্রাফিককে একজন অপরিচিতের চোখে দেখুন। দুটি কমান্ড বেশিরভাগ পৃষ্ঠতল ঢেকে দেয়, আর দ্বিতীয়টিই মানুষ ভুলে যায়:

curl -sS https://ipinfo.io/json
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com

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

যখন টানেল ওঠার পরেই প্রত্যাখ্যান শুরু হয়, তখন সবার আগে এক্সিট ঠিকানাকে সন্দেহ করুন। ব্রাউজার স্পর্শ করার আগে সার্ভার বদলে আবার চেষ্টা করুন। একই প্রদানকারীর তিনটি এক্সিট জুড়ে যে ব্লক আপনার পিছু নেয়, তা প্রদানকারীর রেঞ্জ নিয়ে; আর ভিন্ন সার্ভারে যে ব্লক মিলিয়ে যায়, তা ওই একটি ঠিকানা নিয়ে।

টাইম জোন, ভাষা ও ঘড়ি ঠিকানার সঙ্গে মেলে না

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

Intl.DateTimeFormat().resolvedOptions().timeZone
navigator.language
Intl.DateTimeFormat().resolvedOptions().locale

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

এই কারণেই ব্যর্থতাটি মাঝে মাঝে ঘটে। অনেক সাইট গ্রাহ্য করে না, কয়েকটি স্কোর দেয়, আর একটি সদস্যপদ সাইট আপনাকে জালিয়াত বলে সিদ্ধান্ত নেয়। ক্লায়েন্ট তিনটি ক্ষেত্রেই ঠিকভাবে কাজ করছে, তাই চেনা সাপোর্টের উত্তর, «নিশ্চয়ই আপনার ব্রাউজার», একই সঙ্গে বিরক্তিকর এবং আংশিক সত্য।

পেজ কোড আপনার মেশিন সম্পর্কে আসলে কী জানে

JavaScript-এ নেটওয়ার্ক ইন্টারফেস গণনা করার কোনো API নেই। একটি পেজ জিজ্ঞাসা করতে পারে না আপনার ল্যাপটপে কোন ঠিকানাগুলো আছে, তাই স্ক্রিপ্ট আপনার LAN ঠিকানা পড়ে — এই পুরোনো দাবিটি মূলত প্লাগইন যুগের স্মৃতি, যখন ActiveX কন্ট্রোল, Java অ্যাপলেট ও অন্যান্য নেটিভ কোড ঠিক এটাই করতে পারত।

SignalWhat it revealsStatus today
Source address of the requestExit network, country, hosting statusAlways visible; the main signal
Time zone and languageWhere the profile claims to beReadable without permission
WebRTC candidatesLocal addresses, historicallyHost candidates are mDNS-obfuscated by default
Interface listAll local addressesNot available to ordinary JavaScript

WebRTC হলো «কোনো স্থানীয় ঠিকানা লিক নেই»-এর সৎ ব্যতিক্রম। এর প্রার্থী সংগ্রহ একসময় যে কোনো জিজ্ঞাসু পেজের কাছে স্থানীয় ঠিকানা প্রকাশ করত, আর সমাধান ছিল হোস্ট প্রার্থীদের এলোমেলো mDNS নাম দিয়ে প্রতিস্থাপন করা। বর্তমান ব্রাউজারগুলোতে এই ডিফল্টটিই চলে, কিন্তু এটি প্রোটোকলের নিশ্চয়তা নয়, ব্রাউজারের সিদ্ধান্ত, তাই পুরোনো বিল্ড বা কঠোর কনফিগারেশন যা স্থানীয় প্রার্থী আবার চালু করে, তা এখনও লিক করতে পারে। এখানে কোনো এক্সটেনশনের চেয়ে ব্রাউজার হালনাগাদ করাই আপনার বেশি উপকার করে।

আপনার প্রদানকারী নাম দেখে, বিষয়বস্তু নয়

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

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

একটি অসাংকেতিক HTTP অনুরোধ অপারেটরের কাছে পাঠযোগ্য, যে কারণে এটি হোটেল নেটওয়ার্কের কাছেও পাঠযোগ্য: এর ভেতরে কিছুই সাংকেতিক নয়। টানেল কখনো অন্যথা দাবি করেনি, আর এটি অ্যাপ্লিকেশনের পছন্দ সারিয়ে তোলে না।

«এটি একটি VPN» আর «এটি আমি» আলাদা করুন

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

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

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

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