Trusty एक सुरक्षित ऑपरेटिंग सिस्टम (ओएस) है. यह Android के लिए ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) उपलब्ध कराता है. Trusty OS, Android OS के जैसे ही प्रोसेसर पर चलता है. हालांकि, Trusty को हार्डवेयर और सॉफ़्टवेयर, दोनों के ज़रिए बाकी सिस्टम से अलग रखा जाता है. Trusty और Android, एक-दूसरे के साथ काम करते हैं. Trusty के पास डिवाइस के मुख्य प्रोसेसर और मेमोरी का पूरा ऐक्सेस होता है. हालांकि, यह पूरी तरह से अलग होता है. Trusty को अलग रखने की सुविधा, इसे उपयोगकर्ता के इंस्टॉल किए गए नुकसान पहुंचाने वाले ऐप्लिकेशन और Android में संभावित कमजोरियों से सुरक्षित रखती है.
Trusty, ARM और Intel प्रोसेसर के साथ काम करता है. ARM सिस्टम पर, Trusty, मुख्य प्रोसेसर को वर्चुअलाइज़ करने और सुरक्षित TEE बनाने के लिए, ARM के TrustZone का इस्तेमाल करता है. Intel की वर्चुअलाइज़ेशन टेक्नोलॉजी का इस्तेमाल करने वाले, Intel x86 प्लैटफ़ॉर्म पर भी मिलती-जुलती सहायता उपलब्ध है.

पहली इमेज. Trusty की खास जानकारी देने वाला डायग्राम.
Trusty में ये शामिल हैं:
- Little Kernel से लिया गया छोटा ओएस कर्नेल
- सुरक्षित एनवायरमेंट और Android के बीच डेटा ट्रांसफ़र करने के लिए, Linux kernel ड्राइवर
- Android की यूज़रस्पेस लाइब्रेरी, जो कर्नेल ड्राइवर की मदद से, भरोसेमंद ऐप्लिकेशन (जैसे, सुरक्षित टास्क/सेवाएं) के साथ कम्यूनिकेट करती है
ध्यान दें: Trusty और Trusty API में बदलाव हो सकते हैं. Trusty API के बारे में जानकारी के लिए, एपीआई का रेफ़रंस देखें.
Trusty क्यों?
आम तौर पर, तीसरे पक्ष के वेंडर, टीईई के अन्य ऑपरेटिंग सिस्टम को बाइनरी ब्लॉब के तौर पर उपलब्ध कराते हैं या उन्हें इंटरनल तौर पर डेवलप करते हैं. चिप पर सिस्टम (SoC) की सेवा देने वाली कंपनियों और OEM के लिए, इंटरनल टीईई सिस्टम बनाना या तीसरे पक्ष से टीईई का लाइसेंस लेना महंगा हो सकता है. तीसरे पक्ष के सिस्टम पर पैसे खर्च करने के साथ-साथ, उन पर भरोसा न करना, Android के लिए एक अस्थिर नेटवर्क बनाता है. Trusty को अपने पार्टनर के TEE के लिए, भरोसेमंद और मुफ़्त ओपन सोर्स विकल्प के तौर पर उपलब्ध कराया जा रहा है. Trusty, पारदर्शिता का ऐसा लेवल देता है जो क्लोज़्ड सोर्स सिस्टम में उपलब्ध नहीं होता.
Android, टीईई के अलग-अलग वर्शन के साथ काम करता है. इसलिए, आपके पास सिर्फ़ Trusty का इस्तेमाल करने का विकल्प नहीं है. हर टीईई ओएस में, भरोसेमंद ऐप्लिकेशन को डिप्लॉय करने का अपना यूनीक तरीका होता है. यह फ़्रैगमेंटेशन, भरोसेमंद ऐप्लिकेशन के डेवलपर के लिए समस्या हो सकती है. ऐसा इसलिए, क्योंकि वे यह पक्का करना चाहते हैं कि उनके ऐप्लिकेशन हर Android डिवाइस पर काम करें. Trusty को स्टैंडर्ड के तौर पर इस्तेमाल करने से, ऐप्लिकेशन डेवलपर को कई TEE सिस्टम के फ़्रैगमेंटेशन को ध्यान में रखे बिना, ऐप्लिकेशन को आसानी से बनाने और डिप्लॉय करने में मदद मिलती है. Trusty TEE, डेवलपर और पार्टनर को पारदर्शिता, साथ मिलकर काम करने की सुविधा, कोड की जांच करने की सुविधा, और डीबग करने की आसान सुविधा देता है. भरोसेमंद ऐप्लिकेशन डेवलपर, सामान्य टूल और एपीआई के साथ काम करके, सुरक्षा से जुड़ी जोखिम की आशंका को कम कर सकते हैं. इन डेवलपर को भरोसा होगा कि वे एक ऐप्लिकेशन को डिवेलप कर सकते हैं और उसे फिर से डेवलप किए बिना, कई डिवाइसों पर इस्तेमाल कर सकते हैं.
ऐप्लिकेशन और सेवाएं
भरोसेमंद ऐप्लिकेशन को बाइनरी फ़ाइलों (एक्सीक्यूटेबल और रिसॉर्स फ़ाइलें), बाइनरी मेनिफ़ेस्ट, और क्रिप्टोग्राफ़िक हस्ताक्षर के कलेक्शन के तौर पर परिभाषित किया जाता है. रनटाइम के दौरान, Trusty ऐप्लिकेशन, Trusty kernel के तहत, बिना विशेषाधिकार वाले मोड में अलग-अलग प्रोसेस के तौर पर चलते हैं. हर प्रोसेस, अपने वर्चुअल मेमोरी सैंडबॉक्स में चलती है. इसके लिए, टीईई प्रोसेसर की मेमोरी मैनेजमेंट यूनिट की सुविधाओं का इस्तेमाल किया जाता है. हार्डवेयर के बिल्ड की वजह से, Trusty की प्रोसेस में बदलाव होता है. उदाहरण के लिए, सुरक्षित टाइमर टिक से चलने वाले प्राथमिकता-आधारित राउंड-रॉबिन शेड्यूलर का इस्तेमाल करके, कर्नेल इन प्रोसेस को शेड्यूल करता है. भरोसेमंद ऐप्लिकेशन की प्राथमिकता एक जैसी होती है.

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