يحمي نظام التشغيل Android بيانات المستخدمين، بما في ذلك مساحة التخزين المشفّرة ببيانات الاعتماد ومفاتيح Keystore المرتبطة بالمصادقة، وذلك باستخدام عوامل معرفة قفل الشاشة (LSKF) التي يضبطها المستخدمون، مثل أرقام التعريف الشخصي والنقوش وكلمات المرور. تكون مفاتيح LSKF عادةً قيمًا منخفضة الإنتروبيا، مثل أرقام التعريف الشخصية المكوّنة من 4 أو 6 أرقام، لذا يجب توفير الحماية من هجمات القوة العمياء.
يستخدم نظام التشغيل Android أدوات تحديد المعدّل في "بيئة التنفيذ الموثوقة" (TEE) أو "عنصر الأمان" (SE) لإبطاء الهجمات، وعند توفّر محاولات كافية، يتم حظر المهاجمين الذين ينفّذون هجمات القوة العمياء على مفاتيح LSKF. تحدّد CDD 9.11 الحد الأدنى من متطلبات الأمان وتوصياته بشأن أدوات تحديد معدّل نقل البيانات في LSKF. تتضمّن الإصدارات 16 QPR2 والإصدارات الأحدث من Android سياسات أكثر صرامة بشأن الحدّ من معدّل الطلبات مقارنةً بإصدارات Android الأقدم. لمزيد من التفاصيل، يُرجى الاطّلاع على سياسة أكثر صرامة للحدّ من عدد الطلبات التلقائي في الإصدار 16 من نظام التشغيل Android QPR2 والإصدارات الأحدث.
فتح بيانات المستخدم المحمية باستخدام مفاتيح 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 من حزمة إصلاح الأخطاء في نظام التشغيل Android 16 والإصدارات الأحدث عمليات تنفيذ محدّثة لكل من Gatekeeper وWeaver تفرض سياسة الحدّ الأقصى لعدد المحاولات الموضّحة في الجدول.
محدد معدل البرامج
يتضمّن الإصدار 16 QPR2 من نظام التشغيل Android والإصدارات الأحدث أداة اختيارية ثانوية للحدّ من عدد مرات المحاولة، SoftwareRateLimiter.
ويتم تنفيذها في خادم النظام، كما تتيح للأجهزة تقديم سياسة أكثر صرامة للحدّ من عدد مرات المحاولة
عندما يتعذّر تحديث بيئة التنفيذ الموثوقة (TEE) أو العنصر الآمن (SE).
اضبط SoftwareRateLimiter في وضع التنفيذ من خلال قيمة الإعداد config_softwareLskfRateLimiterEnforcing. في وضع التنفيذ، تطبّق SoftwareRateLimiter سياسة الحدّ الأقصى لعدد الطلبات في الدقيقة بالتزامن مع أداة تحديد الحدّ الأقصى الأساسية. بالنسبة إلى عدد معيّن من التخمينات غير الصحيحة، يكون المهلة الزمنية هي الأطول بين المهلة التي يفرضها نظام الحدّ الأقصى الأساسي للمعدّل والمهلة التي يفرضها SoftwareRateLimiter.
في وضع عدم التنفيذ، يمرِّر SoftwareRateLimiter جميع طلبات التحقّق إلى أداة تحديد المعدّل الأساسية بدون تطبيق سياسة ثانوية لتحديد المعدّل.
رصد التخمينات المكرّرة
لتحسين سهولة الاستخدام وإتاحة استخدام سياسة أكثر صرامة للحدّ من عدد الطلبات، يتيح الإصدار 16 QPR2 من نظام التشغيل Android والإصدارات الأحدث رصد التخمينات المكرّرة. عند تفعيل هذا الخيار، لن يتم فرض أي عقوبات على المستخدمين عند إدخال كلمة المرور نفسها غير الصحيحة عدة مرات.
في بعض الأحيان، يُدخل المستخدمون الشرعيون رمز LSKF غير صحيح نفسه عدة مرات. ويؤدي ذلك إلى حدوث مهلات غير ضرورية إذا تم احتسابها كإجابات متعددة. لا يحاول المهاجمون الأكفاء استخدام مفتاح LSKF معيّن أكثر من مرة. إنّ السياسة التي لا تحتسب التخمينات المكرّرة تحسّن من سهولة استخدام ميزة "مفتاح الأمان الخاص" للمستخدمين الشرعيين بدون أن تسهّل على المهاجمين الأكفاء تخمين مفاتيح الأمان الخاصة، ما يسمح بفرض سياسات أكثر صرامة للحدّ من عدد المحاولات. من غير المرجّح أن يواجه المستخدمون الشرعيون حتى مهلة زمنية، لأنّه يجب على المستخدم إدخال 5 تخمينات غير صحيحة وفريدة بدلاً من 5 تخمينات غير صحيحة تتضمّن تكرارات.
على الأجهزة التي تعمل بالإصدار 16 QPR2 من نظام التشغيل Android والإصدارات الأحدث، والتي تتضمّن تطبيق Weaver، ويتم SoftwareRateLimiter
ضبطها في وضع التنفيذ، يتم رصد التخمينات المكرّرة ورفضها قبل إرسالها إلى
Weaver. ولا تؤدي عمليات الرفض هذه إلى زيادة عدد التخمينات غير الصحيحة. يتم تتبُّع ما يصل إلى 5 تخمينات فريدة غير صحيحة في الذاكرة. إذا كان جهاز التتبُّع ممتلئًا، يتم تجاهل أحدث البيانات لإتاحة مساحة. يتم تجاهل جميع التخمينات التي تم تتبُّعها بعد 5 دقائق من تقديم آخر تخمين غير صحيح لم يتم تتبُّعه.
لا يفصل Gatekeeper بين التخمينات الخاطئة وحالات تعذُّر إكمال عملية التحقّق الأخرى، لذا لا يتيح SoftwareRateLimiter رصد التخمينات المكرّرة عندما يكون Gatekeeper هو أداة تحديد المعدّل الأساسية.
يمكن لمستخدمي Weaver اختيار إتاحة رصد التخمينات المكرّرة في عملية تنفيذ Weaver.