কেন একটি এনক্রিপ্ট করা VPN প্যাকেট আপনার ধারণার চেয়ে কম খরচ করতে পারে
আরেকটি ক্রিপ্টোগ্রাফিক লেবেল মানে আরেকটি কাজের একক নয়। পুরো পথটি তুলনা করুন: AEAD গঠন, CPU সমর্থন, বাফারিং এবং সমঝোতাকৃত ডেটা মোড।
একই গেটওয়েতে দুটি প্রোফাইল বেঞ্চমার্ক করা হয়, একটি এনক্রিপশনসহ আর একটি ছাড়া, এবং এনক্রিপ্ট করা প্রোফাইলটি ধীর নয়। কখনও কখনও এটি দ্রুততর হয়, যা সাধারণত পরীক্ষাটি সঠিকভাবে চালানো হয়েছিল কি না নিয়ে দীর্ঘ বিতর্ক তৈরি করে। ফলাফলটি বিশ্বাসযোগ্য, কারণ একটি প্যাকেটের খরচ কনফিগারেশনের ক্রিপ্টোগ্রাফিক শব্দের সংখ্যা নয়। এটি হলো সেই ক্রিয়াকলাপের সমষ্টি যা বাস্তবায়ন সম্পাদন করে, তার কাছে থাকা হার্ডওয়্যারে, এবং তার বেছে নেওয়া বাফার বিন্যাসে।
লক্ষণ: ধীরটি এনক্রিপ্ট করা প্রোফাইল নয়
ধরুন একটি পুরনো পরীক্ষা AEAD সাইফারকে “এনক্রিপশন ছাড়া” মোডের সাথে তুলনা করে, যেটি তবুও প্রতি প্যাকেটে আলাদা প্রমাণীকরণ কোড গণনা করে। দ্বিতীয় প্রোফাইলটি পেলোডের বিষয়বস্তু লুকায় কিন্তু প্রতি-প্যাকেট হ্যাশ রাখে, এবং সেই হ্যাশের জন্য ত্বরণহীন প্রসেসরে এটি তার চেয়ে বেশি খরচ করতে পারে যে সমন্বিত গঠনটিকে এটি হারানোর কথা ছিল।
কনফিগারেশনের লেবেল বলে “এনক্রিপশন”, এবং বেশিরভাগ তুলনা শুধু লেবেলটিই দেখে। প্যাকেটের পথ ভিন্ন কিছু বলে: একটি প্রোফাইল এমন সম্মিলিত ক্রিয়াকলাপ চালায় যার জন্য CPU-এর নির্দেশনা আছে, আর অন্যটি আলাদা একটি চালায় যার জন্য নেই। কেবল কনফিগারেশন ফাইল পড়ে সেই পার্থক্য কখনও প্রকাশ পাবে না, কারণ দুটি এন্ট্রিই এক লাইনের মতো দেখায়। কেবল সমঝোতাকৃত মোড এবং তার পেছনের কোড পথই ফলাফল ব্যাখ্যা করে।
এটাই সম্পূর্ণ ব্যাখ্যা, এবং এতে কোনও আদিম পদ্ধতি সর্বজনীনভাবে দ্রুততর — এমন দাবির প্রয়োজন নেই। দুটোই দ্রুত হতে পারে, দুটোই ধীর হতে পারে, এবং ক্রমটি নির্ভর করে যন্ত্র ও কোডের উপর।
লেবেল নয়, ক্রিয়াকলাপ গণনা করুন
AEAD গঠন, যেমন RFC 5116-এ বর্ণিত, বাস্তবায়নকে একটি একক ইন্টারফেস দেয় যা সাইফারটেক্সট ও ট্যাগ একসাথে ফেরত দেয়। AES-GCM একটি উদাহরণ: কাউন্টার-মোড এনক্রিপশন গ্যালোয়া প্রমাণীকরণকারীর সাথে সম্মিলিত। ইন্টারফেসটি অখণ্ডতাকে বিনামূল্যে করে না; এটি সমন্বয়টিকে সুসংজ্ঞায়িত করে, আর এটাই বাস্তবায়নকে জোড়াটিকে এক একক হিসেবে অনুকূল করতে দেয়।
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
এগুলি কনফিগারেশন পরামর্শ নয়, প্রক্রিয়াকরণের রূপরেখা। প্রথমটিতে গোপনীয়তা নেই কিন্তু তবুও প্রমাণীকরণে CPU ব্যয় করে, আর ঠিক এ কারণেই “এনক্রিপশন বন্ধ করুন” আর “ক্রিপ্টোগ্রাফিক কাজ বন্ধ করুন” সমার্থক নয়।
দ্বিতীয়টি সস্তা হতে পারে কারণ প্রসেসর উভয় অর্ধের জন্য নির্দেশনা দেয়: AES রাউন্ড এবং গ্যালোয়া ফিল্ডের ব্যবহৃত ক্যারি-লেস গুণ। লাইব্রেরিগুলো স্বাধীন বাফার সমান্তরালে প্রক্রিয়া করে, যা সেই নির্দেশনাগুলোকে মেমরির অপেক্ষার বদলে ব্যস্ত রাখে।
সমঝোতাকৃত মোড আসলে কী সক্রিয় করে
Community OpenVPN-এ, AEAD ডেটা সাইফার মানে auth অপশনটি আর নিজের আলাদা ডেটা-চ্যানেল HMAC যোগ করে না। এনক্রিপশন অপশনের রেফারেন্স সেই পরিধি বর্ণনা করে, আর এ কারণেই টেক্সট ফাইলে একই রকম দেখানো দুটি কনফিগারেশন প্রতি-প্যাকেট কাজে ভিন্ন হতে পারে।
ইচ্ছেতালিকা নয়, সমঝোতাকৃত মোড পড়ুন। অনুমোদিত সাইফার তালিকা ও TLS স্যুটের নাম আপনাকে বলে না পেলোডে কোন ক্রিয়াকলাপ চলে, এবং একটি পুরনো cipher লাইন বর্তমান সংযোগ কী বেছে নিয়েছে তা বর্ণনা না-ও করতে পারে।
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
প্রথম কমান্ড বাইনারিটি যে সাইফার সমর্থন করে তা তালিকাভুক্ত করে, যা সামর্থ্যের তালিকা, সমঝোতাকৃত ফলাফল নয়। দ্বিতীয়টি দেখায় সার্ভার আসলে কী চায়। সংযোগ লগই চূড়ান্ত পছন্দ নিশ্চিত করার জায়গা, কারণ ক্লায়েন্ট সার্ভার যে জিনিস অনুমোদন করে কিন্তু কেউ চায়নি — তাতে ফিরে যেতে পারে।
আপনি আসলে যে কাজ চালান তা মাপুন
একটি ক্রিপ্টোগ্রাফিক মাইক্রোবেঞ্চমার্ক একটি আদিম পদ্ধতিকে তার নিজস্ব শর্তে মাপে। একটি VPN স্থানান্তর বাফারও অনুলিপি করে, থ্রেড বা ইন্টারাপ্ট শিডিউল করে, নীতি পরীক্ষা করে এবং নেটওয়ার্ক অতিক্রম করে। এই অংশগুলোই প্রায়ই প্রভাবশালী হয়, তাই দ্রুততর আদিম পদ্ধতি সবসময় দ্রুততর টানেল তৈরি করে না।
openssl speed -evp aes-256-gcm openssl speed -evp sha1
এই দুটি কমান্ড আপনার সামনের যন্ত্রে আদিম পদ্ধতিগুলোর একটি মোটামুটি স্থানীয় তুলনা দেয়, এবং তারা সৎভাবে মাইক্রোবেঞ্চমার্ক। তারা আপনার টানেলের থ্রুপুট নিয়ে কিছুই বলে না, এবং সেগুলোকে কখনও তা হিসেবে উদ্ধৃত করা উচিত নয়।
তারপর বাকি সব স্থির রেখে যে কাজটি গুরুত্বপূর্ণ তা মাপুন: একই প্রান্তবিন্দু, একই প্যাকেট আকার, একই পরিবহন, একই কম্প্রেশন নীতি। যদি প্রোফাইল পরিবর্তন পরিবহন বা প্রক্রিয়াকরণের অবস্থানও বদলে দেয়, তবে ফলাফলটি ক্রিপ্টোগ্রাফি নয়, সেই বান্ডলটিকে বর্ণনা করে।
লক্ষ্যটিও চোখের সামনে রাখুন। অবশিষ্ট ক্রিপ্টোগ্রাফিক সক্ষমতাসম্পন্ন একটি ডেটা পথ তবুও বিলম্ব-সীমিত হতে পারে, কারণ অ্যাপ্লিকেশনটি রাউন্ড ট্রিপের জন্য অপেক্ষা করে, এবং বাল্ক সক্ষমতার লাভ একটি বাচাল প্রোটোকল ঠিক করে না। সমর্থিত ও নীতি-অনুমোদিত কনফিগারেশনকে সামগ্রিকভাবে মাপুন, এবং “কম বাক্স মানেই দ্রুততর”-কে যেমন অনুমান তেমনই গণ্য করুন। উপকারী প্রশ্নটি এই নয় যে এনক্রিপশনের কোনো খরচ আছে কি না, বরং এই যে খরচটি আপনার সত্যি যত্নের মাপে দেখা যায় কি না।