কম্পিউটার সিকিউরিটির প্রাথমিক আলোচনা
বাংলাদেশ কাউন্টার ইন্টেলিজেন্সের দুর্ধর্ষ এজেন্ট মাসুদ রানার এবারের এসাইনমেন্ট আরাকানের আকিয়াব এলাকায়। বর্মী সীমান্ত বাহিনী নাসাকা নাফ নদীর তীরে বেশ কয়েকটা ক্যাম্প বসিয়েছে, আর স্থানীয় রোহিঙ্গাদের উপরে বাড়িয়ে দিয়েছে অত্যাচার। মেজর জেনারেল রাহাত খানের নির্দেশে রানা তাই এসেছে তদন্তে। মগাচীফ উ লু এর ছদ্মবেশে কয়েকদিন ধরে পর্যবেক্ষণ করছে সবকিছু। আর গতকাল সুযোগ বুঝে নাসাকার গোপন আক্রমণ পরিকল্প্নার একটা কপিও যোগাড় করে ফেলেছে।
সমস্যাটা হলো, এই পরিকল্পনা সমেত রানার রিপোর্টটা পাঠাতে হবে বাংলাদেশে, মেজর জেনারেল রাহাত খানের কাছে। নাসাকা যাবতীয় ইমেইল ও ফোন সিস্টেমে আড়ি পেতে বসে আছে। ওয়ারলেসে রিপোর্ট পাঠানো চলে, কিন্তু সেখানো আড়ি পেতে আছে নাসাকার কুখ্যাত কর্নেল নি রও। রানার চিন্তা আসলে ৩ জায়গায় – (১) রিপোর্টটা কীভাবে পাঠানো যায় গোপনে, যাতে আড়ি পেতে নি রও এর লোকজন শুনে ফেললে বা ইমেইল পড়ে ফেললেও কিছুই বুঝবেনা সাংকেতিক কথাবার্ত্য; (২) কোনোভাবে রানার মেসেজটা নি রও এর হাতে পড়ে গেলেও মেসেজের কোনো অংশ যাতে পরিবর্তন করে ভুয়া তথ্য ঢোকাতে না পারে; এবং (৩) রেডিও জ্যাম করে বা ইন্টারনেটের লাইন কাটিয়ে দিয়ে রানার মেসেজ পাঠানোর সিস্টেমটাই যাতে নি রও ধ্বসিয়ে দিতে না পারে।
উপরের এই ঘটনাটি কাল্পনিক, কিন্তু এই ব্যাপারটি যেকোন যুদ্ধে বা অন্য সময়ে চিরন্তন কাল ধরেই ঘটে আসছে। অর্থাত তথ্য এবং অন্যান্য বিষয়ের নিরাপত্তার উপরে আক্রমণ চলছে – সেই মানব সভ্যতার ইতিহাসের একেবারে প্রথম থেকেই। কম্পিউটার সিকিউরিটি এই হাজার বছরের পুরানো সব সমস্যাবলীরই আধুনিক রূপ।
হাজার বছরের পুরানো সব সিকিউরিটি সমস্যাগুলো মাত্রা ছাড়িয়ে গেছে আধুনিক বিশ্বে, আর শুরু হয়েছে নতুন সব সমস্যা। আমাদের জীবন আজ কম্পিউটার ও ইন্টারনেটের উপরে খুব বেশি নির্ভরশীল। কিন্তু এর ফলে সিকিউরিটির সমস্যাও বহুমাত্রায় বেড়েছে — আগে আপনার তথ্য বা সম্পদ কেবল স্থানীয় অপরাধী বা হানাদারদের হাতেই বিপন্ন হতো। আর এখন ইন্টারনেটের মাধ্যমে পৃথিবীর অপর প্রান্তের কোনো অপরাধী আপনার তথ্যের উপরে আক্রমণ চালাতে পারে।
আজকের এই পাঠে আমরা শিখবো কম্পিউটার সিকিউরিটির তিনটি মূল স্তম্ভের কথা। অর্থাৎ কম্পিউটার সিকিউরিটির মূল তিনটি বিষয় বা উদ্দেশ্য কী, তা সম্পর্কে ধারণা অর্জন করবো।
CIA
সিকিউরিটির এই ৩টি স্তম্ভের কথা সহজে মনে রাখতে পারেন CIA এই শব্দটির মাধ্যমে। না, এখানে মার্কিন গোয়েন্দা সংস্থা সেন্ট্রাল ইন্টেলিজেন্স এজেন্সি বোঝানো হচ্ছেনা, বরং বোঝানো হচ্ছে -
CIA = Confidentiality, Integrity, Availability
এবার দেখা যাক এই তিনটি বিষয় বলতে আসলে কী বোঝা যায় …
(১) Confidentiality বা গোপনীয়তা
কন্ফিডেশিয়ালিটি বা গোপনীয়তার অর্থ হলো তথ্য বা অন্য কিছুকে গোপন রাখা, এমনভাবে, যাতে অনাকাঙ্ক্ষিত ব্যক্তিরা সেটার অর্থ বুঝতে না পারে। পোস্টের শুরুর উদাহরণের কথাই ধরুন। মাসুদ রানা বার্মা থেকে বাংলাদেশে গোপন মেসেজ পাঠাতে চান। মেসেজটি যদি সরাসরি পাঠান, তাহলে বর্মী কর্নেল নি রও এর লোকজন সেই মেসেজটা বার্মা থেকে বাংলাদেশে আসার পথে পড়ে ফেলতে পারে (বা ফোনে আড়ি পেতে শুনে ফেলতে পারে)। এই সমস্যা এড়াতে কী করতে পারে রানা? মেসেজটাকে লিখতে হবে সাংকেতিক ভাষায়। প্রতিটি অক্ষরকে এমনভাবে পাল্টাতে হবে, যাতে সেটা আসলে কোন অক্ষর ছিলো, তা যাতে বোঝা না যায়, কিন্তু প্রাপক মেজর জেনারেল রাহাত খান আবার যেনো উল্টা কাজটা করতে পারেন, মানে সাংকেতিক ভাষা থেকে আসল লেখায় ফেরত যেতে পারেন।
পুরা ব্যাপারটাকে চিন্তা করতে পারেন অনেকটা আপনার গোপন চিঠিকে একটা বাক্সে ভরে তালা দিয়ে দেয়ার মতো, যাতে বাক্স কারো দখলে আসলেও তথ্য্টা বের করতে না পারে, কিন্তু আপনার তথ্য যার জন্য সে যেন সেই তালাটা খুলে চিঠিটা বের করে নিতে পারে, এরকম।
কনফিডেন্সিয়ালিটি বা গোপনীয়তা রক্ষার নানা কৌশল আছে, সেটা নিয়ে এই কোর্সে আমরা পরে একটা পুরা লেকচার রাখবো। এটুকুই বলে রাখি, কম্পিউটার বা ইন্টারনেট ব্যবহার করতে গেলে অনেক সময় এনক্রিপশন (Encryption), কি (key), বা এই রকমের যেসব শব্দের সম্মুখীন হয়েছেন হয়তো, সেটা এই কনফিডেন্সিয়ালিটি নিশ্চিত করারই নানা পদ্ধতির অংশ।
(২) Integrity বা শুদ্ধতা
ইন্টেগ্রিটি বলতে বোঝায় কোনো তথ্য বা কোনো সিস্টেমের কোনো অংশকে কেউ অনাকাঙ্ক্ষিতভাবে বিকৃত করেছে কি না, তা যাচাই করা। নানা কারণে আক্রমণকারীরা তথ্যে পরিবর্তন আনতে পারে। তথ্যের ইন্টেগ্রিটি রক্ষার্থে সেটাকে এমনভাবে লেখা হতে পারে যাতে পরিবর্তন আনা সম্ভব না। অথবা এমন কোনো ব্যবস্থা নেয়া হতে পারে, যাতে মেসেজের প্রাপক যাচাই করে নিতে পারেন, মাঝখান দিয়ে কেউ কিছু পাল্টে ফেলেছে কি না।
মাসুদ রানার সমস্যায় এই ব্যাপারটা দেখতে পারি। রানা যদি একটা চিঠি কারো হাতে পাঠায়, খুব ভাল সম্ভাবনা আছে মাঝপথে নাসাকার নি রও এর লোকদের খপরে সেটা পড়বে, আর তারা কৌশলে চিঠির মধ্যে ভুলভাল তথ্য ঢোকানো, কিংবা কিছু অংশ মুছে ফেলার চেষ্টা করতে পারে। রানা তাই এমনভাবে চিঠিটা লিখতে পারে যাতে সেটার কোনো পরিবর্তন আনা না যায়। অথবা সিল গালা করে দিতে পারে চিঠির খামটা, যাতে রাহাত খান চিঠিটা পাওয়ার পরে সিলটা ভাঙা নাকি তা দেখে বুঝতে পারেন কেউ এটা পড়ে পাল্টেছে কি না। ডেটা ইন্টেগ্রিটি রক্ষার নানা কৌশল সম্পর্কে আমরা সামনের একটি লেকচারে অনেক বিস্তারিত জানবো।
(৩) Availability বা প্রাপ্যতা
এভেইলিবিলিটি বা প্রাপ্যটা হলো কোনো সার্ভিস বা সিস্টেমের চালু থাকাটা বা কোনো তথ্যের প্রাপ্যতা সুনিশ্চিত করা। অপরাধীরা চাইতে পারে, সিস্টেমের কোনো অংশকে ব্য্স্ত রেখে সিস্টেমকে ধীর করে দেয়া অথবা পুরাপুরি বন্ধ করে দেয়া। যেমন ধরাযাক, পাড়ার দারোয়ানকে যদি ব্যস্ত রাখা যায়, বা হাত পা বেঁধে বাথরুমে আটকে ফেলে রাখা যায়, তাহলে আরাম করে চোরেরা পুরা পাড়ায় ডাকাতি করতে পারে।
মাসুদ রানার উদাহরণে ফিরে যাই – কর্নেল নি রও এর লোকেরা রানার মেসেজটা ঢাকায় পৌছানো বন্ধ করতে হলে বার্মার ফোন সিস্টেম অচল করে রাখতে পারে, অথবা ওয়ারলেস সিস্টেম জ্যাম করে রাখতে পারে্ এমনকি হাতে হাতে তথ্য পৌছানো এড়াতে সীমান্তে অবরোধ করে রাখতে পারে।
—
আজকের আলোচনা এখানেই শেষ। Confidentiality, Integrity, এবং Availability এই ৩টি মূল স্তম্ভের উপরেই দাঁড়িয়ে আছে কম্পিউটার সিকিউরিটি। আজ থেকে আপনাকে যদি কেউ জিজ্ঞেস করে কম্পিউটার সিকিউরিটি কাকে বলে, এক কথায় বলে দিতে পারেন এটা হলো কম্পিউটারের তথ্য ও সিস্টেমের নানা অংশের Confidentiality, Integrity, এবং Availability এই তিনটি জিনিষ নিশ্চিত করাই হলো কম্পিউটার সিকিউরিটির মূল উদ্দেশ্য। আর এই উদ্দেশ্য সাধন করার জন্যই ব্যবহৃত হয় নানা ধরণের পদ্ধতি, এলগরিদম, এবং এপ্লিকেশন।
এনক্রিপশন বা তথ্যগুপ্তিবিদ্যা
ভ্যালেন্টাইন্স ডে উপলক্ষ্যে করিম অনেক রাত জেগে আর শরৎচন্দ্রের উপন্যাস গিলে খেয়ে খোদেজার জন্য বিশাল একটা প্রেমপত্র লিখেছে। পাড়াতো ছোট ভাই গনেশের হাত দিয়ে ওটা খোদেজার কাছে পাঠানো দরকার। কিন্তু সমস্যা হলো খোদেজার বড় ভাই পাড়ার মাস্তান কালা শওকত, গনেশকে দেখতে পেলেই মারধোর করে চিঠিটা হাত করে পড়ে করিমকে আর আস্ত রাখবে না। তাহলে উপায়? কীভাবে করিম খোদেজাকে চিঠিটা পাঠাবে, যাতে করে শওকতের হাতে খামটা পড়লেও শওকত কিছুই বুঝতে না পারে?
প্রথম পাঠে আমরা দেখেছিলাম কম্পিউটার নিরাপত্তার ৩ মূল স্তম্ভের একটি হলোConfidentiality বা গোপনীয়তা। এই গোপনীয়তার উদ্দেশ্য হলো তথ্যকে এমনভাবে পরিবর্তন করা, যাতে কেবলমাত্র কাঙ্ক্ষিত ব্যক্তিরাই তথ্যটি দেখতে পারেন। গোপনীয়তা রক্ষা করার কয়েকটি পদ্ধতি আছে, তার মধ্যে সবচেয়ে বেশি চালু পদ্ধতিটি হলো এনক্রিপশন (Encryption)।
Encryption বা তথ্যগুপ্তিকরণ হলো তথ্যকে দুর্বোধ্য করে রাখা। এরকম তথ্যকে দুর্বোধ্য করে ফেলা, আর পরে সুযোগমত দুর্বোধ্য করা তথ্যকে আবার পাঠযোগ্য করার পদ্ধতিগুলো আলোচনা করা হয় কম্পিউটার বিজ্ঞানের শাখা Cryptography (ক্রিপ্টোগ্রাফি)তে।
আধুনিক কম্পিউটারে এর ব্যবহার হয় গোপন তথ্য শত্রুর কাছে অজানা করে রাখার কাজে। অবশ্য এটা খুব নতুন কোনো সমস্যা না, হাজার বছর ধরেই এই সমস্যার সম্মুখীন হতে হয়েছে। প্রাথমিক ভাবে যুদ্ধক্ষেত্রে বা গুপ্তচরদের তথ্য আদান প্রদানে ব্যবহার করা হলেও ইন্টারনেট যুগে এসে বিভিন্ন বাণিজ্যিক যোগাযোগে এনক্রিপশন ব্যবহার করা হয়। ধরা যাক, আপনি ফেইসবুকে বা আপনার ইমেইল পড়ছেন। এই যে সংরক্ষিত ইমেইলটি সার্ভার থেকে অরক্ষিত ইন্টারনেট পেরিয়ে আপনার কাছে আসছে, এই পুরাটা পথ ইমেইলটিকে এনক্রিপ্ট করে পাঠানো হয় সচরাচর, যাতে মাঝপথে কেউ আপনার ইমেইল পড়ে নিতে না পারে।
কামিআ কাতভ কাইখ
তথ্যকে দুর্বোধ্য করে রাখার অনেক কৌশল আছে। ছোটবেলাতে আমরা অনেকেই হয়তো ক-যুক্ত করে কথা বলে মজা করতাম। যেমন, সব শব্দের শুরুর অক্ষরের জায়গায় ক বসিয়ে, শুরুর অক্ষরটিকে শব্দের শেষে নিয়ে যাওয়া। (উদাহরণ – “আমি ভাত খাই” হবে “কামিআ কাতভ কাইখ“)। যারা এই কথার পদ্ধতিটা জানবে, তারা অর্থ বের করতে পারবে, অন্যরা কিছুই বুঝবেনা।
সিজার (Caesar) সাইফার
আরেকটা এরকম পদ্ধতি হলো Caesar Cipher, যাতে প্রতিটি অক্ষরকে নির্দিষ্ট সংখ্যক পরের আরেকটি অক্ষর দিয়ে প্রতিস্থাপন করা যায়। যেমন ধরা যাক, প্রতি অক্ষরকে পরের পরের অর্থাৎ ২ অক্ষর পরের অক্ষর দিয়ে পালটানো হবে। A এর বদলে C, B এর বদলে D – এরকম। এতে করে I EAT RICE হয়ে যাবে K GCV TKEG। এটা আপাত দৃষ্টিতে দুর্বোধ্য মনে হলেও এটার সংকেত বের করে ফেলা খুব সহজ। ইংরেজিতে সবচেয়ে বেশি ব্যবহার করা হয় E অক্ষরটি, কাজেই কয়েকবার চোখ বুলালেই বেরিয়ে আসবে কোনটা E এর বদলে ব্যবহার করা হচ্ছে।
কী (Key) বা চাবিভিত্তিক এনক্রিপশন
এনক্রিপশনকে কঠিন করতে ব্যবহার করা হয় Key বা চাবি। চাবি দিয়ে যেমন তালা খোলা যায়, তেমন করে কোনো লেখার অক্ষরের সাথে একটি গোপন চাবি (সাংকেতিক সংখ্যা বা বাক্য) গাণিতিক উপায়ে মিশ্রিত করে গুপ্ত লেখা তৈরী করা যায়। ইন্টারনেটে গেলে প্রায়ই দেখবেন, বিভিন্ন ওয়েবসাইট দাবী করছে তারা ১২৮ বিট এনক্রিপশন ব্যবহার করে। এটা আসলে বোঝায়, ওদের সাইটে ১২৮ বিট দৈর্ঘ্যের কী বা চাবি ব্যবহার করা হয়। “কী” বড় হবে, ততই ভাঙা কঠিন। ১২৮ বিট অবশ্য খুব বেশি শক্ত চাবি না, এখনকার দিনে বেশী গোপনীয় তথ্যের জন্য ১০২৪ বিট বা ২০৪৮ বিট কী ব্যবহার করা হয়।
সিক্রেট কী এনক্রিপশন
এই যে কী বা চাবির কথা বললাম, এতো গেলো তথ্য গোপন করার জন্য। গুপ্ত বার্তাটি যার কাছে পাঠানো হচ্ছে, সে বুঝবে কীভাবে? তার কাছেও একই চাবি থাকতে হবে। ব্যাপারটাকে এভাবে চিন্তা করুন – করিম একটা গোপন বার্তা পাঠাবে খোদেজার কাছে, শত্রু শওকত যাতে বুঝতে না পারে এজন্য চিঠিটাকে একটা বাক্সে ভরে তালা মেরে পাঠিয়ে দিলো গনেশের হাত দিয়ে। মাঝপথে শওকতের হাতে যদি বাক্সটা পড়েও যায়, চাবি না থাকলে তো আর শওকত কিছুই করতে পারছেনা। খোদেজার কাছে বাক্স পৌছানোর পরে খোদেজা তার ঐ চাবি দিয়ে বাক্সটা খুলে বার্তাটা পড়তে পারে।
আধুনিক কম্পিউটার যুগেও এরকমই করা হয় … গোপনীয় বার্তাকে চাবি দিয়ে গাণিতিক প্রক্রিয়ার মাধ্যমে প্রক্রিয়াজাত করে দুর্বোধ্য করে দেয়া হয়, যা বাক্সে ভরার সমতূল্য। আপনার ব্যাংকের ওয়েবসাইটে যখন লগইন করবেন, তখন আপনার কম্পিউটার থেকে যা বার্তা ব্যাংকের সাইটে যাবে, সবই এনক্রিপ্টেড ভাবে, অর্থাৎ বাক্সবন্দী হয়ে ইন্টারনেটে নানা চেনা অচেনা, বিশ্বস্ত অবিশ্বস্ত কম্পিউটার রাউটার ঘুরে পরিশেষে পৌছাবে ব্যাংকের সাইটে। সেখানে ওদের কাছে একই চাবি থাকাতে ওরা বার্তাকে বাক্সমুক্ত করে পড়ে নিতে পারবে।
—
উপরের প্রক্রিয়াটাতে সমস্যাটা কোথায় ধরতে পারছেন? সমস্যাটা হলো, করিম আর খোদেজা একই চাবি পাবে কীভাবে? চাবি যদি দোকানে কিনতে পাওয়া যেতো, তাহলে তো শওকতের আর সমস্যা নেই, দোকান থেকে চাবি কিনে নিয়েই করিমের চিঠিটা বাক্স থেকে খুলে ফেলতে পারবে।
তা, করিম খোদেজার বাড়ি গিয়ে চাবিটা দিয়ে আসলেই তো পারে? তাই কি? বাড়িতেই যদি চাবি দিতে যেতে পারে, তাহলে চিঠিটা সরাসরি দিয়ে আসলেই তো হয়।
এই সমস্যাটা সব গোপন চাবির এনক্রিপশন ব্যবস্থা, অর্থাৎ সিক্রেট কী ক্রিপ্টোগ্রাফিতেই আছে … তথ্য গোপন করার চাবিটা কীকরে প্রাপকের কাছে যাবে। আর সেই সমস্যাটাই এড়ানোর জন্য বের করা হয়েছে, পাবলিক কী ক্রিপ্টোগ্রাফি।
করিমের সমস্যা মিটছে না, কী করে চিঠিটা বাক্সে করে খোদেজাকে পাঠাবে, বুঝতে পারছে না। একজনে বুদ্ধি দিয়েছিলো, বাক্সে ভরে তালা মেরে পাঠিয়ে দিতে, চাবিটাও সাথে দিয়ে দিতে। কিন্তু সমস্যা হলো, খোদেজার বড় ভাই কালা শওকত তো চাবিটাও ছিনিয়ে নিতে পারে বাহক গণেশের কাছ থেকে। বছর খানেক আগে একটা চাবি অবশ্য খোদেজাকে করিম দিয়েছিলো, কিন্তু শোনা যাচ্ছে শওকত সেই চাবিটা হাত করে নিয়েছে। তাহলে উপায়?
সিক্রেট কী ক্রিপ্টোগ্রাফির সমস্যাটা এখানেই … প্রাপক ও প্রেরকের কাছে একই চাবি বা কী থাকতে হবে। এখন চাবিটা কীভাবে প্রাপক পাবে, সেটাই মূল সমস্যা হয়ে দাঁড়ায়।
এই সমস্যার সমাধান করার জন্য ১৯৭৬ সালে হুইটফিল্ড ডিফি নামের এক বাউন্ডুলে তরুণ আর মার্টিন হেলম্যান নামের কম্পিউটার বিজ্ঞানী একটি পদ্ধতি আবিষ্কার করেন। এই পদ্ধতির নাম হলো পাবলিক কী ক্রিপটোগ্রাফি (Public Key Cryptography)। এই পদ্ধতিতে একটা চাবি বা কীর পরিবর্তে দুইটা চাবি ব্যবহার করা হয়। গাণিতিক যে ফরমুলা গুলো এই ক্ষেত্রে ব্যবহার করা হয়, সেগুলোর নাম ওয়ান ওয়ে ফাংশন।
—
ব্যাপারটা অনেকটা এরকম – ধরা যাক করিম আর খোদেজা ধোলাই খালের চাবি বিক্রেতা মেছকান্দর মিঞার কাছে আলাদা আলাদা সময়ে গিয়ে (শওকতের নজর এড়াতে) প্রত্যেকে এক জোড়া চাবি আর বিশেষ ধরণের একটা করে তালা বানিয়ে নিলো। তালাটা একটু অদ্ভুত রকমের, করিমের যে দুটো চাবি আছে, তার মধ্যে প্রথমটা দিয়ে তালাটা লক করে দিলে কেবল মাত্র দ্বিতীয়টা দিয়েই তালাটা খোলা যাবে। যে চাবি দিয়ে লক করা, সেটা দিয়ে কিন্তু আর খোলা যাবে না।
এবার করিম আর খোদেজার সমস্যার কিঞ্চিত সমাধান কিন্তু হয়ে গেলো। শওকত যখন টেন্ডারবাজি করতে বিশ্ববিদ্যালয় এলাকায় ব্যস্ত, ঐ সময়ে করিম গিয়ে পাড়ার রমিজুদ্দিনের চায়ের দোকানে গিয়ে তার দুটো চাবির একটা ঝুলিয়ে দিয়ে আসলো। খোদেজাও এক সময় সুযোগ বুঝে তার একটা চাবি দিয়ে আসলো রমিজুদ্দিনের দোকানে।
পরে যখন করিমের বিশাল প্রেমপত্র পাঠানোর খায়েশ জাগলো, চিঠি আর বাক্স নিয়ে সোজা রমিজুদ্দিনের কাছে হাজির হলো। খোদেজার চাবিটা দোকানের বেড়াতে ঝোলানো, ওটা নিয়ে তার পর খাম বাক্সে ভরে ঐ চাবি দিয়ে বাক্সটা বন্ধ করে দিলো। তারপর গণেশের হাতে পাঠিয়ে দিলো বাক্সটা।
কালা শওকত খোদেজার চাবিটা খেয়াল করেছিলো, একটা কপিও বানিয়ে রেখেছিলো এক ফাঁকে। কিন্তু গণেশের হাতের বাক্সটা কেড়ে নিয়ে ঐ চাবি দিয়ে হাজার চেষ্টা করেও বাক্স আর খুলতে পারলো না। রেগেমেগে ভাবলো এটা নিশ্চয়ই তালাটার চাবি না, তাকে ধোঁকা দেয়ার জন্য করিম ওটা সাজিয়ে রেখেছে। বিরক্ত শওকতের হাত থেকে ছাড়া পেয়ে গণেশ যখন খোদেজাকে বাক্সটা দিলো, খোদেজা খুব সহজেই তার দ্বিতীয় চাবিটা দিয়ে তালাটা খুলে ফেলে করিমের সেই শরৎচন্দ্রীয় চিঠিখানি পড়ে বাগবাগ হয়ে গেলো।
করিম আর খোদেজার এই চিঠি পাঠানোর এই পদ্ধতিটাই হলো পাবলিক কী ক্রিপ্টোগ্রাফির মোদ্দা কথা। এতে দুইটি কী থাকছে, একটা লকিং আরেকটা আনলকিং কী। যেটা দিয়ে লক করা যায়, সেটাকে পাবলিক কী বলে। নামের মতো কাজেও এটা পাবলিক … এই কীটা সাধারণত সবাই সর্বত্র বিলিয়ে দেয়। ইন্টারনেটে অনেকের ওয়েবসাইটে বা অনেকের ইমেইলেই দেখবেন, হিজিবিজি কি যেনো দেখা যাচ্ছে ইমেইলের শেষে, -GPG- টাইপের কিছু লেখা। এই পাবলিক কী যত বেশি পাবলিক করা যায় ততোই সুবিধা।
যেটা দিয়ে আনলক বা decrypt করা যায়, সেই প্রাইভেট কী- আবার খুবই গোপনীয়। কাউকে সেটা বলা চলে না। কোনো গোপন বার্তা পাঠাতে হলে, প্রাপকের পাবলিক কী-টা প্রথমে খুঁজতে হবে। ঐ কী-টা পেলে সেটা ব্যবহার করে বার্তাকে encrypt করে ফেললে প্রাপক ছাড়া আর কারো পক্ষে তার গুপ্ত রহস্য ভেদ করার আর জো নেই। যেহেতু পাবলিক কী দিয়ে কেবলই encrypt করা যায় কিন্তু decrypt করা যায় না, তাই ওটা শত্রুরা জানলেও ক্ষতি নেই।
—
তাহলে সুবিধাটা কী দাঁড়ালো? প্রথমত – প্রাপক আর প্রেরকের একই চাবি ব্যবহারের বাধ্যবাধকতা আর রইলোনা, ফলে চাবি পাঠানোর ঝামেলাটা গেলো। দ্বিতীয়ত – কাউকে বার্তা পাঠাতে হলে একই চাবির বাধ্যবাধকতা যেহেতু নেই, তাই সব বন্ধুর সাথে গোপনে যোগাযোগের জন্য গাদায় গাদায় চাবির গোছা নিয়ে ঘুরতে হচ্ছেনা, আর অচেনা কাউকে বার্তা পাঠানোটাও সহজ হয়ে গেলো। কাউকে বার্তা পাঠাতে হলে কেবল তার পাবলিক কী-টা ইন্টারনেট বা অন্যত্র হতে খুঁজে পেলেই হলো। ওটা দিয়েই encrypt করে পাঠিয়ে দেয়া যাবে।
—এই পদ্ধতি প্রকাশ পেয়েছিলো ডিফি আর হেলম্যানের ১৯৭৬ সালে বেরুনো এক কালজয়ী গবেষনাপত্রে যার শিরোনাম ছিলো New Directions in Cryptography। এই পেপারটি কম্পিউটার নিরাপত্তার পুরো জগতটাকেই রাতারাতি পালটে দেয় … সরকারী গোয়েন্দা সংস্থার হাত থেকে জনগণের হাতে ক্রিপ্টোগ্রাফি গবেষণার সুফলগুলো চলে আসতে পারে।
পরে অবশ্য জানা গেছে, এর কাছাকাছি একটা পদ্ধতি ব্রিটেনের গোয়েন্দা সংস্থা এম আই ফাইভ নাকি কয়েক বছর আগেই বের করেছিলো, কিন্তু জাতীয় নিরাপত্তার স্বার্থে চেপে রেখেছিলো সেটা। যাহোক, আধুনিক কম্পিউটার নিরাপত্তায় এই পাবলিক কী ক্রিপ্টোগ্রাফির ভূমিকা অসীম … আর ইন্টারনেট কমার্সের এটা একটা মূল ভিত্ত্বি।
ডিজিটাল সিগনেচার
করিমের কাছে দোকানদার রমিজুদ্দিন বেশ কিছু টাকা পায়। বাকিতে রেখে দিনের পর দিন চা খাওয়ার পর রমিজ নিয়মিত তাগাদা দেয়া শুরু করলো। না শোনার ভান করে কয়েকদিন কাটানোর পর করিম ঠিক করলো, নাহ, বাকি টাকার অন্তত অর্ধেকটা মেটানো দরকার।
কালা শওকতের ভয়ে ঐ পাড়াতে করিম দিনের বেলাতে আসা-যাওয়া বন্ধ করেছে, তাই নিজে না গিয়ে গনেশকে দিয়ে টাকাগুলো পাঠিয়ে দিলো। ৩০০ টাকার সাথে একটা চিরকুটও দিলো … লিখে পাঠালো কতো টাকা পাঠানো হচ্ছে।
গনেশের আবার হাতটানের অভ্যাস রয়েছে। করিম কড়কড়ে তিনটা একশো টাকার নোট দিয়েছে, ব্যস গনেশের হাত চুলকাতে শুরু করলো। এদিক ওদিক তাকিয়ে দুখানা নোট সরিয়ে ফেললো খামটা থেকে। আর করিমের চিঠিটাও ঘষামাজা করে “৩০০ টাকা” লেখাটা মুছে ১০০টাকা করে দিলো। করিমের হাতের লেখা গোল্লাগোল্লা টাইপের, নকল করা খুব সহজ, তাই “আমি আপনাকে ৩০০ টাকা পাঠালাম” কথাটাকে সহজেই “আমি আপনাকে ১০০ টাকা পাঠালাম” বানিয়ে দেয়া গেলো।
করিমের এই সমস্যা মিটবে কীভাবে? কেমন করে রমিজ চিঠিটা দেখে ধরতে পারবে, করিম এটা লিখেনি, অথবা গনেশ এটা ঘষামাজা করে পালটে ফেলেছে?
ডিজিটাল সিগনেচার
ডিজিটাল সিগনেচার বর্তমান ই-কমার্স ব্যবস্থার একটি অপরিহার্য অংশ
ইলেকট্রনিক মাধ্যমে তথ্য সঞ্চালনের একটা বড়ো সমস্যা হলো যাত্রা পথে তথ্য পালটে দেয়া। বার্তার মধ্যকার অল্প কিছু বা পুরো বার্তাটাই পালটে দিয়ে শত্রুরা অনেক সুবিধা আদায় করে নিতে পারে। বাস্তব জীবনের চিঠিপত্র, দলিল-দস্তাবেজ – এসবে জালিয়াতি ঠেকাতে ব্যবহার করা হয় স্বাক্ষর। কোনো বার্তা পড়ে ঐ বার্তাকে কেউ নিজ হাতে স্বাক্ষর করেন … আর সেই স্বাক্ষর দেখে অন্যেরা আসল স্বাক্ষরের সাথে মিলিয়ে নিয়ে স্বাক্ষরটির যথার্থতা মেলাতে পারেন। যেমন ধরুন, ব্যাংক চেকের কথা। চেকে যে স্বাক্ষর দেয়া হয়, ব্যাংকে সেই চেক ভাঙাতে হলে ক্যাশিয়ার আসল স্বাক্ষরের সাথে তা মিলিয়ে নিশ্চিত হন, আসলেই চেকদাতা এই চেকটি দিয়েছেন।
স্বাক্ষরের মূল ব্যাপারটা কী? এটা এমন একটা জিনিশ, যা কেবল স্বাক্ষরদাতাই করতে পারেন, আর সবাই সেটাকে যাচাই করতে পারে।
ইলেকট্রনিক মাধ্যমে কীভাবে স্বাক্ষর করা অর্থাৎ ডিজিটাল সিগনেচার তৈরী করা সম্ভব? স্বাক্ষরের মূলনীতিটা চিন্তা করলেই তার জবাবে বেরিয়ে আসবে।
স্বাক্ষরের মূলনীতি হলো, যিনি স্বাক্ষর দিচ্ছেন, তিনিই কেবল স্বাক্ষরটা দিতে পারবেন, কিন্তু অন্য সবাই সেটা যাচাই করতে পারবে।
করিমের উদাহরণে ফিরে আসি – করিম যদি তার চিরকুটটাতে স্বাক্ষর দিয়ে দিতো, তার সাথে দিতো জার্মানি থেকে করিমের বড়ো ভাইয়ের নিয়ে আসা একটা সিল যা নীলক্ষেতে এখনো নকল করা যায় না, তাহলেই কিন্তু গণেশের জারিজুরি বন্ধ হতো। ধরাযাক, করিম চিরকুটটা লিখে সই করলো তো বটেই, আর ঐ ৩০০ টাকা লেখাটার উপরে দিয়ে তার সেই সিলটা মেরে দিলো। এখন ঘষামাজা করে ৩০০ টাকাকে ১০০ টাকা বানাতে ঠিকই পারবে, কিন্তু রমিজউদ্দিন সেই ১০০ টাকা লেখাটার উপরে করিমের সিল না দেখে বুঝে যাবে এটা করিম লিখেনি।
—
স্বাক্ষরের মূলনীতিটা না হয় বোঝা গেলো, তাহলে ইলেক্ট্রনিক মাধ্যমে সই-সিল-ছাপ্পর কীভাবে দেয়া যায়? গল্পের শেয়াল যেমন এক কুমীরের ছানাকে ৭ বার দেখিয়েছিলো, তেমনি তথ্যগুপ্তিবিদ্যার অন্য একটা কায়দাকে একটু ঘুরিয়ে নিলেই স্বাক্ষরও দেয়া সম্ভব। আর এই কায়দাটা হলো পাবলিক কী ক্রিপ্টোগ্রাফি, যা আমরা পড়েছি এই কোর্সের ২য় লেকচারে।
পাবলিক কী ক্রিপ্টোগ্রাফিতে একজোড়া কী বা চাবি থাকে, যার একটা সবাই জানে (পাবলিক কী), আরেকটা কেবল চাবির মালিক জানে (প্রাইভেট কী)। একটা চাবি দিয়ে তথ্যকে গুপ্ত করে ফেললে অন্য চাবি দিয়ে সেটাকে প্রকাশ করা যায়। তথ্যগুপ্তিবিদ্যাতে এই কায়দা ব্যবহার করা হয় কাউকে গোপন বার্তা পাঠাতে … বার্তাটাকে পাবলিক কী দিয়ে গুপ্তিকরণ করে ফেললে কেবল যার কাছে প্রাইভেট কী আছে, সেই কেবল প্রাইভেট কী দিয়ে বার্তাটার মর্মোদ্ধার করতে পারবে।
এই কায়দাটাকেই কিন্তু উলটো করে ব্যবহার করা চলে। স্বাক্ষর করার ক্ষেত্রে যদি মূল বার্তা বা তার সারাংশকে বার্তা প্রেরক তার প্রাইভেট কী দিয়ে স্বাক্ষর করে, তাহলে পাবলিক কী দিয়ে সেই গুপ্ত সারাংশের মর্মোদ্ধার যে কেউ করে যাচাই করতে পারবে, আসলেই এটা বার্তা প্রেরকের স্বাক্ষরিত কি না। পাবলিক কী দিয়ে সেসব বার্তাই খোলা যাবে, যা প্রাইভেট কী দিয়ে বন্ধ করা হয়েছে। আর যেহেতু প্রাইভেট কী কেবল বার্তা প্রেরকেরই জানা, অন্য সবার অজানা, তাই এই ক্ষেত্রে নিশ্চিত হওয়া যাবে, বার্তা প্রেরকই এটা পাঠিয়েছে।
ডিজিটাল সিগনেচার তৈরী ও যাচাইকরণ প্রক্রিয়া
পুরো পদ্ধতিটা দাঁড়ায় এরকম – বার্তা প্রেরণের সময় বার্তার সাথে সাথে স্বাক্ষরিত সারাংশ পাঠানো হয়। সারাংশ নির্মাণের পদ্ধতিটি হলো Hashing, এর মাধ্যমে যে কোনো আকারের বার্তাকেই নির্দিষ্ট আকারের সারাংশে পরিণত করা চলে। এর পর বার্তা প্রেরক সেই সারাংশকে প্রাইভেট কী দিয়ে গুপ্তিকরণ করে দেন।
বার্তা যে পাবে, বা যে বার্তাটাকে যাচাই করতে চাইবে, তার কাজ হবে প্রথমে বার্তার সারাংশ বানানো ঐ একই Hashing পদ্ধতিতে। এর পাশাপাশি প্রেরকের পাবলিক কী দিয়ে গুপ্তায়িত সারাংশটাকেও খুলে নিতে হবে। এর পর দেখতে হবে, গুপ্তায়িত সারাংশটা প্রাপক নিজে যে সারাংশ হিসাব করে পেয়েছে, তার সাথে মিলে কি না।
আধুনিক ইন্টারনেটে বার্তার উৎস যাচাই করার জন্য এরকম ডিজিটাল স্বাক্ষর বহু ক্ষেত্রেই ব্যবহার করা হচ্ছে। ব্যাংকের ওয়েবসাইট থেকে শুরু করে ইমেইলেও এর প্রয়োগ আছে। বলা হয়, এই স্বাক্ষর ব্যবস্থা না থাকলে ই-কমার্স বা ইন্টারনেট ব্যাংকিং আদৌ সম্ভব হতো না।
অথেন্টিকেশন বা পরিচয় যাচাইকরণ
কে তুমি?” – এ এক চিরন্তন প্রশ্ন। খেয়াল করলে দেখা যাবে, এই প্রশ্নের মধ্যে আসলে দুইটা ব্যাপার আছে (১) তোমার পরিচয় কী? (২) তুমি যেই পরিচয় দাবি করছো, সেই ব্যক্তি যে আসলেই তুমি তার প্রমাণ কী?
বাস্তব জীবনের কথাই ধরা যাক। ধরুণ, একদিন মোবাইলে ফোন পেলেন, “কে” বলার পরে অন্য পাশ থেকে খোনা গলায় কেউ একজন দাবি করলো, সে হলো “সুইডেন রনি” ওরফে “কানকাটা রনি”, ১০ লাখ টাকা আর একটা ছাগল চাঁদা হিসাবে যেন কালকে রেডি রাখেন। এখন এই ফোনটা যে আসলেই “কানকাটা রনি” করেছে, তার প্রমাণ কী? আপনি যদি কানকাটা রনির গলা আগে থেকেই চেনেন, তাহলে অন্য ব্যাপার, কিন্তু রনির ইয়াবার আখড়ায় না গিয়ে থাকলে কীভাবে বুঝবেন এই গলার মালিক রনি?
কিংবা ধরুন বিয়ে বাড়িতে কনে পক্ষের হয়ে গেটে হাক্যুল্লা পার্টি চেক করছেন। হাতে ঢাউস একটা বাক্স নিয়ে এসে এক তৈলাক্ত চেহারার ছোকরা দাবি করলো, সে বরের খালাতো ভাইয়ের বড় শালা জামাল উদ্দিন। আপনি জামালকে দেখেন নাই আগে, কিন্তু আপনার ভাগ্নের সাথে তার ফোনে আগে কথা হয়েছে। ভাগ্নেকে ডেকে এনে কীভাবে তথাকথিত জামাল উদ্দিনের পরিচয়টা যাচাই করে নেবেন?
বাস্তব জীবনের এই পরিচয় যাচাইয়ের সমস্যাটা ইন্টারনেটে বা অন্যত্র কম্পিউটার ব্যবহার করতে গিয়ে আমাদের প্রতিনিয়ত মোকাবেলা করতে হয়। কম্পিউটারে লগিন করার সময়ে পাসওয়ার্ড, তারপরে ইমেইলে ঢোকার সময়ে, ফেইসবুকে স্ট্যাটাতে যাওয়ার আগে, সবাই খালি পরিচয় যাচাই করতে চায়। আর চাইবেই বা না কেনো, ইন্টারনেটের মাধ্যমে কে আপনার নাম ভাঙিয়ে ঢুকতে চাইছে, চেহারা সুরত দেখার তো আর উপায় নাই। পরিচয় যাচাই করার উপরে নির্ভর করছে কী রকমের এক্সেস আপনি পাবেন কোনো সার্ভিসে, কীভাবে কতটুকু দেখতে পারবেন।
তাই কম্পিউটার সিকিউরিটির একটা বড় অংশ জুড়ে পরিচয় যাচাই করার নানা তরিকা নিয়ে গবেষণা করা হয়। এই পরিচয় যাচাইয়ের ব্যাপারটাকে বলা হয় authentication বা পরিচয় যাচাইকরণ।
তো, পরিচয় যাচাই করা যায় কীভাবে? আবারও বাস্তব জীবনের ভিত্তিতে চিন্তা করে দেখুন। কানকাটা রনির গলার স্বর আপনি চিনতে পারেন, কিংবা তার ফোন নম্বর চিনতে পারেন, অথবা তাকে এমন প্রশ্ন করতে পারেন, যার জবাব কেবল কানকাটা রনিই দিতে পারবে। অর্থাৎ পরিচয় যাচাই করার জন্য এমন অনন্য কিছুর দরকার, যা কেবল একজন ব্যক্তিরই জানা থাকবে, বা হাতে থাকবে, বা ব্যক্তিগত বৈশিষ্ট্য হবে। কানকাটা রনির গলার স্বর যদি খোনা টাইপের হয়, এমনই বেখাপ্পা তার নামের সাথে যে শোনামাত্র চিনতে পারেন, তবে ঐ গলার স্বর দিয়েই কিন্তু বুঝে নিতে পারবেন ফোনের অপর প্রান্তের ব্যক্তিটি কানকাটা রনি।
পরিচয় যাচাইয়ের পদ্ধতি অথেন্টিকেশন ফ্যাক্টর
পরিচয় যাচাই করার নানা কৌশল আছে। যেসব জিনিষের ভিত্তিতে পরিচয় যাচাই করা হয়, সেই জিনিষগুলোকে বলা হয় অথেন্টিকেশন ফ্যাক্টর (authentication factor) বা পরিচয় যাচাইয়ের পদ্ধতি। প্রধান তিন ধরণের অথেন্টিকেশন ফ্যাক্টর হলো
- আপনি কী জানেন?(What you know)
- আপনার কাছে কী আছে? (What you have)
- আপনার দেহের বৈশিষ্ট্য কী? (What you are)
আপনি কী জানেন? What you know: এমন একটা গোপন কিছু জিজ্ঞেস করা হলো, যার জবাব কেবল আপনিই জানেন। খুব সহজ উদাহরণ – পাসওয়ার্ড। আপনার পাসওয়ার্ড যদি জনে জনে বলে না বেড়ান (অথবা ১২৩৪ মার্কা না হয়), তাহলে এই পাসওয়ার্ডটি আপনি ছাড়া আর কেউ জানে না। সুতরাং কোন কম্পিউটার সিস্টেম বা সাইটে আপনার পরিচয় যাচাই করা যেতে পারে এই পাসওয়ার্ডের মাধ্যমে।
আপনার কাছে কী আছে? What you have: এখানে ইউজারের কাছে থাকা কোনো পরিচয়পত্র গোছের কিছু দিয়ে পরিচয় যাচাই করা হয়। এসএসসি পরীক্ষার কথা মনে আছে তো? সেই বিভীষিকাময় পরীক্ষার হলে গার্ড দেয়া শিক্ষক তো আপনার চেহারা চেনেন না, তাহলে কীভাবে বুঝলেন তিনি আপনি জরিনা বেগম নন, আপনি হলেন কুদ্দুস আলী যেমনটা দাবি করছেন? আপনার পরিচয় পত্র বা admit card দেখে, তাই না? অর্থাৎ আপনার হাতে থাকা এমন একটি প্রমাণপত্র আপনি দেখালেন, যাতে বলা আছে, এই পরিচয়পত্রের বাহক কুদ্দুস আলী, পিতা অমুক, জন্মতারিখ তমুক (১৫ বছর আগে মাত্র), ইত্যাদি ইত্যাদি।
কম্পিউটার সিস্টেম বা ইন্টারনেটের ক্ষেত্রে ব্যাপারটা অন্যরকম, ওখানে তো সবই “ডিজিটাল”, তাই পরিচয়পত্রের ডিজিটাল সংস্করণ ব্যবহার করতে হবে। বহুল ব্যবহৃত ডিজিটাল পরিচয়পরের যে পদ্ধতি ইন্টারনেটে জনপ্রিয়, সেটা হলো ডিজিটাল সার্টিফিকেট। সেখানে আর কিছুই না, বলা হয়, এই সার্টিফিকেটের বাহক হলো কুদ্দুস, আর আমি এটাকে ডিজিটাল সাক্ষর দিলাম। এই ব্যাপারটা আকছার ব্যবহার করা হয় ওয়েবসাইটের পরিচয় প্রমাণে, ধরা যাক আপনি আগরতলা ডট কমে যেতে চান, কিন্তু কায়দা করে আপনাকে হ্যাকারেরা পাঠিয়ে দিলো চৌকির তলা ডট কমের, যেখানে কিনা আগরতলাকে হুবুহু কপি করা হয়েছে। এহেন কপিবাজ সাইটকে চিনবেন কীভাবে? আপনাকে খুব বেশি কিছু করতে হয়না অবশ্য – আপনার ওয়েব ব্রাউজারই পেছনে থেকে সার্ভারের পরিচয় যাচাই করবে, আর সেটা করবে ঐ সার্ভারের কাছে আগরতলা ডট কমের সার্টিফিকেট আছে কি না, তার ভিত্তিতে।
RSA এর তৈরী করা SecureID টোকেন, যা ব্যবহার করা হয় খুব উচ্চ নিরাপত্তার অথেন্টিকেশনে।
কোনো কোনো ক্ষেত্রে আবার ইউজারদের একটা ডিভাইস বা যন্ত্র ধরিয়ে দেয়া যায়, যার কাছে ঐ ডিভাইসটি থাকবে, সেই কেবল লগিন করতে পারবে। (RSA এর সিকিউরআইডি নামের একটা ডিভাইস আছে, খুব বেশি সিকিউর যেসব সাইট এটা ব্যবহার করে, সেখানে লগিন করার সময়ে আপনার কাছে এমন তথ্য চাইবে, যেটা কেবল আপনাকে দেয়া যন্ত্রটার থেকেই বের করা সম্ভব)।
আপনার দেহের বৈশিষ্ট্য কী? What you are: উপরের দুইটা ফ্যাক্টরের সমস্যা হলো ওগুলা নকল হতে পারে, গোপন পাসওয়ার্ড জেনে যেতে পারে কেউ, অথবা চুরি হয়ে যেতে পারে।
কিন্তু আর কী আছে যা চুরি হবার সম্ভাবনা কম?
আপনি নিজেই!
আঙুলের ছাপ পরিচয় যাচাই করার এক বহু পুরানো পদ্ধতি।
মানবদেহের অনেক কিছুই আছে যা একেবারে অনন্য। আঙুলের ছাপ বা ফিঙ্গারপ্রিন্ট তো আছেই। চোখের রেটিনার গড়ন, হাতের শিরার প্যাটার্ন, গলার স্বর, “খোমা”, হাতের লেখা, ডিএনএ, এরকম অনেক কিছুই আছে যা আপনি ছাড়া আর কারো দেহে পাওয়া যাবে না। সেই ফিচার বা বৈশিষ্ট্যগুলোকে ব্যবহার করে পরিচয় যাচাই করাটা আদিকাল থেকে মানুষ করে আসছে (যেমন – চেহারা বা গলার স্বর দিয়ে)। এই ফিচারগুলাকে বলা হয় বায়োমেট্রিক্স (Biometrics), আর এগুলোকে ব্যবহার করে কম্পিউটার সিস্টেমে অথেন্টিকেট করার ব্যবস্থা চালু হয়েছে বেশ ভালোভাবেই। অনেক কম্পিউটারেই ইদানিং পাসওয়ার্ডের বদলে আঙুলের ছাপ দিয়ে লগিন করা চলে। আবার কোনো কোনো কম্পিউটারে চেহারা দেখে ঢোকার ব্যবস্থা থাকে।
মাল্টি ফ্যাক্টর অথেন্টিকেশন
উপরের এই ৩টি ফ্যাক্টর ছাড়াও আরো কিছু ফ্যাক্টর দেখা যায়, যেমন আপনি পাসওয়ার্ড হারালে আপনার বন্ধু কেউ বলতে পারে আমি ওকে চিনি। অথবা রেজিস্ট্রেশন করা ইমেইলটিতে ইমেইল করে যাচাই করে দেখা হয় ওটাতে পাঠানো মেইল আপনি পান কি না, তার ভিত্তিতে পরিচয় যাচাই করা হয়। কখনো কখনো আবার একটা না, একাধিক ফ্যাক্টর ব্যবহার করে অথেন্টিকেশনের কাজটা করা যায়। Two factor authentication এ যেমন দুইটা ফ্যাক্টর, যেমন পাসওয়ার্ড এবং সার্টিফিকেট বা বায়োমেট্রিক্স দুইটাই ব্যবহার করে যাচাই করা হয়।
অথেন্টিকেশনের সমস্যা
অথেন্টিকেশন ফ্যাক্টর গুলোতে কিন্তু এখনো অনেক সমস্যা আছে। পাসওয়ার্ড চুরি যাওয়ার ফলে একাউন্ট হ্যাক হওয়া, এটা তো নিয়মিতই আপনার বা আপনার পরিচিত কারো হয়েছে, তাই না? পাসওয়ার্ড বা গোপন তথ্যের এটাই সমস্যা, কেউ সেটা যেনে ফেললে ব্য্স, আপনি সেজে ঢুকে যেতে পারে আপনার একাউন্টে। পাসওয়ার্ড আন্দাজে বের করে ফেলাটাও কঠিন না, বিশেষ করে অল্প অক্ষরের পাসওয়ার্ড দিলে প্রোগ্রাম চালিয়ে সেটা ট্রায়াল এন্ড এররের মাধ্যমে বের করে ফেলা চলে। আর অধিকাংশ মানুষই জটিল পাসওয়ার্ড মনে রাখতে পারেন না, ফলে তাদের পাসওয়ার্ড সহজে হ্যাক হয়ে যেতে পারে।
সার্টিফিকেট বা ডিভাইস দিয়ে লগিন করাটা আরেকটু নিরাপদ, কিন্তু সেটাও তো চুরি যেতে পারে। আপাত দৃষ্টিতে বায়োমেট্রিক্সকে সবচেয়ে নিরাপদ মনে হতে পারে, কিন্তু সেখানেও অনেক অনেক সমস্যা আছে। গলার স্বর রেকর্ড করে সেটা পরে বাজিয়ে আপনি সেজে বসতে পারে কেউ। অথবা আঙুলের ছাপ আপনার ব্যবহার করা কিছু (যেমন পানির গ্লাস) থেকে নিয়ে নকল আঙুল বানাতে পারে। আপনার চেহারার বদলে আপনার ফটো দেখাতে পারে। এগুলো এড়ানোর উপায় আছে বটে। কিন্তু সেসব পদ্ধতির কোনোটাই নিশ্ছিদ্র নয়। (কয়েক বছর আগের খবরে পড়েছিলাম, মালয়েশিয়ার এক গাড়িতে ছিলো আঙুলের ছাপ দিয়ে গাড়ি স্টার্ট দেয়ার ব্যবস্থা, মালিক ছাড়া আর কারো হাতে যাতে চালু না হয়। গাড়ি চোরেরা গাড়ি চুরির পরে চালাতে না পেরে ফিরে এসে মালিকের … নাহ বাকিটা আর বললাম না!!)
শেষ করছি পরিচয় যাচাই করার ব্যাপারে একটা গল্প বলে। চট্টগ্রাম কলেজে আমার একজন শিক্ষক ছিলেন, সহশিক্ষার এই কলেজেও ছেলে মেয়ের কথাবার্তা বলাটা দেখতে পারতেন না। একদিন আমার এক বন্ধু ও বান্ধবী হঠাৎ ব্যাড লাকের কপাল খারাপ হয়ে তাঁর সামনে পড়ে গেলো। বুদ্ধি করে বন্ধুটি দাবি করে বসলো, “স্যার, আমি ওর খালাতো ভাই, পারিবারিক বিষয়ে আলাপ করছিলাম মাত্র”।
এই পরিচয় যাচাই করার জন্য এই কড়া মেজাজের স্যার কী করলেন আন্দাজ করতে পারছেন?
দুইজনকে আলাদা আলাদা রুমে নিয়ে গিয়ে জিজ্ঞেস করলেন, “নানার নাম কী ?”
এভেইলেবিলিটি (প্রাপ্যতা) ও ডিনায়াল অফ সার্ভিস (সেবাবিঘ্নকরণ আক্রমণ)
আলু ব্যবসায়ী কালু খাঁ সকাল হতেই ফোন হাতে বসে আছেন বেজার মুখে। আজ বাজেট ঘোষণার দিন। গুজব আছে, বাজেটে নাকি আলুর উপরে ট্যাক্স কমে যাবে একেবারেই, ইদানিং আবার ভাতের বদলে আলু খাওয়ার একটা আন্দোলন হচ্ছে নানা জায়গায় বলে শোনা যায়। তো যাই হোক, কালু খাঁর গোডউনে ২ টন আলু জমে আছে, সেগুলো নিয়ে কাল থেকেই বসে থাকতে হচ্ছে। বাজেটে ট্যাক্স কমলে আলুর দরও পড়ে যাবে বাজারে। গুজবটা সত্যি হলেই বাজেট ঘোষণার আগেই আলু বেচে দিতে হবে।
তবে আলুর বেপারি কালু খাঁর সবখানেই লোক আছে। অর্থমন্ত্রীর এপিএসের শ্যালক জালালুদ্দিন হচ্ছে কালু খাঁর গ্রামের লোক। তাকে লাগানো হয়েছে খবর বের করার জন্য। দরকার মতো “চা পানি”র ব্যবস্থাও সে করবে। খবর পেলেই কালু খাঁকে ফোনে জানাবে, এটাই কথা হয়েছে।
সকাল হ্তেই তাই তসবী টেপার মতো করে কালু খাঁ মোবাইল হাতে বসে আছেন। কখন ফোন আসে জালালের। কিন্তু একী, ফোন আসছে তো ঠিকই অনরবরত, কিন্তু সবই মিস কল বা রঙ নাম্বার! একেকবার ফোন আসে, কালু খাঁ হুড়মুড় করে ধরতে যান, আর উল্টা দিক থেকে খোনা গলায় কেউ বলে, জমিলাকে দেন তো একটু? কিংবা বলে হ্যালো এটা কী জনি প্রিন্ট শাড়ির হেড অফিস? রেগে মেগে রাখলেও উপায় নাই, ফোন আসছেই অনবরত। এমনকি আড়তের টিএন্ডটি ফোনটাও বেজে চলেছে অনবরত।
জালালুদ্দিন কিন্তু খবরটা ঠিকই সময় মতো বের করেছিলো। আর পাওয়ামাত্র মোবাইলে কালু খাঁকে ফোনও করতে চেষ্টা করেছিলো। কিন্তু যখনই করে, দেখে লাইন বিজি। ঘণ্টা দুয়েক চেষ্টা করেও লাইন পায়নি। ফলে যা হবার তাই হলো, বাজেটে দাম কমে যাওয়ায় ৫ কোটি টাকা লোকসান দিয়ে কালু খাঁ পথে বসলেন। মাস খানেক পরে বেরুলো আসল ঘটনা, কালু খাঁর চিরপ্রতিদ্বন্দ্বী গোমর আলীই আসলে কলকাঠি নেড়েছে। জালালুদ্দিনের মিশনের খবর জেনে ফেলে গোমর আলী সেদিন ৫০টা আলাদা মোবাইল থেকে অনবরত সারাদিন কালু খাঁকে মিস কল দিয়ে গেছে, যাতে সব সময়েই কালু খাঁর ফোন বিজি থাকে, আর জালালের খবরটা সময়মত কালুর হাতে না যায়। আর সুযোগ বুঝে কালু খাঁর বিশাল লস করিয়ে দিয়ে গোমর আলী আজ হয়ে গেছে সবচেয়ে বড় আলু ব্যবসায়ী, বাজারে তার নাম এখন পটেটো কিং, আর নাম পাল্টে খাতুনগঞ্জের গোমর আলী আজ হয়ে গেছে আহমেদ জি আলী।
কালু খাঁর সর্বনাশ করতে গোমর আলী কী রকম আক্রমণ করেছে? কালু খাঁর সরাসরি কোনো ক্ষতি তো হয়নি, তা সত্ত্বেও পথে বসেছেন তিনি। তাহলে কোন জিনিষটির উপরে আক্রমণ করেছে গোমর আলী?
এই প্রশ্নের জবাব দিতেই আজকের এই পাঠ। কালু খাঁর যে জিনিষের উপরে এখানে হামলা করেছে গোমর আলী কায়দা করে, সেটা হলো এভেইলেবিলিটি বা প্রাপ্যতা, আর গোমর আলীর হামলার কৌশলটি ছিলো ডিনায়াল অফ সার্ভিস বা সেবা বিঘ্নকারী আক্রমণ।
Availability বা প্রাপ্যতা হলো কোনো সিস্টেম যেভাবে চালু থাকার কথা সেভাবেই চালু আছে কি না এবং সেই সিস্টেমের ব্যবহারকারীরা সেই সিস্টেম ঠিকমতো পাচ্ছে কি না, তার একটা হিসাব। কোনো কম্পিউটার সিস্টেম সুপ্রাপ্য বা available তার অর্থ হলো সেই সিস্টেম ব্যবহার করার সময় ঠিকমতো সার্ভিস পাওয়া যাবে। আবার কোনো সিস্টেমের availability খারাপ তার অর্থ হলো সেই সিস্টেম অনেক সময়েই বিকল থাকবে, বা বিকল না হলেও সেটা ব্যবহার করা দুরুহ হবে বা অত্যন্ত ধীর হবে।
Availability কম্পিউটার নিরাপত্তার একটা উপেক্ষিত দিক। কম্পিউটার সিকিউরিটি শুনলেই সবার মনে হয় গোপনীয়তা, সিগনেচার এসব কিছুর কথা। কিন্তু কনফিডেনশিয়ালিটি বা ইন্টেগ্রিটির চাইতে বাস্তব জীবনে অনেক সময়ে প্রাপ্যতাটাই গুরুত্বপূর্ণ। আপনার যখন ফোন করা দরকার খুব জরুরিভাবে, তখন লাইন না পেলে সেটাই বড় সমস্যা হবে, নেটওয়ার্ক বিজি থাকলে আপনার যে সমস্যা, সেটা ফোনে ক্রস কানেকশন বা বাজে কোয়ালিটির চাইতে অনেক সময়েই অনেক বড় চিন্তার বিষয়।
এই Availability এর উপরে কায়দা করে যে হামলা করা হয়, তার মধ্যে একটা সুপরিচিত হামলা হলো Denial of service বা সেবাবিঘ্নকরণ হামলা। উপরের উদাহরণের কালু খাঁর কথাই ধরুন। কালু খাঁর ফোন সার্ভিসকে অচল করে দিলো গোমর আলী। এক দিক থেকে দেখতে গেলে গোমর আলী কিন্তু কোনো আইন ভাঙেনি, বরং গাঁটের পয়সা খরচ করে ফোন/মিসকল দিয়ে কালুর ফোন ব্যস্ত রেখেছে। কিন্তু এই কাজের মাধ্যমে তার উদ্দেশ্য সফল হয়েছে, হাজার চেষ্টা করেও শ্যালক জালাল কালু খাঁর ফোনের লাইন পায়নি। ডেনায়াল অফ সার্ভিস এটাক এইটাই, অর্থাৎ অন্য কারো কোনো সার্ভিসের বারোটা বাজানো সেই সার্ভিসকে ব্যস্ত রাখার মাধ্যমে।
ডেনাইয়াল অফ সার্ভিস অ্যাটাক (Denial of Service) বা সেবা-বিঘ্নকরণ আক্রমণ হলো কোনো কম্পিউটার সিস্টেমের কোনো রিসোর্স বা সেবার (service) প্রকৃত ব্যবহারকারীদের বাধা দেয়ার একটি কৌশল। কোনো কম্পিউটার সিস্টেম বা ইন্টারনেট ওয়েবসাইটে এই আক্রমণ চালানোর মাধ্যমে ঐ সিস্টেম বা সাইটের যথাযথ কার্যক্রমকে ধীর গতির, বা অনেক ক্ষেত্রে পুরোপুরি বন্ধ করে দেয়া হয়।
এই আক্রমণ চালানোর একটা বেশ জনপ্রিয় পদ্ধতি হলো বাইরে থেকে ঐ সিস্টেম বা সাইটের সাথে যোগাযোগের জন্য অসংখ্য বার্তা পাঠাতে থাকা। একটি বার্তা বিশ্লেষণ করতে করতে আরো বেশ কয়টি বার্তা যদি এসে পড়ে, তখন ঐ সিস্টেমটি আক্রমণকারীর পাঠানো বার্তা বিশ্লেষণেই ব্যস্ত থাকে, এবং প্রকৃত ব্যবহারকারীরা ধীর গতির সম্মুখীন হন।
ডেনাইয়াল অফ সার্ভিস আক্রমণের প্রধান দুটি মাধ্যম হলো
- টার্গেট করা কম্পিউটারকে রিসেট করে দেয়া, অথবা তার সীমিত রিসোর্সগুলোকে ব্যবহার করে অন্যদের ব্যবহারের অযোগ্য করে ফেলা
- আক্রমণের লক্ষ্য যে সিস্টেম বা সাইট, তার সাথে প্রকৃত ব্যবহারকারীদের যোগাযোগের মাধ্যম বন্ধ করে দেয়া।
উদাহরণ
ধরা যাক, করিমের একটি সাইট আছে যার নাম কখগ ডট কম। এই ওয়েবসাইটটি যে খানে হোস্ট করা হয়েছে, সেখানে দৈনিক ১ গিগাবাইট ব্যান্ডউইডথ কেনা আছে। দিনে ১০ হাজার হিট হয় এই সাইটে, এবং ৪০০ মেগাবাইটের বেশি ব্যান্ড উইডথ দরকার হয় না। এখন এই ওয়েবসাইটকে আক্রমনকারী শত্রু শওকত একটি স্ক্রিপ্ট লিখে ঐ সাইটে অজস্র ভুয়া হিট করতে থাকলো, ফলে এক ঘণ্টারও কম সময়ে ২৫০০০ হিট করে ১ গিগাবাইট সীমা অতিক্রম করে ফেলা হলো। এখন ওয়েবসাইট ব্যবহারকারীদের কেউই আর ঐ সাইটে যেতে পারবেন না।
ধরা যাক, করিম এবার আক্রমণ ঠেকানোর জন্য অসীম ব্যান্ডউইডথের ব্যবস্থা করলেন, এবং শওকতের কম্পিউটারের আইপি অ্যাড্রেস নিষিদ্ধ করে দিলেন। এবার শওকত ভিন্ন পদ্ধতিতে আগালেন … সরাসরি আক্রমণ করার বদলে “স্মার্ফ অ্যাটাক” (Smurf attack) নামের আক্রমণ করলেন। এই আক্রমণের সময়ে শওকত সরাসরি করিমের কম্পিউটারে আক্রমণ না করে ইন্টারনেটে হাজার হাজার সাইটে ping মেসেজ পাঠালেন। (সংযোগ ঠিক আছে কি না, তা পরীক্ষা করার জন্য ping ব্যবহৃত হয়। এই মেসেজ কোনো কম্পিউটারে পাঠালে ঐ কম্পিউটার মেসেজের জবাবে আরেকটি মেসেজ প্রেরক কম্পিউটারে পাঠায়)। তবে শওকত পিং পাঠানোর আগে কারসাজি করে মেসেজের প্রেরকের নাম পালটে দিলেন, অর্থাৎ প্রেরকের ঠিকানার অংশে নিজের কম্পিউটারের আইপির বদলে করিমের সাইটের আইপি দিয়ে দিলেন। ফলে হাজার হাজার সাইট যখন এই পিং বার্তার জবাব দিবে, তখন সেই জবাব গুলো চলে যাবে করিমের কম্পিউটারে। একই সময়ে আসা এই হাজার হাজার বার্তা গ্রহণ করতে করতে করিমের কম্পিউটার আসল গ্রাহকদের সাথে যোগাযোগ করার সময় পাবে না। ফলে ওয়েবসাইটটিতে যারা ঢুকতে যাবেন, তাঁরা ব্যর্থ হবেন।
—-
সাম্প্রতিক কালে নানা ওয়েবসাইটকে অচল করে দেয়ার জন্য এই ডেনায়াল অফ সার্ভিস আক্রমণের নানা রূপ ইন্টারনেটে ব্যবহার করা হচ্ছে। আর সেটা করার জন্য ভাইরাসে আক্রান্ত হয়ে বটনেটের সদস্য হয়ে গেছে এমন লাখ লাখ কম্পিউটার থেকে আক্রমণ চালানো হয় সুবিস্তৃতভাবে। এই রকম আক্রমণে অনেক সাইট ধরাশায়ী হয়ে কিছুক্ষণের জন্য হলেও ডাউন হয়ে গেছে, এমন ঘটনা বিস্তর ঘটেছে।
ডেনায়াল অফ সার্ভিস যে কেবল ইন্টারনেটে হবে তা না। যেকোনো জায়গাতেই availability এর উপরে এরকম আক্রমণ হতে পারে। ধরা যাক, আপনার খুব দরকারী ইমেইল একটা আজ আসবে। সেটতে বাগড়া দিতে আপনার শত্রুরা যেটা করতে পারে, তা হলো আপনাকে বট স্ক্রিপ্ট লাগিয়ে হাজার কয়েক মেসেজ পাঠানো, যাতে আপনার ইনবক্স ভর্তি হয়ে যায়। আর তা হলে আপনাকে কেউ ইমেইল পাঠালে তা বাউন্স করবে।
পরিত্রাণের উপায়?
তো, এই আক্রমণ হতে পরিত্রাণ পাওয়ার উপায়টা তাহলে কী? নানা কায়দা করে ইন্টারনেটে ডেনায়াল অফ সার্ভিস আক্রমণ এড়ানো যায়। ফায়ারওয়াল বসিয়ে বাইরের থেকে আসা অনাকাঙ্ক্ষিত মেসেজ ফিল্টার করে বাদ দেয়া যায়। অথবা, কোথা থেকে বার বার মেসেজ আসছে, সেইটা স্বাভাবিক মেসেজ আদানপ্রদানের প্যাটার্নে পড়ে নাকি দেখে সন্দেহজনক মনে হচ্ছে তা যাচাই করার মাধ্যমে আক্রমণ হচ্ছে কি না তা বোঝা যায়।
তবে আরেকটা ভালো উপায় হলো “খাইট্টা খা” টেকনিক, মানে কাউকে ইচ্ছা মতো মেসেজ পাঠাতে না দিয়ে বরং মেসেজ প্রতি কিছু কাজ করিয়ে নেয়া। যেমন, আপনাকে ইমেইল করতে হলে যদি একটা পাজল বা ধাঁধার জবাব বের করতে হয়, যা কেবল মানুষেরাই করতে পারবে, বট স্ক্রিপ্ট পারবেনা, তাহলে কিন্তু আক্রমণের হার অনেক অনেক কমিয়ে দেয়া যায়। বট স্ক্রিপ্ট দিয়ে ১০০০টা ইমেইল পাঠাতে কোনো খাটুনি নেই, কিন্তু হাজার ইমেইল পাঠাতে যদি হাজারটা ধাঁধা বসে বসে সমাধান করতে হয়, তবে তো আক্রমণকারীর বারোটা বাজবে, লাগবেও কয়েক দিন। অনেক ওয়েবসাইটেই দেখবেন তাই কমেন্ট করতে গেলে CAPTCHA বা ক্যাপচা চায়, যাতে ছবিতে কী লেখা আছে তা টাইপ করতে হয়। এভাবে বা অন্য কোনো পাজল সমাধানের শর্ত দিয়ে মেসেজ পাঠানোর কাজটাকে একটু ঝামেলাপুর্ণ করে দিলে আক্রমণকারীর বেশ ঝামেলা হবে বিশাল মাপের আক্রমণ চালাতে।
—
আশা করি আজকের এই লেকচারটি থেকে availability বা প্রাপ্যতার গুরুত্ব আপনারা বুঝতে পারছেন এবং ডেনায়াল অফ সার্ভিস আক্রমণ কাকে বলে, তার সম্পর্কে ধারণা লাভ করলেন।
অ্যাক্সেস কন্ট্রোল বা প্রবেশ নিয়ন্ত্রন
অ্যাক্সেস কন্ট্রোল Access Control কম্পিউটারের নিরাপত্তার একটা গুরুত্বপূর্ণ বিষয়। এখানে মূলত আলোচনা করা হয় কম্পিউটারের নানা রিসোর্স (যেমন, ফাইল, ডিভাইস, সার্ভিস) এ কোন ইউজার কীভাবে এক্সেস করতে পারবে, কীভাবে সেটা ব্যবহার করতে পারবে, কোন কাজটা করতে পারবে আবার কোন কাজটা করতে পারবেনা।
যেমন ধরা যাক, কয়েকজনে ব্যবহার করে এমন একটা কম্পিউটার আপনিও ব্যবহার করছেন। স্বভাবতই ঐ কম্পিউটারের হার্ড ডিস্কে সব ইউজারের ফাইল রাখা থাকবে। এখন সবাই যদি অন্য সবার ফাইল খুলে দেখতে পারে, কিংবা সম্পাদনা করে পাল্টে দিতে পারে, তাহলে তো খুব সমস্যা হবে, কারণ যে কেউ অন্য ইউজারের গোপন তথ্য পড়ে ফেলতে পারবে, বা বদলে দিতে পারবে। কাজেই এই ঘটনা রোধ করার জন্য অ্যাক্সেস কন্ট্রোলের নানা পদ্ধতি ব্যবহার করে নিশ্চিত করা হয়, প্রত্যেক ইউজার কেবল নিজের ফাইলই দেখতে পারবে, অন্যদেরটা পারবেনা (যদিনা অন্য ইউজার ফাইলটি শেয়ার করে)। একই কথা নেটওয়ার্ক কানেকশান, প্রিন্টার এই সবের ক্ষেত্রেই প্রযোজ্য।
তো, কম্পিউটার কীকরে বুঝবে কোন ফাইল দেখার অনুমতি কার আছে? এটা আসলে নির্ধারিত হয় ফাইলের সাথে জড়িত Permission বা অনুমতি তালিকার মাধ্যমে। আর এই কাজের জন্য ব্যবহার করা হয় Access Control List । প্রতিটি ফাইলের সাথে জড়িত এই তালিকায় বলা থাকে কোন ইউজারের ঐ ফাইলে কী রকম অনুমতি আছে। (read, write, execute)। উইন্ডোজের যেকোনো ফাইলের প্রোপারটিতে গিয়ে সিকিউরিটি / পারমিশন দেখলে এই তালিকাটা দেখতে পারবেন। এই তালিকাটা অনেক ক্ষেত্রেই একটি ছক আকারে রাখা হয় যাকে বলা হয় Access Control Matrix, একটা উদাহরণ নিচে দেখানো হলো।
অ্যাক্সেস কন্ট্রোল ম্যাট্রিক্স
ইউজার অনুমতি
read write execute
আবুল 1 1 0
বাবুল 1 0 0
কাবুল 0 0 0
এখানে ধরা যাক, একটি ফাইলে আবুল, বাবুল, ও কাবুলের অ্যাক্সেস নির্ধারণ করা হবে। তিন রকমের অনুমতিকে সাধারণত এসব তালিকায় নিয়ন্ত্রণ করা হয়। এগুলো হলো Read (ইউজার ফাইলটি পড়তে পারবে কি না), Write (ইউজার ফাইলটি পরিবর্তন করতে পারবে কি না), এবং Execute (ইউজার ফাইলটি রান করাতে পারবে কি না)।
ধরা যাক, আবুল ফাইলটি পড়তে ও লিখতে পারবে, কিন্তু রান করাতে পারবেনা। বাবুল ফাইলটি কেবল পড়তে পারবে, আর কাবুল কিছুই করতে পারবেনা – এমনটাই ফাইলের মালিক বা সিস্টেম এডমিন ঠিক করলেন। তাহলে ফাইলের অনুমতি তালিকা বা Access Control Matrixটি হবে এরকম – যেখানে অনুমতি আছে সেখানে 1 বিট বসবে, আর যেখানে অনুমতি নাই, সেখানে 0 বিট বসবে। কাজেই আবুলের বিটগুলো হবে 110, বাবুলের 100, আর কাবুলের 000।
কোনো কোনো অপারেটিং সিস্টেমে এই ব্যাপারটাকে আরেকটু সহজ করা হয়। জনে জনে এরকম অনুমতি নির্ধারণ না করে প্রতিটি ফাইলের সাথে থাকে ৩ সেট অনুমতি – ফাইলের মালিকের নিজের কী অনুমতি আছে, ফাইলের মালিকের একই ইউজারগ্রুপের অন্যদের কী অনুমতি আছে, এবং অন্য সবার বা পাবলিকের কী অনুমতি আছে।
উপরের উদাহরণের কথাই ধরা যাক। ধরুন, ফাইলের মালিক হলো আবুল। তার এই ফাইলে পড়া ও লেখার অনুমতি আছে, রান করার অনুমতি নাই (১১০)। বাবুল হলো আবুলের সাথে একই অফিসের একই ডিপার্টমেন্টে কাজ করে, ফলে তারা দুইজনে একই গ্রুপের অধীনে আছে। গ্রুপের সদস্যরা ফাইলটা কেবল পড়তে পারে, তাই এই ক্ষেত্রে গ্রুপের অনুমতি হবে (১০০)। আর অন্য কারো এই ফাইল পড়ার অনুমতি নাই, তাই পাবলিকের অনুমতি হবে (০০০)।
অ্যাক্সেস কন্ট্রোল পলিসি বা নীতিমালা
অ্যাক্সেস কন্ট্রোলের সিদ্ধান্ত কীভাবে নেয়া হবে, তা নির্ধারণ করা হয় অ্যাক্সেস কন্ট্রোল পলিসি বা নীতিমালা দিয়ে।অ্যাক্সেস কন্ট্রোল পলিসিতে বলা থাকে কীসের ভিত্তিতে অ্যাক্সেস কন্ট্রোলের সিদ্ধান্ত নেয়া হবে। যেমন, অনেক সময় ইউনিভার্সিটির লাইব্রেরিতে নীতিমালা বা পলিসি থাকতে পারে যে, কেবল মাস্টার্সের ছাত্রদের ঢুকতে দেয়া হবে। বুয়েটের রিসার্চ লাইব্রেরিতে এইরকম নীতিমালা ছিলো, তবে এটাও বলা ছিলো যে ৪র্থ বর্ষের থিসিস করার সময়ে আন্ডারগ্র্যাডরাও সেখানে ঢুকতে পারবে।
এই পলিসিটা তাহলে এমন হতে পারে
লাইব্রেরিতে X ঢুকতে পারবে, যদি X বুয়েটের মাস্টার্সের ছাত্র হয়, অথবা X বুয়েটের ৪র্থ বর্ষের থিসিস করা ছাত্র হয়।
অ্যাক্সেস কন্ট্রোল মডেল
অ্যাক্সেস কন্ট্রোলের অনেক মডেল আছে, যার মাধ্যমে কী দেখে অ্যাক্সেস কন্ট্রোল করা হবে তা ঠিক করা হয়। তবে এর মধ্যে দুইটার কথা এখানে উল্লেখ করবো। এগুলো হলো
- অ্যাট্রিবিউট-বেইস্ড অ্যাক্সেস কন্ট্রোল
- রোল-বেইস্ড অ্যাক্সেস কন্ট্রোল
অ্যাট্রিবিউট বেইস্ড অ্যাক্সেস কন্ট্রোল মডেলে কারো কাছে থাকা কোনো টোকেন বা তার কিছু বৈশিষ্ট্য দেখে রিসোর্সে তাকে অ্যাক্সেস দেয়া হবে কি না, তার ভিত্তিতে অ্যাক্সেস কন্ট্রোল পলিসির সিদ্ধান্ত নেয়া হয়। উপরের লাইব্রেরির উদাহরণের কথাই ধরা যাক। কোনো ছাত্রের বৈশিষ্ট্য, অর্থাৎ সে আন্ডারগ্র্যাড নাকি মাস্টার্সের ছাত্র, তা দেখেই অ্যাক্সেস কন্ট্রোল পলিসি অনুযায়ী সিদ্ধান্ত নেয়া হয় তাকে লাইব্রেরিতে ঢুকতে দেয়া হবে কি না। (কম্পিউটারের ক্ষেত্রে অপারেটিং সিস্টেম এইটার সিদ্ধান্তটা নেয় সাধারণত, আর বুয়েটের ২ তলার লাইব্রের সামনে বসে থাকা গার্ড এই কাজটা করতো)।
রোল-বেইস্ড অ্যাক্সেস কন্ট্রোল এর ক্ষেত্রে কারো বৈশিষ্ট্য বা পরিচয়ের ভিত্তিতে না, বরং তার বর্তমানে রোল বা ভূমিকা বা কোন পদে সে আছে, তার ভিত্তিতে তার অ্যাক্সেস কন্ট্রোল নির্ধারিত হয়। যেমন ধরা যাক, গোলাপী ব্যাংকের টাকা পয়সা রাখা হয় যে সিন্দুকে, সেই সিন্দুক খোলার ও ভেতর থেকে টাকা বের করার অধিকার কেবল ঐ ব্রাঞ্চের ম্যানেজারের থাকতে পারে। ম্যানেজার পদে একেক সময়ে একেক জন থাকবে (বদলি, পদোন্নতি, ছাঁটাই হয়ে ম্যানেজার পাল্টাবে সময়ের সাথে সাথে)। কাজেই কোনো ব্যক্তির নাম ধরে তাকে সিন্দুকে অ্যাক্সেস দিলে পরে সেই ব্যক্তি ব্যাংকের ম্যানেজার পদ ছেড়ে দিলেই সমস্যার সৃষ্টি হবে। এর চেয়ে বরং রোল বা পদবী দেখে অ্যাক্সেস কন্ট্রোল করা হলে সেটাই সব সময়ে কাজ করবে।
থ্রেট মডেল
পাড়ায় ইদানিং পাতি মাস্তান কানকাটা রনির উপদ্রব বেড়ে গেছে। আগে কানকাটা রনি ছিলো নামকরা সন্ত্রাসী, কিন্তু সরকার বদলের পর র্যাব ও পুলিশের হাতে দুইবার ডলা খেয়ে ক্রসফায়ারের ভয়ে পড়ে কানকাটা রনি বড়সড় মাস্তানী ছেড়েছে।
কিন্তু তাতে এলাকাবাসীর কষ্ট আরো বেড়েছে, কারণ কানকাটা রনি এখন ছিঁচকে চোর বনে গেছে। আজ এর বাসা থেকে ছাগল চুরি যাচ্ছে, কাল ওর বাসা থেকে হাড়ি পাতিল, আর পরশু অন্য কারো বাসা থেকে গায়েব হচ্ছে টু-ইন-ওয়ান। এলাকার সব ম্যানহোলের ঢাকনা গায়েব, কানকাটা রনি সব গাপ করে দিয়ে বেচে দিয়েছে লোহালক্কড়ের দোকানে।
তাই পাড়ায় এখন বেশ শোরগোল পড়ে গেছে। কেউ লাগাচ্ছে কাঁটা তারের বেড়া, কেউ আবার কিনে আনছে মারকুটে ডালকুত্তা, আবার অন্য কেউ রাখছে দুইটা করে দারোয়ান। তার পরেও চিন্তা যায়না, ঘুম হয়না মানুষের, কানকাটা রনি এই এলো বলে, চিপাচাপা দিয়ে ঢুকে কলাটা মুলাটাও হাপিস করে দিলো বোধহয়।
ঘুম না হওয়াদের দলে চৌধুরী সাহেবও আছেন। বাড়িতে সোনাদানা কম নাই, আবার বাজারের দোকান থেকে প্রতিদিনের পাওয়া টাকাও জমা থাকে বাসায়। ডালকুত্তা, দারোয়ান এসবের পেছনে কম টাকা ঢালছেন না, তার পরেও চিন্তা যায়না। কীভাবে সম্পত্তি বাঁচাবেন চোট্টা কানকাটা রনির কাছ থেকে, বাড়ির নিরাপত্তায় কোনো ফাঁক-ফোকর রয়ে গেলো কি না, সেই চিন্তায় গত ৩ দিন ঘুমাতে পারেননি।
চৌধুরী সাহেবকে আমরা কীভাবে সাহায্য করতে পারি? কীভাবে ধাপে ধাপে তাঁর সম্পত্তির নিরাপত্তার ব্যাপারটা এমনভাবে নিশ্চিত করতে পারি যাতে কানকাটা রনির সব ফন্দি-ফিকিরকে ঠেকিয়ে রাখা যায়, নিরাপদে রাখা যায় বাড়ির সবকিছুকে?
আজকের লেকচার এই রকম থ্রেট বা হুমকিকে সিস্টেম্যাটিকভাবে মোকাবেলা করার পদ্ধতি নিয়েই।
Threat Modeling বা হুমকির উপরে মডেলতৈরী করা কম্পিউটার সিকিউরিটির একটা খুব গুরুত্বপূর্ণ বিষয়। কারণ একটা সিস্টেমের নিরাপত্তা নিশ্চিত করতে হলে এলোপাথাড়ি ভাবে এটা সেটা প্রতিরক্ষা ব্যবস্থা না নিয়ে প্রয়োজনমাফিক, বাস্তবসম্মত, এবং যথোপযুক্ত নিরাপত্তা ব্যবস্থা নিতে হলে থ্রেট মডেল বানানোটা হলো প্রথম কাজ। থ্রেট মডেলে সুনির্দিষ্টভাবে কোন শত্রু কী রকম কাজ করতে পারে, কী কী সমস্যা রয়েছে সিস্টেমে, আর কীভাবে আক্রমণ হতে পারে, সেইটা বিস্তারিতভাবে আলোচনা ও বিশ্লেষণ করা হয়। চলুন দেখা যাক, থ্রেট মডেল কীভাবে বানানো যায় …
থ্রেট মডেলের নানা অংশ
থ্রেট মডেলের অংশগুলো হচ্ছে -
- Asset বা সম্পদের তালিকা
- Attacker বা শত্রুর পরিচয় ও ক্ষমতা
- Vulnerability বা সিস্টেমের নানা ত্রুটি
- Entry points বা কীভাবে আক্রমণ হতে পারে
- Mitigation strategy বা শত্রুর মোকাবেলা করার উপায়
Asset বা সম্পদের তালিকা – শুরুতেই দেখতে হবে কী কী সম্পদের সুরক্ষার কথা নিয়ে ভাবা হচ্ছে, এবং ইউজারের কাছে সেগুলার কোনটার গুরুত্ব কতোখানি। কনফিডেনশিয়ালিটি বা গোপনীয়তাই মূল চিন্তা, নাকি ইন্টেগ্রিটি বা শুদ্ধতা মূল চিন্তা, আবার এভেইলেবিলিটি বা প্রাপ্যতা নিয়ে কি চিন্তা করতে হবে? সিস্টেমের ডিজাইনারকে এই ব্যাপারগুলা ভাবতে হবে ভালো করে।
Attacker বা শত্রুর ক্ষমতা ও পরিচয় – শত্রু কে? তার কী কী ক্ষমতা আছে? এই ব্যাপারগুলো খুব সতর্কতার সাথে চিন্তা করে দেখতে হবে। শত্রু কি আপনার সিস্টেমের ভিতরের লোক নাকি বাইরের লোক? বাইরের লোক হলে তার ক্ষমতা কী? সে কি আপনার সিস্টেমে ঢুকে পড়তে পারে বলে মনে করেন? শত্রু কি ইন্টারনেটে আপনি যা ব্রাউজ করেন, সব দেখতে পায়? শত্রুর নিজের রিসোর্স কতটুকু আছে? সে কি প্রচুর পয়সা ঢেলে দক্ষ প্রোগ্রামার কাউকে ভাড়া করতে পারে? এই সব প্রশ্নের জবাব নিয়ে চিন্তা করতে হবে।
এই ধাপটি বেশ গুরুত্বপূর্ণ, কারণ শত্রুর ক্ষমতা কী রকম সেটা আন্দাজ করতে পারলেই উপযুক্ত প্রতিরক্ষা কৌশল বেছে নিতে পারবেন। শত্রু যদি ছিঁচকে চোর মার্কা হয়, তার জন্য লাখ টাকা খরচ করার মানে হয়না। আবার আপনার বাড়িতে সম্পত্তি বলতে চেয়ার টেবিলই যদি কেবল থাকে, সেক্ষেত্রে শত্রু অনেক খরচপাতি করে এবং কষ্ট করে আক্রমণ করবে তা বাস্তব সম্মত না। কম্পিউটার সিস্টেমের ক্ষেত্রে আপনার সিস্টেমে আক্রমণ করে শত্রুর ফায়দা কী হবে, সেটা ভাবতে হবে। অনেক সময়ে আপনার সিস্টেমে শত্রু আক্রমণ করলে বাস্তবে তার বরং খাজনার চাইতে বাজনা বেশি হতে পারে, তাই সেরকম শত্রু আসলে আদৌ আপনার সিস্টেমে আক্রমণ করবে কি না, সেটা ভেবে দেখতে হবে।
Vulnerability বা সিস্টেমের দুর্বলতা – সব সিস্টেমেই কিছু না কিছু দুর্বলতা থাকে। কাজেই আপনার কম্পিউটার সিস্টেমের সব দিক চিন্তা করে দেখতে হবে, কোন অংশে কী ত্রুটি বা দুর্বলতা আছে, আর তার সুযোগ শত্রু কীভাবে নিতে পারে।
Entry point বা শত্রুর ঢোকার সম্ভাব্য পথ – আপনার সিস্টেমের কোন কোন অংশ দিয়ে শত্রু ঢুকে যেতে পারে ভিতরে? এটা বের করতে হলে সিস্টেমের সাথে বাইরের কেউ কীভাবে ইন্টারএকশন করছে, সেইটা খতিয়ে দেখতে হবে।
Mitigation strategy বা শত্রুর মোকাবেলা করার উপায়- একেক শত্রুকে একেকভাবে মোকাবেলা করা যায়। তাই শত্রুর স্বরুপ ও ক্ষমতা বের করার পরে আপনাকে দেখতে হবে, এই শত্রুর ক্ষেত্রে উপযুক্ত প্রতিরক্ষা কোনটা হতে পারে। দরকার হলে একাধিক প্রতিরক্ষা ব্যবস্থা নেয়া যেতে পারে। আর কার্যকারিতার দিক থেকে সেগুলার একটা ক্রম বা rank বের করে দেখতে হবে, তার পাশাপাশি করতে হবে কস্ট-বেনিফিট এনালাইসিস, যাতে করে আপনার বাজেটের মধ্যে কতটুকু নিরাপত্তা ব্যবস্থা নেয়া সম্ভব, তা বুঝে নিতে পারেন।
এই ভাবে থ্রেট মডেল বানাবার সুবিধা হলো, সবদিক যাচাই করে, শত্রু কে হতে পারে, তার ধান্ধা কী, আর ক্ষমতা কী রকম, কোন ফাঁক ফোকর দিয়ে শত্রু আক্রমণ করতে পারে, আর তাকে ঠেকাবেন কীভাবে – এই সবগুলা ব্যাপারই ধাপে ধাপে চিন্তা করা যায়।
কোন কম্পিউটার সিস্টেমকেই ১০০% নিরাপদ বানানো সম্ভব না। কোটি কোটি ডলার কারো বাজেট থাকলে সর্বশক্তি নিয়োগ করে শত্রু যে কোনো সিস্টেমের নিরাপত্তাই ভেঙে ফেলতে পারবে এক সময়। তাই বাস্তবতা, তথ্যের গুরুত্ব, এবং আপনার পকেটের জোর কেমন সব বিবেচনা করে তবেই সুবিধামত নিরাপত্তা ব্যবস্থা নেয়া সম্ভব, আর সেটা করতে হলে অপরিহার্য হচ্ছে একটা বাস্তবসম্মত থ্রেট মডেল বানানো।
এবার দেখা যাক থ্রেট মডেল বানানোর জন্য মাইক্রোসফটে জনপ্রিয় একটি সিস্টেম, যাকে বলা হয় STRIDE। আসুন দেখা যাক এই পদ্ধতিটা আসলে কী। STRIDE হলো সিস্টেমের থ্রেটগুলার ক্রম বা rank নির্ধারণের একটা পদ্ধতি। এই শব্দটি এসেছে নানারকমের থ্রেট গ্রুপ বা হুমকির প্রকারের আদ্যাক্ষর থেকে।
- Spoofing identity
- Tampering with data
- Repudiation
- Information disclosure
- Denial of service
- Elevation of privilege
মাইক্রোসফট বড় সফটওয়ার কোম্পানি। তাদের অজস্র সিস্টেম নিয়ে কাজ করতে হয়, তাই থ্রেট মডেল বা সিকিউরিটি এনালাইসিসকে সহজ করার জন্য থ্রেটগুলাকে সাজানোর উদ্দেশ্যে STRIDE ব্যবহার করা হয়। এখানে খুব বহুল প্রচলিত কিছু থ্রেটকে গ্রুপ করে রাখা হয় এবং আপনার সিস্টেমে কোন একটি থ্রেট উপস্থিত থাকলে ছক
http://msdn.microsoft.com/en-us/library/ee823878(CS.20).aspx
আশা করি এই লেকচারটি আপনাদের শেখাবে, কীভাবে সিস্টেম্যাটিকভাবে একটি সফটওয়ার বা একটি কম্পিউটার সিস্টেমের নিরাপত্তা সুনিশ্চিত করা হয়।
মূল লেখাঃ http://jontrogonok.com/?cat=12
Mosarof_BD