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

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

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

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

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

लोड किया गया फ़र्मवेयर, CBOR ऑब्जेक्ट साइनिंग ऐंड एन्क्रिप्शन (सीओएसई) साइन1 सर्टिफ़िकेट को साइन करने के लिए, जनरेट किए गए कीपेयर का इस्तेमाल करता है. हर चरण, अगले चरण के लिए सर्टिफ़िकेट पर हस्ताक्षर करता है, ताकि उसे लोड किया जा सके. इस सर्टिफ़िकेट में, उस चरण की मेज़रमेंट, बूट के मोड, उस चरण के लिए CDI की सार्वजनिक कुंजी, और उससे जुड़ा अन्य मेटाडेटा जैसी जानकारी शामिल होती है.

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

पहला डायग्राम. डीआईसीई का अनुमान लगाने की आसान प्रोसेस.

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