এই প্রকাশিত OpenVPN কীটি কি CA, পিয়ার কী নাকি tls-auth?
একটি শব্দ, তিনটি সম্পূর্ণ আলাদা বস্তু। নির্দেশিকাটি পড়ুন, ফাঁসটি বিশ্বাস-উপাদান নাকি পরিচয়-উপাদান তা নির্ধারণ করুন, তারপর কেবল যা ফাঁস হয়েছে তা মেরামত করুন।
কেউ জানাচ্ছে যে VPN কীটি প্রকাশ্য, আর এই বাক্যটি তিনটি সম্পূর্ণ ভিন্ন পরিস্থিতি লুকিয়ে রাখে। এটি হতে পারে এমন একটি CA সার্টিফিকেট যা প্রতিটি ক্লায়েন্টের থাকার কথা, এমন একটি ব্যক্তিগত পরিচয়-কী যা কখনোই এক মেশিন ছাড়া উচিত নয়, অথবা একটি ভাগ করা কন্ট্রোল-চ্যানেল সিক্রেট যা উভয় প্রান্তকেই রাখতে হবে। মেরামত, জরুরি অবস্থা ও ক্ষতির পরিধি প্রতিটি ক্ষেত্রে আলাদা, তাই প্রথম কাজটি হলো শ্রেণিবিন্যাস, পদক্ষেপ নয়। বিভাগটি ভুল করলে পরের প্রতিটি ধাপই বৃথা শ্রম।
ফাইলের নাম নয়, নির্দেশিকা থেকে শুরু করুন
সক্রিয় কনফিগারেশন পড়ুন এবং দেখুন কোন নির্দেশিকাটি প্রশ্নবিদ্ধ উপাদানটির দিকে ইশারা করে। OpenVPN-এর TLS অপশনগুলো বিশ্বস্ত সার্টিফিকেট উপাদানের জন্য ca, স্থানীয় পিয়ার সার্টিফিকেটের জন্য cert এবং তার সাথে সম্পর্কিত ব্যক্তিগত কী-এর জন্য key ব্যবহার করে।
ফাইলের নাম কিছুই প্রমাণ করে না। key.pem নামের একটি ফাইলে সার্টিফিকেট থাকতে পারে, আর প্রোফাইলের ভেতরের ইনলাইন ব্লকে ডিস্কের আলাদা ফাইলের ঠিক একই বস্তু থাকতে পারে। নামে ভরসা না করে ফাইলটি খুলে তার হেডার দেখুন। এই একটি যাচাই প্রতিবেদনের বেশিরভাগ অস্পষ্টতা দূর করে।
প্রোফাইলটি PKCS#12 বান্ডল হলে নিয়ন্ত্রিত জায়গায় সেটি আনপ্যাক করে দেখুন এতে আসলে কী আছে। একটি বান্ডলেই সার্টিফিকেট, তার চেইন ও একটি ব্যক্তিগত কী থাকতে পারে, অর্থাৎ বান্ডল ফাঁস মানে তিনটিই ফাঁস।
কেউ ফাইল বদলানোর আগেই শ্রেণিবিন্যাসটি লিখে রাখুন: বস্তু, নির্দেশিকা, কোন কোন পিয়ার এটি রাখে এবং কে এটি পড়তে পারে। বাকি পুরো প্রতিক্রিয়া নির্ভর করে এই বাক্যের উপর।
CA সার্টিফিকেট ভাগ করে নেওয়ার জন্যই তৈরি
প্রকাশ্য CA সার্টিফিকেট হলো বিশ্বাস-উপাদান। সার্ভার যাচাই করতে ক্লায়েন্টদের এটি দরকার, আর এটি বিতরণ করা স্বাভাবিক ঘটনা, কোনো দুর্ঘটনা নয়। এটি প্রকাশ করলে CA-এর ব্যক্তিগত স্বাক্ষর-কী প্রকাশ পায় না, অথচ আক্রমণকারীকে নতুন পরিচয় তৈরি করার সুযোগ দিত ঠিক সেই বস্তুটিই।
এই পার্থক্যটি টিকিটে স্পষ্টভাবে লেখা উচিত, কারণ দুটিকে নিয়মিত গুলিয়ে ফেলা হয়। যে প্রশ্নের উত্তর দিতে হবে তা হলো, ফাঁস হওয়া ফাইলটি সার্টিফিকেট নাকি স্বাক্ষর-কী, আর ফাইলের বিষয়বস্তুতে এক ঝলকই তা ঠিক করে দেয়। সার্টিফিকেটে একটি প্রকাশ্য কী ও একটি স্বাক্ষর থাকে; স্বাক্ষর-কী সেখানে আদৌ থাকে না।
বিতরণের ক্ষেত্রেও সতর্কতা দরকার। ক্লায়েন্টদের সার্টিফিকেটটি অনুমোদিত প্রোফাইল-বিতরণ পথে পাওয়া উচিত, কোনো পেস্ট সাইট থেকে নয়, আর অবিশ্বস্ত পথে আসা সার্টিফিকেট যাত্রাপথে বদলে দেওয়া হতে পারে।
পিয়ার কী আর tls-auth সিক্রেট এক নয়
পিয়ারের ব্যক্তিগত কী হলো পরিচয়-উপাদান। এটি কপি হয়ে গেলে সার্ভার আর নির্দিষ্ট ডিভাইসটিকে কপি ধারণকারী যে কারও থেকে আলাদা করতে পারে না, কারণ একচেটিয়া দখলই ছিল যে বৈশিষ্ট্য প্রমাণ করা হচ্ছিল। অনুমোদন চালু রাখা ও প্রতিস্থাপন VPN মালিকের সিদ্ধান্ত, ফাইলটি যে খুঁজে পেয়েছে তার নয়।
tls-auth সিক্রেট হলো তৃতীয় জিনিস। এটি কন্ট্রোল-চ্যানেল প্যাকেটের চারপাশে HMAC প্রমাণীকরণ যোগ করে যাতে ভুলভাবে প্রমাণীকৃত প্যাকেট TLS বিনিময়ের আগেই বাদ পড়ে, আর এটি পিয়ারের ব্যক্তিগত কীও নয়, অ্যাপ্লিকেশন ডেটা এনক্রিপ্ট করা কী-ও নয়।
সেই ভাগ করা সিক্রেট প্রকাশ্য হলে এটি যে প্রতিবন্ধকতা দিত তা এর অধিকারী সবার জন্য চলে গেছে। এ থেকে এটা আসে না যে প্রতিটি ধারক এর পেছনের সার্টিফিকেট ও ব্যবহারকারী যাচাই পাস করে, তাই শ্রেণিবিন্যাস সতর্কতার মাত্রার চেয়ে বেশি জরুরি। কোন প্রতিবন্ধকতা ভেঙেছে বলুন, আর কোনগুলো টিকে আছে তাও বলুন।
যে ভূমিকা ফাঁস হয়েছে তা মেরামত করুন, প্রতিবেশী কিছু নয়
ফাইলের নাম বদলে বা ডাউনলোড লিংক লুকিয়ে একটি ভাগ করা সিক্রেটকে আবার ব্যক্তিগত করা যায় না। প্রতিস্থাপন মানে নতুন একটি মান তৈরি করে সমন্বিত পরিবর্তনে প্রতিটি পিয়ারের কাছে বিতরণ করা, আর কেবল এক পক্ষ বদলালে পুরোনো মান ধারণকারী সবার জন্য ব্যবস্থাটি ভেঙে যায়।
কোনো পিয়ার পরিচয় প্রকাশ পেলে সেই পরিচয়ের জন্য অপারেটরের রিভোকেশন ও পুনঃনিবন্ধন প্রক্রিয়া ব্যবহার করুন। অসম্পর্কিত অ্যাকাউন্টের পাসওয়ার্ড বদলালে কপি করা সার্টিফিকেট বাতিল হয় না, tls-auth ফাইল বদলালেও হয় না।
এগুলোর যেকোনোটির উপর নির্ভর করার আগে মোতায়েন করা সার্ভার আসলে কী প্রয়োগ করে তা নিশ্চিত করুন। যে রিভোকেশন তালিকা রিফ্রেশ হয় না, বা যে ভূমিকা-যাচাই বিভ্রাটের সময় বন্ধ ছিল, তা উত্তরটাই বদলে দেয়। রিপোজিটরির কপি নয়, চলমান কনফিগারেশন পড়ুন।
অতীতের ট্রাফিককে তার নিজের শর্তে বিচার করুন
একটি প্রকাশিত ফাইল নিজে থেকে বলে না আগে ধরা পড়া সেশনগুলো ডিক্রিপ্ট করা যায় কি না। এটি নির্ভর করে কী-স্থাপন পদ্ধতি, প্রকাশিত উপাদান এবং কী রেকর্ড আছে তার উপর, আর ‘সব ট্রাফিক হারিয়েছে’ ও ‘কিছুই হয়নি’—দুটোই ওই তথ্য ছাড়া অনুমান।
কোন শ্রেণিতে পড়ে তা জিজ্ঞাসা করার সময় ক্রেডেনশিয়ালের আরেকটি কপি পোস্ট করবেন না। বরং অনুমোদিত সাপোর্ট পথে নির্দেশিকার নাম ও গোপন-নয় এমন মেটাডেটা শেয়ার করুন।
উপকারী উপসংহারে বস্তু, তার ভূমিকা, যে সুরক্ষা হারিয়ে গেছে এবং প্রয়োজনীয় সমন্বিত পদক্ষেপের নাম থাকা উচিত। এর চেয়ে ছোট কিছু শিরোনাম, মূল্যায়ন নয়।