لتعزيز الثقة في تطبيقات Google، نلتزم الآن بإدراج كل تطبيق من تطبيقات منتجات Google في سجلّ الشفافية. لقد نشرنا سجلّ الشفافية للتحقّق بشكل علني من صحة الادعاءات التي نقدّمها بشأن حِزم APK هذه.
نموذج التهديد
يمكن استخدام أنظمة الشفافية لرصد هجمات سلسلة الإمداد وردعها. نوضّح ذلك من خلال بعض الأمثلة.
لنفترض أنّ أحد المهاجمين عدّل تطبيقًا من تطبيقات Google بشكل ضار وتمكّن حتى من توقيعه باستخدام مفتاح التوقيع المستخدَم للتوزيع عبر Google Play. باستخدام سجلّ شفافية للبرامج الثنائية، يمكن لأي مستخدم يتلقّى حزمة APK مشبوهة الاستفادة منه كمصدر يمكن التحقّق منه للحصول على معلومات صحيحة والتحقّق من صحة حزمة APK. وسيكتشفون أنّ Google لم يضِف البيانات الوصفية لحزمة APK المطابقة إلى السجلّ، وسيعرفون أنّه لا يمكن الوثوق بحزمة APK المخترَقة.
بما أنّ عملية النشر في السجلّ هي عملية منفصلة عن عملية الإصدار التي تتضمّن التوقيع (كما هو موضّح في مخطّط النظام المتكامل)، يؤدي ذلك إلى رفع مستوى الحماية الذي يجب أن يتجاوزه المهاجم، وليس مجرد اختراق المفتاح.
مع أنّنا نخطّط أيضًا لدمج هذا السجلّ في شبكة عامة من الشهود باستخدام بروتوكول شهود عادي، ننصح الجهات الخارجية المستقلة بمراقبة سلامة هذا السجلّ المتاح للجميع. ويمكن لهذه الجهات إثبات أنّ السجلّ لا يمكن تعديله إلا بإضافة بيانات جديدة، والإبلاغ عن أي تلاعب فيه.
إنّ توفّر نظام شفافية كهذا وإمكانية رصد الهجمات بشكل إضافي يثنيان الجهات عن تنفيذ أنشطة ضارة. إذا تم اختراق حزمة APK ولكن المستخدمين يثقون فقط في الحزم المُدرَجة في السجلّ، يجب أن يتم الكشف عن حزمة APK المخترَقة بشكل علني. ويؤدي ذلك إلى زيادة احتمال اكتشاف حِزمة APK المخترَقة، ويمكن اتّخاذ إجراء لإيقاف توزيعها.
نموذج المدّعي
نموذج المطالبة هو إطار عمل يُستخدَم لتحديد الأدوار والعناصر في نظام يمكن التحقّق منه. في ما يتعلّق بميزة "شفافية تطبيقات الطرف الأول من Google"، فإنّ الادعاء الذي نقدّمه هو أنّ قيمة التجزئة لملف APK المسجَّلة في هذا السجلّ تمثّل إصدارًا محدّدًا من تطبيق رسمي تابع لشركة Google ومخصّصًا للاستخدام العام.
- ClaimGoogleApp: (أنا، Google، أؤكّد أنّ
$hashAppمخصّص$googleApp)، حيث:-
$hashAppهو تجزئة تشفيرية (مثل SHA256) لملف APK (بما في ذلك حِزم APK المجزّأة) لإصدار معيّن من$googleApp. -
$googleAppهي حزمة Android (APK) تشكّل تطبيقًا تنشئه Google وتوزّعه.
-
يمكن لأي شخص لديه نسخة من $googleApp إثبات صحة هذا الادعاء،
ونشرح هذه العملية بالتفصيل في
صفحة إثبات الملكية.
محتوى السجلّ
عندما تطرح Google إصدارًا جديدًا من حِزمة APK، تضيف إدخالاً مطابقًا إلى سجلّ شفافية حِزم APK التابعة لجهات Google الأولى.
يحتوي كل إدخال في هذا السجلّ على أربعة أجزاء من البيانات الوصفية:
- تمثّل هذه السمة تجزئة ملف APK لتطبيق موقَّع من Google، وهي عبارة عن سلسلة سداسية عشرية من ترميز SHA256 للملف بأكمله.
- تمثّل هذه السمة وصفًا لنوع التجزئة السابقة. هذه سلسلة.
- اسم حزمة حزمة APK هذه سلسلة.
- رقم إصدار حزمة APK (versionCode) هذا عدد صحيح غير صفري.
تنسيق إدخال السجلّ هو تسلسل المعلومات الأربع مع حرف سطر جديد (\n)، كما هو موضّح أدناه:
hash\nSHA256(APK)\npackage_name\npackage_version\n
بما أنّنا نقيس ملف APK بأكمله، يتم ضبط وصف التجزئة على SHA256(APK). ويوفّر ذلك تغطية شاملة لمحتوى كل ملف، ويسهّل على المستخدمين الحصول على هذا القياس.
مخطط المنظومة المتكاملة
