苹果双向签名机制

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 一、部分概念 数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发...
    绿叶竹林阅读 839评论 0 0
  • 一图简单了解苹果签名机制 a.Mac电脑通过钥匙助手生成CSR文件(公钥)并生成对应私钥,并通过苹果开发者中心生成...
    alitan2015阅读 302评论 0 0
  • 双向签名: 手机和苹果服务器还有开发人员的MAC电脑,他们一共维护着2对公私钥,利用这两对公私钥分别完成双向签名与...
    铸造中阅读 1,510评论 0 2
  •   了解iOS的双向签名,涉及到有三个设备端(Mac电脑,苹果服务器,iPhone手机)。应用需求是因为苹果的应用...
    spyn_n阅读 422评论 0 3
  • 服务器:签名iOS手机:验证 双层签名Mac电脑(公钥M 私钥M)服务器(私钥A)iPhone手机(公钥A) 1....
    竹屋听雨阅读 141评论 0 0