बॉयोमेट्रिक्स

बॉयोमीट्रिक्स एक उपकरण के साथ आपकी पहचान की पुष्टि करने का एक अधिक सुविधाजनक, लेकिन संभावित रूप से कम सुरक्षित तरीका प्रदान करता है। स्तरीय प्रमाणीकरण मॉडल के तहत, प्राथमिक प्रमाणीकरण (अर्थात, पिन, पैटर्न और पासवर्ड जैसे ज्ञान-कारक आधारित तौर-तरीके) उच्चतम स्तर की सुरक्षा प्रदान करते हैं। बायोमेट्रिक्स प्रमाणीकरण के द्वितीयक स्तर पर हैं, जो सुविधा और सुरक्षा का संतुलन प्रदान करते हैं। एंड्रॉइड सीडीडी बायोमेट्रिक ताकत के तीन वर्गों को परिभाषित करता है: कक्षा 3 (पूर्व में मजबूत), कक्षा 2 (पूर्व में कमजोर), और कक्षा 1 (पूर्व में सुविधा)। प्रत्येक वर्ग में पूर्वापेक्षाओं, विशेषाधिकारों और बाधाओं का एक सेट होता है - अधिक विवरण के लिए कृपया ऊपर सीडीडी देखें। सभी तीन वर्गों को लॉकस्क्रीन के साथ एकीकृत करने की अनुमति है, लेकिन केवल मजबूत और कमजोर प्रमाणकों को android.hardware.biometrics API के साथ एकीकृत करने की अनुमति है। यह तालिका प्रत्येक प्रमाणक और उनके द्वारा समर्थित कार्यक्षमता का वर्णन करती है।

प्रमाणक लॉक स्क्रीन बॉयोमीट्रिक शीघ्र एकीकरण कीस्टोर (समय-आधारित कुंजी) कीस्टोर (ऑपरेशन-आधारित कुंजी)
BIOMETRIC_STRONG (कक्षा 3) हाँ हाँ हाँ हाँ
BIOMETRIC_WEAK (कक्षा 2) हाँ हाँ नहीं नहीं
BIOMETRIC_CONVENIENCE
(वर्ग 1)
हाँ नहीं नहीं नहीं
DEVICE_CREDENTIAL हाँ हाँ हाँ हाँ (1)
  1. यह कार्यक्षमता Android 11 में जोड़ी गई है, विवरण के लिए इसे देखें

एंड्रॉइड फ्रेमवर्क में फेस और फिंगरप्रिंट बायोमेट्रिक ऑथेंटिकेशन के लिए सपोर्ट शामिल है। एंड्रॉइड को अन्य बायोमेट्रिक तौर-तरीकों (जैसे आइरिस) का समर्थन करने के लिए अनुकूलित किया जा सकता है। हालांकि, बॉयोमीट्रिक एकीकरण बायोमेट्रिक सुरक्षा पर निर्भर करेगा, न कि तौर-तरीके पर। बायोमेट्रिक सुरक्षा विनिर्देशों के बारे में अधिक जानकारी के लिए, बायोमेट्रिक अनलॉक सुरक्षा मापना देखें।

स्रोत

एंड्रॉइड 11

  • BiometricManager.Authenticators इंटरफ़ेस का परिचय देता है, जो स्थिरांक प्रदान करता है जिसका उपयोग डेवलपर्स अपने ऐप्स द्वारा स्वीकृत प्रमाणीकरण के प्रकारों को निर्दिष्ट करने के लिए कर सकते हैं।
  • ACTION_BIOMETRIC_ENROLLआशय क्रिया जोड़ता है, जिसका उपयोग डेवलपर्स उपयोगकर्ता को एक प्रमाणीकरण विधि नामांकित करने के लिए निर्देशित करने के लिए कर सकते हैं जो उनके ऐप्स की आवश्यकताओं को पूरा करती है।
  • AuthenticationResult #getAuthenticationType () विधि जोड़ता है, जिसका उपयोग डेवलपर्स यह जांचने के लिए कर सकते हैं कि उपयोगकर्ता बायोमेट्रिक क्रेडेंशियल या डिवाइस क्रेडेंशियल का उपयोग करके प्रमाणित किया गया है या नहीं।
  • BiometricPrompt वर्ग के भीतर प्रमाणीकरण-प्रति-उपयोग कुंजियों के लिए अतिरिक्त सहायता प्रदान करता है।

एंड्रॉइड 10

  • BiometricManager वर्ग का परिचय देता है जिसका उपयोग डेवलपर्स बायोमेट्रिक प्रमाणीकरण की उपलब्धता को क्वेरी करने के लिए कर सकते हैं।
  • BiometricPrompt के लिए फिंगरप्रिंट और फेस ऑथेंटिकेशन इंटीग्रेशन शामिल है

एंड्रॉइड 9

  • केवल BiometricPrompt के लिए फ़िंगरप्रिंट एकीकरण शामिल है।
  • फ़िंगरप्रिंट प्रबंधक वर्ग को हटा देता है। यदि आपके बंडल किए गए और सिस्टम ऐप्स इस वर्ग का उपयोग करते हैं, तो उन्हें इसके बजाय BiometricPrompt और BiometricManager का उपयोग करने के लिए अपडेट करें।
  • BiometricPromptBoundKeysTest BiometricPrompt परीक्षण करने के लिए FingerprintManager CTS सत्यापनकर्ता परीक्षणों को अपडेट किया।

कार्यान्वयन

यह सुनिश्चित करने के लिए कि उपयोगकर्ताओं और डेवलपर्स के पास एक सहज बायोमेट्रिक अनुभव है, अपने बायोमेट्रिक स्टैक को BiometricPrompt , BiometricManager और ACTION_BIOMETRIC_ENROLL APIs के साथ एकीकृत करें। बायोमेट्रिक सेंसर वाले उपकरणों को इन शक्ति आवश्यकताओं का पालन करना चाहिए।
अपने बायोमेट्रिक स्टैक को BiometricPrompt और BiometricManager APIs के साथ एकीकृत करने के लिए:

  1. सुनिश्चित करें कि आपकी <Modality>Service IBiometricService#registerAuthenticator विधि के माध्यम से BiometricService के साथ ठीक से पंजीकृत है और IBiometricAuthenticator इंटरफ़ेस लागू करती है। सामान्य तौर-तरीके (फिंगरप्रिंट, चेहरा) एक सामान्य सुपरक्लास से विस्तारित होते हैं। यदि आपको एक असमर्थित तौर-तरीके को एकीकृत करने की आवश्यकता है, तो फिंगरप्रिंट / चेहरे के उदाहरण और बायोमेट्रिक्स के लिए सीडीडी दिशानिर्देशों का पालन करें।
  2. सुनिश्चित करें कि आपका नया तौर- तरीका SystemUI में ठीक से समर्थित है। फिंगरप्रिंट और चेहरे के लिए डिफ़ॉल्ट BiometricPrompt यूजर इंटरफेस हैं। इसमें आपके डिवाइस के लिए आवश्यक कोई भी लेआउट या थीम परिवर्तन शामिल होना चाहिए। यानी इन-डिस्प्ले फिंगरप्रिंट सेंसर के लिए संबंधित लेआउट में बदलाव।

अपने बायोमेट्रिक स्टैक को ACTION_BIOMETRIC_ENROLL API के साथ एकीकृत करने के लिए:

  1. अपना नामांकन प्रवाह प्रस्तुत करने के लिए BiometricEnrollActivity को संशोधित करें। ध्यान दें कि आपका बायोमेट्रिक तभी प्रस्तुत किया जा सकता है जब वह अनुरोधित क्षमता को पूरा करता हो। यदि आपका उपकरण एक से अधिक का समर्थन करता है, तो इस क्रिया को एक सूची प्रस्तुत करनी चाहिए जिसे उपयोगकर्ता चुन सकता है।
बायोमेट्रिक प्रॉम्प्ट आर्किटेक्चर
चित्र 1. बायोमेट्रिक प्रॉम्प्ट आर्किटेक्चर

एचएएल कार्यान्वयन दिशानिर्देश

यह सुनिश्चित करने के लिए इन बायोमेट्रिक एचएएल दिशानिर्देशों का पालन करें कि बायोमेट्रिक डेटा लीक नहीं होता है और जब उपयोगकर्ता को डिवाइस से हटा दिया जाता है तो उसे हटा दिया जाता है:

  • सुनिश्चित करें कि कच्चे बायोमेट्रिक डेटा या डेरिवेटिव (जैसे टेम्प्लेट) सुरक्षित पृथक वातावरण (जैसे टीईई या सिक्योर एलिमेंट) के बाहर कभी भी पहुंच योग्य नहीं हैं। सभी संग्रहीत डेटा को केवल टीईई (विश्वसनीय निष्पादन पर्यावरण) के लिए ज्ञात डिवाइस-विशिष्ट कुंजी के साथ एन्क्रिप्ट किया जाना चाहिए। यदि हार्डवेयर इसका समर्थन करता है, तो सुरक्षित पृथक वातावरण तक हार्डवेयर पहुंच को सीमित करें और इसे SELinux नीति के साथ सुरक्षित रखें। संचार चैनल (उदाहरण के लिए, SPI, I2C) को सभी डिवाइस फ़ाइलों पर एक स्पष्ट SELinux नीति के साथ सुरक्षित पृथक वातावरण में ही पहुंच योग्य बनाएं।
  • डेटा उल्लंघनों और अन्य हमलों को रोकने के लिए बायोमेट्रिक अधिग्रहण, नामांकन और मान्यता सुरक्षित पृथक वातावरण में होनी चाहिए। यह आवश्यकता केवल कक्षा 3 (पूर्व में मजबूत) और कक्षा 2 (पूर्व में कमजोर) बायोमेट्रिक्स पर लागू होती है।
  • रीप्ले हमलों से बचाने के लिए, एक निजी, डिवाइस-विशिष्ट कुंजी के साथ बायोमेट्रिक टेम्प्लेट पर हस्ताक्षर करें। उन्नत एन्क्रिप्शन मानक (एईएस) के लिए, कम से कम पूर्ण फ़ाइल-सिस्टम पथ, समूह और बायोमेट्रिक आईडी के साथ एक टेम्पलेट पर हस्ताक्षर करें, ताकि टेम्पलेट फ़ाइलें किसी अन्य डिवाइस पर या उपयोगकर्ता के अलावा किसी अन्य व्यक्ति के लिए निष्क्रिय हो, जिसने उन्हें उसी डिवाइस पर नामांकित किया हो . उदाहरण के लिए, एक ही डिवाइस पर या किसी अन्य डिवाइस से किसी भिन्न उपयोगकर्ता के बायोमेट्रिक डेटा को कॉपी करने से रोकें।
  • यदि आपको टीईई के बाहर डेटा स्टोर करने की आवश्यकता है, तो setActiveUser() HIDL method द्वारा प्रदान किए गए फ़ाइल-सिस्टम पथ का उपयोग करें या उपयोगकर्ता को हटाए जाने पर सभी उपयोगकर्ता टेम्पलेट डेटा को मिटाने का दूसरा तरीका प्रदान करें। इसका कारण उपयोगकर्ता डेटा को लीक होने से बचाना है। जो डिवाइस इस पथ का उपयोग नहीं करते हैं उन्हें उपयोगकर्ता को निकालने के बाद साफ़ करना होगा । सीडीडी द्वारा यह आवश्यक है कि बायोमेट्रिक डेटा और व्युत्पन्न फ़ाइलों को एन्क्रिप्टेड संग्रहीत किया जाए - विशेष रूप से यदि टीईई में नहीं है यदि सुरक्षित पृथक वातावरण की भंडारण आवश्यकताओं के कारण यह संभव नहीं है, तो उपयोगकर्ता को हटा दिए जाने पर डेटा को हटाने या डिवाइस को हटाने के लिए हुक जोड़ें मिटा दिया जाता है। देखें LockSettingsService.removeBiometricsForUser()

अनुकूलन

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

मान्यकरण

आपके बायोमेट्रिक कार्यान्वयन को निम्नलिखित परीक्षण पास करने होंगे:

इसके अलावा, यदि आपका उपकरण बायोमेट्रिक का समर्थन करता है जिसमें एओएसपी एचआईडीएल ( फिंगरप्रिंट@2.1 , फिंगरप्रिंट@2.2 , फेस1.0) है, तो उसे अपना प्रासंगिक वीटीएस परीक्षण ( फिंगरप्रिंट , चेहरा ) पास करना होगा।