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

দুটি রেকর্ড, দুটি ভিন্ন অর্থ

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

এই পার্থক্যই ঠিক করে অনুপস্থিতির অর্থ কী:

QuestionWireGuard handshakeOpenVPN session log
Did the peer send recently?Strong hint within the rekey windowNot answered by start time alone
Did the peer stop?Weak, because idle peers also stop rekeyingOnly if a disconnect was written
What was visited?NothingNothing

কেন হ্যান্ডশেক নিরবচ্ছিন্ন ব্যবহার নয়

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

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

শনাক্তকারীরা টাইমস্ট্যাম্পের সঙ্গে চলে

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

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

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

সিস্টেম-পারস্পরিক সম্পর্কে ঘড়ির যত্ন দরকার

একই মুহূর্ত জানানো দুটি সিস্টেম সেকেন্ড পর্যন্ত মেলে বিরল। একটি তার আউটপুটে সময় অঞ্চলের ব্যবধান প্রয়োগ করতে পারে, অন্যটি কয়েক সেকেন্ড বেঠিক ঘড়িতে চলতে পারে, আর ভার্চুয়াল মেশিন স্থগিতের পরে সরে যেতে পারে।

দুটি ঘটনা একসঙ্গে ঘটেছে বলে সিদ্ধান্তে আসার আগে দুটিকেই একই অঞ্চলে রূপান্তর করুন এবং প্রদর্শনে নয়, কাঁচা রেকর্ডে ব্যবধানটি যাচাই করুন। আপনি যে ফাঁক মাপছেন তা সম্ভাব্য বিচ্যুতির চেয়ে ছোট হলে আপনার কোনো ক্রমই নেই।

ব্যবহারিক নিয়ম হলো সমস্যা-নির্ণয়ের কাজে যে নির্ভুলতা দরকার তা রাখা, তার বেশি নয়। ঘণ্টায় সেশনের সংখ্যা প্রতি অ্যাকাউন্টের ইতিহাস না রেখেই প্রাপ্যতার প্রশ্নের উত্তর দেয়, আর একটি সমষ্টি তার উৎস কাঁচা সারিগুলোর চেয়ে অনেক বেশি দিন রাখা যায়।

রেকর্ড পড়ুন কমান্ড দিয়ে, কল্পনা দিয়ে নয়

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

এই দুই লাইন প্রতিটি WireGuard পিয়ারের হ্যান্ডশেক বয়স ও বাইট কাউন্টার, তারপর OpenVPN স্ট্যাটাস ফাইল থেকে একই ধরনের উপাদান দেখায়:

wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.status

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

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