डिवाइस आइडेंटिफ़ायर कंपोज़िशन इंजन

डिवाइस आइडेंटिफ़ायर कॉम्पोज़िशन इंजन (डीआईसीई), ट्रस्टेड कंप्यूटिंग ग्रुप (टीसीजी) स्पेसिफ़िकेशन है. इसे Android में शामिल किया गया है. यह बूट सीक्वेंस के दौरान लोड किए गए हर फ़र्मवेयर के लिए, क्रिप्टोग्राफ़ी की मज़बूत और अपरिवर्तनीय पहचानों का एक सेट बनाता है. इन आइडेंटिटी की मदद से, किसी डिवाइस की सुरक्षा स्थिति की रिमोट से पुष्टि की जा सकती है. इस पुष्टि को सिर्फ़ आरओएम को नुकसान पहुंचाकर ही गच्चा दिया जा सकता है.

डीआईसीई से डेटा निकालने की प्रोसेस

डीआईसीई का हिसाब लगाने की आसान प्रोसेस

पहली इमेज. डीआईसीई का डेरिवेशन आसानी से किया जा सकता है.

DICE से डेरिवेशन की प्रोसेस यह पक्का करती है कि किसी भी फ़र्मवेयर इमेज में किए गए किसी भी बदलाव से, उस चरण और उसके बाद के हर चरण के लिए एक नया यूनीक आइडेंटिफ़ायर बनता है. ऐसा इसलिए होता है, क्योंकि लोड किए गए फ़र्मवेयर के हर चरण में, अगले चरण को मेज़र किया जाता है और उसे सर्टिफ़ाइड किया जाता है. साथ ही, यूनीक आइडेंटिटी और उससे जुड़ी कुंजियां जनरेट की जाती हैं, ताकि उसे बायपास या उसमें छेड़छाड़ न की जा सके. रीड-ओनली मेमोरी (ROM), मेज़रमेंट, कॉन्फ़िगरेशन, और यूनीक डिवाइस सीक्रेट (यूडीएस) को प्रोसेस करता है. इसके लिए, यह कुंजी बनाने वाले फ़ंक्शन (केडीएफ़) का इस्तेमाल करता है. इससे, अगले चरण को लोड करने के लिए सीक्रेट का पता चलता है. इस सीक्रेट को कॉम्पाउंड डिवाइस आइडेंटिफ़ायर (सीडीआई) कहा जाता है.

पहला चरण: डेटा लेयर में इवेंट बनाने की प्रोसेस

DICE प्रोसेस, चिपसेट के ROM से शुरू होती है. यह बदलाव न किए जा सकने वाले डेटा के बैंक से UDS को लोड करता है. आम तौर पर, यह फ़्यूज़ होता है. चिप बनाने की प्रोसेस के दौरान, इस यूडीएस को क्रिप्टोग्राफ़िक तौर पर, यादृच्छिक वैल्यू के साथ सुरक्षित तरीके से प्रोवाइड किया जाता है. यूडीएस को पढ़ने के बाद, ROM, वेंडर पर निर्भर हार्डवेयर-लॉकिंग तंत्र का इस्तेमाल करता है. जैसे, अगले बूट होने तक यूडीएस ऐक्सेस को लॉक करने के लिए, एक लैच.

पहला चरण: कुंजी का शुरुआती डेरिवेशन

ROM, की डेरिवेशन फ़ंक्शन (केडीएफ़) के इनपुट के तौर पर यूडीएस का इस्तेमाल करता है. इससे, डिवाइस की यूनीक पहचान करने वाली असिमेट्रिक कुंजी का जोड़ा जनरेट होता है. यह फ़र्मवेयर के अगले चरण का आकलन करता है. इसमें बूट एनवायरमेंट का मेटाडेटा भी शामिल होता है. जैसे, सेक्योर बूट मोड चालू है या नहीं. इसके बाद, पहला सीडीआई पाने के लिए, ROM, यूडीएस, फ़र्मवेयर मेज़रमेंट, और कॉन्फ़िगरेशन डेटा को केडीएफ़ में जोड़ता है. इसे अगले चरण में गुप्त के तौर पर भेजा जाता है.

दूसरा से लेकर nवां चरण: बार-बार कुंजी बनाना

इसके बाद, यह प्रोसेस दोहराई जाती है. इसके बाद के सभी चरणों में, पिछले चरण का सीडीआई, नए केडीएफ़ के लिए इनपुट के तौर पर काम करता है. यह KDF, CDI और अगली फ़र्मवेयर इमेज के हैश का इस्तेमाल करके, नया डीरिव्ड सीडीआई बनाता है. हर चरण अपना कुंजी जोड़ा बनाता है और इसका इस्तेमाल, चरण के हिसाब से मेज़रमेंट और उससे जुड़े अन्य मेटाडेटा वाले सर्टिफ़िकेट पर हस्ताक्षर करने के लिए करता है.