Проверка подписи Android Oh! Android

Как получить подпись подписи apk? | блог о программировании

моя ситуация заключается в том, что у меня есть предустановленный apk, который использует неправильный ключ-магазин . Поэтому непосредственно установка даст сбой из-за несогласованной подписи.Мне нужно сначала проверить подпись, чтобы убедиться, что она может быть установлена плавно.

вот мой решение.

как код говорит, Вы можете получить подпись из установленного apk.

детали:

Signature sig = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures[0];

во-вторых: получить releaseApk хэш-код для сравнения. В в моем случае, я загрузил этот apk с моего сервера и поместил его в sd_card.

Signature releaseSig = context.getPackageManager().getPackageArchiveInfo("/mnt/sdcard/myReleaseApk.apk", PackageManager.GET_SIGNATURES).signatures[0];

наконец, сравните хэш-код.

return sig.hashCode() == releaseSig.hashCode;

Я пробовал выше код, он работает просто отлично. Если хэш-код отличается, Вы должны просто удалить старый apk или если это системное приложение и устройство укоренено, вы можете просто использовать runtime to удалить, а затем установить новую подпись apk.

Контрабанда данных

Не проверять файл META-INF является побочным эффектом работы криптокода. Чтобы защитить вещи, вам необходимо создать сообщение, которое однозначно описывает сообщение. Это хэш защищенных данных. К сожалению, сертификат не может быть включен в это, поскольку он добавляется после вычисления хэша. Таким образом, обычно есть места, которые можно добавить, не нарушая подпись. Для Windows и .

В сертификате X509 есть непроверенные поля. (Неаутентифицированные атрибуты). Это делает любое решение на основе X509 способным к контрабанде данных. Ваша защита – это местная копия, которую вы загрузили, не имеет контрабандных значений.

Если вы не полагаетесь на данные, не прошедшие проверку подлинности, в каталоге безопасности, вы не можете быть уязвимы к изменению. Поэтому лучший вариант – не делать этого.

Читайте также:  ЭЦП в браузере: проблемы, решения, личный опыт / Хабр

Проблема самоподписывания

Самоподписание приводит к пропущению некоторых проверок. Это позволяет злоумышленнику создавать обновляемый пакет, который должен быть им. Это проблема с авторским правом, а не проблема с безопасностью, так как это явно измененный двоичный файл (не проходит самозаверяющий чек).

Есть ли способ переупаковки apk и подписания приложения с тем же закрытым ключом?

Всякий раз, когда apk распаковывается, он лишает свою сигнатурную информацию?

Уничтожение APK не нарушает его подпись, и вы можете повторно упаковать. Вы можете удалить элементы из APK, не нарушая подпись. Однако невозможно изменить ресурсы и код, не нарушая подпись.

Оцените статью
ЭЦП Эксперт
Добавить комментарий