簡體   English   中英

Android 簽名密鑰更改(不是 Play Store 分布式應用程序)

[英]Android signing key change (not Play Store distributed app)

我有以下情況:

我們有一個關鍵應用程序,它通過從我們自己的服務器(不是 Play 商店)下載的 apk 進行分發。 該應用程序通過下載和安裝 apk(使用 android 意圖)來更新自身和另一個應用程序。 這兩個 apk 都由我們公司的代碼簽名密鑰簽名。

問題:

簽名密鑰將在 5 天后到期,我們無法更新它,因為它是 2048 位 RSA。 根據一些 CA/瀏覽器論壇文件:

代碼簽名的基線要求

但是如果我們把私鑰改成3072bit RSA,android會拒絕安裝(這個我理解):

Package com.whatever.myapp signatures do not match previously installed version; ignoring!

有沒有比卸載和重新安裝應用程序讓用戶更痛苦的方法? (它在全國范圍內分發給 1000 多個無法執行此操作的客戶)。

更改 package 名稱對客戶端來說意味着一個干凈的數據庫,因此這不是一個可行的解決方案。 這是真的嗎,我無法獲得 2048 位 RSA 私鑰的有效簽名? 有什么解決辦法嗎?

提前致謝!

密鑰不會過期,但證書會過期(或者至少它們有一個NotValidAfter字段)。 話雖如此,Android 不會驗證證書的有效性,它只會強制證書保持逐字節不變,因此從技術上講,擁有“過時”的證書不會對您的用戶產生影響。

If you still want to change the key, you'd have to use key rotation ( https://source.android.com/security/apksigning/v3 ) which is a feature that was introduced in Android 9, so only users on Android 9+ 將能夠使用新密鑰驗證簽名,而舊設備上的用戶將繼續驗證舊密鑰的簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM