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

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

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

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

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

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

فتح بيانات المستخدم المحمية باستخدام مفاتيح LSKF

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

يتم فرض الحدّ الأقصى لعدد الطلبات في وحدة TEE أو SE من خلال إحدى أداتَي Gatekeeper أو Weaver النشطتَين في LSKF. يفضّل LockSettingsService استخدام Weaver عندما تتوفّر طريقة تنفيذ.

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

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

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

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

على سبيل المثال، وجدت الدراسة يمكن تخمين رقم التعريف الشخصي هذا بسهولة أنّ معدّل النجاح في تخمين أرقام التعريف الشخصي الحقيقية يبلغ% 16.2 بعد 100 محاولة تخمين، و% 35.5 بالنسبة إلى الأنماط. ويمكن للمهاجمين تحقيق معدلات نجاح أعلى إذا كانوا يعرفون معلومات خاصة بالمستخدم، مثل أعياد الميلاد.

لذلك، يوفّر الإصدار 16 من نظام التشغيل Android QPR2 والإصدارات الأحدث سياسة أكثر صرامة للحدّ من معدّل LSKF التلقائي. تسمح هذه السياسة بإدخال ما يصل إلى 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 ‫36 ساعة
13 4 أيام
14 13 يومًا
15 41 يومًا
16 ‫123 يومًا
17 سنة واحدة
18 ‫3 سنوات
19 9 سنوات
+20 لم يعُد مسموحًا بتخمين المزيد من الكلمات

محددات المعدّل المعدَّلة

يتضمّن الإصدار 2 من حزمة إصلاح الأخطاء (QPR2) والإصدارات الأحدث من نظام التشغيل Android 16 عمليات تنفيذ محدّثة لكل من Gatekeeper وWeaver تفرض سياسة الحدّ الأقصى لعدد المحاولات الموضّحة في الجدول.

محدد معدل البرامج

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

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

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

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

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

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

لا يفصل Gatekeeper التخمينات الخاطئة عن حالات تعذُّر إثبات الملكية الأخرى، لذا لا يتيح SoftwareRateLimiter رصد التخمينات المكرّرة عندما يكون Gatekeeper هو أداة الحدّ من المعدّل الأساسية.

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