前置概念
-
单向散列函数
-
(非)对称加密
-
数字签名
-
数字证书
iOS签名流程
iOS签名机制的作用是为了保证安装的App的合法性,即验证安装的App是否是经过Apple允许的正规程序。
App在iOS设备上共有四种发布方式:
-
AppStore
-
真机调试
-
In-House,企业内部分发
-
AD-Hoc,限制数量的In-House
而根据发布方式的不同,签名流程也有所区别。其中AppStore使用的是最简单的单层签名机制,而后三种使用的都是较为复杂的双层签名机制。这也很好理解,AppStore发布的软件内容本身就会经过Apple的审核,而且一般不会频繁下载,所以使用单层签名机制就已经足够。而如果使用后三种发布方式,App的内容不会被审核,增加了用户使用的风险,而且真机调试需要频繁加载,不可能每次都向Apple服务器请求验证,因此使用更安全复杂的双层签名机制。
单层签名机制
单层签名机制用于在AppStore分发App的情况,是较为简单的签名机制。
-
Apple本身有一对密钥对,Apple后台存有私钥记作私钥A,每一台iOS设备中都内置了公钥记作公钥A
-
Apple后台用私钥A对上传的App进行签名
-
下载完成后iOS设备用公钥A对App进行验签