苹果双向签名机制

作者: 蒲公英少年 | 来源:发表于2021-11-22 20:54 被阅读0次

iOS开发同学都知道我们想要把开发好的App安装到手机(真机)上测试,需要有对应的开发者证书和描述文件才行,其实这里面就涉及到了苹果的双向签名认证机制。苹果的双向签名机制主要用到了非对称加密RSA以及哈希算法的知识,了解这个机制之后,我们会发现苹果还是非常聪明的。了解这个机制之前,建议大家先熟悉苹果开发者证书和描述文件的申请流程,不熟悉的朋友可以到我之前的文章了解一下传送门

接下来我们就一步一步的来分析苹果的双向签名机制:

一、我们知道RSA加密的是需要一对秘钥(公钥和私钥)的,公钥加密,私钥解密,反过来也成立。苹果利用RSA加密机制在服务器端存放一个私钥(为了方便描述,我们称为私钥A),在iOS系统端存放一个公钥(和私有对应,这里称为公钥A),因为服务器和iOS系统都是苹果的,所以这个很容易做到。

二、当我们通过CSR文件去申请证书时,此时Mac系统帮我们生成了一对秘钥:公钥M和私钥M,并将公钥M放在CSR文件中到苹果服务器申请证书。


1-1.png
2-4.png

三、苹果服务器收到CSR文件后,用服务器的私钥A对公钥M进行签名得到一串HASH值,并用公钥M将公钥M和HASH值一起生成一份cer证书文件,然后我们下载到电脑上双击打开会加载到钥匙串中。之后将钥匙串中的证书导出p12文件给到其他开发者,那么其他开发者才能有权限进行真机安装调试了。


2-7.png
2-10.png

四、等到我们打包编译的时候,Xcode会根据登录的开发者账号从苹果服务器拉取对应BundleID的描述文件(其中包含设备ID列表、App ID、权限文件以及cer证书等),再用Mac电脑上的私钥M对App的资源文件和可执行文件MACHO进行签名,最后将描述文件、签名文件、以及MACHO文件等一起打包成ipa文件(注意:ipa文件实际上就是Zip文件)。


2-2.png

五、当我们在手机上安装App的时候,iOS系统首先用公钥A去解密证书,成功后得到公钥M,这一步的解密动作也是验证此证书是否是苹果服务器颁发的证书,验证了这个证书是苹果允许的。然后再拿解密得到的公钥M对App进行解密来验证此App是否是当前这个证书允许的,从而间接的验证了这个App是苹果服务器允许安装到手机的。其中,如果证书类型是发布证书,则是直接安装的(当然这是AppStore的安装方式);如果证书是开发证书,则需要去验证一下当前手机设备是否是允许安装的设备,通过后才能将App安装到手机上。最后附一张流程图,帮助大家理解~


苹果双向签名.png

相关文章

  • 苹果双向签名机制

    iOS开发同学都知道我们想要把开发好的App安装到手机(真机)上测试,需要有对应的开发者证书和描述文件才行,其实这...

  • 苹果的双向签名

      了解iOS的双向签名,涉及到有三个设备端(Mac电脑,苹果服务器,iPhone手机)。应用需求是因为苹果的应用...

  • 苹果签名机制

    一图简单了解苹果签名机制 a.Mac电脑通过钥匙助手生成CSR文件(公钥)并生成对应私钥,并通过苹果开发者中心生成...

  • 苹果签名机制

    服务器:签名iOS手机:验证 双层签名Mac电脑(公钥M 私钥M)服务器(私钥A)iPhone手机(公钥A) 1....

  • 苹果签名机制

    一、部分概念 数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发...

  • 苹果签名双向验证原理

    代码签名 代码签名是对可执行文件或者脚本进行数字签名,用来确认软件在签名后未被修改或损坏的措施。 简单的代码签名 ...

  • 苹果APP验证原理(1):双向签名

    双向签名: 手机和苹果服务器还有开发人员的MAC电脑,他们一共维护着2对公私钥,利用这两对公私钥分别完成双向签名与...

  • iOS签名机制

    前言 =============【2020-12-03】立个flag:本周末学习苹果签名机制===========...

  • iOS APP反重签名技术详解

    原文:秦伟 什么是签名? 简单的说,签名(signature)是苹果公司的一种安全机制,APP的签名有效才被iOS...

  • iOS签名校验

    导读:iOS签名校验机制是苹果生态安全的基础,日常工作中无论是开发阶段还是测试阶段常常会遇到很多需要通过签名机制解...

网友评论

    本文标题:苹果双向签名机制

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