বিটলকার

বিটলকার হল মাইক্রোসফটের উদ্ভাবিত সম্পূর্ণ ডিস্ক এনক্রিপশন বা সাঙ্কেতিকীকরণের সুবিধা, যা তাদের উইন্ডোজ ভিস্তা ও এর পরবর্তী অপারেটিং সিস্টেমগুলোতে উপস্থিত। তথ্যের নিরাপত্তার জন্য সম্পূর্ণ ভল্যুম সাঙ্কেতিকীকরণের উদ্দেশ্যে এটি প্রকল্পিত হয়েছে। এতে প্রথমত সংকেত সারি শৃঙ্খল (CBC) অথবা XTS প্রক্রিয়ায় ১২৮-বিট বা ২৫৬-বিটের চাবির AES সাঙ্কেতিকীকরণ পদ্ধতি ব্যবহৃত হয়। (CBC সম্পূর্ণ ডিস্কের পরিবর্তে কেবল প্রয়োজনীয় সেক্টরগুলোতে প্রয়োগ করা হয়।)
বিটলকারের উৎপত্তি হয় মাইক্রোসফটের ২০০৪ সালে প্রণীত "পরবর্তী-প্রজন্ম নিরাপদ কম্পিউটিং ভিত্তি" প্রকৌশলের অংশ হিসেবে। এর সাংকেতিক নাম ছিল "কর্নারস্টোন" (বা "ভিত্তিপ্রস্তর")। এর উদ্দেশ্য ছিল যন্ত্র-বাহিত তথ্যের নিরাপত্তা দেয়া, বিশেষত হারানো বা চুরি হওয়া যন্ত্রের। পাশাপাশি আরেকটি সুবিধা ছিল "কোড ইন্টেগ্রিটি রুটিং", যার উদ্দেশ্য ছিল সিস্টেম চালু বা বুট প্রক্রিয়া এবং সিস্টেম ফাইলসমূহের বৈধতা যাচাই করা। উপযুক্ত বিশ্বস্ত প্লাটফর্ম মডিউল (TPM) এর উপস্থিতিতে বিটলকার তথ্য উন্মুক্ত করার আগে সিস্টেমের বৈধতা যাচাই করতে পারে, এবং তাতে ব্যর্থ হলে সিস্টেমে প্রবেশে বাধা দেয়। ভিস্তা উৎপাদনের জন্য অবমুক্তকরণের আগে কিছুকাল বিটলকার সুবিধাটি প্রারম্ভিক নিরাপত্তা বা সিকিউর স্টার্টআপ নামে পরিচিত ছিল।
বিটলকার এই পণ্যগুলোতে উপস্থিত:
প্রথমদিকে, ভিস্তায় বিটলকারের গ্রাফিক্যাল ইউজার ইন্টারফেস শুধু অপারেটিং সিস্টেমের ভল্যুমটিকে সাঙ্কেতিকীকৃত করতে পারত। ভিস্তার সার্ভিস প্যাক ১ এবং উইন্ডোজ সার্ভার ২০০৮ হতে এতে অন্যান্য ভল্যুম সাঙ্কেতিকীকরণের সুবিধা যোগ হয়। তবে তখনও বিটলকারের বিভিন্ন বৈশিষ্ট্য পরিবর্তনের জন্য codice_1 নামক কমান্ড লাইন প্রোগ্রাম ব্যবহার করতে হত।
উইন্ডোজ ৭ এবং সার্ভার ২০০৮ আর২ তে প্রকাশিত বিটলকারের সর্বাধুনিক সংস্করণে অপসারণযোগ্য ড্রাইভ সাঙ্কেতিকীকরণের সুযোগ সংযুক্ত হয়েছে। উইন্ডোজ এক্সপি ও ভিস্তায় এধরনের FAT16, FAT32, exFAT ফাইলসিস্টেমের ড্রাইভ অলেখযোগ্যভাবে ব্যবহার করতে হলে বিটলকার টু গো রিডার নামের একটি প্রোগ্রাম প্রয়োজন হয়। তাছাড়া codice_2 নামক একটি নতুন প্রোগ্রাম পুরাতন codice_1 কে প্রতিস্থাপন করেছে।
উইন্ডোজ ৮ এবং সার্ভার ২০১২ হতে বিটলকারকে মাইক্রোসফটের সাঙ্কেতিকীকৃত হার্ডড্রাইভ নীতিমালা অনুসরণকারী করা হয়েছে, যার ফলে বিটলকারের সাঙ্কেতিকীকরণ কার্যাবলী সরাসরি হার্ডওয়্যার দ্বারা সম্পাদন করা সম্ভব। তাছাড়া বর্তমানে বিটলকার উইন্ডোজ পাওয়ারশেল দিয়েও নিয়ন্ত্রণ করা যায়। উইন্ডোজ ৮ এ যুক্ত উইন্ডোজ টু গো প্রযুক্তিকেও বিটলকার সুরক্ষিত করতে পারে।
উইন্ডোজ মোবাইল ৬.৫, উইন্ডোজ আরটি এবং উইন্ডোজ ৮.১ কোর সংস্করণে ডিভাইস এনক্রিপশন নামে বিটলকারের স্বল্পসুবিধাযুক্ত সীমিত সংস্করণ রয়েছে যা সম্পূর্ণ সিস্টেম সাঙ্কেতিকীকৃত করে। মাইক্রোসফট অ্যাকাউন্ট দিয়ে পরিচালক (অ্যাডমিনিস্ট্রেটর) হিসেবে প্রবেশ করলে স্বয়ংক্রিয়ভাবে সাঙ্কেতিকীকরণ চালু হয়। সাঙ্কেতিকীকরণ চাবি মাইক্রোসফট অ্যাকাউন্ট অথবা অ্যাক্টিভ ডিরেক্টরিতে সংরক্ষিত থাকে, ফলে তা যেকোন কম্পিউটার থেকে সংগ্রহ করা সম্ভব। উইন্ডোজ ৮.১ এর সব সংস্করণেই ডিভাইস এনক্রিপশন উপস্থিত, তবে এটি কার্যকর হবার শর্ত হল যন্ত্রটি ইন্সট্যান্টগো (কানেক্টেড স্ট্যান্ডবাই হিসেবে পূর্বপরিচিত) নীতি সমর্থন করবে, যেজন্য সলিড-স্টেট ড্রাইভ, স্থায়ী র‌্যাম এবং টিপিএম ২.০ চিপ প্রয়োজন।
বিটলকারের সাঙ্কেতিকীকরণ কার্যকর করার জন্য ভিত্তিমূল হিসেবে তিন ধরনের অনুমোদন পদ্ধতি ব্যবহার করা যায়:
উল্লিখিত পদ্ধতিগুলো নিম্নোক্ত সমন্বয়ে ব্যবহার করা সম্ভব:
বিটলকার হল লজিক্যাল ভল্যুমের সাঙ্কেতিকীকরণ পদ্ধতি। (একটা ভল্যুম একটা হার্ড ড্রাইভের কিছু অংশ, সম্পূর্ণ ড্রাইভ, অথবা একাধিক ড্রাইভ জুড়ে থাকতে পারে।) টিপিএম এবং বিটলকার বুটের প্রতিটি ধাপের (বায়োস, বুট সেক্টর ইত্যাদি) বিশুদ্ধতা ও বিশ্বস্ততা নিশ্চিত করতে পারে। এভাবে এটি অধিকাংশ বাস্তবিক অফলাইন আক্রমণ ও বুট সেক্টর ম্যালওয়্যার প্রতিরোধ করতে সক্ষম।
বিটলকার দ্বারা অপারেটিং সিস্টেমের নিজস্ব ভল্যুম সাঙ্কেতিকীকরণের জন্য অন্তত দুটি NTFS ফরম্যাটের ভল্যুম প্রয়োজন: একটি অপারেটিং সিস্টেমের জন্য (সাধারণত codice_4), এবং অন্যটি ১০০ এমবি আকারের, যেটি সাঙ্কেতিকীকৃত নয় এবং সিস্টেম বুট করার কাজে ব্যবহৃত হয়। (তবে উইন্ডোজ ভিস্তা ও উইন্ডোজ সার্ভার ২০০৮ এর ক্ষেত্রে ভল্যুমটির আকার সর্বনিম্ন ১.৫ জিবি এবং অবশ্যই একটি ড্রাইভ অক্ষর সম্পন্ন হতে হবে।) ভিস্তার "diskpart" প্রোগ্রামে NTFS ভল্যুমের আকার সংকোচনের সুবিধা যুক্ত করা হয়েছে যেন পূর্বনির্ধারিত জায়গা থেকে ওই প্রয়োজনীয় বুট ভল্যুমটি তৈরি করা যায়। এই একই কাজের উদ্দেশ্যে মাইক্রোসফট বিটলকার ড্রাইভ প্রস্তুতি টুল নামক একটি প্রোগ্রাম সরবরাহ করে, যা পূর্বনির্ধারিত জায়গা থেকে বুট ভল্যুমটি তৈরি করার পাশাপাশি প্রারম্ভিক ফাইলগুলো সেখানে স্থানান্তর করে।
একটি বিকল্প বুট পার্টিশন তৈরি হয়ে গেলে টিপিএম মডিউলটি আরম্ভ হয় (যদি তা ব্যবহৃত হয়ে থাকে), এবং ডিস্ক সাঙ্কেতিকীকরণ চাবি সংরক্ষণের নির্বাচিত পদ্ধতি প্রস্তুত করা হয় (যেমন টিপিএম, পিন বা ইউএসবি চাবি)। এরপরে ভল্যুমটি সাঙ্কেতিকীকরণের কাজ নেপথ্যে শুরু হয়। এই ধাপ বড় ধারণক্ষমতার ডিস্কের জন্য যথেষ্ট সময় ব্যয় করতে পারে, কেননা এ সময় প্রত্যেকটি লজিক্যাল সেক্টর পড়া, সাঙ্কেতিকীকরণ করা এবং পুনরায় ডিস্কে লেখা হতে থাকে। উল্লেখ্য ভল্যুমটি সম্পূর্ণভাবে সাঙ্কেতিকীকৃত এবং নিরাপদ বলে গণ্য হবার পরেই কেবল চাবিটি সংরক্ষণ করা হয়।
বিটলকার ফাইল-সম্পর্কিত সকল কার্যকলাপ সাঙ্কেতিকীকরণ ও বিসাঙ্কেতিকীকরণের জন্য একটি নিম্নস্তরের ডিভাইস চালক (ড্রাইভার) ব্যবহার করে, ফলে চলমান অন্যান্য প্রোগ্রামের দৃষ্টিতে সাঙ্কেতিকীকৃত ভল্যুমের ওপর সকল কর্মকাণ্ড স্বচ্ছভাবে সম্পাদিত হয়।
কম্পিউটার চলমান থাকাকালীন নিরাপত্তার জন্য বিটলকারের সাথে সাঙ্কেতিকীকারক ফাইল সিস্টেম (EFS) ব্যবহার করা যেতে পারে। অপারেটিং সিস্টেমের আভ্যন্তরীণ প্রোগ্রাম প্রক্রিয়াসমূহ অথবা ব্যবহারকারীদের থেকে ফাইলগুলোর নিরাপত্তা দিতে চাইলে উইন্ডোজের ভেতরে কাজ করে এমন সাঙ্কেতিকীকরণ প্রোগ্রাম দরকার, যেমন ইএফএস। বিটলকার এবং ইএফএসের সমন্বিত প্রয়োগ বিভিন্ন শ্রেণীর আক্রমণের বিরুদ্ধে সুরক্ষা দিতে পারে।
বিটলকার অ্যাক্টিভ ডিরেক্টরি কার্যক্ষেত্রে চাবির ঐচ্ছিক এসক্রো সুবিধা দিতে সক্ষম। তবে এই সুবিধা কার্যকর করার পূর্বে রুপরেখা হালনাগাদের প্রয়োজন হতে পারে (উদাহরণরূপে, যদি অ্যাক্টিভ ডিরেক্টরি সার্ভিসটি উইন্ডোজ সার্ভার ২০০৮-পূর্ববর্তী সংস্করণে উপস্থাপিত থাকে)।
বিটলকার এবং এজাতীয় সম্পূর্ণ ডিস্ক সাঙ্কেতিকীকরণ পদ্ধতিগুলো বুটকিট দ্বারা আক্রান্ত হতে পারে। অনিষ্টকারী বুটলোডারটি সাঙ্কেতিকীকরণের গোপন চাবি নিজের আয়ত্তে আনতে পারলে ভল্যুমের প্রধান চাবিটি (মাস্টার কি) উদ্ঘাটন করতে পারে, যা তাকে সাঙ্কেতিকীকৃত হার্ডড্রাইভের যেকোন তথ্য বিসাঙ্কেতিকীকরণ ও পরিবর্তনের ক্ষমতা দেয়। টিপিএম দ্বারা বায়োস ও বুট সেক্টরসহ সম্পূর্ণ বুট প্রণালীর নিরাপত্তা নিশ্চিত করার মাধ্যমে বিটলকার এ ধরনের আক্রমণের আশঙ্কা অনেকাংশে হ্রাস করে। (অবশ্য কখনো কখনো বুট প্রণালীতে কিছু অ-ক্ষতিকারক পরিবর্তনবশতও টিপিএম ভ্রান্ত সতর্কতা জারি করতে পারে।)
মাইক্রোসফট-সংশ্লিষ্ট সূত্রমতে, বিটলকারে কোন স্বেচ্ছাপ্রণোদিত ব্যাকডোর বা গোপন দরজা নেই। আইন-প্রয়োগকারী সংস্থার হাতে ব্যবহারকারীর হার্ডড্রাইভে উপস্থিত তথ্য অধিগত করার জন্য কোন ব্যাকডোর ছাড়া মাইক্রোসফট-প্রণীত আর কোন উপায় নেই। ২০০৬ সালে যুক্তরাজ্যের স্বরাষ্ট্র অধিদফতর ব্যাকডোরের অনুপস্থিতি সম্পর্কে উদ্বেগ প্রকাশ করে এবং বিটলকারে ব্যাকডোর সরবরাহ করার উদ্দেশ্যে মাইক্রোসফটের সঙ্গে আলোচনার চেষ্টা চালায়, যদিও মাইক্রোসফটের একজন ডেভলপার নিয়ালস ফার্গুসন এবং অন্যান্য মুখপাত্ররা এ ইচ্ছা পূরণ করা হবে না বলে জানিয়েছেন। তাছাড়া মাইক্রোসফটের ইঞ্জিনিয়ারদের মতে এফবিআই এর প্রতিনিধিরাও একাধিক বৈঠকে ব্যাকডোর যুক্ত করার জন্য মাইক্রোসফটকে চাপ দিয়েছেন, যদিও কখনোই আনুষ্ঠানিক লিখিত অনুরোধ জানানো হয় নি। মাইক্রোসফটের ইঞ্জিনিয়াররা অবশেষে এফবিআইকে পরামর্শ দেন তারা ব্যবহারকারীর বিসাঙ্কেতিকীকরণ চাবির সংরক্ষিত প্রতিলিপি খোঁজার চেষ্টা করতে পারে, যা বিটলকার ব্যবহারকারীকে সংরক্ষণ করে রাখার পরামর্শ দেয়।
বিটলকারে যে এইএস সাঙ্কেতিকীকরণ অ্যালগরিদম ব্যবহার করা হয়, তা জনসাধারণে উন্মুক্ত, তবে বিটলকারে এটির প্রয়োগ এবং বিটলকারের অন্যান্য উপাদান মাইক্রোসফটের মালিকানাধীন। তবে মাইক্রোসফটের অংশীদার ও উদ্যোক্তাদের নীরিক্ষণের জন্য বিটলকারের সম্পূর্ণ কোড একটি অ-প্রকাশকরণ চুক্তির অধীনে প্রাপ্য।
বিটলকারে বিসাঙ্কেতিকারক চাবির সুরক্ষার স্বচ্ছ ক্রিয়া প্রণালী ও ব্যবহারকারী-অনুমোদন প্রণালী টিপিএম হার্ডওয়্যারের সাহায্যে বুট-পুর্ববর্তী ক্ষেত্রের (বায়োস ও প্রধান বুট রেকর্ড সহ) অননুমোদিত পরিবর্তন শনাক্ত করে। যদি এমন কোন পরিবর্তন শনাক্ত হয়, তবে বিটলকার ইউএসবি ডিভাইসের মাধ্যমে একটি পুনরুদ্ধার চাবির অনুরোধ করে। এই গোপন চাবিটি ভল্যুমের প্রধান চাবি উন্মোচন করার পরে বুট প্রক্রিয়া সম্পন্ন করে। তথাপি, ২০০৮ এর ফেব্রুয়ারিতে একদল নিরাপত্তা গবেষক একটি "কোল্ড বুট আক্রমণ" এর বিবরণ প্রকাশ করেন, যার দ্বারা বিটলকার এবং এজাতীয় সম্পূর্ণ ডিস্ক সাঙ্কেতিকীকরণ পদ্ধতির জন্য খুবই ঝুঁকিপূর্ণ। এ প্রক্রিয়ায় প্রথমে কম্পিউটারটিকে কোন অপসারণযোগ্য মাধ্যম, যেমন ইউএসবি ড্রাইভ বা ডিভিডি ডিস্ক, ব্যবহার করে একটি ভিন্ন অপারেটিং সিস্টেমে চালু করা হয়, এবং বুট-পূর্ববর্তী স্মৃতি কোর ডাম্প দ্বারা সংগ্রহ করা হয়। কারণ ডির‌্যাম এর বিদ্যুৎ বিচ্ছিন্ন করে দেয়ার পরও বেশ কয়েক মিনিট (বা শীতল হলে আরও বেশি সময়) তথ্য ধরে রাখে। এ ঘটনাটিই এ জাতীয় আক্রমণের ভিত্তি। ইউএস প্যাটেন্ট ৯,৫১৪,৭৮৯ এ বিবৃত ব্রেস/মেন্‌জ যন্ত্র এ ধরনের আক্রমণ সাধন করতে সক্ষম। কেবল টিপিএম এ ধরনের আক্রমণ থেকে কোন সুরক্ষা দেয় না, কেননা উইন্ডোজ চলমান থাকা অবস্থায় বিসাঙ্কেতিকীকরণ চাবিটি র‌্যাম স্মৃতিতে উপস্থিত থাকে। একই কারণে লিনাক্স ও ম্যাক ওএস এক্স সহ অন্যান্য অপারেটিং সিস্টেম ও সফটওয়্যার বিক্রেতা প্রতিষ্ঠানের সম্পূর্ণ ডিস্ক সাঙ্কেতিকীকরণ পদ্ধতি এই আক্রমণের প্রতি দুর্বল। ওই গবেষকবৃন্দ পরামর্শ দেন যেন ব্যবহারকারী কম্পিউটার থেকে দূরে থাকলে তা ঘুমন্ত অবস্থায় যাওয়ার পরিবর্তে সম্পূর্ণ বন্ধ হয়, এবং চালু হবার পুর্বে পাসওয়ার্ড দরকার পড়ে।
বিটলকার সুরক্ষিত যন্ত্র চলমান থাকা অবস্থায় বিসাঙ্কেতিকীকরণ চাবি এর স্মৃতিতে অবস্থান করে, যা স্মৃতি পড়তে পারে এমন যেকোন প্রোগ্রাম দ্বারা আক্রমণের ঝুঁকি পূর্ণ, যেমন IEEE ১৩৯৪ বা থান্ডারবোল্ট ডিএমএ চ্যানেল।
উইন্ডোজ ৮ এবং উইন্ডোজ সার্ভার ২০১২ হতে মাইক্রোসফট বিটলকারে ব্যবহৃত এলিফ্যান্ট বিক্ষেপক কোন কারণ দর্শানো ছাড়াই বাদ দেয়। ড্যান রোজেনদর্ফের এর গবেষণায় দেখা যায়, এলিফ্যান্ট বিক্ষেপক বাতিল করার ফলে উদ্দেশ্যমূলক আক্রমণের বিপরীতে বিটলকারের নিরাপত্তায় "অনস্বীকার্য নেতিবাচক প্রভাব" পড়েছে। পরবর্তীতে মাইক্রোসফট তাদের এ পদক্ষেপকে সমর্থন করে কার্যক্ষমতা বিষয়ক উদ্বেগ ও FIPS তথা যুক্তরা্ষ্ট্রীয় তথ্য প্রক্রিয়াকরণ নীতিমালার ব্যত্যয়ের উল্লেখ করে। তবে উইন্ডোজ ১০, ১৫১১ সংস্করণ হতে মাইক্রোসফট FIPS-অনুসরণকারী XTS-AES সাঙ্কেতিকীকরণ অ্যালগরিদম বিটলকারে যুক্ত করেছে।
২০১৫ এর ১০ নভেম্বর মাইক্রোসফট একটি নিরাপত্তা দুর্বলতা প্রশমন করার জন্য বিটলকার হালনাগাদ করে। এই হালনাগাদের পূর্বে যদি আক্রমণকারী সরাসরি কম্পিউটার ব্যবহার করতে সক্ষম হত, তা একটি ডোমেইনের অংশ হত এবং কোন পিন বা ইউএসবি নিরাপত্তা না থাকত, তবে সে একটি নকল কেরবেরস চাবি সরবরাহকেন্দ্র নিয়োগ করে বিটলকারের নিরাপত্তা পাশ কাটিয়ে তথ্যে প্রবেশ করতে পারত।
২০১৭ এর অক্টোবরে টিপিএম ও স্মার্ট কার্ড জাতীয় নিরাপত্তা যন্ত্রাংশে বহুল ব্যবহৃত ইনফিনিয়নের তৈরি একটি কোড লাইব্রেরিতে ত্রুটি ধরা পড়ে, যার ফলে মুক্ত চাবি হতে ব্যক্তিগত চাবিটি অনুমান করা সম্ভব। ওই ত্রুটিপূর্ণ লাইব্রেরিসম্পন্ন টিপিএম চিপ যেসব যন্ত্রে রযেছে, কোন আক্রমণকারী সহজেই তার বিটলকার নিরাপত্তা ভেঙে প্রবেশ করতে পারে। মাইক্রোসফট তাদের উইন্ডোজ আপডেট সেবার মাধ্যমে ইনফিনিয়ন টিপিএম চিপের ফার্মওয়্যার হালনাগাদ করে ওই ত্রুটি দূর করেছে।