Application signature verification (anti-tamper)
One of the cornerstones of Android security is that all apps must be digitally signed. Application developers sign apps using a private key in the form of a certificate. There's no need to use a certificate authority, and in fact, it's more common to use self-signed certificates.
Certificates are usually defined with an expiration date, and the Google Play store requires a validity period ending after October 22, 2033. This highlights the fact that our app signing key stays consistent throughout the life of the app. One of the primary reasons is to protect and prevent app upgrades unless the signatures of the old and upgraded .apk
files are identical.
So, if this verification already happens, why add a check for signature consistency?
Part of the process of an attacker modifying your application's .apk
file breaks the digital signature. This means that, if they want to install the .apk
file on an Android device, it will need to be resigned using...