HTTPS是一个通信安全的解决方案,可以说相对已经非常安全。为什么它会是一个很安全的协议呢?下边会做出解释。大家可以看看这篇文章,解释的很有意思 。《简单粗暴系列之HTTPS原理》.
HTTP + 加密 + 认证 + 完整性保护 = HTTPS
其实HTTPS是身披SSL外壳的HTTP,这句话怎么理解呢?
大家应该都知道HTTP是应用层的协议,但HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL或TLS协议代替而已。
通常 HTTP 直接和TCP通信,当使用SSL时就不同了。要先和SSL通信,再由SSL和TCP通信。
![](https://img.haomeiwen.com/i11043052/294d51544c1efb94.png)
这里再说一些关于加密的题外话:
现如今,通常加密和解密的算法都是公开的。举个例子: a * b = 200,加入a是你知道的密码,b是需要被加密的数据,200 是加密后的结果。那么这里这个*号就是一个很简单的加密算法。这个算法是如此简单。但是如果想要在不知道a和b其中一个的情况下进行破解也是很困难的。就算我们知道了200 然后得到a b 这个也很难。假设知道了密码a 那么b就很容易算出b = 200 / a 。
实际中的加密算法比这个要复杂的多。
介绍两种常用加密方法:
-
共享密钥加密
-
公开密钥加密
共享密钥加密就是加密和解密通用一个密钥,也称为对称加密。优点是加密解密速度快,缺点是一旦密钥泄露,别人也能解密数据。
公开密钥加密恰恰能解决共享密钥加密的困难,过程是这样的:
-
①发文方使用对方的公开密钥进行加密
-
②接受方在使用自己的私有密钥进行解密
关于公开密钥,也就是非对称加密 可以看看这篇文章 RSA算法原理
原理都是一样的,这个不同于刚才举得a和b的例子,就算知道了结果和公钥,破解出被机密的数据是非常难的。这里边主要涉及到了复杂的数学理论。
HTTPS采用混合加密机制
HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。
![](https://img.haomeiwen.com/i11043052/127eb816626c8437.png)
![](https://img.haomeiwen.com/i11043052/b6e5bc7104e57e28.png)
注意黄色的部分,这个指明了,我们平时使用的一个场景。这篇文章会很长,不仅仅是为了解释HTTPS,还为了能够增加记忆,当日后想看看的时候,就能通过读这边文章想起大部分的HTTPS的知识。下边解释一些更加详细的HTTPS过程。
![](https://img.haomeiwen.com/i11043052/ca0566a8acae30ad.png)
![](https://img.haomeiwen.com/i11043052/414e3f4b222c6243.png)
网友评论