2021-06-02

不管是互联网技术的发展,还是科学技术的进步,都进一步影响了我们对于智能设备的需求,尤其是智能手机部分。而智能手机的构成部分就是APP软件了,那么大家对于iOS签名 App 的发展和原理或多或少有一些了解吗:

iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程。

目的:先来看看苹果的签名机制是为了做什么。在 iOS 出来之前,在主流操作系统(Mac/Windows/Linux)上开发和运行软件是不需要签名的,软件随便从哪里下载都能运行,导致平台对第三方软件难以控制,盗版流行。苹果希望解决这样的问题,在 iOS 平台对第三方 App 有绝对的控制权,一定要保证每一个安装到 iOS 上的 App 都是经过苹果官方允许的,怎样保证呢?就是通过签名机制

代码签名

在iOS出来之前,以前的主流操作系统(Mac/Windows)软件随便从哪里下载都能运行,系统安全存在隐患,盗版软件、病毒入侵、静默安装等等。那么苹果希望解决这样的问题,要保证每一个安装到 iOS 上的 APP 都是经过苹果官方允许的,怎样保证呢?就是通过代码签名。

如果要实现验证,其实最简单的方式:就是通过苹果官方生成非对称加密的一对公私钥。在iOS的系统中内置一个公钥,私钥由苹果后台保存,我们传APP到AppStore时,苹果后台用私钥对APP数据进行签名,iOS系统下载这个APP后,用公钥验证这个签名,若签名正确,这个APP肯定是由苹果后台认证的,并且没有被修改过,也就达到了苹果的需求:保证安装的每一个APP都是经过苹果官方允许的。

向签名

苹果需求

安装包不需要上传到App Store,可以直接安装到手机上;

苹果为了保证系统的安全性,又必须对安装的APP有绝对的控制权:

① 经过苹果允许才可以安装;

② 不能被滥用导致非开发APP也能被安装;

双向签名的原理

这里有两个角色:一个是iOS系统,还有一个就是Mac系统,因为iOS的APP开发环境在Mac系统下,所以这个依赖关系成为了苹果双层签名的基础。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘要:数据流管理系统(DSMS)以有效的方式提供实时数据处理,但在数据质量(DQ)和性能之间总是存在权衡。我们为关...
    dsemlina阅读 463评论 0 0
  • 今天咸鱼成交了一双很久在美国买的鞋子,聊聊使用咸鱼的感觉。 以前很多人聊过咸鱼网,一直没有真正使用。由于搬家,很多...
    嘻哈乐队阅读 208评论 0 0
  • 什么叫感觉材料语言呢?就是他想到的一种语言,专门就来描述我们自己直接获得的那些感觉,类似于视野里面有一片红兮兮的东...
    我来自金星阅读 179评论 0 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,259评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,122评论 0 4