标签:app id mes ica 技术分享 非对称 证明 message ESS 优化
想要了解iOS的签名机制需要有一定密码学有一定的了解。下面依次介绍的数据的加密解密、单向散列函数、数字签名、证书、iOS签名机制。
在网络通信中想要防止数据被攻击者拦截,我们通常对我们的数据进行加密(通过密钥对发送的消息根据加密算法生成密文),如果传输的信息被拦截,攻击者获取到的是密文。
根据密钥的使用方法,可以将密码分为2中
在对称密码中,加密、解密使用的相同的密钥。常见的对称密码算法DES、3DES、AES。
由于对称密钥加密会遇到密钥配送问题。如果发送者在发送密钥的过程中被拦截发送的加密的密文也能被拦截者解密。为了解决对称加密密钥配送问题就出现了新的加密方式-非对称加密。
在公钥密码中
公钥密码解决对称密码加密遇到的配送问题
目前使用最广泛的公钥密码算法是RSA
。RSA的名字有3位开发者,即Ron Rivest、Adi Shamir、Leonard Adleman的姓氏首字母组成。
公钥密码算法虽然解决了密钥配送问题,但是他们生的算法加密速度比公钥密钥加密较慢,不适合加密信息量加大的数据。为了解决这个问题我们使用-混合密码系统
混合密码系统利用了公钥密码+对称密码,利用两者的优势的加密方式。
加密步骤
消息的接受者拿到加密的会话密钥用自己的私钥解密获取到机密的会话密钥,在利用会话密钥使用对称加密方式解密出明文消息。
在非对称加密必须要将消息接受者的公钥发送给消息发送者,如果此时存在中间人攻击
。拦截了消息发送者发送给消息接受者的公钥,给的是攻击者的公钥。为了保证消息接受者接收公钥确实是消息发送者的公钥,那么证书
就出场了。
密码学中的证书,全称叫公钥证书
(Public-key Certificate,PKC),跟驾驶证类似里面有姓名、邮箱等个人信息,以及此人的公钥
。并由认证机构(Certificate Authority,CA)施加数字签名
。
CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织,有国际性组织、政府设立的组织,有通过提供认证服务来盈利的企业,个人也可以成立认证机。
证书的使用流程
整个流程提到了一个专业词-数字签名。那么下面介绍下数字签名
。要想更好的了解数字签名,需要先对单向散列函数
有个了解。
单向散列函数,又被称为消息摘要函数(message digest function),哈希函数。输出的散列值,也被称为消息摘要(message digest)、指纹(fingerprint)。
常见的几种单向散列函数
MD4、MD5
SHA-1
SHA-2
SHA-3
单向散列函数的使用场景
数据签名主要是确认消息的完整性、识别消息是否被篡改、防止消息发送人否认
。
用消息发送者的私钥进行签名。保证这个签名是消息发送者自己签的。
上面我们知道公钥密码中对大数据进行签名效率会比价低,因此我们利用单向散列函数来优化签名过程。
签名流程
补充
数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改。数字签名不能保证机密性。
iOS签名机制的作用:保证安装到用户手机上的APP都是经过Apple官方允许的。
不管是真机调试,还是发布APP,开发者都需要经过一系列复杂的步骤
-生成CertificateSigningRequest.certSigningRequest文件
对于真机调试,现在的Xcode已经自动帮开发者做了以上操作
如果APP是从AppStore下载安装的,你会发现里面是没有mobileprovision文件的。它的验证流程会简单很多,大概如下所示
标签:app id mes ica 技术分享 非对称 证明 message ESS 优化
原文地址:https://www.cnblogs.com/CoderHong/p/9221340.html