سياسة شفافية الشهادات في Android

يُرجى توجيه أي أسئلة حول هذه السياسة إلى منتدى سياسة "الشفافية والامتثال": ct-policy@chromium.org

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

يتم تحقيق الامتثال لبروتوكول CT من خلال شهادة ومجموعة من شهادات SCT المصاحبة التي تستوفي مجموعة من المتطلبات الفنية التي تفرضها مكتبات TLS الشائعة (بما في ذلك Conscrypt المضمّنة) أثناء التحقّق من صحة الشهادة، والتي يتم تحديدها في هذه السياسة.

حالات سجلّات CT

يتم تحديد امتثال Android لسياسة "الشفافية والاتّساق" من خلال تقييم شهادات SCT من سجلات "الشفافية والاتّساق" والتأكّد من أنّ هذه السجلات في الحالات الصحيحة في وقت التحقّق. وفي ما يلي مجموعة الحالات المحتملة التي يمكن أن يكون فيها سجلّ "الشفافية والاتّساق":

  • Pending
  • Qualified
  • Usable
  • ReadOnly
  • Retired
  • Rejected

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

الشهادات المتوافقة مع "شفافية الشهادات"

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

عند تقييم شهادة للتأكّد من امتثالها لمتطلبات "الشفافية والامتثال"، يأخذ نظام التشغيل Android في الاعتبار عدة عوامل، بما في ذلك عدد شهادات SCT المتوفرة، والجهة التي تدير سجلّ "الشفافية والامتثال" الذي أصدر شهادة SCT، وحالة سجلّ "الشفافية والامتثال" الذي أصدر شهادة SCT، وذلك في الوقت الذي يتم فيه التحقّق من صحة الشهادة وفي الوقت الذي أنشأ فيه سجلّ "الشفافية والامتثال" شهادة SCT.

استنادًا إلى طريقة عرض بيانات شهادات الشفافية والامتثال على Android، يمكن تحقيق الامتثال لسياسة الشفافية والامتثال من خلال استيفاء أحد المعايير التالية:

أنواع المحتوى المنظَّم المضمّنة:

  1. يجب أن تتضمّن الشهادة على الأقل بيان SCT مضمّنًا من سجلّ شهادات شفافية كان Qualified أو Usable أو ReadOnly في وقت التحقّق.
  2. تتوفّر "شهادات SCT المضمّنة" من N سجلّ شهادات شفافية مختلف على الأقل، وكانت هذه الشهادات Qualified أو Usable أو ReadOnly أو Retired في وقت التحقّق، حيث يتم تحديد N في الجدول التالي.
  3. من بين شهادات SCT التي تستوفي المتطلب 2، يجب أن يتم إصدار شهادتَين على الأقل من مشغّلي سجلات CT مختلفين معترف بهم من قِبل Android.
مدة صلاحية الشهادة عدد شهادات SCT من سجلات CT مختلفة
‫<= 180 يومًا 2
أكثر من 180 يومًا 3

شهادات SCT يتم تسليمها عبر بروتوكول حالة الشهادة على الإنترنت (OCSP) أو بروتوكول أمان طبقة النقل (TLS):

  1. يجب أن تتضمّن الشهادة ما لا يقل عن شهادتَي SCT من سجلّ شهادات شفافية كان في حالة Qualified أو Usable أو ReadOnly في وقت التحقّق.
  2. من بين شهادات SCT التي تستوفي المتطلب 1، يجب إصدار شهادتَين على الأقل من مشغّلي سجلات CT مختلفين معترف بهم من قِبل Android.

بالنسبة إلى شهادات SCT المضمّنة وتلك التي يتم تسليمها باستخدام OCSP أو TLS، يتم تحديد تفرد مشغّل السجلّ من خلال توفّر إدخالات منفصلة ضمن قسم المشغّلين في قائمة السجلّ.

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

ملاحظات مهمة

طالما أنّ أحد معايير التوافق مع &quot;شفافية الشهادات&quot; المذكورة أعلاه يتم استيفاؤه من خلال بعض مجموعات شهادات SCT المعروضة في عملية المصافحة، لن تؤثّر شهادات SCT الإضافية، بغض النظر عن حالة شهادة SCT، في حالة التوافق مع &quot;شفافية الشهادات&quot; للشهادة بشكل إيجابي أو سلبي.

للمساهمة في امتثال الشهادة لمعيار الشفافية والموافقة، يجب أن يكون قد تم إصدار SCT قبل الطابع الزمني Retired للسجلّ، إذا كان متوفّرًا. يستخدم نظام التشغيل Android أقدم شهادة SCT بين جميع شهادات SCT المعروضة لتقييم الامتثال لـ "شفافية الشهادات" (CT) مقارنةً بالطوابع الزمنية Retired لسجلّ "شفافية الشهادات". ويشمل ذلك الحالات الحدّية التي يتم فيها إيقاف سجلّ CT نهائيًا أثناء عملية إرسال طلبات تسجيل الشهادات.

يشير مصطلح "SCT مضمّنة" إلى SCT يتم تسليمها باستخدام إضافة SignedCertificateTimestampList X.509v3 ضمن الشهادة نفسها. لا تتوافق العديد من خوادم TLS مع OCSP Stapling أو إضافة TLS، لذا يجب أن تكون مراجع التصديق مستعدة لتضمين شهادات SCT في الشهادات الصادرة لضمان إتمام عملية التحقّق أو التعامل مع شهادات EV بنجاح في Android.

كيفية إضافة سجلّات "الشفافية والامتثال" إلى Android

يمكنك الاطّلاع على معايير تحوّل سجلات CT إلى Qualified، بالإضافة إلى الظروف التي قد تؤدي إلى تحوّلها إلى Retired، في سياسة سجلات CT في Chrome.

مهلة فرض "التحقّق بخطوتين"

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

قائمة سجلّات Android

يتم نشر قائمة سجلّات Android في log_list.json، ويتم تعديلها يوميًا. يتم تقديم قائمة السجلّات هذه بدون واجهة برمجة تطبيقات ثابتة أو اتفاقية مستوى خدمة أو ضمانات توفّر.

يتيح نظام التشغيل Android قائمة سجلّات &quot;الشفافية في الشهادات&quot; للأطراف التي ترسل الشهادات (مثل مراجع التصديق) ولجهات المراقبة والتدقيق في &quot;الشفافية في الشهادات&quot; التي تريد الحفاظ على التوافق مع منظومتَي &quot;الشفافية في الشهادات&quot; وWebPKI أو التحقيق في محتواهما.

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

يُرجى العلم أنّ استخدام قائمة سجلّات &quot;شهادة الشفافية&quot; في Android بشكل يخالف هذه السياسة يتم على مسؤوليتك الخاصة، وقد يؤدي إلى حدوث أعطال في تطبيقك أو مكتبتك. يجب أن يكون Android قادرًا على إجراء تغييرات على قائمة سجلّات &quot;شهادة الشفافية&quot; استجابةً للحوادث في المنظومة المتكاملة لشهادة الشفافية، وذلك للحفاظ على سلامة وأمان مستخدمي Android. ويجوز لـ Android اتّخاذ خطوات لضمان ألا تؤدي التبعيات الخارجية على قائمة سجلّات &quot;شهادة الشفافية&quot; إلى تعريض قدرة Android على الاستجابة لهذه الحوادث للخطر، بما في ذلك إجراء تغييرات غير معلَن عنها على قائمة السجلّات لتعطيل الاستخدام غير المصرّح به.