美文网首页
iOS证书相关概念梳理

iOS证书相关概念梳理

作者: zh_19 | 来源:发表于2019-01-13 17:56 被阅读4次
非对称加密

RSA算法原理(一)
RSA算法原理(二)

摘要算法

另一个神奇的算法就是摘要算法。摘要算法是指,可以将任意长度的文本,通过一个算法,得到一个固定长度的文本。这里文本不一定只是文本,可以是字节数据。所以摘要算法试图将世间万物,变成一个固定长度的东西。摘要算法具有以下重要特性:

只要源文本不同,计算得到的结果,必然不同

无法从结果反推出源(那是当然的,不然就能量不守恒了)

典型的摘要算法,比如大名鼎鼎的MD5和SHA。摘要算法主要用于比对信息源是否一致,因为只要源发生变化,得到的摘要必然不同;而且通常结果要比源短很多,所以称为“摘要”。

数字签名与证书

数字签名是什么?

知道了证书的概念,下面来看在iOS开发中涉及到的相关知识
开发者基本都知道,除了从 AppStore 下载,我们还可以有三种方式安装一个 App:

  • 开发 App 时可以直接把开发中的应用安装进手机进行调试。
  • In-House 企业内部分发,可以直接安装企业证书签名后的 APP。
  • AD-Hoc 相当于企业分发的限制版,限制安装设备数量,较少用。
iOS签名
  1. 证书申请
    通过keychain的证书助手可以向apple(ca)生成一个以certSigningRequest为后缀的文件(这个文件包含你的公钥还有一些其他信息)和一个私钥保存在你的 keychain里。然后通过这个csr文件在开发者账户里创建证书。

  2. 如何加密(简单)
    非对称加密的应用,一句话解释即:公钥加密, 私钥解密或私钥加密,公钥解密。但私钥我们要自己保存,不能泄露出去。所以我们就要用我们的私钥对app加密,然后和公钥(证书)打包一起,安装到app里然后验证

  3. 如何验证
    首先验证证书,由于证书是苹果颁发的,即通过私钥进行过数字签名,所以
    很容易验证。然后用证书验证App的数字签名。

  4. 权限管理

  • AppID
    限制签名只能针对某一个具体的 APP。
  • 设备
    限制在苹果后台注册过的设备才可以安装
    *其他
    iCloud / push / 后台运行 等权限

具体流程下图 图片来自iOS App 签名的原理

image.png
  1. 在你的 Mac 开发机器生成一对公私钥,这里称为公钥L,私钥L。L:Local
  2. 苹果自己有固定的一对公私钥,跟上面 AppStore 例子一样,私钥在苹果后台,公钥在每个 iOS 设备上。这里称为公钥A,私钥A。A:Apple
  3. 把公钥 L 传到苹果后台,用苹果后台里的私钥 A 去签名公钥 L。得到一份数据包含了公钥 L 以及其签名,把这份数据称为证书。
  4. 在苹果后台申请 AppID,配置好设备 ID 列表和 APP 可使用的权限,再加上第③步的证书,组成的数据用私钥 A 签名,把数据和签名一起组成一个 Provisioning Profile 文件,下载到本地 Mac 开发机。
  5. 在开发时,编译完一个 APP 后,用本地的私钥 L 对这个 APP 进行签名,同时把第④步得到的 Provisioning Profile 文件打包进 APP 里,文件名为 embedded.mobileprovision,把 APP 安装到手机上。
  6. 在安装时,iOS 系统取得证书,通过系统内置的公钥 A,去验证 embedded.mobileprovision 的数字签名是否正确,里面的证书签名也会再验一遍。
  7. 确保了 embedded.mobileprovision 里的数据都是苹果授权以后,就可以取出里面的数据,做各种验证,包括用公钥 L 验证APP签名,验证设备 ID 是否在 ID 列表上,AppID 是否对应得上,权限开关是否跟 APP 里的 Entitlements 对应等。

引用

iOS App 签名的原理
漫谈iOS程序的证书和签名机制

相关文章

  • iOS证书相关概念梳理

    非对称加密 RSA算法原理(一)RSA算法原理(二) 摘要算法 另一个神奇的算法就是摘要算法。摘要算法是指,可以将...

  • iOS证书相关概念介绍

    到这个月,参加工作正好一年,期间忙于各种需求,虽说业务熟悉了,但是技术方面还是有待提高,尤其对证书那一块不太熟悉,...

  • iOS重签名工具开发之路(介绍篇)

    相关概念 证书:对iOS项目开发、发布资格进行授权的,主要会用到下面两种 :一个是Development开发证书,...

  • 证书相关概念

  • iOS开发各种证书详解

    引言 本文将围绕相关概念做个系统的梳理串烧。从 Xcode 7 开始支持普通 Apple 账号进行免证书真机调试,...

  • iOS安全相关 - HTTPS证书基础概念

    iOS开发中,有许多概念例如证书标准,证书编码格式,证书文件扩展名等等 证书的标注 X.509是一种常用的证书标准...

  • iOS证书相关知识介绍–一文了解

    很多刚开始接触iOS证书的开发者可能不是很了解iOS证书的类型功能和概念。 下面对iOS证书的几个方面进行介绍。 ...

  • tomcat/apache+https单&双向认证

    基础概念介绍:秘钥/证书/https握手/CA相关概念crt证书: 只含有公钥p12证书: 是包含证书(含公钥...

  • iOS 证书相关

    开发阶段 - 自动签名配置 新增测试设备的UDID操作步骤 一、 在证书管理界面添加UDID 二、 找到对应的Pr...

  • iOS证书相关

    iOS 开发证书 一个开发者账号,发布证书和测试证书的个数最多只能有两个. 如果其他开发人员需要证书可以让原来证书...

网友评论

      本文标题:iOS证书相关概念梳理

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