Алгоритм подписи Android SHA256 с сертификатом, имеющий алгоритм SHA1
Мой вопрос является своего рода продолжением этого вопроса: могу ли я указать алгоритм дайджеста, который использует apksigner?
Я подписываю APK с apksigner и, следуя рекомендациям, приведенным выше, я поднял minSDK до 18+. Как и ожидалось, результирующие дайджесты MANIFEST.MF и ANDROID.SF сообщают хеш-коды дайджеста SHA-256 для файлов в пакетах вместо хеш-дайджестов SHA-1.
Однако печать сертификата.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 в сертификате подписи приложения, заключается в следующем:
- это разбирает,
- он заявляет, что его открытый ключ может использоваться для цифровых подписей,
- (только при обновлении уже установленного приложения) оно идентично сертификату подписи приложения текущей установленной версии приложения.