VPN-এর জন্য স্ব-স্বাক্ষরিত বনাম পাবলিক CA: আসলে কী বদলায়
স্ব-স্বাক্ষরিত ও পাবলিক সার্টিফিকেট VPN টানেল একইভাবে এনক্রিপ্ট করে। আসল পার্থক্য হলো কে সার্ভারের পক্ষে জামিন দেয় এবং কাকে সেই দাবিতে বিশ্বাস করতে হয়।
আপনি একটি VPN সেটআপের সার্টিফিকেট পৃষ্ঠায় পৌঁছে দেখেন একটি বিনামূল্যের স্ব-স্বাক্ষরিত বিকল্প পাশে একটি অর্থপ্রদেয় পাবলিক CA, আর প্রশ্নটি নিরাপত্তার সিদ্ধান্তের মতো শোনায়। এটি আসলে শ্রোতা বাছাইয়ের সিদ্ধান্ত। দুটি বিকল্পই একই মূল উপাদান দিয়ে টানেল এনক্রিপ্ট করে, এবং ব্যক্তিগত কী ফাঁস হলে দুটিই মূল্যহীন হয়ে যায়। তাদের মধ্যে পার্থক্য হলো কে সার্ভারের পরিচয় সম্পর্কে দাবিটি করে এবং কে সেই দাবি যাচাই করার অবস্থানে আছে।
একটি সার্টিফিকেট দুইটি কাজ করে যা গুলিয়ে ফেলা হয়
একটি সার্টিফিকেট একটি পাবলিক কী-কে একটি নামের সাথে বাঁধে, আর কী-টি এনক্রিপশন ও স্বাক্ষরের কাজ করে। সার্টিফিকেটের স্বাক্ষর একটি আলাদা বিবৃতি: কোনো কর্তৃপক্ষ যাচাই করেছে যে নামটি এই কী-ধারকের। একটি স্ব-স্বাক্ষরিত সার্টিফিকেট নিজের সম্পর্কেই সেই বিবৃতি দেয়, যা কোনো তৃতীয় পক্ষের দাবিই নয়।
পাবলিক ওয়েবসাইটের তৃতীয় পক্ষের সংস্করণ দরকার, কারণ দর্শনার্থীরা কোনো পূর্বসম্পর্ক ছাড়াই আসে এবং ব্রাউজারের ট্রাস্ট স্টোরের উপর নির্ভর করে। VPN ক্লায়েন্ট অপরিচিত নয়। আপনি তাকে CA সার্টিফিকেট দেন, অথবা যে প্রোফাইলটি সে ইনস্টল করে তার ভেতরে সার্ভার সার্টিফিকেট পিন করেন, তাই যাচাই ঠিক আপনার বেছে নেওয়া কর্তৃপক্ষের বিরুদ্ধেই চলে। সেই যাচাইয়ের কোনো অর্থ থাকার জন্য কোনো বাণিজ্যিক CA জড়িত থাকতে হয় না।
ফলে তৈরি সেশনটির শক্তি আসে কী-এর আকার ও সাইফার স্যুট থেকে, স্বাক্ষরকারী থেকে নয়। এজন্যই স্ব-স্বাক্ষরিত সার্টিফিকেটকে "কম এনক্রিপ্টেড" বলা সহজভাবে ভুল; এটি কম ব্যাপকভাবে জামিনদার, যা একটি ভিন্ন বৈশিষ্ট্য।
কোথায় একটি পাবলিক CA তার ফি অর্জন করে
সবচেয়ে স্পষ্ট উদাহরণ প্রশাসন পৃষ্ঠা। যদি সহকর্মী, ঠিকাদার বা প্রস্তুত প্রোফাইল নেই এমন কেউ ব্রাউজার সতর্কতা ছাড়াই VPN সার্ভারের ওয়েব ইন্টারফেস খুলতে হয়, তবে পাবলিকভাবে বিশ্বস্ত সার্টিফিকেট সেই ঘর্ষণ দূর করে। ব্রাউজার ইতিমধ্যেই স্বাক্ষরকারীকে বিশ্বাস করে, তাই আমদানি করার কিছু নেই এবং ব্যাখ্যা করারও কিছু নেই।
সেই সুবিধার খরচ আছে যা কেনার আগে নামানো উচিত। নবায়ন স্বয়ংক্রিয় করতে হবে, নইলে সাইটটি নির্ধারিত সময়ে ভেঙে পড়ে, পাবলিক সার্টিফিকেট সার্টিফিকেট স্বচ্ছতা লগে হোস্টনাম প্রকাশ করে, এবং ইস্যু রেট সীমা খুব উৎসাহী স্ক্রিপ্টকে শাস্তি দেয়। এর কোনোটিই পাবলিক CA এড়ানোর কারণ নয়, তবে এটি পরিচালনামূলক কাজ যা একটি প্রাইভেট CA অন্য জায়গায় সরিয়ে নেয়।
একটি পাবলিক সার্টিফিকেট যা করে না তা হলো আপনার ব্যবহারকারীদের প্রমাণীকরণ। ক্লায়েন্ট পরিচয় একটি পৃথক সিদ্ধান্ত, যা ক্লায়েন্ট সার্টিফিকেট, পাসওয়ার্ড বা দ্বিতীয় ফ্যাক্টর দিয়ে নেওয়া হয়, এবং যে CA সার্ভারে স্বাক্ষর করে সে কে এতে সংযোগ করতে পারে সে সম্পর্কে কিছুই বলে না।
কোথায় একটি প্রাইভেট CA VPN-এ মানানসই
পরিচিত ক্লায়েন্টের একটি সেট সহ প্রাইভেট VPN-এর জন্য নিজের CA চালানোই প্রচলিত পছন্দ। আপনি একবার CA তৈরি করেন, ক্লায়েন্টরা যে নাম ব্যবহার করবে সেই নামে সার্ভার সার্টিফিকেটে স্বাক্ষর করেন, এবং প্রতিটি প্রোফাইলের ভেতরে CA সার্টিফিকেট বিতরণ করেন। তখন প্রতিটি ক্লায়েন্ট আপনার কর্তৃপক্ষের বিরুদ্ধে সার্ভার যাচাই করে, এবং কোনো বাইরের পক্ষ হোস্টনাম জানতে পারে না।
খরচগুলি সত্যিকারের কিন্তু সীমিত। কেউ সরাসরি প্রশাসন পৃষ্ঠা খুললে ব্রাউজার সতর্ক করবে, কারণ আপনার CA-কে বিশ্বাস করার কোনো কারণ ব্রাউজারের নেই। প্রোফাইল বিতরণ অনবোর্ডিংয়ের অংশ হয়ে যায়, আর CA ঘোরানো মানে প্রতিটি ক্লায়েন্ট স্পর্শ করা। দশ বা পঞ্চাশ জন পরিচিত ব্যবহারকারীর সেবার জন্য এগুলি গ্রহণযোগ্য মূল্য, এবং হাজার হাজার ব্যবহারকারীর পাবলিক এন্ডপয়েন্টের জন্য যন্ত্রণাদায়ক।
একটি শর্ত পুরো ব্যবস্থাটিকে বৈধ করে: যাচাই অবশ্যই ঘটতে হবে। সার্টিফিকেট ত্রুটি উপেক্ষা করতে কনফিগার করা ক্লায়েন্ট যে কোনো সার্টিফিকেট উপস্থাপন করা যে কোনো সার্ভার গ্রহণ করে, তাই এনক্রিপশন থাকলেও পরিচয়ের নিশ্চয়তা অদৃশ্য হয়ে যায়। সেই সেটিংটিই বেশিরভাগ "স্ব-স্বাক্ষরিত অনিরাপদ" গল্পের প্রকৃত দুর্বলতা।
CA-এর ব্যক্তিগত কী নির্ধারণ করে পরে আপনি কী করতে পারবেন
বিস্ময় সাধারণত মাস কয়েক পরে আসে, যখন আপনি একটি ডিভাইস যোগ করতে চান। ক্লায়েন্ট সার্টিফিকেট ইস্যু করার জন্য CA-এর ব্যক্তিগত কী দরকার, আর প্রত্যাহার তালিকা তৈরি করার জন্যও। যদি আপনি এমন সার্ভার উত্তরাধিকারে পান যার সার্টিফিকেট ও কী ফাইল আছে কিন্তু CA কী নেই, তাহলে নতুন কিছুতে স্বাক্ষর করতে পারবেন না। আপনার বিকল্প হলো PKI পুনর্নির্মাণ করে প্রতিটি ক্লায়েন্টকে নতুন CA সার্টিফিকেট দেওয়া, অথবা পাসওয়ার্ড প্রমাণীকরণে যাওয়া, যা ভিন্ন নিরাপত্তা মডেল এবং হারানো কিছু ফিরিয়ে আনে না।
দুটি ছোট ফাঁদ একই এলাকায় থাকে। easy-rsa স্ক্রিপ্টগুলি ধরে নেয় আপনি যে ডিরেক্টরিতে সেগুলি আছে সেখানেই দাঁড়িয়ে আছেন, তাই ফাইল অনুপস্থিত ত্রুটি সাধারণত ভাঙা ইনস্টলেশন নয় বরং ভুল স্থান বোঝায়। আর শুধু সার্টিফিকেট-ভিত্তিক নকশা সম্পূর্ণ বৈধ: পূর্ব-ভাগ করা কী ছাড়াই ক্লায়েন্ট সার্টিফিকেট বাধ্যতামূলক করতে পারেন, শর্ত হলো প্রতিটি ক্লায়েন্টের একটি আছে এবং সার্ভার চেইন যাচাই করে।
পুরো দলের জন্য একটি ভাগ করা ক্লায়েন্ট সার্টিফিকেটের বদলে প্রতি ডিভাইসে একটি সার্টিফিকেট ইস্যু করুন। তখন হারানো ল্যাপটপ আপনাকে সবার জন্য পুনরায় ইস্যুর বদলে একটিমাত্র প্রত্যাহারে খরচ করায়।
আপনি কী উত্তরাধিকারে পেয়েছেন তা যাচাই করুন
কোনো পরিবর্তনের পরিকল্পনা করার আগে, আপনার কাছে ইতিমধ্যে থাকা সার্টিফিকেটটি পড়ুন:
$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov 3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK
যদি ইস্যুকারী বিষয়ের সমান হয়, সার্টিফিকেটটি স্ব-স্বাক্ষরিত, যা ত্রুটি নয় বরং নকশার পছন্দ। তারিখগুলি বলে দেয় কখন নবায়ন কারও সমস্যা হয়ে উঠবে, এবং আপনি যে CA পাঠাতে চান তার বিরুদ্ধে সফল যাচাই নিশ্চিত করে যে কোনো ক্লায়েন্ট চেষ্টা করার আগেই চেইনটি কাজ করে।
তারপর শ্রোতা ও বিতরণ অনুযায়ী বাছুন: অপরিচিত ব্রাউজারকে প্রশাসন পৃষ্ঠায় বিশ্বাস করতে হলে পাবলিক CA, প্রতিটি ক্লায়েন্ট আপনার নিয়ন্ত্রিত প্রোফাইল পেলে প্রাইভেট CA। কোনো উত্তরই অন্যটির চেয়ে বেশি এনক্রিপ্টেড নয়।