توفّر المقاييس الحيوية طريقة أكثر ملاءمةً، ولكنها قد تكون أقل أمانًا، لتأكيد هويتك باستخدام جهاز. بموجب نموذج المصادقة المتدرّجة، توفّر المصادقة الأساسية (أي الأساليب المستندة إلى عامل المعرفة، مثل رقم التعريف الشخصي والنمط وكلمة المرور) أعلى مستوى من الأمان. تندرج المقاييس الحيوية ضمن المستوى الثانوي للمصادقة، ما يوفّر توازنًا بين الملاءمة والأمان. يحدّد مستند تعريف التوافق (CDD) لنظام التشغيل Android ثلاث فئات لقوة المقاييس الحيوية: الفئة 3 (المعروفة سابقًا باسم "قوية")، والفئة 2 (المعروفة سابقًا باسم "ضعيفة")، والفئة 1 (المعروفة سابقًا باسم "مريحة"). تتضمّن كل فئة مجموعة من المتطلبات الأساسية والامتيازات والقيود، يُرجى الاطّلاع على مستند تعريف التوافق أعلاه لمعرفة المزيد من التفاصيل. يُسمح لجميع الفئات الثلاث بالتكامل مع شاشة القفل، ولكن يُسمح فقط لأدوات المصادقة القوية والضعيفة بالتكامل مع واجهات برمجة التطبيقات android.hardware.biometrics. يوضّح هذا الجدول كل أداة مصادقة والوظائف التي تتيحها.
| Authenticator | شاشة القفل | دمج 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()الطريقة التي يمكن للمطوّرين استخدامها للتحقّق مما إذا كان المستخدم قد أثبت هويته باستخدام بيانات اعتماد بيومترية أو بيانات اعتماد الجهاز. - توفّر هذه السمة دعمًا إضافيًا لمفاتيح المصادقة لكل استخدام ضمن فئة BiometricPrompt.
Android 10
- تضيف هذه السمة الفئة
BiometricManagerالتي يمكن للمطوّرين استخدامها للاستعلام عن مدى توفّر ميزة المصادقة البيومترية. - يتضمّن دمج المصادقة ببصمة الإصبع والتعرّف على الوجه لتطبيق
BiometricPrompt
Android 9
- يشمل ذلك دمج بصمة الإصبع في
BiometricPromptفقط. - يتم إيقاف الفئة FingerprintManager نهائيًا. إذا كانت التطبيقات المجمّعة وتطبيقات النظام تستخدم هذه الفئة، عليك تعديلها لاستخدام
BiometricPromptوBiometricManagerبدلاً من ذلك. - تم تعديل اختبارات
FingerprintManagerفي أداة CTS Verifier لاختبارBiometricPromptباستخدامBiometricPromptBoundKeysTest.
التنفيذ
لضمان حصول المستخدمين والمطوّرين على تجربة سلسة في استخدام المقاييس الحيوية، يجب دمج حزمة المقاييس الحيوية مع واجهات برمجة التطبيقات BiometricPrompt وBiometricManager وACTION_BIOMETRIC_ENROLL. يجب أن تلتزم الأجهزة التي تتضمّن مستشعرات المقاييس الحيوية بمتطلبات القوة هذه.بالإضافة إلى ذلك، يجب أن تجتاز جميع عمليات التنفيذ وحدة CtsBiometricsTestCases في مجموعة أدوات اختبار التوافق (CTS).
لدمج حزمة المقاييس الحيوية مع واجهة برمجة التطبيقات ACTION_BIOMETRIC_ENROLL، اتّبِع الخطوات التالية:
- عدِّل BiometricEnrollActivity لعرض عملية التسجيل. يُرجى العِلم أنّه لا يمكن تقديم مقاييسك الحيوية إلا إذا كانت تستوفي مستوى الأمان المطلوب. إذا كان جهازك يتيح استخدام أكثر من طريقة واحدة، يجب أن يعرض هذا الإجراء قائمة يمكن للمستخدم الاختيار من بينها.
إرشادات تنفيذ طبقة تجريد الأجهزة (HAL)
اتّبِع إرشادات طبقة تجريد الأجهزة (HAL) الخاصة بالبيانات الحيوية التالية لضمان عدم تسريب البيانات الحيوية وإزالتها عند إزالة مستخدم من الجهاز:
- تأكَّد من عدم إمكانية الوصول إلى البيانات الحيوية الأولية أو مشتقاتها (مثل النماذج) من خارج البيئة الآمنة المعزولة (مثل بيئة التنفيذ الموثوقة أو العنصر الآمن). يجب تشفير جميع البيانات المخزَّنة باستخدام مفتاح خاص بالجهاز لا تعرفه سوى بيئة التنفيذ الموثوقة (TEE). إذا كانت الأجهزة تتوافق مع ذلك، يجب حصر إمكانية الوصول إلى الأجهزة في البيئة الآمنة المعزولة وحمايتها باستخدام سياسة SELinux. يجب أن تكون قناة الاتصال (مثل SPI وI2C) متاحة فقط للبيئة المعزولة الآمنة مع تطبيق سياسة SELinux صريحة على جميع ملفات الجهاز.
- يجب أن تتم عملية الحصول على البيانات البيومترية والتسجيل والتعرّف عليها داخل البيئة الآمنة المعزولة لمنع اختراق البيانات والهجمات الأخرى. لا ينطبق هذا الشرط إلا على المقاييس الحيوية من الفئة 3 (المعروفة سابقًا باسم "قوية") والفئة 2 (المعروفة سابقًا باسم "ضعيفة").
- للحماية من هجمات إعادة الإرسال، يجب توقيع نماذج المقاييس الحيوية باستخدام مفتاح خاص خاص بالجهاز. بالنسبة إلى مقاييس التشفير المتقدّمة (AES)، يجب على الأقل توقيع نموذج باستخدام مسار نظام الملفات المطلق والمجموعة ورقم التعريف البيومتري، وذلك لضمان عدم إمكانية تشغيل ملفات النماذج على جهاز آخر أو من قِبل أي شخص آخر غير المستخدم الذي سجّلها على الجهاز نفسه. على سبيل المثال، يجب منع نسخ البيانات البيومترية من مستخدم آخر على الجهاز نفسه أو من جهاز آخر.
- إذا كنت بحاجة إلى تخزين البيانات خارج بيئة التنفيذ الموثوقة (TEE)، استخدِم مسار نظام الملفات الذي يوفّره
setActiveUser() HIDL methodأو وفِّر طريقة أخرى لمحو جميع بيانات نماذج المستخدمين عند إزالة المستخدم. والسبب هو حماية بيانات المستخدمين من التسريب. يجب أن تنظّف الأجهزة التي لا تستخدم هذا المسار بياناتها بعد إزالة المستخدم. تتطلّب معايير CDD تخزين البيانات البيومترية والملفات المشتقة بشكل مشفّر، خاصةً إذا لم تكن في TEE. وإذا كان ذلك غير ممكن بسبب متطلبات التخزين الخاصة بالبيئة الآمنة المعزولة، أضِف نقاط ربط لضمان إزالة البيانات عند إزالة المستخدم أو محو بيانات الجهاز. راجِع LockSettingsService.removeBiometricsForUser()
التخصيص
إذا كان جهازك يتيح استخدام مقاييس حيوية متعددة، من المفترض أن يتمكّن المستخدم من تحديد مقياس حيوي تلقائي في الإعدادات. يجب أن يفضّل تطبيقك استخدام المقاييس الحيوية من الفئة 3 (المعروفة سابقًا باسم "قوية") كإعداد تلقائي ما لم يغيّر المستخدم هذا الإعداد بشكل صريح، وفي هذه الحالة يجب عرض رسالة تحذير توضّح المخاطر المرتبطة بالمقاييس الحيوية (على سبيل المثال، قد تؤدي صورة لك إلى فتح قفل جهازك).BiometricPrompt
سلاسل المصادقة الخاصة بالجهاز
بدءًا من Android 12، أصبحت سلاسل المصادقة السياقية متاحة للمطوّرين من خلال واجهة برمجة التطبيقات BiometricManager.Strings. يمكنك تخصيص قيم الموارد التي تعرضها واجهة برمجة التطبيقات هذه لتنفيذ سلاسل خاصة بالجهاز. وفي حال إجراء ذلك، احرص على ترجمة أي سلاسل جديدة إلى جميع اللغات التي يتوافق معها الجهاز. بالإضافة إلى ذلك، احرص على الاحتفاظ بالسمات التالية:
الطريقة |
غرض السلسلة |
أنواع المصادقة المطلوب تضمينها |
في حال توفُّر المقاييس الحيوية وقفل الشاشة معًا |
|---|---|---|---|
getButtonLabel() |
تصنيف لزر يؤدي إلى تشغيل BiometricPrompt |
أنواع المصادقة المسجّلة فقط (إذا كان ذلك ممكنًا) التي تستوفي متطلبات أداة المصادقة |
استخدِم السلسلة biometric-only (مثل "استخدام بصمة الإصبع") |
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: يجب اجتيازه بشكل فردي مع كل طريقة يتيحها الجهاز
بالإضافة إلى ذلك، إذا كان جهازك يتيح استخدام مقياس حيوي يتضمّن واجهة HIDL لنظام التشغيل Android المفتوح المصدر (fingerprint@2.1 وfingerprint@2.2 وface1.0)، يجب أن يجتاز اختبار VTS ذي الصلة (fingerprint وface).