কেন AES-256 কোনো VPN এনক্রিপশন স্যুট বর্ণনা করে না
একটি স্যুট চারটি ভূমিকা পূরণ করে: বাল্ক এনক্রিপশন, অখণ্ডতা, কী প্রতিষ্ঠা এবং পিয়ার প্রমাণীকরণ। একটি সাইফার নাম এর একটি মাত্র, এক স্তরে কভার করে।
VPN কী এনক্রিপশন ব্যবহার করে জিজ্ঞাসা করলে উত্তর সাধারণত এক শব্দে আসে: AES-256, বা ChaCha20, বা হয়তো WireGuard। সেই উত্তর একটি স্তরের একটি উপাদানের নাম বলে, অথচ সংযোগটি যা সত্যিই সুরক্ষিত করে তা হলো চারটি ভিন্ন ভূমিকা পূরণ করা অ্যালগরিদমের একটি সেট। উপাদান ও বিন্যাস গুলিয়ে ফেলা এই আলোচনাগুলোতে সবচেয়ে সাধারণ ভুল, এবং এটি এমন তুলনা তৈরি করে যা মীমাংসা করা যায় না।
একটি সংযোগের ভেতরে চারটি কাজ
বাল্ক এনক্রিপশন ডেটা চ্যানেলের জন্য প্লেইনটেক্সটকে সাইফারটেক্সটে পরিণত করে, এবং এর কী প্রেরণ না করে উদ্ভূত হয়। অখণ্ডতা সুরক্ষা পরিবর্তন শনাক্ত করে, যা একটি পৃথক কাজ, এমনকি যখন একটি নির্মাণ দুটোই করে। কী প্রতিষ্ঠা যৌথ ট্র্যাফিক উপাদান তৈরি করে, এবং পিয়ার প্রমাণীকরণ নির্ধারণ করে অন্য প্রান্তে কে আছে। এর একটি অনুপস্থিত থাকলে সংযোগটি নিরাপদ নয়, বাকি অংশ যতই শক্তিশালী হোক।
কিছু নকশা দুটি ভূমিকাকে এক করে। AES-GCM এবং ChaCha20-Poly1305 প্রমাণিত এনক্রিপশন নির্মাণ, তাই গোপনীয়তা ও অখণ্ডতা একসাথে আসে; AES-CBC নয়, এর নিজস্ব কীসহ আলাদা বার্তা প্রমাণীকরণ কোড দরকার। তাই একটি প্রস্তাবকে স্বাধীন সংখ্যার থলি হিসেবে পড়া জোড়া হিসেবে নকশা করা গুলোকে ভুল পড়ে।
ভূমিকাগুলো ভিন্ন স্তরেও থাকে, তাই একই শব্দ দুটি পণ্যে ভিন্ন অর্থ দিতে পারে। ESP-এর ভেতরে ব্যবহৃত ব্লক সাইফার এবং TLS-এর ভেতরে ব্যবহৃত ব্লক সাইফার ভিন্ন আলোচনায় একই আদিম বস্তু। তাই ধরন ও স্তর না বলে আদিম বস্তু উল্লেখ করা কিছু না বলার চেয়েও খারাপ হতে পারে।
কেন সাইফার নাম প্রায় কিছুই বলে না
AES-256 বাক্যটি এক মুহূর্ত গম্ভীরভাবে নিন: এটি একটি ব্লক সাইফার ও একটি কী আকার চিহ্নিত করে। এটি পরিচালনা পদ্ধতি, অখণ্ডতা দেওয়া হয় কি না, কী কীভাবে প্রতিষ্ঠিত হয়েছে বা পিয়ার কীভাবে প্রমাণিত হয়েছে কিছুই বলে না। দুটি পণ্য দুটোই AES-256 বিজ্ঞাপন দিতে পারে এবং বাকি সব দিকে ভিন্ন হতে পারে, একটি অপ্রমাণিত পদ্ধতি এবং অন্যটি আধুনিক কী বিনিময়সহ AEAD পদ্ধতি ব্যবহার করলেও।
TLS 1.3 এই বিভাজনকে মানদণ্ডে তুলেছে, যা পুরোনো শব্দভাণ্ডার শেখা সবার জন্য উপকারী সংশোধন। এর সাইফার স্যুটগুলো কেবল AEAD ও হ্যাশের নাম নেয়, অন্যদিকে কী বিনিময় গ্রুপ ও স্বাক্ষর অ্যালগরিদম আলাদা প্যারামিটার হিসেবে আলোচিত হয়। তাই TLS 1.3 স্যুটের নাম TLS 1.2 স্যুটের নামের সাথে সমান ভিত্তিতে তুলনীয় নয়, যদিও দুটোই একটি কনফিগারেশন ফাইলের একই ক্ষেত্রে দেখা যায়। যে দুটি স্ট্রিং সরাসরি তুলনা করে সে এমন সিদ্ধান্তে পৌঁছায় যা প্রোটোকল সমর্থন করে না। আলোচিত গ্রুপ ও স্বাক্ষর প্যারামিটারও পড়ুন, নইলে তুলনাটি অসম্পূর্ণ।
WireGuard উল্টো পথ নেয় এবং আলোচনা প্রায় সম্পূর্ণ সরিয়ে দেয়: প্রোটোকল একটি নির্দিষ্ট অ্যালগরিদম সেট নির্ধারণ করে, তাই দুটি বাস্তবায়ন হয় একসাথে কাজ করে, নয়তো করে না। এটি বৈধ নকশা সিদ্ধান্ত, এবং এর অর্থও হলো WireGuard কোন স্যুট আলোচনা করে সেই প্রশ্নের তুলনার যোগ্য উত্তর নেই। আপনি যদি এটি নিরীক্ষা করেন, স্পেসিফিকেশন একবার পড়ুন এবং তারপর আলোচনার বদলে এর চারপাশের কী ব্যবস্থাপনা নিরীক্ষা করুন।
স্তর শব্দভাণ্ডার নির্ধারণ করে
IPsec স্থাপনা দুবার আলোচনা করে: নিয়ন্ত্রণ চ্যানেলের জন্য IKE প্রস্তাব এবং ডেটার জন্য ESP রূপান্তর, এবং দুটোই বৈধভাবে ভিন্ন হতে পারে। প্রথমটি পড়ে ধরে নেওয়া যে এটি দ্বিতীয়টির বর্ণনা দেয়, নিরীক্ষার সময় বিভ্রান্তির সাধারণ উৎস, কারণ কনফিগারেশন ফাইল দুটোই উল্লেখ করে এবং আকর্ষণীয়টি দ্বিতীয়টি।
| Layer | What is negotiated there | What it does not cover |
|---|---|---|
| IKE proposal | Algorithms and groups for the control channel that builds the tunnel | The algorithms protecting the data itself |
| ESP transform | Encryption and integrity for tunneled packets | Peer identity, which authentication already settled |
| TLS handshake | AEAD and hash, plus separately negotiated groups and signatures | Routing, authorization or retention policy |
| WireGuard | Nothing; the algorithm set is fixed by the protocol | Everything above the cryptographic arrangement |
একটি লাইব্রেরিতে উপলব্ধ নাম অন্য একটি ডেটা পথের জন্য স্বয়ংক্রিয়ভাবে বাস্তবায়িত হয় না। তাই আমাদের পণ্য AES-256 সমর্থন করে এই দাবিটি শোনার চেয়ে দুর্বল, এবং তাই আন্তঃকার্যক্ষমতার সমস্যা সাধারণত দুই পক্ষেই সব পুরোনো অ্যালগরিদম চালু করার বদলে রক্ষিত ছেদবিন্দু খুঁজে সমাধান করা হয়।
TLS 1.3 স্পেসিফিকেশন এই বিভাজনের সবচেয়ে স্পষ্ট প্রকাশিত উদাহরণ, কারণ এটি স্যুটকে জোড়া হিসেবে সংজ্ঞায়িত করে এবং বাকিটা নিজস্ব আলোচনায় সরিয়ে দেয়। সেই আকৃতি পরিচিত হলে IPsec প্রস্তাব ও একমাত্র নির্দিষ্ট WireGuard সেট একই ধারণার ভিন্নতা হিসেবে পড়া যায়।
আলোচিত ফলাফল পড়ুন, তারপর থামুন
কনফিগার করা প্রস্তাব দুটি পিয়ার কী বেছে নিয়েছে তার প্রমাণ নয়। জীবন্ত সেশনেই উত্তর থাকে, এবং প্রতিটি মূলধারার বাস্তবায়ন প্যাকেট ক্যাপচার ছাড়াই তা রিপোর্ট করতে পারে।
openssl s_client -connect vpn.example.net:443 -brief
ipsec statusall
wg show
আউটপুটে প্রস্তাবিত তালিকার বদলে নির্বাচিত অ্যালগরিদমগুলো পড়ুন। উত্তরটি নীতি যা চেয়েছিল তার চেয়ে দুর্বল হলে সংশোধন এক পক্ষের প্রস্তাব কনফিগারেশনেই থাকে, এবং আধুনিক বাস্তবায়নে অমিল সাধারণত নীরব অবনমন নয়, ব্যর্থ আলোচনা হিসেবে দেখা দেয়।
তারপর মনে রাখুন স্যুট কী কভার করে না। রুট, অ্যাপ্লিকেশন অনুমতি, লগিং ও সংরক্ষণ নিজস্ব পর্যালোচনাসহ আলাদা সিদ্ধান্ত, এবং সামঞ্জস্যপূর্ণ এনক্রিপশন বিন্যাস সেগুলো সম্পর্কে কিছুই বলে না। সাইফার আলোচনা করা উচিত, কিন্তু এটি বেশিরভাগ মানুষ আসলে যে প্রশ্ন করে তার চেয়ে সংকীর্ণ প্রশ্নের উত্তর দেয়।
শব্দভাণ্ডার নির্ভুল রাখুন, যুক্তি ছোট হবে। স্যুট হলো এক স্তরে ভূমিকার সমষ্টি, সাইফার একটি উপাদান, এবং আলোচিত ফলাফলই একমাত্র জিনিস যা আপনার সত্যিই থাকা সংযোগ বর্ণনা করে। তুলনায় বাকি সব সাজসজ্জা।