المقاييس الحيوية

توفر القياسات الحيوية طريقة أكثر ملاءمة، ولكن من المحتمل أن تكون أقل أمانًا، لتأكيد هويتك باستخدام الجهاز. ضمن نموذج المصادقة المتدرج، توفر المصادقة الأولية (مثل الأساليب المستندة إلى عامل المعرفة مثل رقم التعريف الشخصي والنمط وكلمة المرور) أعلى مستوى من الأمان. تقع القياسات الحيوية في المستوى الثانوي من المصادقة، مما يوفر توازنًا بين الراحة والأمان. يحدد Android CDD ثلاث فئات من القوة البيومترية: الفئة 3 (قوية سابقًا)، والفئة 2 (ضعيفة سابقًا)، والفئة 1 (الملاءمة سابقًا). يحتوي كل فصل على مجموعة من المتطلبات الأساسية والامتيازات والقيود - يرجى مراجعة CDD أعلاه للحصول على مزيد من التفاصيل. يُسمح لجميع الفئات الثلاثة بالتكامل مع شاشة القفل، ولكن يُسمح فقط للمصادقين الأقوياء والضعفاء بالتكامل مع واجهات برمجة التطبيقات android.hardware.biometrics. يصف هذا الجدول كل أداة مصادقة والوظيفة التي تدعمها.

الموثق اقفل الشاشة التكامل البيومتري الفوري Keystore (مفتاح يعتمد على الوقت) Keystore (مفتاح قائم على التشغيل)
بيومتري_سترونج (الفئة 3) نعم نعم نعم نعم
BIOMETRIC_WEAK (الفئة 2) نعم نعم لا لا
الراحة_البيومترية
(الفئة 1)
نعم لا لا لا
DEVICE_CREDENTIAL نعم نعم نعم نعم

يتضمن إطار عمل Android دعمًا للمصادقة البيومترية للوجه وبصمات الأصابع. يمكن تخصيص Android لدعم الأساليب البيومترية الأخرى (مثل Iris). ومع ذلك، فإن التكامل البيومتري سيعتمد على الأمن البيومتري، وليس الطريقة. لمزيد من التفاصيل حول مواصفات الأمان البيومترية، راجع قياس أمان فتح القفل البيومتري .

مصدر

أندرويد 12

  • يقدم BiometricManager.Strings API، الذي يوفر سلاسل مترجمة للتطبيقات التي تستخدم BiometricPrompt للمصادقة. تهدف هذه السلاسل إلى أن تكون على دراية بالجهاز وتوفر مزيدًا من التحديد حول نوع (أنواع) المصادقة التي يمكن استخدامها.
  • يتضمن دعم مستشعر بصمة الإصبع تحت الشاشة (UDFPS).

أندرويد 11

  • يقدم واجهة BiometricManager.Authenticators ، التي توفر ثوابت يمكن للمطورين استخدامها لتحديد أنواع المصادقة التي تقبلها تطبيقاتهم.
  • يضيفإجراء الغرض ACTION_BIOMETRIC_ENROLL ، والذي يمكن للمطورين استخدامه لتوجيه المستخدم لتسجيل طريقة مصادقة تلبي متطلبات تطبيقاتهم.
  • يضيف طريقة AuthenticationResult #getAuthenticationType () ، والتي يمكن للمطورين استخدامها للتحقق مما إذا كان المستخدم قد تمت مصادقته باستخدام بيانات اعتماد القياسات الحيوية أو بيانات اعتماد الجهاز.
  • يوفر دعمًا إضافيًا لمفاتيح المصادقة لكل استخدام ضمن فئة BiometricPrompt.

أندرويد 10

  • يقدم فئة BiometricManager التي يمكن للمطورين استخدامها للاستعلام عن مدى توفر المصادقة البيومترية.
  • يتضمن تكامل بصمة الإصبع ومصادقة الوجه لـ BiometricPrompt

أندرويد 9

  • يتضمن تكامل بصمة الإصبع فقط مع BiometricPrompt .
  • إهمال فئة FingerprintManager. إذا كانت تطبيقاتك المجمعة وتطبيقات النظام تستخدم هذه الفئة، فقم بتحديثها لاستخدام BiometricPrompt و BiometricManager بدلاً من ذلك.
  • تم تحديث اختبارات التحقق من FingerprintManager CTS لاختبار BiometricPrompt باستخدام BiometricPromptBoundKeysTest .

تطبيق

لضمان حصول المستخدمين والمطورين على تجربة بيومترية سلسة، قم بدمج مجموعة المقاييس الحيوية الخاصة بك مع واجهات برمجة تطبيقات BiometricPrompt و BiometricManager و ACTION_BIOMETRIC_ENROLL . يجب أن تلتزم الأجهزة المزودة بأجهزة استشعار بيومترية بمتطلبات القوة هذه. بالإضافة إلى ذلك، يجب أن تجتاز جميع التطبيقات وحدة CtsBiometricsTestCases CTS.

لدمج مجموعة المقاييس الحيوية الخاصة بك مع واجهة برمجة التطبيقات ACTION_BIOMETRIC_ENROLL:

  1. قم بتعديل BiometricEnrollActivity لعرض تدفق التسجيل الخاص بك. لاحظ أنه لا يمكن تقديم القياسات الحيوية الخاصة بك إلا إذا كانت تفي بالقوة المطلوبة. إذا كان جهازك يدعم أكثر من واحد، فيجب أن يقدم هذا الإجراء قائمة يمكن للمستخدم الاختيار من بينها.
الهندسة المعمارية البيومترية
الشكل 1. بنية BiometricPrompt

المبادئ التوجيهية لتنفيذ HAL

اتبع إرشادات HAL البيومترية هذه لضمان عدم تسرب البيانات البيومترية وإزالتها عند إزالة المستخدم من الجهاز:

  • تأكد من عدم إمكانية الوصول مطلقًا إلى البيانات البيومترية الأولية أو مشتقاتها (مثل القوالب) من خارج البيئة المعزولة الآمنة (مثل TEE أو Secure Element). يجب تشفير جميع البيانات المخزنة باستخدام مفتاح خاص بالجهاز معروف فقط لـ TEE (بيئة التنفيذ الموثوقة). إذا كانت الأجهزة تدعمها، فقم بتقييد وصول الأجهزة إلى البيئة المعزولة الآمنة وحمايتها باستخدام سياسة SELinux. جعل قناة الاتصال (على سبيل المثال، SPI، I2C) متاحة فقط للبيئة المعزولة الآمنة مع سياسة SELinux واضحة على جميع ملفات الجهاز.
  • يجب أن يتم الحصول على القياسات الحيوية وتسجيلها والتعرف عليها داخل بيئة معزولة آمنة لمنع اختراق البيانات والهجمات الأخرى. ينطبق هذا المطلب فقط على القياسات الحيوية من الفئة 3 (قوية سابقًا) والفئة 2 (ضعيفة سابقًا) .
  • للحماية من هجمات إعادة التشغيل، قم بتوقيع قوالب القياسات الحيوية باستخدام مفتاح خاص خاص بالجهاز. بالنسبة لمعيار التشفير المتقدم (AES)، قم على الأقل بتوقيع قالب بمسار نظام الملفات المطلق والمجموعة والمعرف الحيوي بحيث تكون ملفات القالب غير قابلة للتشغيل على جهاز آخر أو لأي شخص آخر غير المستخدم الذي قام بتسجيلها على نفس الجهاز . على سبيل المثال، منع نسخ البيانات البيومترية من مستخدم مختلف على نفس الجهاز أو من جهاز آخر.
  • إذا كنت بحاجة إلى تخزين البيانات خارج TEE، فاستخدم مسار نظام الملفات الذي توفره setActiveUser() HIDL method أو قم بتوفير طريقة أخرى لمسح جميع بيانات قالب المستخدم عند إزالة المستخدم. والسبب هو حماية تسرب بيانات المستخدم. يجب أن يتم تنظيف الأجهزة التي لا تستخدم هذا المسار بعد إزالة المستخدم. يتطلب CDD أن يتم تخزين البيانات البيومترية والملفات المشتقة بشكل مشفر - خاصة إذا لم تكن في TEE. إذا كان ذلك غير ممكن بسبب متطلبات التخزين في البيئة المعزولة الآمنة، أضف خطافات لضمان إزالة البيانات عند إزالة المستخدم أو الجهاز تم مسحه. راجع LockSettingsService.removeBiometricsForUser()

التخصيص

إذا كان جهازك يدعم القياسات الحيوية المتعددة، فيجب أن يكون المستخدم قادرًا على تحديد الإعداد الافتراضي في الإعدادات. يجب أن يفضل تطبيق BiometricPrompt الخاص بك القياسات الحيوية من الفئة 3 (القوية سابقًا) كإعداد افتراضي ما لم يتجاوزها المستخدم صراحةً، ثم يجب عرض رسالة تحذير تشرح المخاطر المرتبطة بالمقاييس الحيوية (على سبيل المثال، قد تؤدي صورة لك إلى إلغاء قفل جهازك) )

سلاسل المصادقة الخاصة بالجهاز

بدءًا من Android 12، أصبحت سلاسل المصادقة السياقية متاحة للمطورين من خلال BiometricManager.Strings API. يمكنك تخصيص قيم الموارد التي ترجعها واجهة برمجة التطبيقات هذه لتنفيذ سلاسل خاصة بالجهاز. إذا قمت بذلك، فتأكد من ترجمة أي سلاسل جديدة لجميع اللغات التي يدعمها الجهاز. بالإضافة إلى ذلك، تأكد من الحفاظ على الخصائص التالية:


طريقة

غرض السلسلة

نوع (أنواع) المصادقة المراد تضمينها

إذا كان كل من المقاييس الحيوية وقفل الشاشة ممكنين

getButtonLabel()

تسمية للزر الذي يقوم بتشغيل BiometricPrompt

الأنواع المسجلة فقط (إن أمكن) التي تلبي متطلبات المصادق

استخدم سلسلة المقاييس الحيوية فقط (مثل "استخدام بصمة الإصبع")

getPromptMessage()

تظهر الرسالة على BiometricPrompt أثناء المصادقة

الأنواع المسجلة فقط (إن أمكن) التي تلبي متطلبات المصادق

استخدم سلسلة قفل الشاشة والمقاييس الحيوية المدمجة (على سبيل المثال، "استخدم بصمة إصبعك أو رقم التعريف الشخصي للمتابعة")

getSettingName()

اسم الإعداد الذي يمكّن BiometricPrompt للمصادقة

جميع الأنواع التي يدعمها الجهاز (حتى لو لم تكن مسجلة) والتي تلبي متطلبات المصادقة

استخدم سلسلة قفل الشاشة والمقاييس الحيوية المدمجة (مثل "استخدام بصمة الإصبع أو قفل الشاشة")

على سبيل المثال، ضع في اعتبارك جهازًا يحتوي على مستشعر وجه من الفئة 2 مع وجه مسجل ورقم تعريف شخصي مسجل ومستشعر بصمة إصبع من الفئة 3 بدون بصمات أصابع مسجلة . يوفر الجدول التالي نماذج سلاسل لكل مجموعة من المصادقين المسموح بهم وطريقة BiometricManager.Strings التي تم استدعاؤها:


المصادقون المسموح بهم

getButtonLabel()

getPromptMessage()

getSettingName()

الفئة 3 البيومترية ( BIOMETRIC_STRONG )

"استخدام بصمة الإصبع"
(فقط بصمة الإصبع تلبي متطلبات المصادقة)

"استخدم بصمة إصبعك للمتابعة"
(فقط بصمة الإصبع تلبي متطلبات المصادقة)

"استخدام بصمة الإصبع"
(فقط بصمة الإصبع تلبي متطلبات المصادقة)

الفئة 2 البيومترية ( BIOMETRIC_WEAK )

"استخدام الوجه"
(الوجه وبصمة الإصبع يستوفيان المتطلبات؛ يتم تسجيل الوجه فقط)

"استخدم وجهك للمتابعة"
(الوجه وبصمة الإصبع يستوفيان المتطلبات؛ يتم تسجيل الوجه فقط)

"استخدام الوجه أو بصمة الإصبع"
(الوجه وبصمة الإصبع تلبيان المتطلبات، ويدعم الجهاز كليهما)

قفل الشاشة ( DEVICE_CREDENTIAL )

"استخدام رقم التعريف الشخصي"
(أي قفل شاشة يلبي المتطلبات؛ تم تسجيل رقم التعريف الشخصي)

"أدخل رقم التعريف الشخصي الخاص بك للمتابعة"
(أي قفل شاشة يلبي المتطلبات؛ تم تسجيل رقم التعريف الشخصي)

"استخدام قفل الشاشة"
(أي قفل شاشة يلبي المتطلبات)

الفئة 3 البيومترية أو قفل الشاشة

"استخدام رقم التعريف الشخصي"
(بصمة الإصبع وأي قفل شاشة يستوفي المتطلبات؛ يتم تسجيل رقم التعريف الشخصي فقط)

"أدخل رقم التعريف الشخصي الخاص بك للمتابعة"
(بصمة الإصبع وأي قفل شاشة يستوفي المتطلبات؛ يتم تسجيل رقم التعريف الشخصي فقط)

"استخدام بصمة الإصبع أو قفل الشاشة"
(بصمة الإصبع وأي قفل شاشة يفي بالمتطلبات)

الفئة 2 البيومترية أو قفل الشاشة

"استخدام الوجه"
(يلبي الوجه وبصمة الإصبع وأي قفل شاشة المتطلبات؛ يتم تسجيل الوجه ويحل محل رقم التعريف الشخصي)

"استخدم وجهك أو رقم التعريف الشخصي للمتابعة"
(يلبي الوجه وبصمة الإصبع وأي قفل شاشة المتطلبات؛ ويتم تسجيل الوجه ورقم التعريف الشخصي)

"استخدام القياسات الحيوية أو قفل الشاشة"
(الوجه وبصمة الإصبع وأي قفل شاشة يفي بالمتطلبات)

تصديق

يجب أن يجتاز تطبيق القياسات الحيوية الخاص بك الاختبارات التالية:

بالإضافة إلى ذلك، إذا كان جهازك يدعم القياسات الحيوية التي تحتوي على AOSP HIDL ( بصمة الإصبع@2.1 ، بصمة الإصبع@2.2 ، وجه1.0 )، فيجب أن يجتاز اختبار VTS ذي الصلة ( بصمة الإصبع ، الوجه )