توقيع تطبيقات الأندرويد والتحقق من التوقيع
توقيع التطبيقات
توقيع التطبيقات هو العملية التي يتم من خلالها توقيع APK (حزمة تطبيقات أندرويد) بمفتاح خاص يميز مطور التطبيق بشكل فريد. تضمن هذه العملية أن التطبيق يأتي من المطور المعلن عنه دون التلاعب به بعد توقيعه. إليك تفصيل مفصل:
إنشاء متجر المفاتيح
- ينشئ المطورون متجر المفاتيح، وهو ملف ثنائي يحتوي على المفاتيح التشفيرية. يحتوي هذا المتجر على مفتاح خاص يستخدم لتوقيع APK.
- يتم حماية متجر المفاتيح بكلمة مرور، يجب الحفاظ عليها آمنة لمنع الوصول غير المصرح به.
توقيع APK
- خلال أو بعد عملية البناء، يتم توقيع APK باستخدام المفتاح الخاص الموجود في متجر المفاتيح.
- تقوم هذه العملية بإنشاء توقيع رقمي من خلال دالة التجزئة، تنشئ تجزئة فريدة لمحتوى APK.
- ثم يتم تشفير التجزئة بمفتاح المطور الخاص، ويتم تخزين النتيجة داخل APK.
إدراج الشهادة
- يتضمن APK شهادة تحتوي على المفتاح العام المتوافق مع المفتاح الخاص المستخدم للتوقيع.
- تُستخدم هذه الشهادة للتحقق من التوقيع الرقمي أثناء عملية التثبيت.
لماذا يعتبر توقيع التطبيقات مهمًا؟
- يضمن المصداقية: يؤكد هوية مطور التطبيق.
- يحمي السلامة: يضمن أن التطبيق لم يتم التلاعب به منذ توقيعه.
- يمكن التحديثات الآمنة: يضمن أن التحديثات تأتي من المطور الأصلي، حيث يجب أن تكون التحديثات موقعة بنفس المفتاح.
التحقق من التوقيع
التحقق من التوقيع هو العملية التي يتحقق من خلالها نظام التشغيل الأندرويد من التوقيع الرقمي لملف APK لضمان سلامته ومصداقيته قبل التثبيت. اطلع على هذا المنشور على Reddit حول كيفية التحقق بسهولة من توقيع وسلامة ملف APK وبعد ذلك عد هنا لقراءة كيفية عمل التحقق:
استخراج الشهادة
عند تحميل APK وبدء التثبيت، يستخرج الجهاز الشهادة التي تحتوي على المفتاح العام من APK.
فك تشفير التوقيع
- يستخدم الجهاز المفتاح العام المستخرج من الشهادة لفك تشفير التوقيع الرقمي المدمج في APK.
- يفكك التشفير التجزئة الأصلية (أو الديجست) والتي تم إنشاؤها خلال عملية التوقيع.
توليد التجزئة
بشكل مستقل، يقوم الجهاز بإنشاء تجزئة خاصة به لمحتويات APK. يتم ذلك باستخدام نفس الدالة التجزئة المستخدمة خلال عملية التوقيع.
مقارنة التجزئات
- يقارن الجهاز التجزئة المُولدة بشكل مستقل مع التجزئة المفككة من التوقيع الرقمي.
- مطابقة: إذا كانت التجزئات متطابقة، يتم التحقق من أن APK أصلي وغير معدّل، مما يسمح بالتثبيت.
- عدم تطابق: إذا لم تتطابق التجزئات، فإن ذلك يشير إلى أن APK قد تم تعديله منذ توقيعه، ويتم حظر عملية التثبيت.
لماذا التحقق من التوقيع مهم؟
- يضفي صحة: يضمن أن APK كان مُوقعًا من قبل المطور المعلن عنه.
- يحافظ على السلامة: يؤكد أن APK لم يتم تعديله منذ توقيعه.
- يحمي المستخدمين: يحظر تثبيت APKs المحتملة الضارة.
أي توقيع أختار إذا كان للتطبيق توقيعات متعددة؟
معظم التطبيقات لها توقيع واحد صالح، لكن بعضها يمكن أن يمتلك أكثر. تحتاج إلى مطابقة توقيع APK مع توقيع التطبيق المثبت بالفعل على جهازك لتجنب أخطاء التحديث.
أسباب التوقيعات المتعددة
- تدوير المفتاح: يسمح أندرويد 9 للمطورين بتغيير مفاتيح التوقيع. هذا بسبب نظام توقيع APK Schema v3.
- قنوات التوزيع: يمكن أن تكون التطبيقات من مصادر مختلفة (مثل متجر Play، Github) لها توقيعات مختلفة.
- تطبيقات النظام: يمكن أن تختلف مفاتيح توقيع تطبيقات النظام حسب الجهاز أو إصدار نظام التشغيل.
- حالات غير مفسرة: بعض التطبيقات مثل تطبيق الملفات وخدمات Google Play من جوجل ببساطة لديها توقيعات متعددة.
كيف يمكن تحديد التوقيع الصحيح:
- يحتوي AndroidFreeware على مدقق APK متقدم يقوم بفحص أذونات الأندرويد، يكتشف الفلاتر والرايات الخطرة، يحسب التحقق md5، sha1، sha256، ويقوم بفحوصات لمكافحة الفيروسات عبر VirusTotal.
- استخدم أدوات مثل My APK لعرض توقيعات التطبيقات.
- استخدم الطريقة التجريبية. قم بتثبيت APKs مختلفة حتى يعمل التحديث، ثم تذكر التوقيع الصحيح للتحديثات المستقبلية.
- قم بتحميل التطبيق إلى APKMirror باستخدام ML Manager لإيجاد التوقيع الموجود بالفعل.
- بعض الأدوات المكتبية يمكن أن تجد توقيع ملف APK. من بينها apksigner من جوجل، keytool من IBM، وprint-apk-signature من وارن بانك.
جدول المحتويات
- هل AndroidFreeware آمن؟
- ما هو نظام التشغيل أندرويد؟
- ما هو تطبيق / لعبة أندرويد؟
- ما هو ملف APK؟
- هل ملفات APK آمنة وقانونية؟
- ما هي ملفات APK، حزم APK، وكيف تفتحها بأمان؟
- كيفية تنزيل وتثبيت ملفات APK أو حزم APK؟
- توقيع تطبيقات الأندرويد والتحقق من التوقيع
- أذونات الأندرويد: المخاطر الخفية وكيفية حماية نفسك
- أين تُخزن ملفات APK على جهاز الأندرويد؟
- ما هي محتويات ملف APK؟
- هل يمكن لملفات APK العمل على أجهزة كرومبوك، ويندوز 10، بي سي، iOS؟
- لماذا لا يتم تثبيت ملف APK، أو فتحه، أو تشغيله؟