IOS开发入门之关于ios签名机制的理解
白羽 2018-11-13 来源 :网络 阅读 245 评论 0

摘要:本文将带你了解IOS开发入门关于ios签名机制的理解,希望本文对大家学IOS有所帮助。

    本文将带你了解IOS开发入门关于ios签名机制的理解,希望本文对大家学IOS有所帮助。



        

从事ios开发两年多了,日常的精力主要放在公司的业务上,最近决定开始写一些技术方面的东西,记录自己今后的学习历程,也希望和爱好移动开发的朋友多多交流学习。

下面切入正题,以前对ios的签名机制不太了解,只知道配置个开发者证书用于调试和打个企业包什么的,遂花了点时间去学习一下ios的打包签名机制,由于初学,本文的不足或是错误之处,还望多多批评指教。

一、非对称算法和数字签名

区别之前的对称加密算法(加密解密用的是同一个秘钥),非对称加密算法需要两个秘钥,即公钥和私钥来进行加密和解密,它俩是成对出现的,如果用公钥加密的内容,只有对应的私钥才能解密,反之,用私钥加密的内容,只有对应的公钥才能解密。相对于对称算法,该算法安全性高,只要私钥不泄露,就能保证通信双方的安全,缺点是加密和解密花费时间长。例如HTTPS协议在SSL层就用到了非对称算法。数字签名是一种对数字内容进行校验的方法,它首先对内容使用摘要算法(例如MD5算法)生成一段固定长度的文本,可以理解为原内容的摘要,然后利用私钥加密摘要,得到原内容的数字签名。接受方同时接收到与原内容和数字签名,首先用相同的摘要算法生成原内容的摘要(摘要1), 同时用公钥解密数字签名,得到摘要2,然后比较摘要1和摘要2,若相同,则验证原内容有效。具体流程如图1.1:

 

 

 

二、申请数字证书

数字证书是苹果公司数字签名后的数字化证书,是ios系统校验App的核心。以下是数字证书的申请过程:

1、开发者首先在keyChain中生成一个证书申请文件(CertificationSigningRequest,简称CSR),该文件包含开发者的信息、公钥、公钥加密算法和摘要算法,在这个过程中,首先会产生一个开发者使用的私钥,保存在keyChain中。

2、开发者上传CSR文件给Apple的MemberCenter(简称MC),苹果公司会根据该文件生成一个证书,包含两部分,即证书的内容和一段Apple的数字签名,如

 

 

 

数字签名是苹果利用自己的私钥加密证书内容摘要得到的,是为了验证证书的有效性。ios系统本身装有苹果公司的公钥,并通过图1.1的方式进行校验,如果摘要一致,证明数字证书的有效。苹果提供的证书有开发、调试证书,企业版发布证书,上架和AddHoc证书,类型不同,功能亦不相同。如果是团队开发,可以将证书导出生成.p12文件给其他人安装。

三、描述文件(mobileprovision)

描述文件也是通过苹果的MC下载得到,里面包含了证书、AppId和设备UDID,除了这些还有授权信息,规定了App能够使用的服务有哪些。

四、App打包签名、校验

Xcode在打包生成ipa文件的过程中,利用当前证书的私钥进行代码、资源文件的数字签名,并且将其存放在ipa文件夹的_CodeSignature文件夹下,图1.3是ipa文件的结构图。当App安装到ios系统上时,系统首先通过描述文件找到数字证书,通过证书里的苹果数字签名,验证证书的有效性,如果证书有效,取出证书中的开发者公钥,解密App的数字签名,如果发现摘要一致,则验证通过,App成功安装在手机上,其中一个环节有问题,验证工作就失败,图1.4是校验过程。

 

  

          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程