三:苹果签名原理

作者: Ray_lawq | 来源:发表于2019-01-24 16:38 被阅读81次
    • 首先Windows或者是安卓系统各种盗版软件或者是个人开发软件(非官方软件)都可以安装,iOS 为了解决这个问题对上架APP进行加签操作,如图:


      防止安装3方软件
    • 如果这样以后,只能在App Store下,不能开发调试,也不能使用企业账号打包的,为了解决这个问题,苹果使用双重验证,如图:


      双向验证
    • 申请证书步骤

    1. mac使用钥匙串创建CSR文件(文件其实就是公钥)如图:
    文件 公钥生成请求证书所填写的内容
    1. App Store 使用自己的私钥加签mac 请求的CSR文件,返回证书文件
    2. Xcode 使用生成CSR文件的公钥对应的私钥加签APP包(同时APP包里边包括服务器返回的证书)
    3. 测试手机里边包含App Store服务器对应的公钥,使用公钥验签证书是否是是苹果服务器授权的,再用证书里边的公钥验证加签的APP(在这个过程中,不验证APP是否被串改(APP的完整性),因为开发过程中APP经常改动)。
    • 然而这样以后只要是开发人员打包的应用都可以装到任何手机上,所以苹果又增加了注册设备,注册AppID,权限等等的限制条件;完整的流程如图:


      完整流程
    1. 还是和原来一样使用公钥请求证书,但是必须在苹果的后台填写测试手机的UUID和程序的AppID 来生成描述文件
    2. 下载证书和描述文件,证书安装到钥匙串,而描述文件安装到Xcode,以后打包的时候,打包到APP包里边
    3. 使用私钥签名APP,这个签名保存到APP的MachO文件里边
    4. 安装到手机上的时候,公钥去验证描述文件里边的证书,设备编号,等等信息,证书里边的公钥去验证APP的签名
    5. 多人合作开发的时候,申请证书的开发人员在钥匙串中导出申请好的证书的p12证书给他人使用(证书其实就是私钥),而其他的开发人员使用这个私钥和描述文件去打包调试

    相关文章

      网友评论

        本文标题:三:苹果签名原理

        本文链接:https://www.haomeiwen.com/subject/dnqujqtx.html