为何https要使用证书

最近看了一本关于网络的书,叫作《图解http》,以为这本书写的很好,看完以后印象比较深的是这本书的https的解释,为此在此总结一下本身的理解。文中的不少截图出自http图解,在此表示感谢。算法

什么是https

https不是一种新的协议,只是http的通讯接口部分使用了ssl和tsl协议替代,加入了加密、证书、完整性保护的功能,下面解释一下加密和证书,以下图所示浏览器

clipboard.png

加密:

共享密钥加密

加密和解密公用一套秘钥,这样就会产生问题,已共享秘钥加密方式必须将秘钥传送给对方,但若是通讯被监听,那么秘钥可能会被泄漏产生危险。安全

公开秘钥加密

公开秘钥加密使用一种非对称加密的算法,使用一对非对称的秘钥,一把叫作共有秘钥,一把叫作私有秘钥,在加密的时候,通讯的一方使用共有秘钥进行加密,通讯的另外一方使用私有秘钥进行解密,利用这种方式不须要发送私有秘钥,也就不存在泄漏的风险了。服务器

https加密方式

由于公开秘钥加密的方式比共享秘钥加密的方式钥消耗cpu资源,https采起了混合加密的方式,来结合二者的优势。网络

在秘钥交换阶段使用公开加密的方式,以后创建链接后使用共享秘钥加密方式进行加密,以下图。加密

clipboard.png

为何要使用证书:

由于公开加密还存在一些问题就是没法证实公开秘钥的正确性,为了解决这个问题,https采起了有数字证明认证机构和其相关机构颁发的公开秘钥证书,通讯过程以下图所示。spa

clipboard.png

解释一下上图的步骤:
1.服务器将本身的公开秘钥传到数字证书认证机构
2.数字证书认证机构使用本身的秘钥来对传来的服务器公钥进行加密,,并颁发数字证书
3.服务器将传回的公钥证书发送给客户端,客户端使用数字机构颁发的公开秘钥来验证证书的有效性,以及公开秘钥的真实性
4.客户端使用服务器的公开秘钥进行消息加密,后发送给服务器。
5.服务器使用私有秘钥进行解密。接口

浏览器在安装的时候会内置可信的数字证书机构的共有秘钥,以下图所示。ip

clipboard.png

这就是为何咱们使用本身生成的证书的时候会产生安全警告的缘由。ssl

clipboard.png

再附一张https的具体通讯步骤和图解。

clipboard.png

clipboard.png

最后用了人家这么多图给个购买连接吧图解http

相关文章
相关标签/搜索