iOS App签名原理和HTTPS证书原理

前言

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

非对称加密

可以说有计算机的地方就有非对称加密,我们平时说到的数字签名,就是非对称加密实现的。相对于对称加密,一个秘钥用来加密和解密,非对称加密会有已对公私钥,公钥加密只有私钥能解密,私钥加密只有公钥能解密。有很多种,比如RSA,ECC,DH,一般的RSA加密算法就是私钥加密,公钥解密,只要保证私钥不泄露,一般是很安全的。这里有两个文章详细介绍了RSA非对称加密的原理。
阮一峰RSA介绍

数字签名

可以想象现实中,一份文件的签名只要是客户画押或者签字,就能代表这份文件是出自某个客户,而且是被客户所认证过的。那么计算机中的签名也一样,通过对一段数据进行签名,传递给别人,别人就知道这份数据是出自我想要的那个人发给我的,而且是没有被篡改的。

那么有了非对称加密,就能实现这个数字签名:
在这里插入图片描述
1、首先要有一直摘要算法,针对同一份数据的摘要是一致的,而且数据有一点改动,摘要完全不同,而且长度足够短,因为RSA非对称加密的值不能太大。这里我们常用的就是SHA256活着MD5

2、作为签名方,私钥自己拿着,公钥发给需要接受数据的人

3、一般将原始数据进行摘要算法,然后用私钥加密,最后生成的签名和原始数据一同发给接收方

4、用户收到数据和签名后,用公钥解密得到摘要。同时用户用同样的算法计算原始数据的摘要,对比这里计算出来的摘要和用公钥解密签名得到的摘要是否相等,若相等则表示这份数据中途没有被篡改过,因为如果篡改过,摘要会变化。

HTTPS证书原理

有了上面非对称加密的了解和什么是数字签名后,我们来看看HTTPS的整个过程是怎么样的。
分为证书制作和证书认证过程,先看下图
在这里插入图片描述

证书制作过程

1.服务方S向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;

2.CA通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;

3.如信息审核通过,CA会向申请者签发认证文件-证书。 证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名; 签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA的私钥对信息摘要进行加密,密文即签名;

注意点:
服务器自己有一套公钥私钥,传输是不安全的,因此介入了CA权威机构,申请的时候把公钥给CA进行验证,然后CA拿着公钥一起其他信息弄成证书。先把证书理解成一段数据,然后把这个数据进行HASH摘要算法,然后CA公司有自己的私钥,拿着这个私钥把摘要进行RAS加密,加密后的数据就是签名。因此证书就是明文公钥等其他信息,加上CA公司用他们自己私钥签名的一个文件。详细可以看上面的证书图

证书验证过程

在这里插入图片描述
SSL握手

首先明白网络各层的协议和作用,可以参考文章头部的链接。SSL握手是发生在TCP三次握手之后的

第一阶段:Clien

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值