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

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

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

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

المصدر

Android 12

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

Android 11

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

Android 10

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

Android 9

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

التنفيذ

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

لدمج حزمة المقاييس الحيوية مع واجهة برمجة التطبيقات 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 التي تمّ استدعاؤها:


معلّمات المصادقة المسموح بها

getButtonLabel()

getPromptMessage()

getSettingName()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

التحقُّق

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

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

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