IPsec, OpenVPN ও WireGuard-এ আগে থেকে ভাগ করা চাবি কী করে
একটি ভাগ করা গোপন তথ্য অন্য পক্ষকে প্রমাণীকরণ করতে পারে বা সুরক্ষার একটি স্তর যোগ করতে পারে, এবং এর ভূমিকা প্রোটোকল অনুযায়ী বদলায়। এটিকে ব্যবহারকারীর পাসওয়ার্ডের সঙ্গে গুলিয়ে ফেলবেন না।
আগে থেকে ভাগ করা চাবি শব্দগুলো IPsec, OpenVPN ও WireGuard-এর নথিতে আসে, কিন্তু তিনটি আলাদা বস্তু বোঝায়। একটি প্রমাণীকরণের গোপন তথ্য, আরেকটি একটি নিয়ন্ত্রণ চ্যানেল রক্ষা করে, এবং তৃতীয়টি এমন হ্যান্ডশেকে উপাদান যোগ করে যার ইতিমধ্যে পরিচয় আছে। এগুলোকে বিনিময়যোগ্য ভাবলে এমন সংযোগ তৈরি হয় যা কেউ প্রত্যাশা করেনি এমন ধাপে ব্যর্থ হয়। মান কপি করার আগে পড়ুন ওই প্রোটোকলে এই ক্ষেত্রটি কী করে।
তিন প্রোটোকল, তিন অর্থ
প্রতিটি প্রোটোকল চাবির কাজ নিজের স্পেসিফিকেশনে নির্ধারণ করে এবং এই কাজগুলো একে অপরকে ছাপিয়ে যায় না। প্রমাণীকরণের গোপন তথ্য প্রমাণ করে যে দুই পক্ষ একই মান জানে। নিয়ন্ত্রণ চ্যানেলের চাবি পরের আলোচনাকে রক্ষা করে। হ্যান্ডশেকের সংযোজন চাবির সময়সূচি বদলায়, কিন্তু পক্ষ কারা তা বদলায় না।
এই ভূমিকাগুলোর কোনোটিই মানুষকে প্রমাণীকরণ করে না, এবং সবচেয়ে বেশি সময় নষ্ট হয় এই বিভ্রান্তিতে। আগে থেকে ভাগ করা চাবি বিনিময়ের আগে ডিভাইস বা গেটওয়েতে বসানো হয়, তাই প্রতিটি ধারক অন্য পক্ষের কাছে একই রকম দেখায়। এই বৈশিষ্ট্য দুই রাউটারের মধ্যে সংযোগের জন্য সুবিধা এবং নামযুক্ত কর্মচারীসহ দূরবর্তী অ্যাক্সেস সেবার জন্য ঝুঁকি। অ্যাকাউন্টের ক্রেডেনশিয়াল ও ক্রিপ্টোগ্রাফিক গোপন তথ্য স্থাপনা বর্ণনা করা নথির আলাদা কলামে রাখুন।
IPsec ও OpenVPN শব্দটি ভিন্নভাবে ব্যবহার করে
IKEv2 কোনো পক্ষকে সার্টিফিকেটের বদলে আগে থেকে ভাগ করা গোপন তথ্য দিয়ে প্রমাণীকরণ করতে পারে, এবং মান দুই প্রান্তে মিলতে হবে। যেহেতু একই গোপন তথ্য সাধারণত পক্ষগুলোর একটি দলের জন্য সেট করা হয়, যেকোনো ধারক অন্যদের ছদ্মবেশ নিতে পারে, এবং বিনিময় কখনো না থাকা পরিচয় চাবি থেকে সামনের দিকের গোপনীয়তা পায় না।
OpenVPN-এর tls-auth ও tls-crypt অপশন নিয়ন্ত্রণ চ্যানেলে একটি স্থির চাবি যুক্ত করে, হয় HMAC স্বাক্ষর যোগ করে নয়তো আলোচনাটাই এনক্রিপ্ট করে। ওই চাবি ব্যবহারকারীর পাসওয়ার্ড নয় এবং ক্লায়েন্ট সার্টিফিকেটের জায়গা নেয় না। দুটির পার্থক্য নবায়নের সময় গুরুত্বপূর্ণ, যখন পাসওয়ার্ড বদলালে নিয়ন্ত্রণ চ্যানেলের চাবি অপরিবর্তিত থাকে।
WireGuard-এর PSK যোগ করে, পরিচয় দেয় না
WireGuard-এর পক্ষগুলোর কাছে ইতিমধ্যে Curve25519-এর পাবলিক ও প্রাইভেট চাবি আছে এবং হ্যান্ডশেক এই পরিচয়গুলো প্রমাণীকরণ করে। ঐচ্ছিক আগে থেকে ভাগ করা চাবি শৃঙ্খল-চাবিতে মেশানো হয় এবং পাবলিক চাবির বিনিময়ের উপরে সমমিত উপাদান যোগ করে।
এটি নিজে থেকে কোনো পরিচয় বা ব্যবহারকারী অ্যাকাউন্ট দেয় না, তাই অপারেটর দুই ধারককে তাদের PSK দিয়ে আলাদা করতে পারে না। দুই প্রান্তে একই মান থাকতে হবে, নয়তো হ্যান্ডশেক কোনো সহায়ক ত্রুটি বার্তা ছাড়াই ব্যর্থ হয়। তাই ঘূর্ণন দুই পক্ষের জন্য একসঙ্গে পরিকল্পনা করতে হয়, একটি ফাইল সম্পাদনার মতো নয়।
বিতরণ, ঘূর্ণন ও অপসারণ যাচাই করুন
বিতরণ হলো এমন প্রতিটি নকশার দুর্বল বিন্দু যা একটি গোপন তথ্য অনেক জায়গায় ব্যবহার করে। যে মান চ্যাট উইন্ডোতে আটকানো হয়, ভাণ্ডারে রাখা হয় বা পরিবেশের মধ্যে পুনরায় ব্যবহার হয়, তা এমন কপি জমায় যা কেউ গণনা করতে পারে না, এবং প্রতিটি কপি চুপচাপ ক্ষতির পরিধি বাড়ায়।
Base64 লেখা এনক্রিপশন নয়। একই ফোল্ডারে পাবলিক সার্টিফিকেটের পাশে রাখা গোপন তথ্য এখনো খোলা লেখায় গোপন তথ্য।
openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null
সময়সূচি অনুযায়ী এবং যেকোনো সন্দেহজনক প্রকাশের পরে ঘূর্ণন করুন, এবং পুরোনো মান বাতিল করার আগে প্রতিটি লক্ষ্যভুক্ত পক্ষ হালনাগাদ করুন। তারপর সংযোগটি দুই প্রান্ত থেকেই পরীক্ষা করুন, কারণ না মেলা চাবি হ্যান্ডশেকে ব্যর্থ হয় এবং ঠিক ফায়ারওয়ালের সমস্যার মতো দেখায়।
লিখে রাখুন কোন গোপন তথ্য কোন ধাপ রক্ষা করে, যাতে পাসওয়ার্ড রিসেট কখনো ক্রিপ্টোগ্রাফিক চাবির নবায়নের সঙ্গে গুলিয়ে না যায়। ওই একটি লাইন প্রতিবার এক ঘণ্টা বাঁচায় যখন কেউ স্থাপনা পর্যালোচনা করে।