OpenVPN প্রোফাইলে তিনটি সার্টিফিকেট ব্লক থাকে: কোনটি গোপন?
একটি প্রোফাইলে CA সার্টিফিকেট, ক্লায়েন্ট সার্টিফিকেট ও একটি প্রাইভেট কী থাকে যা দেখতে একই রকম। কেবল একটি গোপন, আর প্রতিটি ভিন্নভাবে ব্যর্থ হয়।
একটি লাইন বদলাতে আপনি .ovpn ফাইল খুলে দেখেন তিনটি base64 ব্লক, যেগুলো সবই শংসাপত্রের মতো দেখায়। একটি প্রকাশ করা নিরাপদ, একটি পাসওয়ার্ডের মতোই সংবেদনশীল, আর একটি পাবলিক কী যা অন্য কিছু তার জোড়া দিয়ে সই না করলে কোনো অর্থই বহন করে না। মানুষ পুরো ফাইলটি সাপোর্ট থ্রেডে পেস্ট করে, কারণ ব্লকগুলো পরস্পর বিনিময়যোগ্য মনে হয়, আর ঠিক এভাবেই ক্লায়েন্ট কী একটি প্রকাশ্য আর্কাইভে পৌঁছে যায়। কোন ব্লক কী কাজ করে তা আলাদা করা এই প্রোফাইল নিয়ে বেশিরভাগ বিভ্রান্তির ব্যাখ্যা দেয়, আর কোন ব্যর্থতাগুলো আপনার ঠিক করার তা-ও বলে দেয়।
একটি ফাইল, তিনটি ব্লক, আলাদা কাজ
সাধারণ প্রোফাইল BEGIN ও END মার্কারের মধ্যে একটি ca ব্লক, একটি cert ব্লক ও একটি key ব্লক এমবেড করে, অথবা একই তিনটিকে আলাদা ফাইল হিসেবে নির্দেশ করে। কিছু প্রোফাইল tls-auth বা tls-crypt কী-এর জন্য চতুর্থ ব্লক যোগ করে, যা শংসাপত্র নয় বরং একটি যৌথ গোপন তথ্য। ক্লায়েন্ট প্রতিটি ব্লক পড়ে যে নির্দেশিকা তার নাম দেয় সেই অনুযায়ী, তাই লেবেলগুলো তাদের উপস্থিতির ক্রমের চেয়ে বেশি গুরুত্বপূর্ণ।
ভিতরে সত্যিই না তাকানো পর্যন্ত সংযুক্ত প্রোফাইলটিকে সংবেদনশীল হিসেবে ধরুন। একটি পাবলিক শংসাপত্র আর একটি প্রাইভেট কী একই ফাইলে কয়েক লাইন দূরত্বে থাকতে পারে, আর হেডারসহ স্ক্রিনশট দুটোকেই ধরে ফেলতে পারে। দৃশ্যমান base64 হাতে মুছে ফেলাও অবিশ্বাস্য, কারণ আংশিক ব্লকও আপনার ডিপ্লয়মেন্টের নাম বলা শংসাপত্রের মেটাডেটা ফাঁস করে। তিনটি নির্দেশিকা তাদের মান ছাড়া কপি করাই সাধারণত কার্যকর প্রশ্ন করার জন্য যথেষ্ট।
ব্লকগুলোর আশপাশের নির্দেশিকাগুলো ঠিক করে সেগুলো কীভাবে ব্যবহৃত হবে। ca বদলালে ক্লায়েন্ট ভিন্ন একটি কর্তৃপক্ষকে বিশ্বাস করে; key না বদলে cert বদলালে হ্যান্ডশেক ব্যর্থ হয় এমন অমিলে যার বিশ্বাসের সঙ্গে কোনো সম্পর্ক নেই।
CA ব্লক প্রকাশ্য, CA কী কখনোই নয়
একটি শংসাপত্র কর্তৃপক্ষ এমন শংসাপত্রে সই করে যা একটি পাবলিক কীকে একটি পরিচয়ের সঙ্গে বেঁধে দেয়, আর তার নিজের শংসাপত্রই হলো সেই নোঙর যা দিয়ে ক্লায়েন্ট ঠিক করে শৃঙ্খলটি বিশ্বাসযোগ্য কি না। সেই শংসাপত্র নকশার কারণেই প্রকাশ্য: প্রতিটি প্রোফাইলের ভিতরে তা পাঠানো স্বাভাবিক, আর এ কারণেই বাণিজ্যিক কর্তৃপক্ষ ছাড়া স্ব-স্বাক্ষরিত ডিপ্লয়মেন্ট কাজ করতে পারে।
ক্লায়েন্ট প্রোফাইলে কখনোই যা থাকতে পারবে না তা হলো কর্তৃপক্ষের প্রাইভেট সাইনিং কী। কোনো কিছু যাচাই করতে ক্লায়েন্টের তা দরকার হয় না, আর এর উপস্থিতির অর্থ হলো প্রোফাইলটি যার হাতে আছে সে পুরো ডিপ্লয়মেন্টের জন্য নতুন পরিচয় বানাতে পারে।
কর্তৃপক্ষকে বিশ্বাস করাও শোনার চেয়ে সংকীর্ণ। যে ক্লায়েন্ট CA-র সই করা যেকোনো শংসাপত্র গ্রহণ করে, সে একই CA-তে অন্য সেবার জন্য জারি করা শংসাপত্রও গ্রহণ করবে। প্রত্যাশিত সার্ভার ভূমিকা বা নাম পিন করে রাখা অপশনগুলো সেই ফাঁক বন্ধ করে, আর TLS অপশন রেফারেন্স তা করার যাচাই নির্দেশিকাগুলো তালিকাভুক্ত করে।
সার্ভার ও ক্লায়েন্ট শংসাপত্র বিপরীত দিকে নির্দেশ করে
সার্ভারের শংসাপত্রই ক্লায়েন্ট পরীক্ষা করে নিশ্চিত করে যে সে সঠিক প্রান্তে পৌঁছেছে। আপনার ক্লায়েন্ট শংসাপত্র চলে উল্টো দিকে: সার্ভার তা দিয়ে ঠিক করে এই ডিভাইস বা ব্যবহারকারী তার নথিভুক্ত কিনা। একই ফরম্যাট, বিশ্বাসের বিপরীত দিক।
ঠিকানা কোনো পরিচয় নয়। সঠিক IP-তে পৌঁছানো কে উত্তর দিয়েছে তা কিছুই প্রমাণ করে না, তাই হোস্টনাম বা শংসাপত্রের নাম যাচাই প্রোফাইলে থেকেই যায়। অ্যাকাউন্ট পাসওয়ার্ডও চুপচাপ কোনো প্রয়োজনীয় ক্লায়েন্ট শংসাপত্রের জায়গা নেয় না, কারণ দুটোই আলাদা স্তরে যাচাই হয় আর একটি ডিপ্লয়মেন্ট দুটোই দাবি করতে পারে।
ক্লায়েন্ট প্রাইভেট কী হলো সেই অংশ যা ব্যক্তিগত থাকতেই হবে। এটি যদি প্রকাশ পেয়ে থাকে, তাহলে আপনার ল্যাপটপ থেকে ফাইলটি মুছে দিলে সার্ভারে কিছুই বদলায় না, সার্ভার সংশ্লিষ্ট শংসাপত্র গ্রহণ করতেই থাকবে যতক্ষণ না অপারেটর তা প্রত্যাহার করে। অপারেটরকে সেই পরিচয় বদলাতে বা প্রত্যাহার করতে বলা একমাত্র সমাধান যা আপনার সঙ্গে চলে।
একই রকম দেখতে দুটি প্রম্পট যা এক নয়
এনক্রিপ্ট করা আকারে রাখা একটি কী ক্লায়েন্ট ব্যবহার করার আগে একটি পাসফ্রেজ চায়। VPN সেবা আলাদাভাবে অ্যাকাউন্ট পাসওয়ার্ড চাইতে পারে, আর দুটি প্রম্পট কয়েক সেকেন্ডের ব্যবধানে প্রায় একই ভাষায় আসতে পারে। পাসফ্রেজ আপনার ডিস্কের একটি ফাইল রক্ষা করে; পাসওয়ার্ড সার্ভারের কাছে একটি অ্যাকাউন্ট প্রমাণ করে। এ দুটো গুলিয়ে ফেলা মানুষকে এমন পাসওয়ার্ড রিসেটে পাঠায় যা কোনোভাবেই সাহায্য করতে পারে না।
কিছু রিসেট করার আগে প্রম্পটটি পড়ুন। অ্যাকাউন্ট পাসওয়ার্ড রিসেট ভুলে যাওয়া কী-পাসফ্রেজ, প্রত্যাহৃত বা মেয়াদোত্তীর্ণ শংসাপত্রের জন্য কিছুই করে না, আর ব্যর্থতা যখন শংসাপত্র যাচাই, তখন পাসওয়ার্ড রিসেট দুই মিনিটের সমাধানকে একটি সাপোর্ট কেসে পরিণত করে। অভিযোগে যদি বৈধতার তারিখ থাকে, প্রথমে ডিভাইসের ঘড়ি দেখুন, তারপর নাম বলা শংসাপত্রের নিজের সময়সীমা।
শংসাপত্র সত্যিই মেয়াদোত্তীর্ণ হলে প্রতিস্থাপনটি আসতে হবে যিনি তা জারি করেছিলেন তাঁর কাছ থেকেই। অন্যের কী নবায়নের পথ নয়, আর সহকর্মীর কাছ থেকে কার্যকর প্রোফাইল ধার করাও নয়।
একটি পরিচ্ছন্ন হ্যান্ডশেক কী প্রমাণ করে আর কী করে না
সম্পূর্ণ TLS হ্যান্ডশেকে পৌঁছানো মানে হলো কনফিগার করা পরিচয় সম্পর্কটি টিকে গেছে: সার্ভারের শংসাপত্র আপনার CA-তে শৃঙ্খলিত হয়েছে আর আপনার শংসাপত্র গৃহীত হয়েছে। এটি অপারেটরের লগিং নীতি সম্পর্কে কিছুই বলে না, আর টানেল ওঠার পর আপনার অ্যাপ্লিকেশনগুলো কাজ করবে কি না তাও বলে না।
রুট ও DNS সংযোগের পরের স্তর, তাই সফল লগইনের পর অপ্রাপ্য ইন্ট্রানেট হোস্ট একটি সংযোগ সমস্যা, শংসাপত্রের সমস্যা নয়। শংসাপত্র বদলের বদলে সেই স্তরেই কাজ করুন, আর প্রোফাইলটি কাউকে দেওয়ার সময় এর উৎস, এর ব্যক্তিগত উপাদান ও এর পরিচয় যাচাই একসঙ্গে রাখুন।