网站制作 客户刁难六枝做网站
HTTP 传输的弊端

- 如上图,Http进行数据传输的时候是明文传输,导致任何人都有可能截获信息,篡改信息
 - 如果此时黑客冒充服务器,或者黑客窃取信息,则其可以返回任意信息给客户端,而且不被客户端察觉,所以我们经常会听到“劫持”这个词
 
改进HTTP传输-对称加密传输

- 改进版本之后,Client和Service端在进行通信的时候,用对称加密,Client与Servic端分别保存密钥A,通信加密,解密都用A
 - 问题点: 
- 对称加密一般约定加密算法与密钥A,每个客户端不一样,因此维护困难,一般都维护在Service或者Client某一端,由Service 或者Client生成密钥A后传递给另外一端口, 这样密钥A在传输过程存在泄漏可能
 
 
改进HTTP传输-非对称加密

- 以上Client 保存公钥,公开的,所有人可见,Service保存私钥。
 - Client发信息用公钥加密发给Service用私钥解密
 - Service 发信息用私钥加密发给Client用公钥解密
 - 问题: 
- 公钥公开的,黑客也能能通过公钥解密获取到的所有Service端发送到Client的信息,造成信息泄漏
 
 
改进HTTP传输-对称加密和非对称加密结合使用

-  
Client持有公钥,Service 持有私钥,第三步开始Client 生成一个对称密钥A,用公钥加密A得到加密后的字符B
 -  
Client将B 以及 用A加密后的密文 一起 发送给Service ,Service 用 私钥解密 B 得到A,利用A解密密文的到原文
 -  
同样Service用A加密要传输的数据得到密文传输给Client用A解密得原文
 -  
优点:
- 密文安全性,公钥即使泄漏,但是密文是 A加密的,公钥无法解密
 - 密钥安全性,A传输过程用公钥加密的,即使被截获,没有私钥也无法解密得不到对称密钥
 - 对称加密的优势:对称加密如果能保证秘钥不被黑客获取,那么他是安全的,并且对称加密的速度具有很大优势,用在蜜文加密上
 - 非对称加密优势:非对称加密请求发起时候尽管使用的是公钥加密,但是因为必须使用私钥解密的特点,因此能够保证消息体在向服务器用在对称密钥加密上
 
 -  
风险点:
 

- 第一步 公钥获取的时候被截获,公钥不是Service给的,是黑客给的,之后所有请求都是黑客伪造的,Client得到的公钥 和黑客的私钥是匹配的,完犊子
 
改进HTTP传输- 对称加密+非对称加密+SSL证书(HTTPS实现)

-  
首先说明证书作用:如上图,2步骤时候服务器发送了一个SSL证书给客户端,SSL证书中包含的具体内容有:
- 证书发布机构CA
 - 证书有效期
 - 公钥
 - 证书所有者
 - 签名
 
 -  
客户端在接受服务器发来的SSL证书会对证书进行校验,以浏览器为例说明如下:
- 首先浏览器读取证书中的证书所有者,有效期信息进行校验
 - 浏览器开始查找操作系统中已内置的收信人的证书发布机构CA,与服务器发来的证书中的颁发者CA对比,用于校验证书是否为合法机构颁发
 - 如果找不到,浏览器报错,说明服务器发来的证书是不可信的。
 - 如果找到,浏览器会从操作系统中取出颁发者CA的公钥,然后对服务器发来的证书里面的签名进行解密
 - 浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
 - 对比结果一致,则证明服务器发来的证书核发,没有被冒充。
 - 此时浏览器就可以读取证书中公钥,用于后续加密了。
 
 -  
通过SSL证书,完成了公钥的安全获取,安全性由第三方保证。接下来就是走上一个步骤中说明的:对称加密和非对称加密结合使用过程
 -  
总的来说,HTTPS实现如下图
 

- 红色钥匙–私钥
 - 绿色钥匙–公钥
 - 黄色钥匙–对称密钥
 
- Client发起请求(443接口)
 - Service 返回公钥SSL证书
 - Client解析SSL得到公钥
 - Client生成对称密钥,并且用得到的公钥给对对称密钥加密传给Service
 - Service端的到加密后对称密钥,用私钥解密
 - C/S双方用对称密钥 
- 加密明文并发送
 - 解密密文的到明文
 
 
