ডিভাইস শনাক্তকারী রচনা ইঞ্জিন

ডিভাইস আইডেন্টিফায়ার কম্পোজিশন ইঞ্জিন (DICE) হলো ট্রাস্টেড কম্পিউটিং গ্রুপ (TCG)-এর একটি স্পেসিফিকেশন যা অ্যান্ড্রয়েডে অন্তর্ভুক্ত করা হয়েছে। এটি বুট সিকোয়েন্সের সময় লোড হওয়া প্রতিটি ফার্মওয়্যারের জন্য এক সেট শক্তিশালী, অপরিবর্তনীয় ক্রিপ্টোগ্রাফিক আইডেন্টিটি তৈরি করে। এই আইডেন্টিটিগুলো একটি ডিভাইসের নিরাপত্তা পরিস্থিতি দূর থেকে যাচাই করতে সক্ষম করে, যা শুধুমাত্র রম (ROM) হ্যাক করার মাধ্যমেই এড়ানো সম্ভব।

DICE ব্যুৎপত্তি প্রক্রিয়া

সরলীকৃত DICE ব্যুৎপত্তি প্রক্রিয়া

চিত্র ১. DICE নির্ণয়ের সরলীকৃত প্রক্রিয়া।

DICE ডিরাইভেশন প্রক্রিয়াটি নিশ্চিত করে যে, যেকোনো ফার্মওয়্যার ইমেজে কোনো পরিবর্তনের ফলে সেই স্টেজ এবং তার পরবর্তী প্রতিটি স্টেজের জন্য একটি নতুন অনন্য শনাক্তকারী তৈরি হয়। এর কারণ হলো, লোড করা প্রতিটি ফার্মওয়্যার স্টেজ পরবর্তী স্টেজকে পরিমাপ ও প্রত্যয়ন করে, যা অনন্য পরিচয় এবং সংশ্লিষ্ট কী তৈরি করে এবং বাইপাস বা টেম্পারিং প্রতিরোধ করে। রিড-অনলি মেমোরি (ROM) একটি কী ডিরাইভেশন ফাংশন (KDF) ব্যবহার করে পরিমাপ, কনফিগারেশন এবং ইউনিক ডিভাইস সিক্রেট (UDS) প্রক্রিয়াজাত করে, যাতে লোড হতে যাওয়া পরবর্তী স্টেজের জন্য সিক্রেটটি ডিরাইভ করা যায়। এই সিক্রেটটিকে কম্পাউন্ড ডিভাইস আইডেন্টিফায়ার (CDI) বলা হয়।

পর্যায় ০: প্রারম্ভিকীকরণ

DICE প্রক্রিয়াটি শুরু হয় চিপসেটের ROM দ্বারা অপরিবর্তনীয় ডেটার একটি ব্যাংক (সাধারণত ফিউজ) থেকে UDS লোড করার মাধ্যমে। চিপ উৎপাদন প্রক্রিয়ার সময় এই UDS-টিকে একটি ক্রিপ্টোগ্রাফিকভাবে র‍্যান্ডম মান দিয়ে সুরক্ষিতভাবে প্রস্তুত করা হয়। UDS পড়ার পর, ROM পরবর্তী বুট পর্যন্ত UDS-এর অ্যাক্সেস লক করার জন্য ল্যাচের মতো বিক্রেতা-নির্ভর একটি হার্ডওয়্যার-লকিং ব্যবস্থা ব্যবহার করে।

পর্যায় ১: প্রাথমিক কী উদ্ভব

ROM, ডিভাইসটিকে অনন্যভাবে শনাক্তকারী স্থায়ী অ্যাসিমেট্রিক কী পেয়ার তৈরি করার জন্য, UDS-কে একটি কী ডিরাইভেশন ফাংশন (KDF)- এর ইনপুট হিসেবে ব্যবহার করে। এটি পরবর্তী ফার্মওয়্যার পর্যায় পরিমাপ করে, যার মধ্যে বুট পরিবেশ সম্পর্কিত মেটাডেটাও অন্তর্ভুক্ত থাকে, যেমন সিকিওর বুট সক্রিয় আছে কিনা। এরপর ROM, KDF-এর মধ্যে থাকা UDS, ফার্মওয়্যার পরিমাপ এবং কনফিগারেশন ডেটা একত্রিত করে প্রথম CDI তৈরি করে, যা একটি গোপনীয় তথ্য হিসেবে পরবর্তী পর্যায়ে পাঠানো হয়।

পর্যায় ২ থেকে n: পুনরাবৃত্তিমূলক কী আহরণ

The process then repeats. In all subsequent stages, the CDI from the previous stage serves as the input for a new KDF. This KDF uses the CDI and the hash of the next firmware image to produce a new derived CDI. Each stage generates its own key pair and uses it to sign a certificate containing stage-specific measurements and other associated metadata.