日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

apk去除签名验证工具安卓版_App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!...

發布時間:2023/12/2 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apk去除签名验证工具安卓版_App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、序

在將 App 發布到市場之前,很重要的一個步驟就是為 APK 進行簽名,大部分時候,這個操作隱藏在了打包的流程中,而不被我們注意到。

簽名的作用,除了證明 App 的所有權之外,還可以幫助 Android 市場和設備校驗 APK 的正確性。

Android 的簽名是自證明的,并不會對證書進行 CA 認證。也就是我們可以使用工具自行生成簽名證書,只要是一個格式正確的簽名,系統就會承認,并且允許安裝。

生成簽名的時,可以指定一個有效時間,這個時間默認為 25 年,并且 Google Play 也有硬性規定,上架的 App 簽名有效期必須在 2033-10-22 日期之后。所以只要不是手欠修改了這個有效期,在當下這個時刻,是不會有問題,畢竟到現在還沒有一款 App 存在 25 年。

有些問題不在眼前,卻是真實存在的。對于一款上架的 App,最重要的就是用戶,而當簽名失效之后,我們只能被迫替換簽名,此時因為簽名校驗無法通過,就會導致舊用戶無法覆蓋安裝。這些歷史用戶唯一的選擇,就是卸載后重新安裝。

好在這不僅僅是你我的問題,天塌下來有個子高的頂著,所以別擔心,Google 已經著手在解決這個問題了。

方案就是 Android 9.0 新增的對 APK V3 簽名的支持。

二、新的簽名方案 V3

2.1 Android 的簽名方案

Android 的簽名方案,發展到現在,不是一蹴而就的。Android 現在已經支持三種應用簽名方案:

  • V1 方案:基于 JAR 簽名。

  • V2 方案:APK 簽名方案 V2,在 Android 7.0 引入。

  • V3 方案:APK 簽名方案 V3,在 Android 9.0 引入。

V1 到 V2 是顛覆性的,為了解決 JAR 簽名方案的安全性問題,而到了 V3 方案,其實結構上并沒有太大的調整,可以理解為 V2 簽名方案的升級版,有一些資料也把它稱之為 V2+ 方案。

因為這種簽名方案的升級,本身就是向下兼容的,所以只要使用得當,這個過程對開發者是透明的。

V1 到 V2 方案的升級,對開發者影響最大的,就是渠道簽署的問題。在當下這個大環境下,我們想讓不同渠道、市場的安裝包有所區別,攜帶渠道的唯一標識,這就是我們俗稱的渠道包。

好在各大廠都開源了自己的簽渠道方案,例如:Walle(美團)、VasDolly(騰訊)都是非常優秀的方案,想了解的可以先看看之前的文章:《Android 簽名和多渠道打包原理》。

2.2 簽名的歷史

先從 Android 簽名的歷史講起。

在上個世紀 80 年代,Phil Katz 創建了 ZIP 格式,可以將文件和一些元數組,組合在一個文件中,便于傳輸和存檔,該格式是為了解決壓縮、校驗和冗余頭等問題而提出的解決方案。

Sum 公司在上世紀 90 年代,將 ZIP 作為 JAR 格式的基礎,而 JAR 本質上就是一個 ZIP 存檔。在其中,META-INF 目錄下會包含一些元數據和簽名數據等信息。

Android 出現后,也沿用了 Java 的 JAR 的發布方式,將 APK 建立在 JAR 格式之上,在此基礎上對 Dalvik 字節碼 classes.dex 和資源 resources.arsc 等文件添加更多標準化的結構。當時 Android 的 APK 完全依賴 JAR 的簽名方案來確保應用程序的正確性,這就是我們俗稱的 V1 方案(JAR 方案)。

在 V1 簽名方案中,并不會保護 APK 內的所有文件,會存在一些例外部分,即便被修改也不會導致簽名失效,例如:ZIP 元數據。同時,V1 方案對 APK 內部被保護的原始文件,是單獨進行計算數據摘要的,所以在驗證時,需要先解壓再驗證,導致安裝時會花費更多的時間,消耗更多的內存。

例如 V1 方案中簽渠道的方式就是利用了此特性,將渠道信息寫入 META-INF 文件中,這不會破壞 V1 簽名。

多年后,在 Android 7.0 中添加了一種新的簽名方式,就是我們俗稱的 V2 方案。V2 簽名提供了更強大的 APK 文件驗證,它不再檢查包內單個文件,而是檢查整個 APK。它在 ZIP 文件中,插入一個額外的簽名塊,覆蓋 ZIP 文件中的其余部分。

在這個額外的簽名塊(Apk Signature Block V2)中,會對當前 APK 的其他部分簽名。

從安全的角度 V2 會比 V1 更安全,V2 簽名是驗證整個打包后的 APK 文件,所以對其 APK 文件做“任何”改動都會破壞簽名。注意這里的任何是帶引號的,V2 簽名的簽名塊其實是一個 K-V 的結構,可以向其中插入一些簡單的數據而不破壞 V2 簽名,這就是 V2 方案下,多渠道的方案思路。

在引入 V2 方案的同時,也保證了向后兼容,舊的 JAR 簽名方案仍然在舊的設備(Android 7.0 以下)中生效,而在較新的設備上,也會判斷是否使用 V2 簽名,不是則依然會去校驗 V1 簽名。

V2 方案解決了安全問題以及安裝時驗證的效率問題,但是它并沒有解決前面提到的換簽名問題。

2.3 Android 的 V3 方案

Android 9.0 中引入了新的簽名方式,它的格式大體和 V2 類似,在 V2 插入的簽名塊(Apk Signature Block V2)中,又添加了一個新快(Attr塊)。

在這個新塊中,會記錄我們之前的簽名信息以及新的簽名信息,以密鑰轉輪的方案,來做簽名的替換和升級。這意味著,只要舊簽名證書在手,我們就可以通過它在新的 APK 文件中,更改簽名。

V3 簽名新增的新塊(attr)存儲了所有的簽名信息,由更小的 Level 塊,以鏈表的形式存儲。

其中每個鏈表節點都包含用于為之前版本的應用簽名的簽名證書,最舊的簽名證書對應根節點,系統會讓每個節點中的證書,為列表中下一個證書簽名,從而為每個新密鑰提供證據來證明它應該像舊密鑰一樣可信。

這個過程有點類似 CA 證書的證明過程,已安裝的 App 的舊簽名,確保覆蓋安裝的 APK 的新簽名正確,將信任傳遞下去。

2.4 V3 簽名的驗證過程

Android 的簽名方案,無論怎么升級,都是要確保向下兼容。

在引入 V3 方案后,Android 9.0 及更高版本中,可以根據 APK 簽名方案,V3 → V2 → V1 依次嘗試驗證 APK。而較舊的平臺會忽略 V3 簽名并嘗試 V2 簽名,最后才去驗證 V1 簽名。

整個驗證的過程,如下圖:

需要注意的是,對于覆蓋安裝的情況,簽名校驗只支持升級,而不支持降級。也就是說設備上安裝了一個使用 V1 簽名的 Apk,可以使用 V2 簽名的 Apk 進行覆蓋安裝,反之則不允許。

三、總結時刻

Android 簽名替換的問題,Google 已經在考慮了,9.0 新增的 V3 簽名方案就是為了解決簽名替換的。這些,肯定都是提前準備。

簽名過期的問題,不需要太擔心,我們只需要跟著 Google 的步伐就可以了。

最后小結一下結論,簽名過期的問題,在 Android 9.0 上新支持的 V3 簽名,已經有解決的方案了。另外:

  • V1 簽名遵循 JAR 的簽名方式,單獨驗證 APK 壓縮包中的文件。

  • V2 簽名是針對 APK 文件的驗證,將簽名信息寫入簽名塊中,增強了安全性和驗證效率。

  • V3 簽名在簽名塊中又增加了新塊(attr),由更小的 level 塊,以鏈表的形式存儲多個證書。

  • 在 V3 方案中,最舊的證書為新塊鏈表的根節點,以此對新證書簽名,確保新證書正確有效。

  • V3 方案還沒有正式開放,在最新版的 Build Tools 版本 28.0.3 中的 Apksigner,尚不支持 V3 的 APK 簽名方案。想嘗鮮可以通過源代碼自行編譯。

    從現有的資料來看,我比較關心的多渠道打包的支持方案,在升級到 V3 之后,舊的 V2 支持的多渠道方案應該依然有效(或者少量改動)。

    期待上線后的具體效果。

    你對 V3 簽名有什么想法或者疑問,歡迎在留言區討論。

    如若本文對你有所幫助,歡迎留言、轉發、點“好看”。

    reference:https://www.guardsquare.com/en/blog/android-apk-signature-scheme-v3-context-and-new-opportunities

    https://source.android.com/security/apksigning

    https://xuanxuanblingbling.github.io/ctf/android/2018/12/30/signature/


    「聯機圓桌」?推薦我的知識星球,一年 50 個優質問題,上桌聯機學習。

    公眾號后臺回復成長『成長』,將會得到我準備的學習資料,也能回復『加群』,一起學習進步;你還能回復『提問』,向我發起提問。

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的apk去除签名验证工具安卓版_App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 在线99| 国产在线一区二区三区四区 | 中文字幕在线网站 | 日本精品人妻无码免费大全 | 99精品久久久久久 | 成人乱码一区二区三区 | 黄色香蕉网站 | 影音先锋久久 | 日本午夜精品理论片a级app发布 | 日本www高清视频 | 69视频一区二区 | 亚洲a√| 成人在线视频观看 | 操操操综合 | 国产精美视频 | 狠狠操夜夜操 | 成熟了的熟妇毛茸茸 | 久久伊人免费视频 | 天天干天天搞天天射 | 免费毛片网站在线观看 | 欧洲性生活视频 | 欧美freesex黑人又粗又大 | 日本少妇一级片 | 国内成人精品视频 | 污污内射久久一区二区欧美日韩 | 在线观看成人免费视频 | 日本一二区视频 | 国产乱人乱精一区二视频国产精品 | 国产熟女精品视频 | 久久亚洲av成人无码国产电影 | 美女av在线免费观看 | 日本xx片| 天堂视频在线 | 国产在线a视频 | 久久乐视频| 红桃成人在线 | 91美女在线视频 | 福利视频在线播放 | 国产精品第6页 | 精品久草 | 亚洲 欧美 激情 小说 另类 | 欧美不卡 | 小敏的受孕日记h | 亚洲婷婷免费 | 欧美日本韩国一区二区三区 | h视频在线免费观看 | 超碰97干 | 天天操天天舔天天干 | 日韩一区二区在线观看 | 欧美肉大捧一进一出免费视频 | 视频毛片| 捆绑裸体绳奴bdsm亚洲 | 亚洲精品国产成人久久av盗摄 | 日韩欧美成 | 精品久久久久久久久久久久 | 国产毛片a | 777四色| 精国产人伦一区二区三区 | 日韩一级性 | 日本午夜视频在线观看 | 久久伊人在 | 香蕉福利 | 拔插拔插影库 | 茄子av| 国产成人精品久久 | 成人区精品一区二区婷婷 | 手机av在线免费观看 | 波多野结衣在线一区二区 | 国产一级黄色电影 | 国产精品日韩欧美一区二区三区 | 欧美日韩一区二区三区四区五区 | 国产一级视频在线 | 国产精品久久久久久久久岛 | 999国内精品永久免费视频 | 日韩在线观看免费网站 | 欧美人xxxx | 鲁丝片一区二区三区 | www.嫩草.com | 俄罗斯女人裸体性做爰 | 日韩欧美久久精品 | 全黄一级裸体片 | 天海翼一区 | 久草资源 | 成人激情在线 | 中国黄色a级片 | 影音先锋丝袜制服 | 亚洲欧美一区二区三区 | 日韩午夜免费视频 | 欧州一区二区三区 | 日本免费看 | 91av毛片 | 理论片av | 免费一级片视频 | 天天操一操 | 日韩一区二区三区精品 | 96精品视频 | 91精品一区二区三区四区 | 成人免费无码大片a毛片抽搐色欲 | 日韩免费影院 |