一次学会HTTPS 如何加密

HTTP 的缺点 :

  1. 通信使用明文(不加密),内容可能会被窃听
  2. 不验证通信方的身份,因此有可能遭遇伪装
  3. 无法证明报文的完整性,所以有可能已遭篡改

HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

相互交换密钥的公开密钥加密技术

SSL 采用一种 叫做公开密钥加密(Public-key cryptography)的加密处理方式。

什么是公开密钥加密?

公开密钥加密又称非对称加密。在我们介绍公开密钥加密之前,我们先说一下对称加密

对称加密:共享密钥加密

对称加密:对称加密又交共享密钥加密。就是在客户端和服务端有着一对算法函数,可以用密钥将数据给加密或解密。但是只有相同的密钥可以解开此密钥所加密的数据。

弊端:在这时,如果服务端与每一个客户端都有一个特定的密钥,那么黑客也就没有办法盗取数据,因为没有特定的密钥是解不开加密后的数据的。但是这样的话,服务器需要为每一个客户端保存一个密钥,这样数据太大了。如果客户端共用一个密钥的话,黑客或者说攻击者,就可以直接从自己的客户端得到密钥进行拦截获取数据。

非对称加密 :公开密钥加密。

公开密钥加密使用一对非对称的密钥。一把叫做私有密钥 (private key),另一把叫做公开密钥(public key)。私钥加密的数据只有公钥可以解开,公钥加密的数据只有私钥可以解开。

加密过程:服务端有着公钥和私钥,当客户端去请求服务端时,服务端返回一个公钥给客户端,客户端将数据用公钥加密,只有私钥可以加密,传送至服务端,服务端进行解密。

**弊端:但是服务端如何将数据传送至客户端呢,**首先,不能用公钥加密,应为客户端没有私钥,无法解密。如果用私钥加密呢?但是黑客也可以拿到这个公钥,还是会被黑客获取数据。

扫描二维码关注公众号,回复: 11422034 查看本文章

上面的对称加密与非对称加密都有缺点,对称加密无法保证每个客户端都有一个独一无二的密钥非对称加密从客户端传至服务端的用公钥加密的数据是安全的,因为服务端一个私钥可以解密。但是无法从服务端安全的传送数据到客户端,因为公钥是每个客户端都可以获取的。

HTTPS采用混合加密机制

在这里插入图片描述

过程描述:

客户端请求服务端得到公钥

客户端利用相应算法产生一个随机数,通过公钥加密后传至服务端,服务端利用私钥解密后,得到随机数。然后利用此随机数做共享密钥。双方进行共享密钥加密进行接下来的http报文传递。

且共享加密方式效率要高于公开密钥加密。

弊端: 但是如果有攻击者或者黑客。从中拦截,就相当于一个代理服务器一样;你得到的公钥是攻击者给你的公钥,你传的信息,攻击者也可以解开。攻击者自己在请求服务器,利用你的信息可以从服务器上过滤掉他想要的信息。类似这样:

在这里插入图片描述

解决方法接下来就用到证书 数字证书认证机构CA:只有CA认证的证书才是好证书。因此如果攻击者要当中间人的时候,它返回的证书,客户端通过验证发现不是好证书,浏览器会返回 证书不安全。这时就可以避免 中间人的威胁了。

好的公开密钥在浏览器都可以验证,多数浏览器开发商发布 版本时,会事先在内部植入常用认证机关的公开密钥

HTTPS的通信步骤:

首先会向服务器传送经过公钥加密 支持的SSL(套接字加密)版本、加密组件列表(支持的非对称算法、随机数1);

服务端返回:用对应SSL版本、加密组件(对称算法、随机数2、证书);最初阶段的协商结束。

客户端证书认证,生成随机数3、用hash散列算法将1,2步骤的全部信息哈希整理发送到服务端,此时已经生成密钥了,只需确定服务端能否正常解密作为这次握手协商是否成功的判定标准。

服务端解密后将随机数1,2,3通过特殊的算法合成密钥,同时将1,2,4通过hash散列算法哈希整理发送至客户端,

握手协商成功:已建立SSL通信保护。

之后进行对称算法。

猜你喜欢

转载自blog.csdn.net/qq_42835377/article/details/106287546