تقييد المُعدَّل

يحمي Android بيانات المستخدمين، بما في ذلك التخزين المشفّر ببيانات الاعتماد ومفاتيح Keystore المرتبطة بالمصادقة، باستخدام عوامل معرفة شاشة القفل (LSKFs) التي يضبطها المستخدم، مثل أرقام التعريف الشخصية والنقوش و كلمات المرور. تكون عوامل معرفة شاشة القفل عادةً قيمًا منخفضة العشوائية، مثل أرقام التعريف الشخصية المكوّنة من 4 أو 6 أرقام، لذا يجب توفير الحماية من هجمات القوة الغاشمة.

يستخدم Android أدوات تحديد المعدّل في بيئة التنفيذ الموثوقة (TEE) أو العنصر الآمن (SE) لإبطاء وتيرة هجمات القوة الغاشمة على عوامل معرفة شاشة القفل، وحظرها إذا تم إجراء محاولات كافية. يحدّد مستند توافق الأجهزة (CDD) 9.11 الحد الأدنى من متطلبات الأمان والتوصيات لأدوات تحديد معدّل عوامل معرفة شاشة القفل. يطبّق الإصدار Android 16 QPR2 والإصدارات الأحدث سياسات أقوى بكثير لتحديد المعدّل مقارنةً بإصدارات Android الأقدم. لمزيد من التفاصيل، يُرجى الاطّلاع على سياسة تحديد المعدّل التلقائية الأقوى في الإصدار Android 16 QPR2 والإصدارات الأحدث.

يستخدم الإصدار Android 17 والإصدارات الأحدث سياسة أقوى لتحديد معدّل شاشة القفل التلقائية مقارنةً بالإصدارات الأقدم. قد يواجه المستخدمون مهلات طويلة لشاشة القفل في حالات نادرة، لذا يقدّم الإصدار Android 17 والإصدارات الأحدث ملاحظات محسّنة للمستخدم على شاشة القفل، كما هو موضّح أدناه.

  • تنسيق محسّن للوقت: تعرض شاشة القفل المهلات التي تستغرق دقيقة واحدة أو أكثر باستخدام وحدات زمنية أكبر لتحسين إمكانية القراءة، مثل يُرجى المحاولة مرة أخرى بعد 30 دقيقة بدلاً من يُرجى المحاولة مرة أخرى بعد 1800 ثانية.
  • رابط قصير لاسترداد الحساب: تعرض شاشة القفل رابطًا قصيرًا (يؤدي تلقائيًا إلى g.co/android/unlock) لمساعدة المستخدمين في العثور على خيارات استرداد الحساب على جهاز آخر. يمكن ضبط هذا الرابط من خلال الـ config_lockscreenLockoutShortlink مورد.
  • ملاحظات حول المحاولات المكرّرة: على الأجهزة التي تتضمّن عملية تنفيذ Weaver، يعرض النظام رسالة فريدة عند إدخال تخمين غير صحيح مكرّر. لا تتوفّر هذه الملاحظات المحدّدة على Gatekeeper الأجهزة التي تستخدم فقط لأنّها لا توفّر رموز استجابة منفصلة للتخمينات غير الصحيحة وحالات التحقّق الأخرى غير الناجحة.
  • إدارة متّسقة لإدخال بيانات الاعتماد: توقف شاشة القفل لوحة إدخال رقم التعريف الشخصي إذا كان الجهاز يستخدم بيانات اعتماد رقم التعريف الشخصي، على غرار إدخال بيانات اعتماد كلمة المرور والنقش.

تمت إعادة تسمية الطريقة LockPatternUtils#getLockoutAttemptDeadline(int) إلى LockPatternUtils#getLockoutEndTime(int)، وتوفّر وقت انتهاء فترة الحظر من ذاكرة تخزين مؤقت يديرها النظام. يحلّ هذا التعديل مشكلة كانت تحدث عند تخزين البيانات مؤقتًا لكل مثيل من LockPatternUtils فقط، ما كان يؤدي إلى عدم ظهور أي مهلة نشطة إذا تم تفعيلها باستخدام مثيل آخر. على المطوّرين الذين ينشئون طلبات بيانات اعتماد النظام، مثل شاشة القفل وأنشطة الإعدادات، تعديلها للتحقّق من المهلات الحالية قبل السماح بمحاولات أخرى.

فتح قفل بيانات المستخدم المحمية باستخدام عوامل معرفة شاشة القفل

LockSettingsService تتولى إدارة تخزين عوامل معرفة شاشة القفل والتحقّق منها. لا يمكن للمستخدم أن يكون لديه سوى عامل معرفة شاشة قفل نشط واحد في كل مرة. يؤدي تعيين عامل معرفة شاشة قفل جديد إلى إبطال العامل السابق وبدء سياسة تحديد المعدّل من البداية.

تفرض أداة تحديد المعدّل الأساسية في بيئة التنفيذ الموثوقة أو العنصر الآمن، إما Gatekeeper أو Weaver، سياسة تحديد المعدّل لعامل معرفة شاشة القفل النشط. تفضّل LockSettingsService استخدام Weaver إذا كان هناك عملية تنفيذ متاحة.

لا يتم فتح قفل بيانات المستخدم المحمية إلا عند تقديم عامل معرفة شاشة القفل الصحيح إلى أداة تحديد المعدّل الأساسية. إذا كان عامل معرفة شاشة القفل غير صحيح، تزيد أداة تحديد المعدّل عدّاد حالات الفشل وتفرض مهلة بعد عدد معيّن من حالات الفشل. أثناء المهلة، ترفض أداة تحديد المعدّل جميع التخمينات وتقدّم المهلة المتبقية.

سياسة تحديد المعدّل التلقائية الأقوى في الإصدار Android 16 QPR2 والإصدارات الأحدث

يتطلب مستند توافق الأجهزة (CDD) 9.11 تحديد معدّل عوامل معرفة شاشة القفل في الإصدار Android 6 والإصدارات الأحدث. كانت سياسة تحديد المعدّل المطلوبة في السابق متساهلة إلى حد ما. على سبيل المثال، تسمح عملية التنفيذ التي تستوفي الحد الأدنى من متطلبات الإصدار Android 16 بما يصل إلى 10 تخمينات في الدقيقة الأولى، و20 تخمينًا في 6 دقائق، و50 تخمينًا في 25 دقيقة، و110 تخمينات في 24 ساعة، و1800 تخمين في 5 سنوات.

على الرغم من أنّ هذه السياسة آمنة إلى حد معقول لعوامل معرفة شاشة القفل التي يتم اختيارها بشكل عشوائي منتظم، لا يختار المستخدمون في الواقع عوامل معرفة شاشة القفل بشكل عشوائي منتظم. تظهر بعض عوامل معرفة شاشة القفل بشكل متكرّر أكثر من غيرها. يمكن للمهاجمين تحقيق معدّل نجاح كبير من خلال تجربة عوامل معرفة شاشة القفل بترتيب تنازلي حسب التكرار.

على سبيل المثال، وجدت الدراسة This PIN Can Be Easily Guessed معدّل نجاح بنسبة% 16.2 لتخمين أرقام التعريف الشخصية الحقيقية بعد 100 تخمين، و% 35.5 للنقوش. يمكن للمهاجمين الذين يعرفون معلومات خاصة بالمستخدم، مثل أعياد الميلاد، تحقيق معدلات نجاح أعلى.

لذلك، يقدّم الإصدار Android 16 QPR2 والإصدارات الأحدث سياسة أقوى لتحديد معدّل عوامل معرفة شاشة القفل التلقائية. تسمح هذه السياسة بما يصل إلى 6 تخمينات في الدقيقة الأولى، و7 تخمينات في 6 دقائق، و8 تخمينات في 25 دقيقة، و12 تخمينًا في 24 ساعة، و19 تخمينًا في 5 سنوات. لا يُسمح بإجراء أي تخمينات أخرى بعد 20 تخمينًا غير صحيح. يظهر جدول المهلات الكامل في الجدول التالي. وقد يتم تغيير هذا الجدول في إصدارات Android المستقبلية.

عدد التخمينات غير الصحيحة المهلة بعد التخمين غير الصحيح
0 لا تنطبق
1-4 0 ثانية
5 دقيقة واحدة
6 5 دقائق
7 ‫15 دقيقة
8 30 دقيقة
9 90 دقيقة
10 4 ساعات
11 12 ساعة
12 24 ساعة
13 4 أيام
14 13 يومًا
15 41 يومًا
16 123 يومًا
17 سنة واحدة
18 ‫3 سنوات
19 9 سنوات
+20 لا يُسمح بإجراء المزيد من التخمينات

أدوات تحديد المعدّل المعدّلة

يتضمّن الإصدار Android 16 QPR2 والإصدارات الأحدث عمليات تنفيذ معدّلة لـ Gatekeeper و Weaver تفرض سياسة تحديد المعدّل في الجدول.

أداة تحديد المعدّل للبرامج

يتضمّن الإصدار Android 16 QPR2 والإصدارات الأحدث أداة تحديد معدّل ثانوية اختيارية، SoftwareRateLimiter. يتم تنفيذها في خادم النظام وتسمح للأجهزة بتقديم سياسة أقوى لتحديد المعدّل عندما لا يمكن تعديل بيئة التنفيذ الموثوقة أو العنصر الآمن.

يمكنك ضبط SoftwareRateLimiter في وضع فرض السياسة من خلال الـ config_softwareLskfRateLimiterEnforcing قيمة الإعداد. في وضع فرض السياسة، تطبّق SoftwareRateLimiter سياسة تحديد المعدّل بالتزامن مع أداة تحديد المعدّل الأساسية. بالنسبة إلى عدد معيّن من التخمينات غير الصحيحة، تكون المهلة هي الأطول من المهلة المطلوبة من قِبل أداة تحديد المعدّل الأساسية والمهلة المطلوبة من قِبل SoftwareRateLimiter. في الوضع غير المفروض، تمرِّر SoftwareRateLimiter جميع طلبات التحقّق إلى أداة تحديد المعدّل الأساسية بدون تطبيق سياسة تحديد معدّل ثانوية.

رصد التخمينات المكرّرة

لتحسين سهولة الاستخدام والسماح باستخدام سياسة أقوى لتحديد المعدّل، يتيح الإصدار Android 16 QPR2 والإصدارات الأحدث رصد التخمينات المكرّرة. عند تفعيل هذه الميزة، لا يتم فرض عقوبة على المستخدمين عند إدخال عامل معرفة شاشة القفل غير الصحيح نفسه عدة مرات.

في بعض الأحيان، يُدخل المستخدمون الشرعيون عامل معرفة شاشة القفل غير الصحيح نفسه عدة مرات عن طريق الخطأ. يؤدي ذلك إلى مهلات غير ضرورية إذا تم احتسابها كعدة تخمينات. لا يحاول المهاجمون المتمكّنون تخمين عامل معرفة شاشة قفل معيّن أكثر من مرة. تؤدي السياسة التي لا تحتسب التخمينات المكرّرة إلى تحسين سهولة إدخال عامل معرفة شاشة القفل للمستخدمين الشرعيين بدون تسهيل تخمين عوامل معرفة شاشة القفل على المهاجمين المتمكّنين، ما يسمح بفرض سياسات أقوى لتحديد المعدّل. من غير المرجّح أن يواجه المستخدمون الشرعيون مهلة، لأنّه يجب على المستخدم إدخال 5 تخمينات غير صحيحة فريدة بدلاً من 5 تخمينات غير صحيحة بما في ذلك التخمينات المكرّرة.

على الأجهزة التي تعمل بالإصدار Android 16 QPR2 والإصدارات الأحدث، والتي تتضمّن عملية تنفيذ Weaver، وتم ضبط SoftwareRateLimiter في وضع فرض السياسة، يتم رصد التخمينات المكرّرة ورفضها قبل تمريرها إلى Weaver. لا تؤدي عمليات الرفض هذه إلى زيادة عدد التخمينات غير الصحيحة. يتم تتبُّع ما يصل إلى 5 تخمينات غير صحيحة فريدة في الذاكرة. إذا كان المتتبّع ممتلئًا، يتم تجاهل التخمين الأقل حداثة لإفساح المجال. يتم تجاهل جميع التخمينات التي تم تتبُّعها بعد 5 دقائق من إجراء آخر تخمين غير صحيح لم يتم تتبُّعه.

لا يفصل Gatekeeper التخمينات غير الصحيحة عن حالات التحقّق الأخرى غير الناجحة، لذا لا تتيح SoftwareRateLimiter رصد التخمينات المكرّرة عندما يكون Gatekeeper هو أداة تحديد المعدّل الأساسية.

يمكن لمطوّري Weaver اختيار إتاحة رصد التخمينات المكرّرة في عملية تنفيذ Weaver.