विचार
Android संरक्षित पुष्टिकरण की अखंडता सुनिश्चित करने के लिए निम्नलिखित बातों पर ध्यान दिया जाना चाहिए। यदि इन विचारों को संतोषजनक ढंग से संबोधित नहीं किया जा सकता है, तो डिवाइस पर संरक्षित पुष्टिकरण लागू नहीं किया जा सकता है।
लिनक्स कर्नेल विचार
संरक्षित पुष्टिकरण को डिवाइस के कर्नेल से छेड़छाड़ होने पर भी सुरक्षित रूप से संचालित करने के लिए डिज़ाइन किया गया है। जबकि संरक्षित पुष्टिकरण संवाद सक्रिय है, कर्नेल स्क्रीन सामग्री की अखंडता, उपयोगकर्ता के इनपुट की अखंडता और उपयोगकर्ता इनपुट और आउटपुट के बीच परमाणुता में हस्तक्षेप नहीं कर सकता है। वास्तुकला की दृष्टि से, कर्नेल को सबसे पहले उपयोगकर्ता के निर्णय को बढ़ाने और उपयोगकर्ता घटनाओं को धोखा देने से रोका जाना चाहिए। इस उपयोग के मामले में कर्नेल को भरोसेमंद नहीं माना जाता है, क्योंकि यह किसी हमलावर के नियंत्रण में हो सकता है या किसी पूरी तरह से अलग चीज़ से बदला जा सकता है।
फ़र्मवेयर संबंधी विचार
संरक्षित पुष्टिकरण को किसी डिवाइस पर तभी लागू किया जा सकता है जब इसमें शामिल सभी घटकों में विश्वसनीय फर्मवेयर हो। संरक्षित पुष्टिकरण को यह सुनिश्चित करने के लिए डिज़ाइन किया गया है कि उपयोगकर्ता को लेनदेन के साथ आगे बढ़ना है या नहीं, यह सूचित निर्णय लेने के लिए विश्वसनीय यूआई में प्रदर्शित संदेश को पढ़ने का मौका मिले। डिस्प्ले पैनल ड्राइवर विशेष रूप से महत्वपूर्ण है क्योंकि यह उपयोगकर्ता को विश्वसनीय यूआई देखने में सक्षम होने से रोक सकता है।
इनपुट विचार
यह सुनिश्चित करने के लिए एक सुरक्षित इनपुट विधि चुनें कि इस चुनी गई इनपुट विधि द्वारा उत्पन्न इनपुट ईवेंट को संरक्षित पुष्टिकरण संवाद में तब तक नहीं भेजा जाएगा जब तक कि उपयोगकर्ता उस संवाद के सक्रिय रहने के दौरान ईवेंट उत्पन्न नहीं करता है।
भौतिक हार्डवेयर
कोई भी घटक जिसे एंड्रॉइड कर्नेल द्वारा नियंत्रित किया जा सकता है, जैसे कि सिस्टम ऑन चिप (एसओसी) या पावर मैनेजमेंट इंटीग्रेटेड सर्किट (पीएमआईसी), भौतिक पुष्टिकरण बटन से जुड़े तार को चलाने में सक्षम नहीं होना चाहिए।
स्पर्श नियंत्रक संबंधी विचार
संरक्षित पुष्टिकरण इनपुट के रूप में ऑन-स्क्रीन सॉफ़्टवेयर बटन का उपयोग कर सकता है। जब भी स्पर्श नियंत्रक को टीईई द्वारा चलाया जा रहा हो, तो स्पर्श नियंत्रक की स्थिति को स्वच्छ करने के लिए उपाय किए जाने चाहिए।
अपेक्षित व्यवहार
व्यवधान
यदि सिस्टम किसी इनकमिंग फोन कॉल या पावर इवेंट के कारण पुष्टिकरण सत्र को बाधित करता है, तो एचएएल को ResponseCode::Aborted
रिपोर्ट करनी होगी। ऐप्स को onCanceled()
कॉलबैक मिलता है और पता चलता है कि उपयोगकर्ता ने कोई कार्रवाई नहीं चुनी है। अलार्म को सत्र को निरस्त करने की आवश्यकता नहीं है, लेकिन उपयोगकर्ता को सूचित करने की आवश्यकता है। संवाद सक्रिय होने पर किसी भी प्रकार के अधिसूचना ओवरले की अनुमति नहीं है।
इनपुट अनुग्रह अवधि
संरक्षित पुष्टिकरण शुरू होने के बाद, उपयोगकर्ता इंटरैक्शन के प्रति प्रतिक्रियाशील होने से पहले इनपुट को कम से कम 1 सेकंड के लिए निष्क्रिय रहना होगा। यह छूट अवधि सुनिश्चित करती है कि उपयोगकर्ता को अप्रत्याशित पुष्टिकरण संवाद पर प्रतिक्रिया करने का मौका मिले। यह छूट अवधि विश्वसनीय ऐप द्वारा लागू की जानी चाहिए।
स्क्रीन को घुमाना
पोर्ट्रेट एकमात्र अनिवार्य मोड है, और स्क्रीन रोटेशन समर्थित नहीं है। स्क्रीन रोटेशन एक समझौता किए गए सिस्टम पर दुरुपयोग की संभावना की अनुमति देता है, जैसे भ्रामक बटन प्लेसमेंट या बॉडी टेक्स्ट हेरफेर।
बॉडी टेक्स्ट रेंडरिंग विफलता
अतिरिक्त गैर-प्रदर्शित डेटा और सीबीओआर हेडर जानकारी सहित मुख्य पाठ के लिए 6144 (0x1800) बाइट्स की एक कठिन सीमा है। इसके अलावा, एक नरम सीमा है जिसे लागू किया जाना चाहिए। यदि प्रस्तुत संदेश उपलब्ध स्क्रीन स्थान में पूरी तरह से फिट नहीं होता है, तो सुनिश्चित करें कि संरक्षित पुष्टिकरण निरस्त हो जाता है और लेनदेन रद्द कर दिया जाता है। यदि MessageSize
अधिकतम स्वीकार्य आकार से अधिक है, तो आपके कार्यान्वयन को promptUserConfirmation
पर UIErrorMessageTooLong
वापस करना होगा।
एपीआई कॉल प्राप्त करने के बाद मुख्य पाठ को प्रारूपित करना सबसे अच्छा अभ्यास है। उपयोगकर्ता को मुख्य पाठ पूर्ण रूप से दिखाया जाना चाहिए।
द्वितीयक प्रदर्शन
कुछ शर्तों के तहत द्वितीयक डिस्प्ले समर्थित हैं। आउटपुट और उपयोगकर्ता इनपुट की अखंडता बनाए रखी जानी चाहिए, और कोई भी भ्रामक जानकारी अन्य माध्यमों से प्रदर्शित नहीं की जा सकती। अन्यथा, संवाद केवल प्राथमिक डिस्प्ले पर प्रदर्शित किया जा सकता है और अन्य सभी डिस्प्ले निष्क्रिय या रिक्त होने चाहिए। स्ट्रीमिंग और स्क्रीन-शेयरिंग समाधानों को संवाद प्रदर्शित करने या पुष्टिकरण उत्पन्न करने की अनुमति नहीं है।