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

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

تطبيق المصادقة شاشة القفل دمج BiometricPrompt ملف تخزين المفاتيح (مفتاح مستند إلى الوقت) ملف تخزين المفاتيح (مفتاح يستند إلى العمليات)
BIOMETRIC_strong (الفئة 3) نعم نعم نعم نعم
BIOMETRIC_WEAK (الفئة 2) نعم نعم لا لا
BIOMETRIC_CONVENIENCE
(الفئة 1)
نعم لا لا لا
DEVICE_CREDENTIAL نعم نعم نعم نعم

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

المصدر

Android 12

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

Android 11

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

Android 10

  • يعرِض هذا القسم BiometricManager الفئة التي يمكن للمطوّرين استخدامها للاستعلام عن مدى توفّر مصادقة المقاييس الحيوية.
  • يشمل عملية الدمج باستخدام بصمة الإصبع والتعرّف على الوجه في جهاز "BiometricPrompt".

Android 9

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

التنفيذ

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

لدمج حِزمة المقاييس الحيوية مع واجهة برمجة التطبيقات ACTION_BIOMETRIC_ENROLL API:

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

إرشادات تنفيذ HAL

اتّبِع إرشادات HAL التالية للمقاييس الحيوية لضمان عدم تسرُّب بيانات المقاييس الحيوية وإزالتها عند إزالة المستخدم من الجهاز:

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

التخصيص

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

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

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


الطريقة

الغرض من السلسلة

أنواع المصادقة المطلوب تضمينها

في حال توفّر المقاييس الحيوية وقفل الشاشة معًا

getButtonLabel()

تصنيف زر يؤدي إلى تنشيط BiometricPrompt

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

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

getPromptMessage()

الرسالة المعروضة على BiometricPrompt أثناء المصادقة

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

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

getSETTINGName()

اسم الإعداد الذي يفعّل BiometricPrompt لأجل المصادقة

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

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

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


مصادقات Google Play المسموح بها

getButtonLabel()

getPromptMessage()

getSettingName()

المقاييس الحيوية من الفئة 3 (BIOMETRIC_STRONG)

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

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

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

المقاييس الحيوية من الفئة 2 (BIOMETRIC_WEAK)

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

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

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

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

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

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

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

قفل شاشة أو مقاييس حيوية من الفئة 3

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

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

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

قفل شاشة أو ميزة فتح القفل باستخدام المقاييس الحيوية من الفئة 2

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

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

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

التحقُّق

يجب أن يجتاز تنفيذ المقاييس الحيوية الاختبارات التالية:

  • CTS BiometricManager
  • اختبار CTS BiometricPrompt (صحة الاختبار، يعتمد الاختبار المفصّل على أداة التحقّق)
  • قسم اختبار CtsVerifier Biometric Test: يجب اجتياز الاختبار بشكلٍ فردي لكل طريقة يتوافق معها الجهاز.

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