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

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

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

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

المصدر

Android 12

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

Android 11

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

Android 10

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

Android 9

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

التنفيذ

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

لدمج مجموعة المقاييس الحيوية مع ACTION_BIOMETRIC_ENROLL API، اتّبِع الخطوات التالية:

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

إرشادات تنفيذ طبقة تجريد الأجهزة (HAL)

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

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

التخصيص

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

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

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


الطريقة

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

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

إذا كان من الممكن استخدام المقاييس الحيوية وقفل الشاشة معًا

getButtonLabel()

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

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

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

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 section: يجب اجتياز الاختبار بشكل فردي مع كل طريقة يتيحها الجهاز

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