امضای دیجیتال (Signing) در اپلیکیشنهای اندرویدی فرآیندی است که به تایید اصالت و یکپارچگی فایل APK کمک میکند.
وقتی یک برنامه اندروید (فایل APK) ساخته میشود، نیاز است که امضا شود. این امضا برای موارد زیر ضروری است:
- تایید اصالت توسعهدهنده:نشان میدهد که این فایل APK از یک توسعهدهنده خاص آمده است.
- یکپارچگی فایل:تضمین میکند که فایل APK بعد از امضا تغییر نکرده است.
- انتشار در فروشگاه Google Play:برنامهها باید امضا شوند تا در Google Play منتشر شوند.
- بهروزرسانی برنامه:وقتی برنامهای در دستگاه نصب میشود، نسخههای جدیدتر آن باید با همان کلید امضا شوند تا بهروزرسانی انجام شود.
فایلهای دخیل در فرآیند امضا
-
Keystore File (
.jks
یا.keystore
)- این فایل شامل کلید خصوصی شما است که برای امضای APK استفاده میشود.
- این کلید محرمانه است و نباید در اختیار دیگران قرار بگیرد.
- همراه با رمز عبور (password) از آن محافظت میشود.
-
Certificate (گواهی)
- هر کلید خصوصی یک گواهی عمومیدارد که شامل اطلاعاتی مانند نام توسعهدهنده، سازمان، و تاریخ انقضا است.
- گواهی بخشی از امضای APK است.
-
Manifest و Signature
-
در امضای V1، یک فایل
META-INF/MANIFEST.MF
و فایلهایMETA-INF/CERT.SF
وMETA-INF/CERT.RSA
در APK قرار میگیرند که اطلاعات مربوط به امضا را ذخیره میکنند. - در امضاهای V2، V3 و V4، این اطلاعات در یک بخش خاص از APK ذخیره میشوند.
-
در امضای V1، یک فایل
چرا از امضا استفاده میشود؟
- امنیت:اگر کسی فایل APK را بعد از امضا تغییر دهد، امضا باطل میشود و دستگاه اندروید از نصب آن جلوگیری میکند.
- اعتماد:کاربران میدانند که برنامه از یک توسعهدهنده مشخص آمده و توسط شخص ثالث تغییر نکرده است.
- سازگاری:امضا تضمین میکند که فقط نسخههای جدیدتر با همان کلید میتوانند جایگزین نسخههای قدیمیشوند.