অ্যান্ড্রয়েড ওএস-এর উপর আস্থা আরও বাড়ানোর জন্য, আমরা গুগল প্লে-এর মাধ্যমে আপডেট হিসেবে দেওয়া প্রতিটি অ্যান্ড্রয়েড ওএস মডিউলকে (যাকে মেইনলাইন বলা হয়) আমাদের ট্রান্সপারেন্সি লগে তালিকাভুক্ত করতে প্রতিশ্রুতিবদ্ধ। এই মডিউলগুলো সম্পর্কে আমরা যে দাবিগুলো করি, তা যাচাই করার জন্যই আমরা ট্রান্সপারেন্সি লগ প্রকাশ করি। আগে থেকে ইনস্টল করা মডিউলগুলো স্পষ্টভাবে তালিকাভুক্ত করা হয় না, কারণ সেগুলো ইতিমধ্যেই পিক্সেল বাইনারি ট্রান্সপারেন্সি- এর আওতাভুক্ত।
হুমকি মডেল
স্বচ্ছতা ব্যবস্থা ব্যবহার করে সরবরাহ শৃঙ্খল আক্রমণ শনাক্ত করা যায় এবং এর মাধ্যমে তা প্রতিরোধ করা সম্ভব। আমরা কয়েকটি উদাহরণের মাধ্যমে বিষয়টি ব্যাখ্যা করছি।
ধরা যাক, কোনো আক্রমণকারী বিদ্বেষপূর্ণভাবে একটি মেইনলাইন মডিউল (যা একটি APEX বা APK ফাইল হতে পারে) পরিবর্তন করে এবং এমনকি গুগল প্লে-এর মাধ্যমে বিতরণের জন্য ব্যবহৃত সাইনিং কী দিয়ে এটি সাইন করতেও সক্ষম হয়। যে কেউ একটি সন্দেহজনক মডিউল পেলে, মডিউলটির সত্যতা যাচাই করার জন্য বাইনারি ট্রান্সপারেন্সি লগ কোয়েরি করতে পারে। তারা দেখতে পাবে যে গুগল লগে সংশ্লিষ্ট মডিউল মেটাডেটা যোগ করেনি এবং বুঝতে পারবে যে এই আপোসকৃত ওএস মডিউলটিকে বিশ্বাস করা উচিত নয়।
যেহেতু লগে প্রকাশ করা এবং স্বাক্ষরসহ রিলিজ প্রক্রিয়াটি আলাদা, তাই আক্রমণকারীর জন্য কাজটি শুধু কী-টি হ্যাক করার চেয়েও কঠিন হয়ে পড়ে।
যদিও আমরা একটি আদর্শ সাক্ষী প্রোটোকল ব্যবহার করে এই লগটিকে সাক্ষীদের একটি পাবলিক নেটওয়ার্কে একীভূত করার পরিকল্পনা করছি, আমরা বাহ্যিক, স্বাধীন পক্ষগুলোকে এই সর্বজনীনভাবে উপলব্ধ লগটির অখণ্ডতা নিরীক্ষণ করতে উৎসাহিত করি। এই পক্ষগুলো লগটির শুধুমাত্র-সংযোজনযোগ্য বৈশিষ্ট্য সম্পর্কে প্রত্যয়ন করতে পারে এবং যেকোনো ধরনের বিকৃতির বিষয়ে রিপোর্ট করতে পারে।
এই ধরনের একটি স্বচ্ছতা ব্যবস্থার অস্তিত্ব এবং আক্রমণের অতিরিক্ত শনাক্তকরণযোগ্যতা ক্ষতিকারক কার্যকলাপকে নিরুৎসাহিত করে। যদি কোনো ওএস মডিউল হ্যাক হয় কিন্তু ব্যবহারকারীরা শুধু লগে থাকা তথ্যকেই বিশ্বাস করে, তবে হ্যাক হওয়া মডিউলটিকে সর্বজনীনভাবে প্রকাশ করার প্রয়োজন হবে। এর ফলে হ্যাক হওয়া মডিউলটির অস্তিত্ব খুঁজে পাওয়ার সম্ভাবনা বেড়ে যায় এবং এর বিতরণ বন্ধ করার জন্য পদক্ষেপ নেওয়া যেতে পারে।
দাবিদার মডেল
দাবিদার মডেল হলো একটি কাঠামো যা একটি যাচাইযোগ্য সিস্টেমে ভূমিকা এবং উপাদানসমূহ সংজ্ঞায়িত করতে ব্যবহৃত হয়। অ্যান্ড্রয়েড মেইনলাইন মডিউলস ট্রান্সপারেন্সি-এর ক্ষেত্রে, আমাদের দাবি হলো যে এই লগে রেকর্ড করা একটি মডিউল ফাইলের হ্যাশটি সর্বসাধারণের ব্যবহারের জন্য উদ্দিষ্ট একটি অফিসিয়াল অ্যান্ড্রয়েড মডিউলের একটি নির্দিষ্ট সংস্করণকে প্রতিনিধিত্ব করে।
- MainlineModule দাবি করুন : (আমি, গুগল, দাবি করছি যে
$hashModuleহলো$mainlineModuleজন্য), যেখানে:
যাদের কাছে $mainlineModule এর একটি কপি আছে, তারা এই দাবিটি যাচাই করতে পারেন। যাচাইকরণ পৃষ্ঠায় এই প্রক্রিয়ার জন্য বিস্তারিত নির্দেশাবলী দেওয়া আছে। এই ধাপগুলো সাধারণ APK এবং মেইনলাইন মডিউল (যা APK বা APEX ফাইল হতে পারে) উভয়ের ক্ষেত্রেই প্রযোজ্য।
লগ বিষয়বস্তু
গুগল যখন কোনো মেইনলাইন মডিউলের নতুন সংস্করণ প্রকাশ করে, তখন এটি মেইনলাইন মডিউলস ট্রান্সপারেন্সি লগ- এ একটি সংশ্লিষ্ট এন্ট্রি যোগ করে।
এই লগের প্রতিটি এন্ট্রিতে চারটি মেটাডেটা থাকে:
- একটি স্বাক্ষরিত অ্যান্ড্রয়েড মেইনলাইন মডিউলের APK বা APEX-এর হ্যাশ। এটি সম্পূর্ণ ফাইলটির SHA256 ডাইজেস্টের একটি হেক্স স্ট্রিং।
- উপরে হ্যাশের প্রকারের বর্ণনা দেওয়া হয়েছে। এটি একটি স্ট্রিং।
- মডিউলটির প্যাকেজ নাম । এটি একটি স্ট্রিং।
- মডিউলটির সংস্করণ নম্বর ( versionCode )। এটি একটি অশূন্য পূর্ণসংখ্যা।
একটি লগ এন্ট্রির ফরম্যাট হলো চারটি তথ্যকে একটি নিউলাইন ( \n ) ক্যারেক্টারের মাধ্যমে সংযুক্ত করা, যা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
hash\nhash_description\npackage_name\npackage_version\n
যেহেতু একটি মেইনলাইন মডিউল APK বা APEX ফাইল হতে পারে, তাই হ্যাশ ডেসক্রিপশনটি SHA256(APK) বা SHA256(APEX) হতে পারে।