У меня есть много сомнений, которые нужно очистить в случае проверки подписи Android и ее уязвимости.
Как только мы создаем apk для приложения, мы можем распаковать apk и редактировать файлы ресурсов с помощью apktool. Когда мы переупаковываем отредактированный apk, он теряет свою подпись. Я могу отменить unsigned apk, используя jarsigner с моим собственным личным ключом, который я использовал при создании apk. Я нашел приложение с именем zipsigner в playstore, которое можно использовать для подписи такого рода unsigned apk.
Итак, когда этот zipsigner подписывает unsigned apk, подписан ли apk с тем же личным ключом или с другим ключом? Поскольку моя папка META-INF по-прежнему содержит файлы XXX.SF и XXX.RSA, которые содержат информацию о моем личном ключе. Если это с моим же личным ключом, то новый apk будет обновлением для моего приложения или, если это другой ключ, у меня будут два разных приложения с таким же именем.
Из приведенных выше ситуаций есть вероятность того, что вредоносное ПО может быть включено в мой apk при переупаковке. Кажется, есть лазейка в механизме проверки подписи Android, где дайджест сообщений из файлов внутри папки META-INF не включен в файл MANIFEST.MF, а также в файл XXX.SF. Это создает возможность для всех включать вредоносные коды внутри этих папок, переупаковывать apk и увольнять его с помощью приложения zipsigner.
Я искал решение, в котором я могу запретить добавление файлов в папку META-INF, и я нашел его в блоге ниже. Но я не могу понять суть решения. Это похоже на тему исследования, так что в Интернете мало информации. Может кто-то попытаться выяснить решение, указанное в блоге. Ссылка на блог указывается ниже вопроса.
http://blog.trustlook.com/2015/09/09/android-signature-verification-vulnerability-and-exploitation/