يفحص الفحص من جانب العميل المحتوى على جهاز المستخدم، حيث قد يكون قابلًا للقراءة بالفعل قبل الإرسال أو بعد الاستلام. لذلك يمكنه إنشاء مسار لكشف المعلومات خارج قناة التسليم المشفرة. مقارنة المجموع الاختباري لملف APK لا تثبت أن التطبيق لا يحتوي على شيفرة للفحص. إنها تجيب عن سؤال أضيق: هل تتطابق البايتات المختارة مع قيمة تجزئة محددة؟
الفصل بين هذه الادعاءات يجعل التشفير والتحقق من البرمجيات كليهما أكثر فائدة.
لماذا يغيّر الفحص على الجهاز حدود الخصوصية؟
يجب أن يتعامل التطبيق مع النص الصريح لعرض رسالة أو تجهيز صورة للإرسال. ويمكن لميزة فحص أن تعمل في تلك اللحظة، حتى لو كانت الرسالة اللاحقة على الشبكة مشفرة من طرف إلى طرف. وما يغادر الجهاز يعتمد على تصميم أداة الفحص: فقد تبلّغ عن تطابق، أو ترفع محتوى مختارًا، أو ترسل معلومات مشتقة أخرى.
تبحث الورقة العلمية Bugs in our Pockets مخاطر تشمل إساءة الاستخدام والإيجابيات الكاذبة وإضافة مساحات للهجوم. وهذه أسباب لفحص تدفقات البيانات وحوكمة أي نظام فحص مقترح. لكنها لا تثبت أن كل ميزة تعمل على الجهاز تُعد مراقبة، أو أن قانونًا معينًا فرض متطلبًا شاملًا للفحص.
الميزة المحلية الخاضعة لتحكم المستخدم لا تعادل تلقائيًا الإبلاغ الإلزامي. اسأل من يختار التحليل، وما الذي يفعّله، ومن يستطيع تحديث قواعده، وما البيانات التي يمكنها مغادرة الجهاز.
أربعة أشكال مختلفة من الأدلة البرمجية
| التحقق | ما يمكن أن يثبته | ما لا يمكن أن يثبته بمفرده |
|---|---|---|
| المجموع الاختباري SHA-256 | أن الملف يطابق قيمة تجزئة مرجعية موثوقة | أن البرنامج المرجعي آمن أو مطابق للشيفرة المصدرية |
| التحقق من توقيع APK | أن توقيع الحزمة يجتاز التحقق، مع تحديد شهادة توقيع | أن الموقّع جدير بالثقة أو أن الشيفرة لا تتضمن سلوكًا غير مرغوب فيه |
| بناء قابل لإعادة الإنتاج | أن المصدر ومدخلات البناء المحددة يمكن أن تنتج المخرجات المتوقعة | أن المصدر خالٍ من الثغرات أو المنطق الضار |
| مراجعة واختبارات مستقلة | نتائج تخص إصدارًا ونطاقًا محددين | ضمان دائم يشمل كل تحديث مستقبلي |
يشرح توثيق apksigner الخاص بأندرويد التحقق من الحزم وعرض معلومات الشهادات. ويوضح تعريف البناء القابل لإعادة الإنتاج سبب أهمية المصدر وبيئة البناء والتعليمات جميعًا عند إعادة إنتاج أحد المخرجات.
أرشيف للشيفرة المصدرية ومجموع اختباري معروض بجواره لا يشكّلان، وحدهما، نتيجة بناء قابل لإعادة الإنتاج. وبالمثل، يظل التوقيع الصحيح على إصدار خبيث توقيعًا صحيحًا.
كيفية التحقق من تنزيل دون المبالغة في تفسير النتيجة
حدّد أولًا الإصدار المقصود، واحصل على ملف APK وقيمة التجزئة المتوقعة له من مسار توزيع موثوق. احسب قيمة التجزئة محليًا. إذا اختلفت، فلا تثبّت الملف ما دام سبب الاختلاف غير مفسّر: فاختلاف الإصدار أو عدم اكتمال التنزيل أو العبث يمكن أن يؤدي كل منها إلى عدم التطابق.
إذا تطابقت، فسجّل الإصدار والنتيجة. لقد أثبتَّ تطابق البايتات مع ذلك المرجع، لا غياب الفحص من جانب العميل. وإذا استطاع المهاجم نفسه استبدال التنزيل والمجموع الاختباري المعروض، فقد تجتاز المقارنة الاختبار رغم ذلك. تساعد المراجع المستقلة واستمرارية مفتاح التوقيع وشفافية الإصدارات في معالجة جوانب مختلفة من مشكلة الثقة هذه.
بالنسبة إلى ادعاء تطابق المصدر مع الملف الثنائي، ابحث عن تعليمات بناء موثقة ونتائج أعيد إنتاجها بصورة مستقلة للإصدار الفعلي. لا تستنتج هذه الخاصية من عبارة «مفتوح المصدر».
تظل التحديثات مهمة
يمكن مهاجمة توزيع البرمجيات، لكن تجنّب التحديثات الأمنية إلى أجل غير مسمى ليس دفاعًا عامًا سليمًا. فالتحديثات تصلح أيضًا ثغرات قابلة للاستغلال. استخدم قناة تحديث موثوقة، وراجع الإشعارات الأمنية المهمة، وتحقق من أدلة الإصدار حين يستدعي مستوى المخاطر لديك ذلك. الإصدار القديم ذو العيب المعروف ليس أكثر أمانًا لمجرد أن مجموعه الاختباري تطابق في وقت سابق.
ما الذي يثبته Proof Lab الخاص بـ Livara؟
يوفر Proof Lab الخاص بـ Livara مقارنة محلية لقيمة تجزئة APK وعروضًا توضيحية للتشفير في المتصفح. وتذكر الصفحة أنها لا تشغّل آليات التسنين الكاملة لـ LVR1/LGS1 ولا تشكّل تدقيقًا للبروتوكول. كما يوضح نموذج التهديد حدود التحقق عندما يستطيع المهاجم استبدال الملف وقيمة التجزئة المتوقعة له معًا.
هذه الفحوص مفيدة ضمن نطاقها. لكنها لا تثبت أن الهاتف المثبّت عليه التطبيق خالٍ من البرمجيات الخبيثة، أو أن إصدارات Livara قابلة لإعادة الإنتاج بصورة مستقلة، أو أن تطبيقها لا يمكن أن يحتوي على سلوك غير معلن. اقرأ التوثيق الأمني على نحو منفصل للاطلاع على حدود حماية الرسائل المعلنة.
ليس السؤال الصحيح ما إذا كانت شارة ما تقول «تم التحقق». بل أي ادعاء اختُبر، وبالمقارنة مع أي مرجع موثوق، ولأي إصدار محدد بالضبط.



