##1 问题提出安全
如今普遍使用的HTTP协议采用的是一种明文传输的方式,所以通讯双方的数据在网络上传输是十分不安全的。服务器
##2 解决方案网络
一种简单的解决方案就是对传输的数据进行加密处理。并发
目前流行的加密方式有两种:对称加密和非对称加密。加密
###2.1 对称加密图片
首先讨论对称加密方式。it
对称加密指的是通讯双方使用同一套密钥对数据进行加密和解密。原理
若是使用对称加密就意味着通讯的双方必须都知道密钥,才能完成加密和解密操做。方法
一种典型的场景是:客户端发送密钥至服务器,服务器接受该密钥,以后全部的数据传输都采用该密钥进行加密和解密;im
该方法虽然能够解决明文传输的问题,却存在安全隐患。在密钥协商阶段,客户端须要发送密钥给服务器,此时若是攻击者监测到该密钥,就可使用该密钥来解密以后全部的数据,那么本次经对称加密后的数据传输也就变为明文传输。
所以,如何确保对称加密方式中密钥的安全是此方式中最为核心的问题。
###2.2 非对称加密
接下来咱们讨论非对称加密方式。 非对称加密的密钥有公钥和私钥之分,使用公钥加密的数据只有私钥才能解密,同理使用私钥加密的数据只有公钥才能解密。
那么对传输数据进行非对称加密是否是就是安全的呢?
非对称加密一种典型的场景是: 由服务器生成公钥和私钥,并将公钥发送给客户端,以后服务器和客户端之间全部的数据都采用公钥和私钥加密。
接下来咱们分析下这种场景。 客户端接受到服务器发来的公钥,而后使用公钥对数据进行加密,根据非对称加密的原理,咱们了解这种加密数据只有服务器使用私钥才能解密,所以任何攻击者截取到该信息都没法完成解密,因此任何由客户端向服务器发送的数据都是安全的。
可是,在开始阶段,服务器须要将公钥发送给客户端,在这个过程当中,攻击者就有可能会拿到公钥,这就意味以后全部由服务器发给客户端的,经私钥加密的数据,攻击者一样能够用截取到的公钥对其进行解密。
综上,咱们得出,采用非对称加密的方式只能保证客户端到服务器的数据是安全的,并不能保证服务器到客户端也是安全的,所以只是一种单向安全的加密方式。
###2.3 混合加密方式
接下来咱们探讨采用对称加密+非对称加密混合加密方式。
经过2.1 对称加密方式 一节的分析,咱们知道,此种方式最大的问题在于密钥的安全性,一旦密钥被攻击者获取,那么本次传输将变为明文传输。经过2.2 非对称加密方式 咱们了解非对称加密只是单向安全的数据传输,即只有客户端到服务器的传输才是安全的。
结合两者的特色,咱们提出,通讯双方全部的数据传输采用对称加密方式,密钥的传输采用非对称加密方式。
一种典型的场景是:
这种混合加密的方式在必定程度上确实能提升数据传输的安全性,可是它就必定安全吗?欲知后事如何,且听下回分解。