iOS逆向之旅(基礎篇) — App的簽名機制【Xcode是如何將App安裝到手機的】

首先先科普一下XCode簽名須要用到的理論知識

  • RSA加密算法 一種非對稱的加密算法,用於通訊。這種算法一般是客戶端持有公鑰,服務端持有私鑰。客戶端利用公鑰加密。服務端能夠用私鑰解密。服務利用私鑰加密數據發給客戶端,客戶端能夠利用公鑰解密出來。【簡單來講就是:公鑰加密的數據,利用私鑰能夠解密;私鑰加密的數據,公鑰一樣能解密】
  • 數字簽名 客戶端把【數據】,並利用公鑰加密【數據的MD5】,而後把這【數據】與【機密後的MD5】發給服務器 服務器獲取到數據包後,先求出【數據】的MD5,並解密【數據的MD5】,而後二者進行對比,若是不同就表明數據被截獲串改了

XCode如何將App安裝到手機的【首先這個流程會涉及到2次數字簽名】

1.Mac電腦本地生成公鑰和私鑰,把本身的公鑰打包成CSR文件發給服務器。 算法

11.png
2.蘋果服務器利用本身的私鑰,對 Mac電腦的公鑰進行數字簽名,生成證書與描述文件,將證書與描述文件返回給Mac電腦。 
12.png
3.Mac電腦利用私鑰對App的可執行文件的Hash值進行加密,生成App的簽名 4.Mac 將 App的可執行文件、App的簽名、證書【關聯Mac的私鑰】、描述文件 打包成一個App傳輸給手機
13.png
5.手機將會使用蘋果的公鑰,對證書解析,得到Mac的公鑰。利用Mac的公鑰,解析App簽名,獲取Hash值進行認證,認證成功則App成功安裝上,認證失敗就沒法安裝。
相關文章
相關標籤/搜索