Android簽名機(jī)制 v1版本介紹

Android 簽名目前包括三個(gè)版本v1、v2、v3,本文將簡短地闡述v1版本的原理與缺陷

首先

閱讀本文前需要理解什么是摘要、非對(duì)稱加密、數(shù)字簽名

原理

根據(jù)官方文檔的介紹, v1版本的簽名實(shí)際上就是采用的Java Jar文件的簽名機(jī)制

在apk包的META-INF文件夾下包含簽名三個(gè)重要的文件:

  • MANIFEST.MF
    包含了對(duì)apk中各種文件的摘要信息
  • CERT.SF
    包含了對(duì)MANIFEST.MF 的摘要以及MANIFEST.MF 文件中每一條摘要的摘要。
  • CERT.RSA
    包含了簽名的公鑰以及對(duì) CERT.SF的數(shù)字簽名。

驗(yàn)證過程

缺陷

  1. jar文件的簽名驗(yàn)證機(jī)制并不能保證每一個(gè)文件都被驗(yàn)證,如果x-Digest-Manifest不匹配,并不會(huì)立即驗(yàn)證失敗,而是進(jìn)入一個(gè)更低效的驗(yàn)證過程:驗(yàn)證CERT.SF 文件中每一條摘要,即如果文件是在簽名后加入到包中或者在簽名的時(shí)候使用其他手段不對(duì)一些文件進(jìn)行簽名,這些文件的驗(yàn)證將會(huì)被繞過。
  2. 在安裝app過程中,如果app中的資源文件很多零散的小文件,則每個(gè)文件都要進(jìn)行驗(yàn)證,過程會(huì)更慢
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容