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

डिवाइस आइडेंटिफ़ायर कंपोज़िशन इंजन (डाइस), Trusted Computing Group (TCG) की एक खास सुविधा है. इसे Android में शामिल किया गया है. यह बूट सीक्वेंस के दौरान लोड किए गए फ़र्मवेयर के हर हिस्से के लिए, मज़बूत और अपरिवर्तनीय क्रिप्टोग्राफ़िक आइडेंटिटी का एक सेट बनाता है. इन आइडेंटिटी की मदद से, किसी डिवाइस की सुरक्षा की स्थिति की पुष्टि दूर से की जा सकती है. इस पुष्टि को सिर्फ़ ROM से छेड़छाड़ करके रोका जा सकता है.

DICE जनरेट करने की प्रोसेस

डाइस के अनुमान लगाने की आसान प्रोसेस

पहली इमेज. डाइस को जनरेट करने की प्रोसेस को आसान बनाया गया है.

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

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

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

पहला चरण: शुरुआती कुंजी बनाना

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

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

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