https中的混合加密机制详解

2021-03-19 17:54栏目:编程
TAG:

针对于混合加密机制的了解:
共享密钥加密方式: 也就是我们常说的对称加密,加密和解密都是采用同一个密钥来完成,类似算法比如是AES,一般用于对于传输文本的加密,效率较高
公开密钥加密方式: 公开密钥加密方式就是我们常说的非对称加密,持有一把私有密钥和多把公开密钥,公开密钥加密的密文只能私有密钥才能解密,相反,私有密钥加密的密文可以由发布的所有公开密钥进行解密,这种加密方式安全性高,但是执行效率低下,不适用于对长文本内容进行加密,一般用于对对称加密的密钥进行加密。
 
混合加密机制:因为共享密钥加密方式的前提是,一方必须要发送密钥给另外一方,才能实现加密传输,但是发送到过程中如果被窃听到或者拦截到,那密钥就会直接暴露出去从而影响传输过程的安全性。混合加密机制可以完美避开这些点,比如说现在有服务端和多个客户端,现在传输采用混合加密机制来完成,服务端预先会生成好非对称加密的私有密钥 和多把公开密钥,服务端本身保持着私有密钥,将公开密钥分发给多个需要进行交互的客户端,客户端拿到公开密钥后,客户端通过对称加密生成一个共享密钥,将此密钥进行非对称加密(也就是用私有密钥加密),然后发送给服务端,服务端拿到加密后的共享密钥后,用私有密钥进行解密获取到客户端真实的共享密钥,然后通过共享密钥加密需要传输的文本内容,后续与服务端交互就是采用共享密钥加密解密来完成。这样可以防止共享密钥被窃取。其中还参杂的一些对传输的内容是否发生修改的一些验签的步骤,所谓验签就是通过hash算法对文本进行hash后得到一个固定长度,用此来辨别传输过程中传输内容是否发生了改变。
 
采用数字证书 + 混合加密机制:采用混合加密机制可以保障共享密钥不被窃取,但是存在一个问题,在最开始服务端给客户端一个公开密钥时,客户端如何知道这个公开密钥就是自己想要交互的目标服务端发送的呢,如果被攻击者拦截,伪造一个公开密钥发送给客户端,客户端时无法辨别这个就是自己想要交互的那个客户端,从而造成安全性问题。所以采用数字证书可以避免此问题的发生,数字证书由客户端和服务端都信任的第三方结构来颁发,首先客户端发起一个ssl请求到服务端,服务端会将公开密钥发给数字证书机构,证书机构以此生成一个证书给服务端(其中会用证书机构自身的私有密钥对服务端提供的公开密钥进行数字签名,也就是首先对服务端的公开密钥进行hash得到摘要,然后对摘要进行机构的私有密钥进行加密生成数字签名,后续客户端会用机构的公开密钥进行解密获取到摘要,然后对服务端的公开密钥进行hash获取摘要,然后判断摘要是否相等,相等则说明认证成功,此公开密钥就是自己想要的服务端颁发的),服务端将此证书发送给客户端,客户端用证书的公开密钥进行验签,验签成功后,客户端就能确保这个公开密钥就是由自己想要交互的服务器发出的,而后,客户端发送共享密钥(经过服务端的公开密钥加密),服务端收到后用私有密钥解密获取后续通信的共享密钥,后续就是通信过程了。

本文来自网络,不代表山斋月平台立场,转载请注明出处: https://www.shanzhaiyue.top