একই ল্যাপটপে TOTP কি সত্যিই দ্বিতীয় ফ্যাক্টর?
VPN ল্যাপটপের কোড জেনারেটর একটি দখল ফ্যাক্টর, যা একই আপস-সীমার ভেতরে থাকে। আগে সিড ও সেশন অনুসরণ করুন।
এমন একটি VPN ক্লায়েন্টে সাইন ইন করুন যা প্রথমে পাসওয়ার্ড, তারপর ছয় অঙ্কের কোড চায়, আর দুটি অনুরোধ দুটি স্বতন্ত্র বাধার মতো দেখায়। ফ্যাক্টরের ধরন ধরে গণনা করলে সত্যিই তাই: পাসওয়ার্ড হলো যা আপনি জানেন, কোড হলো যা আপনার কাছে আছে। একটি আপস করা ল্যাপটপ কী প্রকাশ করে তা ধরে গণনা করলে, দুটো একটি সীমায় মিলিয়ে যেতে পারে, কারণ আপনার কাছে থাকা জিনিসটি হলো যে মেশিনে আপনি টাইপ করছেন তার একটি ফাইল। এই দুই গণনার মধ্যের ব্যবধানই এই আলোচনার বিষয়।
পাসওয়ার্ড ক্ষেত্র থেকে কোড বাক্স পর্যন্ত একটি লগইন অনুসরণ করুন
লেবেল নয়, ক্রমটি দেখুন। ক্লায়েন্ট পাসওয়ার্ড পাঠায়, সার্ভার উত্তর দেয় দ্বিতীয় প্রমাণ প্রয়োজন, আর ক্লায়েন্ট ছয় বা আট অঙ্কের জন্য একটি ক্ষেত্র খোলে। সেই ক্ষেত্রের পেছনে থাকে একটি জেনারেটর অ্যাপ্লিকেশন, যার কাছে একটি শেয়ার্ড সিক্রেট ও একটি ঘড়ি আছে। এটি সিক্রেট ও বর্তমান সময়-ধাপ থেকে একটি মান গণনা করে, আর সার্ভার সিক্রেটের নিজের কপি থেকে একই মান পুনর্গণনা করে।
দুই পক্ষই একই কী-উপাদান ধরে রাখে। এই প্রতিসাম্যই সেই অংশ যা লোকেরা মিস করে যখন কোডকে সিক্রেট বলে: প্রদানকারীও আপনার কোড তৈরি করতে পারে, তাই সিড যেকোনো একক আউটপুটের চেয়ে বেশি মূল্যবান। ফাঁস হওয়া কোড একবার ব্যবহারযোগ্য মান; যে সিড এটি তৈরি করেছে তা স্থায়ী পরিচয়পত্র, যা প্রতিস্থাপিত না হওয়া পর্যন্ত বৈধ মান তৈরি করে চলে।
অ্যাক্টিভেশন প্রবাহের অন্য অর্ধেক। যে জেনারেটর ডিভাইস পাসকোড, বায়োমেট্রিক অনুরোধ বা এনক্রিপ্টেড কন্টেইনার দিয়ে খোলে, সে দখলের প্রমাণের সঙ্গে আরও কিছু দেয়। যে জেনারেটর এনক্রিপশন ছাড়া চলে এবং অপারেটিং সিস্টেম সেশন দিয়ে খোলে, সে কেবল ফাইলটি দেয়। একই অ্যাপ্লিকেশন নথিভুক্তি কীভাবে হয়েছে তার ওপর নির্ভর করে দুই ব্যবস্থাই দিতে পারে, তাই স্থাপনার সিদ্ধান্ত ওই ধাপেই থাকে, অ্যাপের বিপণন পাতায় নয়।
কোডটি আসলে কী প্রমাণ করে তা ঠিক করুন
মানদণ্ডের ভাষা এখানে অসাধারণ স্পষ্ট, এবং সরাসরি পড়ার যোগ্য। NIST-এর প্রমাণক নির্দেশিকা সফটওয়্যার-ভিত্তিক OTP জেনারেটরকে প্রমাণক হিসেবে তালিকাভুক্ত করে, অ্যাক্টিভেশন ফ্যাক্টরসহ বহু-ফ্যাক্টর OTP থেকে একক-ফ্যাক্টর OTP আলাদা করে, এবং বলে যে OTP প্রমাণীকরণ ফিশিং-প্রতিরোধী নয়। এই তিনটি ধারার প্রত্যেকটি অনুরোধ সম্পর্কে আপনি কী দাবি করতে পারেন তা বদলে দেয়।
ফিশিং-প্রতিরোধী না হওয়াই সবচেয়ে ধারালো দিক। একটি ক্ষেত্রে টাইপ করা কোড অন্য কারও ক্ষেত্রে, বাস্তব সময়ে, যে ব্যক্তিকে তা করতে রাজি করানো হয়েছে তার দ্বারা টাইপ করা যায়। জানালাটি ছোট, যা কার্যকর প্রচেষ্টার সংখ্যা কমায় কিন্তু কৌশলটি বন্ধ করে না। আপনার প্রয়োজনীয়তায় এর প্রতিরোধ থাকলে, জেনারেটর যেখানেই চলুক, OTP ভুল প্রিমিটিভ।
একক-ফ্যাক্টর বনাম বহু-ফ্যাক্টর হলো দ্বিতীয় পার্থক্য। অ্যাক্টিভেশন ধাপ ছাড়া দেখা দেওয়া কোড একটি ফাইলের দখল প্রমাণ করে, আর কিছু নয়, আর ফাইলটি ততটাই শক্তিশালী যতটা শক্তিশালী সেই অ্যাকাউন্ট যা এটি পড়তে পারে। অ্যাক্টিভেশন ফ্যাক্টর যোগ করলে দাবিটি উন্নত হয়, যদিও এটি এখনও লগইনে উপস্থাপিত প্রমাণের বর্ণনা দেয়, যে মেশিন এটি তৈরি করে তার বিচ্ছিন্নতার নয়।
একটি আপস করা ল্যাপটপ কী পর্যন্ত পৌঁছাতে পারে দেখুন
ওয়ার্কস্টেশনে কোড চালানোর ক্ষমতাসম্পন্ন আক্রমণকারী কেবল আপনি যে ক্ষেত্রে টাইপ করছেন তা পড়ায় সীমাবদ্ধ নয়। সফল লগইনের পরে প্রতিষ্ঠিত সেশন সাধারণত একটি টোকেন বা কুকি, আর টোকেন কোনো কোড ছাড়াই অন্য মেশিন থেকে ব্যবহার করা যায়। আপনি যদি এই ক্ষমতার বিরুদ্ধে প্রতিরক্ষা করেন, লগইনে দ্বিতীয় অনুরোধ যোগ করা আক্রমণের ধাপসংখ্যা বদলায়, ফলাফল নয়।
| Arrangement | What it adds at login | What it leaves inside the laptop boundary |
|---|---|---|
| Password plus TOTP app on the same machine | A possession proof the password alone does not supply | The seed, the unlock step and the authenticated session |
| TOTP app on a separate phone | Seed storage outside the workstation | Session cookies, the typed password and any prompt that can be proxied |
| Hardware key with a signed challenge | A per-login signature bound to the origin | Whatever the browser and the workstation are already trusted to do |
তৃতীয় কলামটিকে সৎ কলাম হিসেবে পড়ুন। উপরের প্রতিটি ব্যবস্থা ওয়ার্কস্টেশনের বিশ্বাস-সীমার ভেতরে কিছু রেখে যায়, কারণ সেশন ব্যবহৃত হয় ওখানেই। যা বদলায় তা হলো দীর্ঘস্থায়ী সিক্রেটটি সেই সীমার সঙ্গে ভ্রমণ করে নাকি তার বাইরে থাকে, এবং প্রমাণটি নির্দিষ্ট একটি উৎসের সঙ্গে বাঁধা কি না যাতে নকল পাতা তা রিলে করতে না পারে।
আরও দুটি ছোট বিবরণ একই ছবির অংশ। কোডটি তার গ্রহণ-জানালা জুড়ে বৈধ থাকে, প্রায়ই ত্রিশ সেকেন্ডের সঙ্গে ঘড়ির বিচ্যুতির সহনশীলতা, তাই ধরা পড়া মানটি সেই জানালার ভেতরে পুনরায় চালানো যায়, যদি যাচাইকারী পুনর্ব্যবহার প্রত্যাখ্যান না করে। আর নতুন জেনারেটর ইনস্টল করা ইতিমধ্যে প্রমাণীকৃত সেশন বন্ধ করে না, তাই পুরোনো সেশনটি সেই পরিচয়পত্র পরিবর্তনের চেয়ে বেশি দিন বাঁচে, যা ঘটনাটি নিয়ন্ত্রণ করার কথা ছিল।
জেনারেটর কেবল সেখানেই সরান যেখানে বিচ্ছিন্নতা সাহায্য করে
কোড জেনারেটর ফোনে রাখা একটি নির্দিষ্ট ব্যর্থতার জন্য প্রকৃত উন্নতি: চুরি হওয়া ল্যাপটপ আর দুটি প্রমাণই বহন করে না। এটি ল্যাপটপে সেশন ছিনতাইয়ের জন্য কিছু করে না, এমন ব্যবহারকারীর জন্য কিছু করে না যে ফিশিং পাতায় কোড টাইপ করে, এবং একবার ছাপা হয়ে নোট অ্যাপে ছবি তোলা পুনরুদ্ধার কোডগুলোর জন্যও কিছু করে না।
তাই হাতিয়ার বাছার আগে প্রয়োজনীয়তাটি লিখুন। লক্ষ্য যদি ফাঁস হওয়া পাসওয়ার্ডের বিরুদ্ধে অতিরিক্ত প্রমাণ হয়, সেটি স্পষ্টভাবে বলুন, আর একই ডিভাইসের অ্যাপ তা ইতিমধ্যেই দেয়। লক্ষ্য যদি VPN ওয়ার্কস্টেশনের আপসের বিরুদ্ধে সহনশীলতা হয়, সেই আক্রমণকারী-ক্ষমতার নাম দিন এবং তার জন্য মূল্যায়িত একটি ব্যবস্থা বাছুন, আর ফিশিং প্রয়োজনীয়তাটি অনুমান না করে আলাদাভাবে উল্লেখ করুন।
তারপর পরিচালনামূলক অর্ধেকটি সামলান, যা ঠিক করে এর কোনোটি ঘটনার সংস্পর্শে টিকে থাকবে কি না। ডিভাইস হারানোতে নথিভুক্ত প্রতিস্থাপন পথ দরকার, পরিচয়পত্র আবর্তনে সক্রিয় সেশন বাতিল দরকার, আর নথিভুক্তি উপাদানের সিডের মতোই সুরক্ষা দরকার, কারণ অসুরক্ষিত নথিভুক্তি কপি আক্রমণকারীকে একই ভবিষ্যৎ কোডগুলো ছোট পথে দিয়ে দেয়। এই চারটি বিষয় তালিকাভুক্ত করা একই ডিভাইসের টোকেন ভালো না মূল্যহীন তা নিয়ে তর্কের চেয়ে বেশি কাজে লাগে।