签名
数字签名
前端签名流程
1:待传输的数据(D)
2:通过HASH算法,得到数据(D)的HASH值(D-H)
3:对HASH值(D-H)进行非对称加密(RSA),得到(D-H-R)
前端-> 数据(D)和(D-H-R) -> 一并传给服务器
后端签名的验证
1:通过HASH算法,得到数据(D)的HASH值(D-H)
2:通过私钥解密签名文件(D-H-R)得到(D-H-1)
3:比较(D-H)和(D-H-1)是否相同
相同:合法
不相同或者解密失败:不合法
代码签名
将开发者上传的APP代码进行上述[数字签名]流程
作用->区别官方还是盗版或者病毒软件
双重签名:
双层代码签名
申请CSR文件
1:苹果电脑系统(公钥M + 私钥M)
2:从证书颁发机构申请CSR文件 (公钥M)
4:CSR文件
包含设备信息,设备id,APP id等等
包含权限信息等等
包含证书:私钥A 对 公钥M 进行签名
3:苹果服务器(私钥A) 返回CSR文件
描述文件
1:开发前注册苹果开发者账号->支付99/299美元购买发布/安装服务 -> 登录
developer.apple.com
2:创建应用(标识唯一Bundle ID :比如 xxa.xxxb.com) ,-> 上传CSR文件, ->
上传用户手机UDID唯一标识 -> 创建证书
3:下载证书描述文件到电脑- > 双击安装, -> 然后打开‘‘钥匙串’’,找到证书, ->
展开:包含一对公私钥(‘专用密钥’就是私钥,可导出的P12文件,三方平台类似极光
推送需要P12文件)
4:描述文件分为 真机和模拟器
IPA包
1:Xcode创建项目开发
2:选择开发者账户,选择自动获取证书,编译项目
3:导出ipa包
可执行文件MachO和framework, 图片等静态资源等等
描述文件(服务器私钥A加密的证书)也一并会打包到项目中
对于企业版APP需要信任描述文件(xxx.mobileprovision)才能安装, 而App
Store下载的不需要
私钥M 对 代码文件进行签名(ipa就是代码文件夹的压缩包)
4:上线App Store
服务器私钥A解密证书-> 校验代码文件合法性 -> 审核 -> 上线
5:苹果手机安装
手机系统包含的公钥A解密证书-> 校验代码文件合法性 -> 安装使用
6:iOS APP安装源
App Store : 所有苹果手机可登陆下载
ipa包 (99证书) : 开发者添加过的手机才能安装, 内部测试
ipa 包 (299企业证书): 限制手机数量可安装,需要信任描述文件,无需绑定手机
越狱应用