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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

प्रमाणक लॉक स्क्रीन बॉयोमीट्रिक शीघ्र एकीकरण कीस्टोर (समय-आधारित कुंजी) कीस्टोर (ऑपरेशन-आधारित कुंजी)
BIOMETRIC_STRONG (कक्षा 3) हाँ हाँ हाँ हाँ
BIOMETRIC_WEAK (कक्षा 2) हाँ हाँ नहीं नहीं
BIOMETRIC_CONVENIENCE
(वर्ग 1)
हाँ नहीं नहीं नहीं
DEVICE_CREDENTIAL हाँ हाँ हाँ हाँ

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

स्रोत

एंड्रॉइड 12

  • BiometricManager.Strings API का परिचय देता है, जो प्रमाणीकरण के लिए BiometricPrompt का उपयोग करने वाले ऐप्स के लिए स्थानीयकृत स्ट्रिंग प्रदान करता है। इन स्ट्रिंग्स का उद्देश्य डिवाइस-जागरूक होना और अधिक विशिष्टता प्रदान करना है जिसके बारे में प्रमाणीकरण प्रकार का उपयोग किया जा सकता है।
  • अंडर-डिस्प्ले फिंगरप्रिंट सेंसर (UDFPS) सपोर्ट शामिल है।

एंड्रॉइड 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 के साथ एकीकृत करें। बायोमेट्रिक सेंसर वाले उपकरणों को इन शक्ति आवश्यकताओं का पालन करना चाहिए। इसके अलावा, सभी कार्यान्वयनों को CtsBiometricsTestCases CTS मॉड्यूल पास करना होगा।

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

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

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

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

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

अनुकूलन

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

डिवाइस-विशिष्ट प्रमाणीकरण स्ट्रिंग्स

Android 12 से शुरू होकर, बायोमेट्रिकमैनेजर.स्ट्रिंग्स एपीआई के माध्यम से डेवलपर्स के लिए प्रासंगिक प्रमाणीकरण स्ट्रिंग्स उपलब्ध कराई जाती हैं। डिवाइस-विशिष्ट स्ट्रिंग्स को लागू करने के लिए आप इस एपीआई द्वारा लौटाए गए संसाधन मानों को अनुकूलित कर सकते हैं। यदि आप ऐसा करते हैं, तो सुनिश्चित करें कि किसी भी नए तार का अनुवाद उन सभी स्थानों के लिए किया जाता है जिनका डिवाइस समर्थन करता है। इसके अतिरिक्त, सुनिश्चित करें कि निम्नलिखित गुण संरक्षित हैं:


तरीका

स्ट्रिंग उद्देश्य

प्रमाणीकरण प्रकार शामिल करने के लिए

यदि बॉयोमीट्रिक (ओं) और स्क्रीन लॉक दोनों संभव हैं

गेटबटन लेबल ()

बायोमेट्रिक प्रॉम्प्ट को ट्रिगर करने वाले बटन के लिए लेबल

केवल नामांकित प्रकार (यदि संभव हो) जो प्रमाणक आवश्यकताओं को पूरा करते हैं

बायोमेट्रिक-ओनली स्ट्रिंग का उपयोग करें (जैसे, "फ़िंगरप्रिंट का उपयोग करें")

getPromptMessage ()

प्रमाणीकरण करते समय बायोमेट्रिक प्रॉम्प्ट पर दिखाया गया संदेश

केवल नामांकित प्रकार (यदि संभव हो) जो प्रमाणक आवश्यकताओं को पूरा करते हैं

संयुक्त बायोमेट्रिक और स्क्रीन लॉक स्ट्रिंग का उपयोग करें (उदाहरण के लिए "जारी रखने के लिए अपने फ़िंगरप्रिंट या पिन का उपयोग करें")

गेटसेटिंगनाम ()

प्रमाणीकरण के लिए बायोमेट्रिक प्रॉम्प्ट को सक्षम करने वाली सेटिंग का नाम

डिवाइस द्वारा समर्थित सभी प्रकार (भले ही नामांकित न हों) जो प्रमाणक आवश्यकताओं को पूरा करते हैं

संयुक्त बायोमेट्रिक और स्क्रीन लॉक स्ट्रिंग का उपयोग करें (जैसे, "फ़िंगरप्रिंट या स्क्रीन लॉक का उपयोग करें")

उदाहरण के लिए, एक ऐसे उपकरण पर विचार करें जिसमें नामांकित चेहरे के साथ कक्षा 2 का चेहरा सेंसर है, एक नामांकित पिन है, और बिना नामांकित उंगलियों के निशान वाला कक्षा 3 का फिंगरप्रिंट सेंसर है। निम्न तालिका अनुमत प्रमाणकों के प्रत्येक संयोजन के लिए नमूना स्ट्रिंग प्रदान करती है और BiometricManager.Strings विधि को आमंत्रित करती है:


अनुमत प्रमाणक

गेटबटन लेबल ()

getPromptMessage ()

गेटसेटिंगनाम ()

कक्षा 3 बायोमेट्रिक ( BIOMETRIC_STRONG )

"फिंगरप्रिंट का प्रयोग करें"
(केवल फ़िंगरप्रिंट प्रमाणक आवश्यकताओं को पूरा करता है)

"जारी रखने के लिए अपने फ़िंगरप्रिंट का उपयोग करें"
(केवल फ़िंगरप्रिंट प्रमाणक आवश्यकताओं को पूरा करता है)

"फिंगरप्रिंट का प्रयोग करें"
(केवल फ़िंगरप्रिंट प्रमाणक आवश्यकताओं को पूरा करता है)

कक्षा 2 बायोमेट्रिक ( BIOMETRIC_WEAK )

"चेहरे का प्रयोग करें"
(चेहरे और फ़िंगरप्रिंट आवश्यकताओं को पूरा करते हैं; केवल चेहरा नामांकित है)

"जारी रखने के लिए अपने चेहरे का प्रयोग करें"
(चेहरे और फ़िंगरप्रिंट आवश्यकताओं को पूरा करते हैं; केवल चेहरा नामांकित है)

"चेहरे या फ़िंगरप्रिंट का उपयोग करें"
(चेहरा और फ़िंगरप्रिंट आवश्यकताओं को पूरा करते हैं; डिवाइस दोनों का समर्थन करता है)

स्क्रीन लॉक ( DEVICE_CREDENTIAL )

"पिन का प्रयोग करें"
(कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; पिन नामांकित है)

"जारी रखने के लिए अपना पिन दर्ज करें"
(कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; पिन नामांकित है)

"स्क्रीन लॉक का उपयोग करें"
(कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है)

कक्षा 3 बायोमेट्रिक या स्क्रीन लॉक

"पिन का प्रयोग करें"
(फ़िंगरप्रिंट और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; केवल पिन नामांकित है)

"जारी रखने के लिए अपना पिन दर्ज करें"
(फ़िंगरप्रिंट और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; केवल पिन नामांकित है)

"फिंगरप्रिंट या स्क्रीन लॉक का उपयोग करें"
(फिंगरप्रिंट और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है)

कक्षा 2 बायोमेट्रिक या स्क्रीन लॉक

"चेहरे का प्रयोग करें"
(चेहरा, फ़िंगरप्रिंट, और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; चेहरा नामांकित है और पिन का स्थान लेता है)

"जारी रखने के लिए अपने चेहरे या पिन का उपयोग करें"
(चेहरा, फ़िंगरप्रिंट, और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है; चेहरा और पिन नामांकित हैं)

"बायोमेट्रिक्स या स्क्रीन लॉक का उपयोग करें"
(चेहरा, फ़िंगरप्रिंट, और कोई भी स्क्रीन लॉक आवश्यकताओं को पूरा करता है)

मान्यकरण

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

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