सुरक्षित पुष्टि की सुविधा को लागू करना

ज़रूरी बातें

Android Protected Confirmation की सुरक्षा को पक्का करने के लिए, इन बातों का ध्यान रखना ज़रूरी है. अगर इन बातों को ठीक से हल नहीं किया जा सकता, तो डिवाइस पर सुरक्षित पुष्टि की सुविधा लागू नहीं की जा सकती.

Linux kernel से जुड़ी बातें

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

फ़र्मवेयर से जुड़ी बातें

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

इनपुट से जुड़ी बातें

सुरक्षित इनपुट तरीका चुनें, ताकि चुने गए इनपुट तरीके से जनरेट किए गए इनपुट इवेंट, सुरक्षित पुष्टि करने वाले डायलॉग में तब तक न भेजे जाएं, जब तक उपयोगकर्ता उस डायलॉग के चालू होने पर इवेंट जनरेट न करे.

फ़िज़िकल हार्डवेयर

Android kernel से कंट्रोल किए जा सकने वाले किसी भी कॉम्पोनेंट, जैसे कि सिस्टम ऑन चिप (SoC) या पावर मैनेजमेंट इंटिग्रेटेड सर्किट (PMIC) को पुष्टि करने वाले फ़िज़िकल बटन से कनेक्ट किए गए वायर को ड्राइव करने की अनुमति नहीं होनी चाहिए.

टच कंट्रोलर के बारे में ज़रूरी बातें

सुरक्षित पुष्टि करने की सुविधा, इनपुट के तौर पर स्क्रीन पर मौजूद सॉफ़्टवेयर बटन का इस्तेमाल कर सकती है. जब भी टच कंट्रोलर को टीईई से चलाया जा रहा हो, तो टच कंट्रोलर की स्थिति को सुरक्षित रखने के लिए ज़रूरी कदम उठाए जाने चाहिए.

उम्मीद के मुताबिक व्यवहार

कॉल और मैसेज को रोकें

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

ग्रेस पीरियड डालें

सुरक्षित पुष्टि की प्रोसेस शुरू होने के बाद, उपयोगकर्ता के इंटरैक्शन के जवाब में इनपुट को कम से कम एक सेकंड तक इनऐक्टिव रहना चाहिए. इस ग्रेस पीरियड से यह पक्का होता है कि उपयोगकर्ता को पुष्टि करने वाले अचानक दिखने वाले डायलॉग पर प्रतिक्रिया देने का मौका मिले. यह ग्रेस पीरियड, भरोसेमंद ऐप्लिकेशन को लागू करना होगा.

स्क्रीन घुमाना

पोर्ट्रेट मोड ही इस्तेमाल करना ज़रूरी है. साथ ही, स्क्रीन को घुमाने की सुविधा काम नहीं करती. स्क्रीन रोटेशन की सुविधा से, हैक किए गए सिस्टम का गलत इस्तेमाल किया जा सकता है. जैसे, बटन को गुमराह करने वाली जगह पर रखना या मुख्य टेक्स्ट में बदलाव करना.

मुख्य हिस्से के टेक्स्ट को रेंडर करने में हुई गड़बड़ियां

मुख्य टेक्स्ट के लिए, 6144 (0x1800) बाइट की तय सीमा है. इसमें, अतिरिक्त और न दिखाया गया डेटा और CBOR हेडर की जानकारी शामिल है. इसके अलावा, एक सॉफ़्ट सीमा भी होती है जिसे लागू करना ज़रूरी है. अगर रेंडर किया गया मैसेज, स्क्रीन के उपलब्ध स्पेस में पूरी तरह से फ़िट नहीं होता है, तो पक्का करें कि सुरक्षित पुष्टि की सुविधा बंद हो जाए और लेन-देन रद्द हो जाए. अगर MessageSize, तय किए गए साइज़ से ज़्यादा है, तो आपके लागू करने की प्रोसेस को promptUserConfirmation पर UIErrorMessageTooLong दिखाना चाहिए.

एपीआई कॉल मिलने के बाद, बॉडी टेक्स्ट को फ़ॉर्मैट करना सबसे सही तरीका है. उपयोगकर्ता को मुख्य टेक्स्ट पूरा दिखना चाहिए.

दूसरे डिसप्ले

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