ios签名机制的理解

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

  1.1 数字签名

  二、申请数字证书

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

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

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

  1.2 证书内容

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

ios签名机制的理解
  三、描述文件(mobileprovision)

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

  四、App打包签名、校验

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

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/ios%e7%ad%be%e5%90%8d%e6%9c%ba%e5%88%b6%e7%9a%84%e7%90%86%e8%a7%a3.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2022年6月17日 下午11:08
下一篇 2022年6月17日 下午11:08

猜你喜欢