VPN-এ nonce কী, আর কেন পুনর্ব্যবহার টানেল ভাঙে
nonce হলো প্রতি বার্তার জন্য একটি মান, যা একই কী-এর অধীনে কখনো পুনরাবৃত্তি করা যাবে না, এবং এটি সাধারণত খোলাখুলিই ভ্রমণ করে। হাতে সম্পাদনা করাই সেই ভুল যা এড়াতে হবে।
বেশিরভাগ মানুষ VPN প্রোফাইলে nonce শব্দটি দেখে ভাবেন এটি সহকর্মীদের মধ্যে কপি করার আরেকটি শেয়ারড সিক্রেট। তা নয়। nonce এমন একটি মান যা একই কী-এর অধীনে কখনো পুনরাবৃত্তি করা যাবে না, এবং বেশিরভাগ nonce-ভিত্তিক এনক্রিপশনে এটি খোলাখুলিই ভ্রমণ করে। বিভ্রান্তি ক্ষতিহীন থাকে যতক্ষণ না কেউ হাতে এটি সম্পাদনা করে, আর ঠিক সেখানেই আসল ভাঙন শুরু হয়।
nonce আসলে কোথা থেকে আসে
প্রমাণিত এনক্রিপশনের জন্য একটি কী-এর অধীনে এনক্রিপ্ট করা প্রতিটি বার্তার জন্য আলাদা nonce প্রয়োজন। প্রোটোকলগুলো এই প্রয়োজন বিভিন্নভাবে পূরণ করে: একঘেয়ে বাড়তে থাকা কাউন্টার, প্যাকেট শনাক্তকারীর সঙ্গে মেশানো সল্ট, অথবা যথেষ্ট দীর্ঘ এলোমেলো মান। IKEv2 প্রাথমিক বিনিময়ের সময় nonce বিনিময় করে, এবং সেগুলো গোপন নয়, কী ডেরিভেশনের জন্য প্রকাশ্য ইনপুট।
অনন্যতা কাঠামোগত বা সম্ভাব্যতাভিত্তিক হতে পারে। কাউন্টার র্যাপ না হওয়া পর্যন্ত পুনরাবৃত্তি হতে পারে না, তাই প্রোটোকল তার অনেক আগেই কী পুনর্নবীকরণের বিন্দু নির্ধারণ করে। এলোমেলো মান যথেষ্ট বিটের উপর নির্ভর করে যাতে বার্তা সীমার মধ্যে সংঘর্ষ অবিশ্বাস্য হয়, যা ভিন্ন ব্যর্থতার ধরনসহ ভিন্ন যুক্তি। প্রোটোকল ডকুমেন্টেশন বলে কোন পদ্ধতি প্রযোজ্য, এবং উভয়ই কেবল ঘোষিত সীমা মানা হলেই নিরাপদ।
| Design | Where uniqueness comes from | Exhaustion is handled by |
|---|---|---|
| AES-GCM records | An IV, typically a counter | Rekey before the counter wraps |
| ChaCha20-Poly1305 | A 96-bit nonce from a counter or generator | A message limit per key |
| WireGuard | A per-key 64-bit counter | Rekey at a message cap |
| OpenVPN AEAD | Packet identifier plus implicit key material | Rekey on the packet-id limit |
| IKEv2 | Fresh nonces per exchange | A new security association |
পুনর্ব্যবহারের আসল মূল্য
একই কী-এর অধীনে nonce পুনর্ব্যবহার করা সামান্য দক্ষতার প্রশ্ন নয়। GCM-এ একটি IV শেয়ার করা দুটি বার্তা একজন পর্যবেক্ষককে প্রমাণীকরণ কী পুনরুদ্ধার করতে এবং দুটি প্লেইনটেক্সটের এক্সক্লুসিভ-অর গণনা করতে দেয়। স্ট্রিম-ভিত্তিক গঠনগুলো একইভাবে কীস্ট্রিম পুনর্ব্যবহার করে, যা সাইফারটেক্সটকে গোপনীয়তার বদলে ধাঁধায় পরিণত করে।
এই কারণেই বাস্তবায়নগুলো কাউন্টার র্যাপ হওয়ার আগেই কী পুনর্নবীকরণ করে, এবং এই কারণেই তাদের অবস্থা অনিশ্চিত হলে তারা চালিয়ে যাওয়ার বদলে থেমে যায়। একটি রিবুট যা কাউন্টার রিসেট করে যখন সহকর্মী এখনো পুরোনো কী ধরে রাখে, অথবা সেশনের মাঝখানে নেওয়া স্ন্যাপশট থেকে পুনরুদ্ধার করা ভার্চুয়াল মেশিন—এটিই সেই পরিস্থিতি যা প্রতিরোধ করতে সীমাগুলো বিদ্যমান। কোনো আক্রমণকারীর প্রয়োজন নেই; সাধারণ কার্যক্রমই যথেষ্ট।
কেন হাতে সম্পাদনা ভুল সমাধান
কাউন্টার, সল্ট ও প্যাকেট শনাক্তকারী উভয় প্রান্তের শেয়ার করা স্টেট মেশিন। এক পাশ বদলালে অন্যপাশ অসিঙ্ক্রোনাইজ হয়, এবং টানেল এমনভাবে ব্যর্থ হয় যা রাউটিং সমস্যার মতো দেখায়। সমর্থিত লিভার হলো নতুন কী বিনিময়, যা একসঙ্গে উভয় প্রান্তের অবস্থা রিসেট করে।
পাসওয়ার্ড ও nonce-এরও ভিন্ন ভূমিকা। পাসওয়ার্ড হলো কী ডেরিভেশনের গোপন ইনপুট; nonce হলো প্রতি বার্তার প্রকাশ্য ইনপুট। nonce লেবেলযুক্ত একটি প্রোফাইল ফিল্ড যা দীর্ঘ গোপন মান চায়, সেটি সাধারণত ভিন্ন নামে একটি স্ট্যাটিক কী বা পূর্ব-শেয়ারড সিক্রেট, তাই অনুমান না করে ওই ফিল্ডের ডকুমেন্টেশন পড়ুন।
যখন কোনো নিরাপত্তা পরামর্শ nonce হ্যান্ডলিং নিয়ে হয়, সমাধান হলো রক্ষণাবেক্ষণকারীর সংশোধিত সংস্করণ, ভিন্ন সাইফার বা ছোট কী নয়। nonce শব্দটি এড়াতে সাইফার বদলানো সমস্যাটি সমাধান না করে সরিয়ে ফেলে।
অনুমান না করে সতর্কতা পড়া
কাউন্টার বা nonce নিয়ে লগের একটি লাইন সাধারণত আক্রমণের বদলে হারানো অবস্থা বর্ণনা করে। দেখুন একজন সহকর্মী রিস্টার্ট হয়েছে কি না, ক্লোন করা ভার্চুয়াল মেশিন একই পরিচয় পুনর্ব্যবহার করেছে কি না, এবং দুই প্রান্ত কী পুনর্নবীকরণ সেটিংসে একমত কি না। তারপর নতুন সেশন তৈরি করুন এবং বার্তাটি ফিরে আসে কি না দেখুন।
নির্ণয়কে অসংলগ্ন ব্যর্থতা থেকে আলাদা রাখুন। যে পৃষ্ঠা লোড হয় না, বা যে ক্রেডেনশিয়াল প্রম্পট লুপে ঘোরে, তা nonce পুনর্ব্যবহারের প্রমাণ নয়, এবং সেটিকে তা ভাবলে আপনাকে ক্রিপ্টোগ্রাফিক স্তরে পাঠায় যখন সমস্যা তার উপরে।
সাধারণ ব্যবহারে নিরাপদ নিয়মটি সংক্ষিপ্ত: nonce বাস্তবায়নকে পরিচালনা করতে দিন, দুই প্রান্ত সমর্থিত সংস্করণে রাখুন, এবং যেকোনো স্টেট রিসেটকে মান সম্পাদনার বদলে কী পুনর্নবীকরণের কারণ হিসেবে দেখুন। প্রোফাইল ফিল্ড বিক্রেতার ডকুমেন্টেশনে না থাকলে তার জন্য মান উদ্ভাবন করবেন না। টানেল ঠিক করা শুরু হয় আপনি কোন স্তর দেখছেন তা জানা থেকে।