OpenVPN GUI আমার Windows পাসওয়ার্ড সংরক্ষণ করেছে: এটি কোথায় থাকে
‘আমাকে মনে রাখো’ টিক দিন, আর লগইনটি চলে যায় ব্যবহারকারীর রেজিস্ট্রি, প্রোফাইল ফাইল বা স্ক্রিপ্টে, আর ল্যাপটপ হারালে প্রতিটির আলাদা পরিষ্কার দরকার।
কানেক্ট ডায়ালগে লগইন মনে রাখার একটি চেকবক্স থাকে, আর এটি টিক দিলে অ্যাকাউন্টের বিবরণ ব্যবহারকারীর মাথা থেকে বেরিয়ে মেশিনে চলে যায়। ইন্টারফেস কখনোই বলে না কোথায়। Windows-এ সম্ভাব্য স্থানগুলো হলো বর্তমান ব্যবহারকারীর রেজিস্ট্রি এলাকা, এমন একটি প্রোফাইল ফাইল যাতে লগইন আগেই আছে, এবং কোনো অটোমেশন স্ক্রিপ্ট যা করে। প্রতিটি স্থানের পাঠক আলাদা, ব্যর্থতার ধরন আলাদা আর পরিষ্কারের পদ্ধতিও আলাদা, তাই কাজের প্রশ্ন হলো কোন প্রক্রিয়া গোপন তথ্যটি উদ্ধার করতে পারে এবং কতক্ষণ। ডায়ালগ থেকে চেকবক্সটি অনুসরণ করে বাইরে যান, তারপর ঠিক করুন হারানো ল্যাপটপ আসলে কী প্রকাশ করে।
কানেক্ট ডায়ালগের চেকবক্স দিয়ে শুরু করুন
মনে রাখা মানগুলো প্রতি প্রোফাইল ও প্রতি Windows অ্যাকাউন্টের জন্য ব্যবহারকারীর হাইভে রাখা হয়, কোনো শেয়ার করা মেশিন স্টোরে নয়। তাই একই কম্পিউটারে দ্বিতীয় ব্যবহারকারী কোনো সংরক্ষিত লগইন দেখে না, আর তাই ক্লায়েন্ট পুনরায় ইনস্টল করলেও সংরক্ষিত এন্ট্রি মুছে যায় না।
প্রোফাইল ফাইল নিজে সার্ভার, পোর্ট ও সেটিংস রাখে কিন্তু কোনো গোপন তথ্য রাখে না, তাই মানুষ প্রথমে ভুল বস্তুটিই দেখে। তাই প্রোফাইল মুছে ফেললে সংযোগটি যায়, কিন্তু ক্রেডেনশিয়াল থেকে যায়। পরিষ্কারের সময় এটিই সবচেয়ে সাধারণ বিস্ময়। দুটো বস্তুই সরান, একটি নয়।
রেজিস্ট্রি মান কী প্রকাশ করে
অ্যাকাউন্টের নাম পড়ার উপযোগী টেক্সটে থাকে, তাই ওই ব্যবহারকারী হিসেবে চলা যেকোনো কিছু বিশেষ কোনো কলে এটি ডিকোড করতে পারে। পাসওয়ার্ড আলাদা: এটি Windows DPAPI দিয়ে সিল করা, অ্যাকাউন্টের সঙ্গে এবং ফ্ল্যাগ অনুযায়ী নির্দিষ্ট মেশিনের সঙ্গে বাঁধা। তাই সিল করা ব্লবটি অন্য কম্পিউটারে নিয়ে গিয়ে আবার চালালে ব্যবহারযোগ্য কোনো গোপন তথ্য পাওয়া যায় না।
মানগুলো তালিকা করলে গোপন তথ্য নিজে স্পর্শ না করেই পরিচালনগত প্রশ্নের উত্তর পাওয়া যায়। কোনো এন্ট্রি আছে কি না নিশ্চিত করতে কিছু ডিক্রিপ্ট করতে হয় না। তালিকাটি পরিষ্কারের আগে ও পরের রেকর্ড হিসেবেও কাজ করে।
reg query "HKCU\Software\OpenVPN-GUI\configs" /s
cmdkey /list | findstr /i vpn
reg query "HKCU\Software\OpenVPN-GUI" /s | findstr /i "username password"
দুটি সীমা স্পষ্ট করে বলা দরকার। একই লগইন করা সেশনের ভেতরের কোনো প্রক্রিয়া ক্লায়েন্ট যে আনপ্রোটেক্ট রুটিন ব্যবহার করে সেটিই ডাকতে পারে, তাই সিল করা হলো বিশ্রামে থাকা অবস্থার সুরক্ষা, আপস করা ডেস্কটপের বিরুদ্ধে নয়। আর সম্পূর্ণ ডিস্ক এনক্রিপশন না থাকলে সিল করা মানটি ঠিক ততটাই ব্যক্তিগত যতটা ডিস্কটি।
যখন প্রোফাইল ফাইলে আগেই লগইন থাকে
কিছু পোর্টাল এমন কনফিগ দেয় যাতে অ্যাকাউন্টের নাম ও পাসওয়ার্ড লেখা থাকে, ফলে ক্লায়েন্ট নীরবে সংযোগ করে। তখন ফাইলটি একটি সক্রিয় ক্রেডেনশিয়াল, আর এর প্রতিটি অনুলিপি একই দরজার আরেকটি চাবি।
এমন ফাইলগুলো ব্যাকআপ, চ্যাট থ্রেড ও সিঙ্ক করা ফোল্ডারে জমা হয়, আর মূল ফাইল মুছে গেলেও ওই অনুলিপিগুলোর কোনোটিই কাজ করা থামায় না। স্থানীয় ফাইল সম্পাদনা করলে অন্যগুলোতে কিছুই বদলায় না। অ্যাক্সেস প্রত্যাহার মানে সার্ভারে পাসওয়ার্ড বদলানো, আর তা দ্রুত করা। একটি ল্যাপটপে পরিষ্কার করা আলাদা, ছোট একটি কাজ।
যেখানে প্রম্পট গ্রহণযোগ্য সেখানে সেটিই বেছে নিন এবং ক্লায়েন্টের ক্যাশিং নিয়ন্ত্রণ ব্যবহার করুন। আগেই ভরা প্রোফাইল সত্যিই দরকার হলে এটি সিঙ্ক ফোল্ডারের বাইরে রাখুন এবং কাজ শেষ হলে সরিয়ে ফেলুন।
অটোমেশন গোপন তথ্য অন্য জায়গায় সরায়
স্ক্রিপ্ট আরও দুটি চ্যানেল আনে: প্রক্রিয়ার আর্গুমেন্ট ও কৃত্রিম কী-স্ট্রোক। কমান্ড লাইনে উল্লেখ করা ফাইল এমন সবকিছুর কাছে দৃশ্যমান যা প্রক্রিয়ার আর্গুমেন্ট বা ফাইলের অনুমতি পড়তে পারে, আর কোনো টুলের টাইপ করা পাসওয়ার্ড যায় সেই উইন্ডোতে যার এখন ফোকাস আছে। একটি প্রকাশিত উদাহরণ ক্লায়েন্ট চালু করার আগে ওইভাবেই ডেস্কটপ পাসওয়ার্ড টাইপ করে। সংরক্ষিত এককালীন পাসওয়ার্ডের সিডও একই যত্ন পাওয়ার যোগ্য, কারণ এটি ভবিষ্যতের প্রতিটি কোড তৈরি করতে পারে এবং একবার লগইনের চেয়ে বেশি দিন টেকে।
ভালো প্যাটার্নটি গোপন তথ্য এমন জায়গায় রাখে যেখানে কেবল সার্ভিস অ্যাকাউন্ট পড়তে পারে, ক্লায়েন্টের নথিভুক্ত পুনরায় চেষ্টা ও ক্রেডেনশিয়াল-উৎস অপশনের ওপর নির্ভর করে এবং বিশেষাধিকার প্রম্পটে ইনজেক্ট করা টাইপিং এড়ায়। স্ক্রিপ্টের যদি এলিভেশনের জন্য ডেস্কটপ পাসওয়ার্ড দরকার হয়, তবে সেটি VPN-এর নয়, বিশেষাধিকার নকশার প্রশ্ন।
হারানো ডিভাইসের পরে পরিষ্কার
সবার আগে সার্ভারে অ্যাকাউন্টটি প্রত্যাহার বা নিষ্ক্রিয় করুন, কারণ স্থানীয়ভাবে মুছে ফেলা কারও কাছে থাকা অনুলিপি অকার্যকর করতে পারে না। তারপর মনে রাখা রেজিস্ট্রি মানগুলো মুছুন, প্রোফাইল ও যেকোনো ক্রেডেনশিয়াল ফাইল সরান, এবং শেল ইতিহাস ও স্ক্রিপ্ট ডিরেক্টরিতে পেস্ট করা পাসওয়ার্ড খুঁজুন।
কী সরানো হলো আর কখন অ্যাক্সেস শেষ হলো তা লিখে রাখুন। এই জোড়া ঘটনার পর্যালোচনার একমাত্র প্রশ্নের উত্তর দেয়: ডিভাইস চলে যাওয়ার পর ক্রেডেনশিয়ালের কোনো অনুলিপি কি এখনো কাজ করছিল।