如何購買iOS簽名證書

ios簽名證書購買只能購買企業開發者帳號,只有企業開發者才能提供簽名服務。

簽名機制的意義

安全.蘋果為了對App的環境有絕對的控制權,只有被蘋果認可的應用才可以安裝到手機上.可以避免應用被篡改,以及盜版應用的暢行,保護了開發者的利益.

原理:非對稱加密算法

非對稱加密算法是iOS的基礎,它使用兩份密鑰(公鑰,私鑰)來對信息進行加密以及解密:對外公開的為公鑰,簽名放自己持有的密鑰為私鑰,通過私鑰加密的內容只能公鑰解密,而通過公鑰加密的內容只有私鑰能夠解密.由於公鑰反推私鑰難度非常大,理論上只要密鑰的位數足夠長,反推基本是不可能的,所以非對稱機密算法是被廣泛使用的安全性非常高的加密算法.

如何購買iOS簽名證書

Appstore 對簽名的驗證邏輯

如何購買iOS簽名證書

圖1

1,首先使用Hash算法對App數據進行處理得到摘要

2,用私鑰對摘要進行加密,得到簽名

如何購買iOS簽名證書

圖2

首先要說明兩點

1,每臺iphone設備應該都有蘋果特有的公鑰

2,每個通過App Store下載的應用都會帶有蘋果通過私鑰的簽名

接下來說一下圖2的邏輯:

1,使用相同的hash算法對下載的到用戶手機的App進行處理得到摘要1

2,使用App公鑰對簽名進行解密,得到摘要2

3,判斷摘要1和2是否相等,如果相等那麼認證成功.否者安裝失敗

開發者

以上流程可以滿足一個普通用戶的需求,但是無法滿足開發者的需求.因為開發者為了調試需要無數次的安裝app,如果每次都需要上傳蘋果簽名,大家會瘋的!!!!!所以蘋果為開發者建立了本地簽名系統.

開發者會在自己的電腦上生成用於簽名認證的公鑰和私鑰,以後安裝 app 到手機上時會在本地進行認證,而無需將 app 上傳到蘋果的服務器上簽名。但是蘋果也必須要維護自己控制 app 安裝的權利,那麼蘋果會怎麼做呢?答案就是使用數字證書。

證書

開發者通過 鑰匙串訪問->證書助理->從證書頒發機構請求證書 生成 Certificate Signing Request 文件(CSR 文件),同時也在本地自動生成了相應的公鑰和私鑰,在填好必要的信息後,開發者將 CSR 文件上傳給蘋果用於生成數字證書。

CSR 文件記錄了開發者的個人信息、公鑰、加密算法以及 Hash 算法等內容,可以使用以下命令來查看文件內容:

openssl asn1parse -i -inCertificateSigningRequest.certSigningRequest

蘋果收到 CSR 文件後,會使用自己的私鑰對開發者的公鑰進行簽名,最終生成一個數字證書(包含開發者賬號信息、公鑰以及相應的簽名)返回給開發者,查看證書信息的命令如下

openssl x509 -inform der -inios_development.cer -noout -text

點擊安裝證書後,鑰匙串會自動將證書和相應的私鑰對應起來,同時你還需要在 Xcode 中將簽名證書設置為你剛剛安裝的證書。此後在編譯完 app 時,系統會使用數字證書對應的本地私鑰對 app 進行簽名,然後同數字證書一起安裝到手機上,接下來 iOS 設備會通過 Apple 公鑰來驗證數字證書是否有效,驗證通過後會使用數字證書中的公鑰來驗證 app 是否有效,最終判斷 app 是否可以被安裝

Provisioning Profile

僅有數字證書是不夠的,為了防止權限被濫用,開發者還需要在蘋果官網上註冊用於開發的設備,僅有註冊後的設備才被允許按照以上流程安裝 app,官方限制最多100臺.

除此之外,蘋果還需要對 app 的權限進行控制,例如是否能夠使用 iCloud、Wallet、Maps 等,蘋果將這些功能授權統稱為 Entitlements。開發者將上述權限配置完成後,需要從蘋果後臺下載並安裝相應的 mobileprovision 文件,該文件包含:

1,AppId

3,已註冊的設備列表

4,數字證書

5,蘋果簽名

當然,如果有需要的話,你可以使用以下命令來查看 mobileprovision 文件內容

securitycms-D-iembedded.mobileprovision

如何購買iOS簽名證書

圖3

1.開發者在本地生成公鑰和私鑰,然後把公鑰上傳給蘋果並獲取數字證書

2,開發者在後臺配置Appid,開發設備,功能權限,最後下載描述文件

3,開發者用本地私鑰簽名app,並將描述文件隨app安裝到ios設備

4,iOS 設備使用 Apple 公鑰驗證 mobileprovision 文件的簽名以及數字證書的簽名

5,使用數字證書包含的公鑰來驗證 app 的簽名

6,驗證安裝 app 的設備是否在設備列表中,AppId 是否一致,Entitlements 和 app 中的權限是否對的上等等

7,如果沒有企業賬號可藉助第三方平臺(如:ds.fubi.hk)獲得蘋果企業簽名服務,這也是一個不錯的辦法。

如何購買iOS簽名證書



分享到:


相關文章: