কীভাবে পাসওয়ার্ড ক্র্যাক করা হয়?
সিনেমায় যেভাবে দেখানো হয়, বাস্তবে অ্যাকাউন্টগুলো সেভাবে হ্যাক হয় না বললেই চলে। বাস্তবে একটি পাসওয়ার্ড সাধারণত তিনটি উপায়ের কোনো একটিতে সংগ্রহ করা হয়। এটি ক্র্যাক করা হয়: সম্ভাব্য পাসওয়ার্ডগুলো একের পর এক পরীক্ষা করে উদ্ধার করা হয়, যা সাধারণত কোনো সেবা থেকে চুরি হওয়া পাসওয়ার্ড হ্যাশের ডেটাবেসের বিপরীতে চালানো হয়। এটি চুরি হয়: কোনো ভুয়া পেজে টাইপ করার মাধ্যমে কিংবা ম্যালওয়্যারের দ্বারা অনুলিপি হয়ে। অথবা এটি পুনরায় ব্যবহৃত হয়: আক্রমণকারীরা আগের কোনো তথ্য ফাঁসের ঘটনা থেকে পাসওয়ার্ড সংগ্রহ করে তা অন্যান্য সেবায় পরীক্ষা করে দেখে, এই আশায় যে ব্যবহারকারী হয়তো সেখানেও একই পাসওয়ার্ড ব্যবহার করেছেন। এই পার্থক্যটি অত্যন্ত গুরুত্বপূর্ণ, কারণ প্রতিটি পদ্ধতির প্রতিরোধের উপায় আলাদা। এই নিবন্ধে প্রধান পদ্ধতিগুলো এবং সেগুলোর প্রতিকারের উপায় বিস্তারিত আলোচনা করা হয়েছে।
তথ্য ফাঁস থেকে পাসওয়ার্ডের পুনঃব্যবহার
প্রতি বছর বহু অনলাইন সেবা সাইবার আক্রমণের শিকার হয় এবং তাদের ব্যবহারকারীদের ডেটাবেস বিক্রির জন্য বা প্রকাশ্যে ছড়িয়ে পড়ে। আক্রমণকারীরা ফাঁস হওয়া সেই ইমেইল ঠিকানা ও পাসওয়ার্ডের জোড়াগুলো স্বয়ংক্রিয়ভাবে ব্যাংক, ইমেইল সেবাদাতা, অনলাইন কেনাকাটার সাইট এবং সামাজিক মাধ্যমে পরীক্ষা করে — এই আক্রমণকে ক্রেডেনশিয়াল স্টাফিং (credential stuffing) বলা হয়। এতে কোনো অনুমানের প্রয়োজন হয় না এবং এটি সফল হওয়ার একটি সহজ কারণ রয়েছে: মানুষ বিভিন্ন জায়গায় একই পাসওয়ার্ড পুনরায় ব্যবহার করে। পাসওয়ার্ড যতই শক্তিশালী হোক না কেন, সর্বত্র একই পাসওয়ার্ড থাকলে তা কোনো কাজেই আসে না।
যা সাহায্য করে: প্রতিটি অ্যাকাউন্টের জন্য একটি আলাদা পাসওয়ার্ড ব্যবহার করা, যাতে কোনো একটি সেবার তথ্য ফাঁস হলেও অন্য কোনো অ্যাকাউন্ট ক্ষতিগ্রস্ত না হয়।
ফিশিং (Phishing)
ফিশিং পেজ হলো কোনো আসল লগইন পেজের হুবহু নকল যা সামান্য ভিন্ন ওয়েব ঠিকানায় চালু থাকে; কোনো জরুরি বার্তার ছলে ইমেইল বা মেসেজের লিঙ্কের মাধ্যমে ব্যবহারকারীকে সেখানে নিয়ে যাওয়া হয়: যেমন ব্লক হওয়া অ্যাকাউন্ট, পার্সেল ডেলিভারি কিংবা ইনভয়েসের নোটিশ। আপনি সেখানে যা কিছু টাইপ করবেন তা সরাসরি আক্রমণকারীর হাতে চলে যায়। পাসওয়ার্ডের দৈর্ঘ্য বা অনির্দেশ্যতা এখানে কোনো কাজে আসে না, কারণ আপনি নিজেই সেটি প্রবেশ করান।
যা সাহায্য করে: বার্তার লিঙ্কের বদলে নিজের বুকমার্ক থেকে ওয়েবসাইট খোলা। পাসওয়ার্ড ম্যানেজার ব্যবহার করা: এটি কেবল সেই ঠিকানাতেই পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পূরণ করার সুবিধা দেয় যার জন্য এটি সংরক্ষিত ছিল; তাই ম্যানেজার যদি পাসওয়ার্ড পূরণের প্রস্তাব না দেয়, তবে হাত দিয়ে টাইপ করার আগে ঠিকানাটি ভালো করে যাচাই করে নিন। এছাড়া টু-ফ্যাক্টর অথেনটিকেশন চালু রাখা, যার ফলে শুধু চুরি হওয়া পাসওয়ার্ড দিয়ে প্রবেশ করা যায় না। তবে এককালীন ওটিপি কোডও পাসওয়ার্ডের মতোই ফিশিংয়ের মাধ্যমে চুরি করা সম্ভব। কিন্তু পাসকি এবং FIDO2 সিকিউরিটি কি এভাবে চুরি করা যায় না, কারণ এগুলো কেবল আসল সাইটের সাথেই তথ্য বিনিময় করে — যে বৈশিষ্ট্যটিকে NIST ফিশিং প্রতিরোধ ক্ষমতা হিসেবে উল্লেখ করে।
ম্যালওয়্যার
ইনফোস্টিলার (infostealers) নামে পরিচিত ক্ষতিকর প্রোগ্রামগুলো ব্রাউজারে সংরক্ষিত পাসওয়ার্ড এবং সেশন কুকি অনুলিপি করে চালু হওয়ার কয়েক সেকেন্ডের মধ্যেই পাঠিয়ে দেয়, আর কিলগার ব্যবহারকারীর টাইপ করা সমস্ত তথ্য রেকর্ড করে রাখে। একটি চুরি হওয়া সেশন কুকি আক্রমণকারীকে কোনো পাসওয়ার্ড বা দ্বিতীয় ধাপের যাচাইকরণ ছাড়াই ইতোমধ্যে লগইন থাকা অ্যাকাউন্টে প্রবেশের সুযোগ দিতে পারে। এই প্রোগ্রামগুলো সাধারণত পাইরেটেড সফটওয়্যার, ভুয়া আপডেট এবং অপ্রত্যাশিত ইমেইল সংযুক্তির মাধ্যমে সিস্টেমে প্রবেশ করে।
যা সাহায্য করে: কেবল আনুষ্ঠানিক বা নির্ভরযোগ্য উৎস থেকে সফটওয়্যার ইনস্টল করা, অপারেটিং সিস্টেম ও ব্রাউজার সবসময় আপডেট রাখা এবং যেকোনো অপ্রত্যাশিত ফাইল বা সংযুক্তিকে ঝুঁকিপূর্ণ মনে করা — যদিও এগুলোর কোনোটিই শতভাগ নিশ্চয়তা নয়। কোনো ডিভাইস আক্রান্ত হলে নিশ্চিতভাবে সুরক্ষিত এমন অন্য কোনো ডিভাইস থেকে ব্যবস্থা নিন: সব পাসওয়ার্ড পরিবর্তন করুন, প্রতিটি সেবার সব সেশন থেকে লগআউট করার অপশন ব্যবহার করুন এবং রিকভারি ইমেইল, ফোন নম্বর ও টু-ফ্যাক্টর সেটিংস এখনো আপনার নিয়ন্ত্রণে আছে কি না তা পরীক্ষা করুন। পুনরায় লগইন করার আগে আক্রান্ত ডিভাইসটি সম্পূর্ণ ভাইরাস ও ম্যালওয়্যারমুক্ত করুন।
লগইন ফর্মে পাসওয়ার্ড অনুমান করা
ওয়েবসাইটে সরাসরি পাসওয়ার্ড চেষ্টা করা বেশ ধীরগতির একটি প্রক্রিয়া: একটি মানসম্মত পরিষেবা কয়েকটি ব্যর্থ চেষ্টার পরই বিলম্ব তৈরি করে, ব্লক করে কিংবা ক্যাপচা দাবি করে। ফলে একক অ্যাকাউন্টে ক্রমাগত আক্রমণ চালানো অকার্যকর হয়ে পড়ে; তাই বহুল প্রচলিত বিপরীত একটি কৌশল নেওয়া হয়: সবচেয়ে সাধারণ কিছু পাসওয়ার্ড — 123456, password, qwerty123 — লাখ লাখ অ্যাকাউন্টে একবার বা দুইবার করে পরীক্ষা করা হয়, যাকে পাসওয়ার্ড স্প্রেয়িং (password spraying) বলা হয়। সুনির্দিষ্ট ব্যক্তিদের ক্ষেত্রে তাদের ব্যক্তিগত তথ্য কাজে লাগিয়ে এভাবেই অনুমান করা হয়: যেমন সন্তান বা পোষা প্রাণীর নাম, জন্মদিন কিংবা প্রিয় খেলার দল, যা সামাজিক যোগাযোগ মাধ্যমে সহজেই পাওয়া যায়।
যা সাহায্য করে: এমন যেকোনো পাসওয়ার্ড ব্যবহার করা যা সাধারণ নয় এবং আপনার ব্যক্তিগত তথ্যের ওপর ভিত্তি করে তৈরি করা হয়নি — দেখুন কীভাবে একটি শক্তিশালী পাসওয়ার্ড তৈরি করবেন।
চুরি হওয়া হ্যাশ থেকে অফলাইনে পাসওয়ার্ড অনুমান করা
একটি সুনির্মিত সেবা কখনোই পাঠযোগ্য আকারে পাসওয়ার্ড সংরক্ষণ করে না। তারা হ্যাশ (hash) সংরক্ষণ করে — যা একটি একমুখী ফাংশনের ফলাফল যেখান থেকে মূল পাসওয়ার্ড পুনরায় বের করা যায় না। এমন কোনো ডেটাবেস ফাঁস হলে আক্রমণকারীরা সম্ভাব্য পাসওয়ার্ডগুলো পরীক্ষা করতে থাকে: তারা নিজেদের হার্ডওয়্যারে সম্ভাব্য পাসওয়ার্ডের হ্যাশ গণনা করে সেগুলোর সাথে তুলনা করে। কোনো লগইন ফর্মের সীমাবদ্ধতা তখন তাদের থামাতে পারে না এবং ক্র্যাকিংয়ের গতি নির্ভর করে সেবাটি কোন হ্যাশ ফাংশন ও কনফিগারেশন বেছে নিয়েছে তার ওপর। MD5-এর মতো দ্রুতগতির ও সেকেলে ফাংশনের ক্ষেত্রে একটি আধুনিক গ্রাফিক্স কার্ড প্রতি সেকেন্ডে কয়েক হাজার কোটি সম্ভাব্য পাসওয়ার্ড পরীক্ষা করতে পারে। পাসওয়ার্ড সংরক্ষণের উদ্দেশ্যে বিশেষভাবে তৈরি ফাংশনগুলো — যেমন Argon2id, কিংবা পুরোনো সিস্টেমে ব্যবহৃত bcrypt — উদ্দেশ্যমূলকভাবেই অনেক ধীরগতির এবং তারা এই গতি বহু গুণ কমিয়ে দেয়, যে কারণে বর্তমান সুপারিশগুলো এদের ব্যবহারের কথা বলে।
অভিধান আক্রমণ (Dictionary attacks)
আক্রমণকারীরা এলোমেলোভাবে অনুমান করে না। ক্র্যাকিং টুলগুলো পূর্বে ফাঁস হওয়া পাসওয়ার্ডের তালিকা এবং বিভিন্ন শব্দ ও নামের অভিধান দিয়ে কাজ শুরু করে; এরপর তারা মানুষের স্বভাবসুলভ অভ্যাসের নিয়মগুলো প্রয়োগ করে: যেমন শুরুতে একটি বড় হাতের অক্ষর, শেষে সাল বা বিস্ময়বোধক চিহ্ন কিংবা অক্ষরের বদলে সাদৃশ্যপূর্ণ প্রতীক বসানো। Summer2024!-এর মতো একটি পাসওয়ার্ড দেখতে জটিল মনে হলেও আক্রমণকারীরা শুরুতেই এটি পরীক্ষা করে দেখে। সল্টিং (Salting) — অর্থাৎ হ্যাশ করার আগে প্রতিটি পাসওয়ার্ডের সাথে একটি অনন্য র্যান্ডম মান যোগ করা — আক্রমণকারীদের রেইনবো টেবিল (rainbow tables) নামক পূর্বগণনাকৃত তালিকা ব্যবহারে বাধা দেয় এবং একই ধরনের সব পাসওয়ার্ড একবারে ভাঙা প্রতিরোধ করে; তবে এটি কোনো অনুমানযোগ্য পাসওয়ার্ডকে কম অনুমানযোগ্য করে তোলে না।
ব্রুট-ফোর্স (Brute force)
অভিধানের সমস্ত শব্দ শেষ হয়ে গেলে একমাত্র উপায় থাকে প্রতিটি সম্ভাব্য সংমিশ্রণ চেষ্টা করা; আর কোনো র্যান্ডম পাসওয়ার্ডের ক্ষেত্রে এর দৈর্ঘ্যই ফলাফল নির্ধারণ করে। একটি উদাহরণ হিসেবে দ্রুতগতির একটি হ্যাশ এবং স্পেস বাদে মুদ্রণযোগ্য 94 টি ASCII অক্ষরের প্রতিটি সমান সম্ভাবনায় ও স্বাধীনভাবে বাছাই করা একটি পাসওয়ার্ড বিবেচনা করুন। 8 অক্ষরের এমন পাসওয়ার্ডের সম্ভাব্য সংখ্যা প্রায় 6 × 1015 টি; প্রতি সেকেন্ডে এক হাজার কোটি (ten billion) অনুমানের গতিতে সবগুলো পরীক্ষা করতে প্রায় এক সপ্তাহ সময় লাগবে এবং গড়ে অর্ধেক সময়েই সঠিক পাসওয়ার্ডটি মিলে যাবে। 12 অক্ষরের ক্ষেত্রে একই হার্ডওয়্যারে সবগুলো পরীক্ষা করতে প্রায় 1.5 মিলিয়ন বছর সময় লাগবে, আর 16 অক্ষরের ক্ষেত্রে এই হিসাব বাস্তব যেকোনো তুলনার বাইরে চলে যায়। দীর্ঘ র্যান্ডম পাসওয়ার্ডের পক্ষে এটিই মূল যুক্তি: এদের বিরুদ্ধে অভিধান প্রায় কোনো কাজে আসে না এবং এই শর্তাবলীতে প্রতিটি সংমিশ্রণ পরীক্ষা করা মোটেই বাস্তবসম্মত নয়। আমাদের শক্তিশালী পাসওয়ার্ড জেনারেটর আপনার ব্রাউজারেই এই পাসওয়ার্ড তৈরি করে এবং প্রতিটির জন্য বিটে এন্ট্রপির হিসাব প্রদর্শন করে।
যা সাহায্য করে: মানুষের পছন্দের ছকমুক্ত দীর্ঘ পাসওয়ার্ড ব্যবহার করা, যা বাস্তবে সফটওয়্যারের সাহায্যে জেনারেট করা বোঝায়। কোনো প্রতিষ্ঠান আপনার পাসওয়ার্ড কীভাবে সংরক্ষণ করবে তার ওপর আপনার নিয়ন্ত্রণ নেই, তাই সবচেয়ে খারাপ পরিস্থিতির কথা বিবেচনা করে এমন পাসওয়ার্ড বেছে নিন যা দ্রুতগতির হ্যাশ ফাংশনে সংরক্ষিত হলেও যেকোনো অনুমান প্রতিহত করতে সক্ষম।
কাঁধের ওপর দিয়ে দেখা এবং সামাজিক প্রকৌশল
সবচেয়ে পুরোনো পদ্ধতিগুলোর জন্য কোনো প্রযুক্তির প্রয়োজন হয় না। পাসওয়ার্ডটি কাঁধের ওপর দিয়ে তাকিয়ে, মনিটরে সাঁটানো স্টিকার থেকে কিংবা ভিডিও কলে স্ক্রিন শেয়ার করার সময় দেখে ফেলা হতে পারে; অথবা আক্রমণকারী নিজেকে কোনো সহকর্মী বা কাস্টমার সাপোর্ট কর্মী পরিচয় দিয়ে সরাসরি চেয়ে নিতে পারে — যাকে সোশ্যাল ইঞ্জিনিয়ারিং বা সামাজিক প্রকৌশল বলা হয়। কোনো বৈধ প্রতিষ্ঠান কখনোই ফোন, ইমেইল বা মেসেজের মাধ্যমে আপনার পাসওয়ার্ড জানতে চাইবে না।
যা সাহায্য করে: কাউকে কখনোই নিজের পাসওয়ার্ড না বলা বা না পাঠানো এবং অন্যের চোখে পড়তে পারে এমন কোনো স্থানে তা লিখে না রাখা।
সারসংক্ষেপ
ভিন্ন ভিন্ন আক্রমণ প্রতিহত করতে আলাদা অভ্যাসের প্রয়োজন হয় এবং তিনটি নিয়মই সবচেয়ে বেশি কার্যকর: মনগড়া পাসওয়ার্ডের বদলে জেনারেটরের সাহায্যে প্রতিটি অ্যাকাউন্টের জন্য আলাদা পাসওয়ার্ড তৈরি করা, সাথে টু-ফ্যাক্টর অথেনটিকেশন যুক্ত রাখা — অথবা সুবিধা থাকলে পাসওয়ার্ডের পরিবর্তে পাসকি ব্যবহার করা। এগুলো সমস্ত ঝুঁকির সমাধান নয় — যেমন সেশন চুরি হওয়া — যে কারণে ম্যালওয়্যার সম্পর্কিত উপরের পরামর্শগুলোও সমানভাবে গুরুত্বপূর্ণ। আরও সহায়ক নিবন্ধ পেতে দেখুন পাসওয়ার্ড সংক্রান্ত উপকরণ।