একটি ব্যক্তিগত মোবাইল অ্যাপ VPN-এর পিছনে রাখুন, আর যুক্তিবাদী যে কেউ জিজ্ঞাসা করবেন এর এখনও সার্টিফিকেট পিনিং দরকার কি না। প্রশ্নটি দুটি সমতুল্য নিয়ন্ত্রণের মধ্যে বেছে নেওয়ার মতো শোনায়, অথচ এটি আসলে দুটি আলাদা ফটকের প্রশ্ন। VPN ঠিক করে এই ডিভাইসটি আদৌ পথটি ব্যবহার করতে পারবে কি না; অ্যাপ ঠিক করে সে যে সার্ভারে পৌঁছেছে সেটি তার প্রত্যাশিত সার্ভার কি না। দুটির উত্তর আলাদা করে দিন, নকশা সহজ হয়ে যাবে।

দুটি ফটক, দুটি প্রশ্ন

নেটওয়ার্কে প্রবেশ ক্লায়েন্ট নিয়ে: এই ডিভাইসটি নথিভুক্ত কি না, তার প্রমাণপত্র বৈধ কি না, আর নীতি তাকে এই পথে ঢুকতে দেয় কি না? অ্যাপের বিশ্বাস সার্ভার নিয়ে: সংযোগটি কি অ্যাপের গ্রহণযোগ্য পরিচয়যুক্ত কোনো সেবায় পৌঁছেছে? এই উত্তরগুলো আসে আলাদা সিস্টেম থেকে, ব্যর্থ হয় আলাদা কারণে, আর ঠিক করে আলাদা দল। VPN হ্যান্ডশেক সফল হতে পারে, অথচ অ্যাপটি পিয়ারের পিছনে মেয়াদোত্তীর্ণ সার্টিফিকেটের সঙ্গে কথা বলছে। নিখুঁতভাবে পিন করা অ্যাপেও কেউ পৌঁছাতে পারে না, কারণ ডিভাইসটি কখনও নেটওয়ার্কে আসেনি।

দুটিই একে অপরকে যোগ করে। একটি বাদ দিলে একটি নিয়ন্ত্রণ হারায়; একটি যোগ করলে অন্যটির প্রতিস্থাপন হয় না।

পিন আসলে কী সীমিত করে

একটি পিন অ্যাপের গ্রহণযোগ্য সার্ভার পরিচয়ের সেট সংকুচিত করে, সাধারণত কোনো ভান্ডার যে কোনো শৃঙ্খলের জামিন দেবে তা বিশ্বাস করার বদলে একটি পাবলিক কী বা সার্টিফিকেট হ্যাশের নাম উল্লেখ করে। এটি সাধারণ যাচাইয়ের ওপরে চাপানো একটি সীমাবদ্ধতা, তার প্রতিস্থাপন নয়। সাধারণ যাচাই উত্তর দেয় শৃঙ্খলটি আদৌ বিশ্বাসযোগ্য কি না; পিন উত্তর দেয় এটি সেই শৃঙ্খল কি না যা এই অ্যাপ প্রত্যাশা করে। যে বাস্তবায়ন প্রথম ধাপটি বাদ দেয় সে নিরাপত্তা পায়নি, শুধু নতুনত্ব পেয়েছে।

পিন করা বস্তুটি প্ল্যাটফর্মভেদে আলাদা, তাই শব্দটি একা আপনাকে খুব কম বলে। একটি পণ্যের বিশ্বাস-ভান্ডার থেকে হ্যাশ কপি করে মোবাইল অ্যাপে সেটিকেই একই জিনিস ভাবা একটি সাধারণ ও নীরব ভুল।

প্ল্যাটফর্মে পিনিং একটি কনফিগারেশন, নীতি নয়

Android তার নেটওয়ার্ক নিরাপত্তা কনফিগারেশনের মাধ্যমে পিনিং দেয়, যেখানে একটি পিন সেট পাবলিক কীয়ের ডাইজেস্ট রাখে এবং শৃঙ্খলে অন্তত একটি থাকতেই হয়। ওই ফাইলটি প্রতি অ্যাপে আলাদা এবং সচেতন বিল্ড পরিবর্তন দরকার। iOS-এ সমতুল্য ম্যানিফেস্ট ব্যবস্থা নেই, তাই সেখানে পিনিং থাকে অ্যাপের নিজের বিশ্বাস-মূল্যায়ন কোডে।

যেহেতু ব্যবস্থাটি আলাদা, প্রয়োজনটি প্রতি প্ল্যাটফর্মে লিখতে হবে। যে নীতি প্ল্যাটফর্মের নাম না নিয়ে বলে সার্টিফিকেট পিন করুন, তা বাস্তবায়নযোগ্য নয়।

রোটেশন ঠিক করে পিন টিকে থাকবে কি না

কঠিন অংশটি প্রথম প্রকাশ নয়, তার পরে সার্টিফিকেট নবায়ন। একটি কঠোর বিশ্বাস-নীতি বৈধ নতুন কী-কে ঠিক ততটাই দৃঢ়ভাবে প্রত্যাখ্যান করে যতটা আক্রমণকারীর কী-কে।

দুটি ব্যবস্থা রোটেশনকে টিকিয়ে রাখে: একটি ব্যাকআপ পিন যা দরকার হওয়ার আগেই বিশ্বাসভুক্ত, আর পিন সেটে একটি মেয়াদ শেষের তারিখ যাতে প্রয়োগ বন্ধ হয়, অ্যাপ অচল না হয়ে। দুটিই নীতি-সিদ্ধান্ত, আর মেয়াদটি বিশেষভাবে নিরাপত্তার ইচ্ছাকৃত হ্রাস, নিরীহ কোনো টাইমার নয়। কে অ্যাপের বিল্ড, TLS প্রান্ত এবং সার্টিফিকেট নবায়ন নিয়ন্ত্রণ করে তা নাম দিন, এবং তাদের একটিমাত্র পরিবর্তন প্রক্রিয়ায় আনুন। যদি ওই তিনটি আলাদা দল হয়, পিন একদিন এমন বিভ্রাট ঘটাবে যা কেউ পরিকল্পনা করেনি।

হারানো ডিভাইস তৃতীয় সমস্যা

VPN প্রমাণপত্র প্রত্যাহার করলে অ্যাপের সেশন অগত্যা শেষ হয় না, আর সার্ভার পিন অন্যের হাতে থাকা ফোন নিয়ে আদৌ কিছু করে না। ডিভাইস লক, প্রমাণপত্র সংরক্ষণ, সেশনের আয়ু আর দূরবর্তী প্রত্যাহার আলাদা সিদ্ধান্ত, আলাদা মালিক। এগুলোকে পিনিং আলোচনায় ভাঁজ করলে নিশ্চিতভাবে কোনোটিরই নকশা হবে না।

যে একটি সম্পর্ক আপনি দেখতে পান তার বদলে চারটি পরীক্ষা করুন: অভীষ্ট সার্ভার ও ক্রিয়া, একটি অ্যাকাউন্ট যা প্রত্যাখ্যাত হওয়া উচিত, একটি সার্ভার পরিচয় যা প্রত্যাখ্যাত হওয়া উচিত, আর পরিকল্পিত রোটেশন। একটি কার্যকর VPN কেবল প্রথমটিই অনুশীলন করে। প্রতিটি পরীক্ষা কী প্রমাণ করেছে তা লিখে রাখুন, কারণ পরের ব্যক্তি ধরে নেবেন সবুজ টানেল মানে চারটিই পাস করেছে।

সম্পর্কিত নিবন্ধ