প্রতি ডিভাইসে একটি সার্টিফিকেট কী-কে ডিভাইসের সঙ্গে আবদ্ধ করে না
প্রতি ডিভাইসে আলাদা সার্টিফিকেট একটি প্রশাসনিক সিদ্ধান্ত, ডিভাইস বাইন্ডিং নয়। বাইন্ডিং নির্ধারণ করে প্রাইভেট কী কোথায় থাকে—কপি করা যায় এমন ফাইল থেকে TPM পর্যন্ত।
আপনি প্রতিটি ল্যাপটপের জন্য আলাদা সার্টিফিকেট দেন, তাই ধরে নেন VPN তাদের আলাদা করতে পারবে। পারবে না। ক্লায়েন্ট সার্টিফিকেট প্রমাণ করে যে যে সংযোগ করে তার কাছে মিলে যাওয়া প্রাইভেট কী আছে, আর কপি করা প্রোফাইলেও সেই কী থাকে।
প্রতি ডিভাইসে সার্টিফিকেট এখনও ভালো ধারণা। এটি শুধু বেশিরভাগ মানুষের প্রত্যাশার চেয়ে ভিন্ন কাজ করে।
ক্লায়েন্ট সার্টিফিকেট আসলে কী প্রমাণ করে
হ্যান্ডশেকের সময় ক্লায়েন্ট তার সার্টিফিকেটের সঙ্গে মেলা প্রাইভেট কী দিয়ে সই করে, এবং সার্ভার সেই সই তার বিশ্বস্ত CA-এর বিপরীতে যাচাই করে। ওই বিনিময়ে মেশিনের কোনো বর্ণনা নেই। সার্টিফিকেট ও কী দুটোই থাকা যেকোনো ডিভাইস অভিন্ন সই তৈরি করে, তাই দ্বিতীয় ল্যাপটপে কপি করা প্রোফাইল হুবহু আসলটির মতো দেখায়। সার্টিফিকেট একটি পরিচয়ের নাম দেয়; হার্ডওয়্যারের নাম দেয় না।
প্রতি ডিভাইসে অনন্যতা এখনও মূল্যবান, কারণ এটি প্রত্যাহারকে নিখুঁত করে। এটি প্রশাসনিক বৈশিষ্ট্য, প্রযুক্তিগত তালা নয়।
কী সংরক্ষণের তিনটি স্তর
প্রথম স্তর ডিস্কে থাকা কী ফাইল। এটি ডিজাইন অনুসারেই বহনযোগ্য, আর বেশিরভাগ OpenVPN প্রোফাইল সেখানেই থাকে।
দ্বিতীয় স্তর হল এমন কী যা অপারেটিং সিস্টেম রপ্তানি-অযোগ্য হিসেবে চিহ্নিত করে। Windows তার সার্টিফিকেট স্টোরে ডিভাইস কী তৈরি করে সাধারণ রপ্তানি অস্বীকার করতে পারে, যা আকস্মিক কপি ঠেকায়। এটি হার্ডওয়্যার-সমর্থিত নয়, এবং মেশিনে যথেষ্ট প্রবেশাধিকার থাকলে এ ধরনের কী উদ্ধার করা যায়, তাই এটি দেয়াল বানানোর বদলে পরিশ্রম বাড়ায়।
তৃতীয় স্তর নিরাপত্তা হার্ডওয়্যারের ভেতরে তৈরি কী: TPM, স্মার্ট কার্ড, SIM বা PIV টোকেন। ওই মডিউলগুলোর নিজের তৈরি কী রপ্তানি করার সার্কিটরি নেই, আর সই মডিউলের ভেতরেই হয়। কী কখনো এমন ফাইল হয় না যা যে কেউ কপি করতে পারে।
| Where the key lives | Copyable | What it buys you |
|---|---|---|
| Key file inside the profile | Trivially | Revocation granularity, nothing more |
| OS non-exportable key store | Hard, not impossible | Stops casual profile sharing |
| TPM or PIV token | No | Binding the server can rely on |
ওই টেবিলটাই তিন সারিতে গোটা যুক্তি।
easy-rsa কী করতে পারে আর কী করতে পারে না
প্রতি ডিভাইসে সার্টিফিকেট দেওয়া সহজ। একই CA-এর বিপরীতে প্রতিটি ডিভাইসের জন্য আলাদা কমন নেম তৈরি করুন, যেমন ./easyrsa build-client-full laptop-a nopass, এবং প্রতিটি ডিভাইসের জন্য পুনরাবৃত্তি করুন। কোন কমন নেম কোন ব্যক্তি ও মেশিনের, তা লিখে রাখুন।
প্রত্যাহারও সমান সরাসরি: ./easyrsa revoke laptop-a, ./easyrsa gen-crl দিয়ে CRL আবার তৈরি করুন, এবং সার্ভার সত্যিই crl-verify-এর মাধ্যমে তা পড়ছে তা নিশ্চিত করুন।
CA যা করতে পারে না তা হলো পরে প্রাইভেট কী কোথায় থাকে তা যাচাই করা। আপনি যদি CA হোস্টে কী তৈরি করে ডিভাইসে কপি করেন, তাহলে ইস্যুর সময়ই দ্বিতীয় কপি বানিয়েছেন। রপ্তানি-অযোগ্য কী ডিভাইসেই তৈরি করতে হবে, নয়তো এমন হার্ডওয়্যারে আমদানি করতে হবে যা তা ছাড়বে না।
কপি করা প্রোফাইলেও যে নিয়ন্ত্রণ টিকে থাকে
ধরে নিন প্রোফাইল কপি করা যাবে এবং সেই অনুযায়ী নকশা করুন। অ্যাকাউন্টকে দ্বিতীয় ফ্যাক্টরের সঙ্গে বাঁধুন যাতে শুধু সার্টিফিকেট যথেষ্ট না হয়। প্রতিটি ডিভাইসকে নিজের নীতি দিন যাতে এক পরিচয়ের পরিধি সীমিত থাকে। আর একই কমন নেম একসঙ্গে দুটি ঠিকানা থেকে সংযোগ করছে কি না খেয়াল করুন, কারণ সংযোগ লগে শেয়ার করা প্রোফাইল ঠিক এমনই দেখায়।
দ্রুত ও নথিভুক্ত প্রত্যাহারই সেই নিয়ন্ত্রণ যা কপি হয়ে যাওয়ার পরও কাজ করে। বাকি সব প্রতিরোধ।
সার্ভার সত্যিই যে দাবির উপর নির্ভর করতে পারে
অনন্যতা আসে CA থেকে। ডিভাইস বাইন্ডিং আসে কী সংরক্ষণ থেকে। কেবল যে হার্ডওয়্যার নিজের কী রপ্তানি করতে পারে না, তা-ই প্রতি ডিভাইসে একটি সার্টিফিকেটকে সবার সম্মত নীতিতে নয়, বরং সার্ভার যে দাবি প্রয়োগ করে তাতে পরিণত করে।