目录
一、HTTPS是什么?
http协议是明文传输的,数据安全得不到保证,https是应用层协议,是在http协议基础上通过TLS/SSL软件层进行加密,到达对方主机通过TLS/SSL软件层解密。
二、常见加密方式
2.1、只使用对称加密
对称加密:采用单密钥系统的加密方式,同一个密钥可以同时用作信息的加密和解密,加密和解密所用的密钥是相同的,加密速度快,效率高。(例如按位异或)
2.2、只使用非对称加密
非对称加密:用两个密钥进行加密和解密,一个是公钥一个是私钥,缺点是运算速度非常慢。
可以通过公钥对明文进行加密,形成密文,通过密钥对密文进行解密,形成明文。
当然可以通过密钥对明文进行加密,公钥对明文进行解密,但是公钥是公开的,也就明文也随之公开了。
客户端服务器密钥协商过程
服务器生成公钥私钥,客户端首先向服务器发起请求,服务器发送公钥给客户端,客户端收到公钥后,将要发送的数据用服务端的公钥进行加密,保证了客户端到服务器的信道安全,但是服务器到客户端的信道是不安全的,因为公钥是公开的,而且公钥是一开始是明文传输给客户端的,如果这个公钥被中间人截获,也能通过公钥解密服务器发来的数据。
2.3、双方都使用非对称加密
客户端服务器密钥协商阶段
1、服务端有公钥S和私钥S',客户端有公钥C和私钥C。
2、客户端服务器交换公钥
3、客户端给服务端发信息:先用S对数据加密,再发送,只能由服务器解密,因为只有服务器有私钥 S'4、服务端给客户端发信息:先用C对数据加密,在发送,只能由客户端解密,因为只有客户端有私钥 C'
2.4、非对称加密+对称加密(中间人攻击情况)
密钥协商阶段
1. 服务端具有非对称公钥S和私钥S'2. 客户端发起https请求,获取服务端公钥S3. 客户端在本地生成对称密钥C, 通过公钥S加密, 发送给服务器.