Android簽名機制

weixin_33866037發表於2018-04-19

文章摘要

11725840-566100dd48736a95.PNG
Android簽名機制流程圖.PNG
為何需要Android簽名

防止APK被惡意篡改後,二次簽名打包。

基本概念

1.資料摘要:本質上是一種演算法;原始資訊按照一定演算法規則提取資訊,提取出來的資訊就是資料摘要。
特點:

  • 固定長度
  • 相同的輸入必定產生相同的輸出
  • 不可逆性

2.簽名檔案和證書檔案:必定成對出現;
數字簽名:非對稱加密技術和資料摘要的一個應用,可以解決可靠通訊的問題。
數字證書:主要用來解決公鑰安全發放的問題。

什麼是可靠通訊問題?
1.確定訊息來源是傳送者。
2.傳遞過程中不能被第三方篡改,即使篡改了,也可以發覺。

11725840-5114af5c8571cafa.PNG
簽名檔案和證書檔案流程圖.PNG

3.jarsign和signapk
jarsign:是jdk自帶的工具。我們平時打包基本上都是採用jarsign。
signapk:專門對apk檔案進行簽名,可以減少apk體積。相對於jarsign更加安全。在Android6.0以及更低的版本上安裝需要做一定的處理。
Android的APK兩種簽名

4.keystore檔案和pk8、x509.pem檔案
jarsign:簽名使用的是keystore檔案。
signapk:簽名使用的是pk8和x509.pem檔案。
keystore和pk8,x509.pem檔案可以互相轉換。
Android建立自己的pk8和x509.pem檔案並給app簽名

5.如何手動簽名apk
signapk簽名需要手動下載工具,然後執行相應的命名

11725840-0c422408ea7b884c.PNG
signapk命名行語句.PNG
11725840-6c5a6e2387e73a92.PNG
singapk簽名與jarsign簽名打包對比.PNG
Android簽名流程(簡述)

通過解壓apk檔案,存在一個META-INF目錄。這裡麵包括(MANIFEST.MF,CERT.SF,CERT.RSA)
11725840-767b856447f35aad.PNG
META-INFO.PNG

MANIFEST.MF:apk檔案中所有檔案的資料摘要內容。
CERT.SF:每個塊內容的資料摘要資訊。
CERT.RSA:儲存簽名以及公鑰公鑰資訊的數字證書。

相關文章