التجزئة والتوقيع والبناء القابل لإعادة الإنتاج والتدقيق تجيب عن أسئلة مختلفة.
تتيح إتاحة المصدر فحص الشيفرة، لكنها لا تثبت وحدها أن التطبيق المثبّت هو الشيفرة نفسها أو أنه خالٍ من الثغرات. عند تقييم تطبيق مراسلة، من الأفضل فصل أنواع متعددة من الأدلة: الشيفرة المصدرية وعملية البناء وتوقيع الملف واختبار البروتوكول وتقرير التدقيق.
ما الذي يُظهره كل دليل تحديدًا؟
| الدليل | فائدته الأساسية | ما لا يثبته وحده |
|---|---|---|
| شيفرة مصدرية قابلة للقراءة | إمكانية فحص التصميم والتنفيذ | تطابقها مع ملف التثبيت أو غياب جميع الأخطاء |
| بناء قابل لإعادة الإنتاج | إمكانية مقارنة الناتج من مصدر وبيئة محددين | أمان الشيفرة نفسها |
| توقيع APK | فحص التوقيع وربط الملف بمفتاح توقيع موثوق | خلو سلوك التطبيق من الضرر |
| تجزئة SHA-256 | اكتشاف اختلاف البايتات مقارنة بخلاصة موثوقة | الأصالة إذا غيّر المهاجم الملف والخلاصة معًا |
| متجه اختبار | فحص سلوك محدد لمدخلات ومخرجات معينة | تغطية جميع الحالات ومسارات التنفيذ |
| تدقيق مستقل | نتائج مراجعة نطاق وإصدار محددين | ضمان دائم لجميع الإصدارات المقبلة |
البناء القابل لإعادة الإنتاج ليس تنزيل ملف ذي تجزئة مطابقة
وفق تعريف Reproducible Builds، تتعلق قابلية إعادة الإنتاج ببناء ناتج مطابق انطلاقًا من مصدر وبيئة وتعليمات محددة. إذا قارنت الملف المنزّل فقط بالتجزئة التي نشرها المطوّر، فقد أجريت فحص سلامة؛ ولم تبنِ الملف بنفسك من الشيفرة بعد.
لتقييم ادعاء قابلية إعادة الإنتاج، اطلب إصدار الشيفرة والاعتماديات وتعليمات البناء وتقرير شخص آخر أعاد إنتاج النتيجة. عبارة «المصدر موجود على GitHub» لا تحل محل هذه الأدلة.
كيف نفسّر فحص APK بطريقة صحيحة؟
- احصل على الملف من مسار رسمي ولإصدار محدد.
- احصل على الخلاصة ومعلومات الموقّع من مصدر تثق بأصالته.
- احسب تجزئة الملف وقارنها ببيانات الإصدار نفسه.
- في الفحص التقني، تحقّق أيضًا من صحة التوقيع؛ تدعم الأداة الرسمية apksigner هذه العملية.
- إذا وجدت اختلافًا، فأوقف التثبيت ووضّح السبب؛ ولا تُعِد توقيع الملف لتجاوز الخطأ.
مثال لأمر تحقق لخبير لديه Android SDK Build Tools:
apksigner verify --verbose --print-certs app.apk
الاسم app.apk مجرد مثال. نجاح الأمر لا يلغي ضرورة معرفة المفتاح الصحيح للناشر.
ما دور Proof Lab؟
يوفّر Proof Lab في ليفارا أدوات لفحوص محددة. اقرأ نطاق كل تجربة: تجزئة الملف أو مثال الاتفاق على مفتاح أو رفض البيانات المعدَّلة هي أسئلة مختلفة. نجاح عرض توضيحي للتشفير ليس تدقيقًا لكامل التطبيق المثبّت أو الخادم أو التحديثات أو إدارة الحساب.
يوضح نموذج تهديدات ليفارا أيضًا أنه إذا غيّر المهاجم ملف APK والخلاصة المعروضة معًا، فإن تطابق التجزئة وحده لا يثبت الأصالة. هذا قيد عام لفحص التجزئة، لا خاصية لتطبيق مراسلة بعينه.
ما الأسئلة التي نطرحها عند قراءة تقرير تدقيق؟
- ما المنظمة أو الأشخاص الذين أجروا الفحص، وأين التقرير العام؟
- أي إصدار وأي commit خضعا للفحص؟
- ما الأجزاء التي كانت خارج النطاق؟
- كيف صُححت النتائج المهمة وكيف أُعيد اختبارها؟
- هل الإصدار المثبّت لديك هو الإصدار نفسه أو يتضمن إصلاحاته؟
لا تستخلص حكمًا قاطعًا من كلمات مثل «معتمَد» من دون إجابات عن هذه الأسئلة. كما أن استخدام خوارزمية معيارية لا يعادل اعتماد المنتج بأكمله وفق معيار.
الخلاصة لاختيار تطبيق مراسلة
المصدر المفتوح وقابلية التحقق ليسا متنافسين، بل أدلة متكاملة. فضّل منتجًا تكون ادعاءاته دقيقة وقابلة للتتبع ومحددة النطاق بوضوح. ثم طبّق الفحص نفسه على نمط استخدامك، مثل المجموعات ونسخة الويب والنسخ الاحتياطي والأجهزة المرتبطة، بدل الانتقال من اختبار ناجح واحد إلى استنتاج الأمان المطلق.



