iOS的签名与证书机制(三):数字签名与证书

2019-03-14  本文已影响0人  Calabash_Boy

完整文章列表:
iOS的签名与证书机制(一):加密解密
iOS的签名与证书机制(二):单向散列函数
iOS的签名与证书机制(三):数字签名与证书
iOS的签名与证书机制(四):iOS的签名

在开始学习数字签名之前,我们来看一个例子:

消息.png
四娃看了后还没面子,于是质问大娃:"你为什么发群里?"
大娃:"我不知道呀,不是我发的!"
四娃空口无凭,怎么才能确定大娃发的这条消息是被中间拦截后修改的呢?还是这条消息就是大娃发的呢?
四娃看了我的文章,灵机一动,有了,用数字签名来解决!
在数字签名中也有公钥与私钥的概念,大家还记得我们在第一章讲解公钥密码的时候,也使用到了公钥与私钥;
公钥密码是为了保证信息的安全性,消息发送者使用消息接收者的公钥加密信息,消息接收者使用自己的私钥解密信息;
数字签名是为了能够识别信息有没有被篡改,不是为了保证消息的安全,使用消息发送者的私钥进行签名,消息接收者使用消息发送者的公钥验证签名;
别慌,慢慢向下看.
公钥密码与数字签名.png

不论对于公钥密码与数字签名,公钥是任何人都可以持有的,但是私钥只能自己持有;
我们来看看数字签名的一般流程:

数字签名一般流程.png
从图中的流程可以了解:

这就是数字签名的基本流程,但是还有些漏洞:

那么改进后的流程如下:


数字签名的改进流程.png

四娃学习到这里,底气十足,这次大娃再也不能耍赖了!
我敲了敲四娃的头:"小子,葫芦报仇,10年不晚!",因为虽然改进流程解决了发送内容尺寸的问题,但是,第二个漏洞,中间人攻击的问题还是没有解决,我们先来看看什么是中间人攻击;
在发送公钥的过程中,如果被人监听,那么就会出现下面的问题:


中间人攻击.png

你看,这个中间人是不是很厉害?你以为跟你聊天的是美如花的小芳,却不知是抠脚的大壮;


令人心碎.png

那我怎么才能知道跟我聊天的是不是小芳的呢?这时候我们可以找德高望重的村长作证:"狗蛋啊,跟你聊天的确是小芳!"而CA(Certificate Authority),就是这样的存在;
CA是为了证明"公钥的确属于此人"的权威机构,怎么证明?通过它们发布的证书.
这个证书的全称为公钥证书(Public-key Certificate,PKC),既然是为了证明公钥属于某人,那么里面肯定包括了此人的公钥,以及此人的姓名,邮箱,公司地址等信息,然后CA通过The Public-Key Cryptography Standards (PKCS)协议对这些内容进行数字签名(对内容的散列值加密),生成的内容就是证书;

CA机构生成证书.png

目前的CA机构有国际性的组织,通过认证服务盈利的企业,甚至个人也能设置认证机构;
到这里,我们明确了证书的作用就是检验公钥的合法性,这样消息发送者与消息接收者之间不直接发送公钥,而是通过CA机构验证,可以避免中间人的攻击:

证书的下载与安装.png
通过CA机构的证书,数字签名就可以安全的使用了,迫不及待的四娃终于找到了背后凶手,原来是隐身的6娃!!

有了这些知识,最终章我们要开始讲解iOS的签名与证书机制;

上一篇 下一篇

猜你喜欢

热点阅读