Алгоритм подписи Android SHA256 с сертификатом, имеющий алгоритм SHA1

Мой вопрос является своего рода продолжением этого вопроса: могу ли я указать алгоритм дайджеста, который использует apksigner?

Я подписываю APK с apksigner и, следуя рекомендациям, приведенным выше, я поднял minSDK до 18+. Как и ожидалось, результирующие дайджесты MANIFEST.MF и ANDROID.SF сообщают хеш-коды дайджеста SHA-256 для файлов в пакетах вместо хеш-дайджестов SHA-1.

Android-minSDK18.SF отрывок Android-minSDK18.SF отрывок

Android-minSDK16.SF отрывок Android-minSDK16.SF отрывок

Однако печать сертификата.RSA с keytool -printcert -file "ANDROID - minSDK18.RSA" или же keytool -printcert -file "ANDROID - minSDK16.RSA" дает тот же результат, указывая алгоритм подписи SHA1 с RSA. введите описание изображения здесь

Вероятно, это связано с тем, что SHA1withRSA является алгоритмом подписи, встроенным в сертификат: введите описание изображения здесь

Мой вопрос заключается в том, чтобы узнать, влияет ли алгоритм подписи сертификата, используемого для подписания APK, на проблемы коллизии SHA-1, даже если APK подписан с алгоритмом SHA-256.

1 ответ

Решение

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

Для получения дополнительной информации все, что имеет значение для Android в сертификате подписи приложения, заключается в следующем:

  1. это разбирает,
  2. он заявляет, что его открытый ключ может использоваться для цифровых подписей,
  3. (только при обновлении уже установленного приложения) оно идентично сертификату подписи приложения текущей установленной версии приложения.
Другие вопросы по тегам