天天看點

iOS學習之簽名機制

iOS 簽名機制

       iOS 簽名機制挺複雜,各種證書,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出錯,本文嘗試從原理出發,一步步推出為什麼會有這麼多概念,希望能有助于了解 iOS App 簽名的原理和流程。

目的

       先來看看蘋果的簽名機制是為了做什麼。在 iOS 出來之前,在主流作業系統(Mac/Windows/Linux)上開發和運作軟體是不需要簽名的,軟體随便從哪裡下載下傳都能運作,導緻平台對第三方軟體難以控制,盜版流行。蘋果希望解決這樣的問題,在 iOS 平台對第三方 APP 有絕對的控制權,一定要保證每一個安裝到 iOS 上的 APP 都是經過蘋果官方允許的,怎樣保證呢?就是通過簽名機制。

非對稱加密

       通常我們說的簽名就是數字簽名,它是基于非對稱加密算法實作的。對稱加密是通過同一份密鑰加密和解密資料,而非對稱加密則有兩份密鑰,分别是公鑰和私鑰,用公鑰加密的資料,要用私鑰才能解密,用私鑰加密的資料,要用公鑰才能解密。

       簡單說一下常用的非對稱加密算法 RSA 的數學原理,了解簡單的數學原理,就可以了解非對稱加密是怎麼做到的,為什麼會是安全的:

       選兩個質數 p 和 q,相乘得出一個大整數n,例如 p = 61,q = 53,n = pq = 3233

       選 1-n 間的随