HTTPS加密方式理论粗解
一、导论
HTTPS通信的方式在面试网络上是一个常见的热点问题。博主最近也在看《图解HTTP》这本书。发现这本书关于HTTPS的解释也是止于理论,打算总结一下HTTPS的理论基础。
如果有同学想更加深入学习,个人认为需要更加专业的书籍才可以。
二、什么是HTTPS
HTTPS(HTTP Secure,超文本传输安全协议)。其为HTTP传输协议和SSL或TSL这两种支持安全加密的协议进行组合使用,可以加密HTTP的通信内容。
三、HTTPS相比较HTTP的优点是什么(安全方面)
HTTP超文本传输协议是一种极其优秀网络通信协议,但是其在信息安全设计上几乎没有考虑。这个当然不能称之为漏洞,但是如果在一些对安全要求高的业务上这个设计将会存在非常大的安全弊端。
安全漏洞:HTTP的信息在网络传输中是透明的,我们常见的抓包软件都可以再拦截数据包后看到内部的明文信息。
而HTTPS的通信逻辑可以让HTTP整个通信过程中,信息报文始终处于一个加密的状态,需要在对应中断解密后才能读取。
HTTP图示:
HTTPS图示:
注意:本图数据流向箭头应该双向的而不是单向的,这里画单向只是方便描述
。
四、HTTPS实现逻辑
1. 加密解密是如何实现的
由上图可以看出来,HTTPS在发送和接受数据的时候会对信息进行加密和解密。在这里,是通过同一个密钥进行对称加密算法实现。
通过一个密钥实现数据的加解密就可以完成数据安全通信了。但是另一个问题如何安全的将这个密钥传递给客户端(浏览器)
。
2. 加密密钥是怎样传递给客户端
在HTTPS的通信中当然也存在类似于TCP的握手机制
,其中HTTPS握手机制中的第一次握手大致可以理解为传递密钥的过程,在这个过程中使用的加解密算法为非对称加密,即发送方使用公钥加密,接收方使用私钥解密即可。
通过这种方式可以将上述对称密钥安全送给对方。
3. 总结
所以HTTPS的加密方式大致为一下两个过程。
- 访问方和服务方通过非堆成加密获取通信共享密钥。
- 访问放和服务方通过共享密钥使用对称加密构建加密的通信通道。
五、结尾
本篇文章大家讲了一个HTTPS理论上的密文通信通道是如何构建的。有很多知识点没有讲到,或是掠过的。
- 加密算法:对称加密和非对称加密的优缺点?
- 为什么不一直使用非堆成加密进行通信?
- 如何证明获取的共享密钥和公开密钥是正确的?(HTTPS特有证书相关)
- 等等
这些知识点博主会慢慢总结并总结有关博客,望大家到时候批评指正!!