概念
1.对称加密
2.非对称加密(公钥加密)
3.消息摘要
4.消息认证码
5.数字签名
6.公钥证书
推荐先查看这篇文章再进行下文阅读:
https://foofish.net/https-story-1.html
这里由一个请求来解释为什么需要这些东西并对其概念做简短解释,结合这篇文章希望能更便于理解。
流程
这个相信大概用过或了解过的都知道,�一句话:由Client发起请求进行公钥加密发送到Server,Server使用私钥进行解密,�最后将数据同样进行公钥加密返回,Client进行私钥解密后处理业务。
看着似乎就是那么理所应当的简单啊。我本身也是这么天真的以为的就是加个密解个密么哈哈
好 接下来就从这个看似简单的流程来说说上面这些概念都是什么作用
首先 流程中最明显的一环“加密”先来看看这个
对称加密与非对称加密
对称加密:加密解密使用的是相同密钥
优点:速度快
缺点:因为Client要告诉Server加密方式而攻击者在拦截后知道了加密方式也就知道了解密方式。
非对称加密:一端进行公钥加密而另一端进行私钥解密
优点:解决了对称加密可能被拦截破解的可能
因为拦截者没有私钥,他无从知道怎么解密
缺点:速度比公钥慢很多
ok到这里加密应该有个大概的概念了,加密的事情解释差不多了,�这里提个问题,如果拦截者进行了篡改这时怎么办。这就用到了消息摘 要和消息认证码
消息摘要消息认证码
简单来说这个是保证数据的完整唯一性,当拦截者把消息改变后,Server进行比对发现不同就会认为这是被篡改的消息
但是问题又来了,虽说可以保整完整性,但是拦截者可以进行伪造,拦截者伪造订单信息进行攻击你会有口说不清。�这时又怎么办呢,“数字签名”
数字签名
数字签名就是Client把消息哈希函数处理生成消息摘要,摘要信息使用私钥加密之后生成签名发送给Server再由Server提取进行同样的哈希处理得到再与Client发送过来的签名解密如,如果相等则证明是对应的Client发送的
这下看着似乎都很完善了。还差最后一步就是公钥证书,他是做什么的呢,如果遭到拦截者把公钥换掉了呢,这时就需要有一个权威机构来认证也就是Certification Authority)CA。
公钥证书
证书中有用户的姓名组织邮箱地址等信息,还有公钥信息,并由CA提供数字签名生成公钥证书(Public-Key Certificate)PKC,简称证书。
这就是基本的大致流程了。
菜鸟讲解,主要是为了自己熟悉也希望这相对的白话文能帮小白理解
网友评论