HTTPS
1. 说明一下HTTP与HTTPS的区别
- HTTP是超文本传输协议,使用明文传输。HTTPS则是加密传输协议,HTTPS在HTTP的基础上增加了一个SSL/TLS安全套接字层,也就是在传输报文经过传输层处理后会多加一层SSL/TLS层进行加密处理,然后再送入应用层。
- HTTPS的默认端口号是443,HTTP的默认端口号是80
2. 什么是SSL、TLS,他的起源是什么
SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,它能够使用安全套接字层/传输层安全性协议建立到另一个系统的加密网络连接。因为HTTP是明文的,虽然POST请求可以将数据存放在请求体中,但仍然不能避免捕获后被解析,因此使用SSL对报文加密。TSL是SSL的升级版本,两者之间只存在细微区别。aws.amazon.com/cn/what-is/… SSL/TLS使用证书作为数字身份证来保证网络通信安全,通信双方同时信任一个第三方机构,也就是证书颁发机构,因此双方可以通过CA证书确认另一方的身份信息。
3. SSL/TLS的加密方法是什么
SSL/TLS的握手过程是非对称加密,即客户端使用公钥加密,服务器使用私钥解密。传输过程是对称加密。
首次建立TLS连接需要经过四次握手:
- 第一次传输由客户端发起,包含两个重要信息:客户端随机数“client random”,客户端支持的TLS版本和密码选择
- 第二次传输由服务器发起,包含三个信息:CA证书(包含公钥),服务器随机数“server random”以及服务器在客户端密码中选择出来的加密方法。
- 客户端在收到公钥后,随机生成一个字符串,并使用公钥对其加密,并将该加密字符串发送给服务器。
- 服务器使用私钥将得到的加密字符串解密,就此,双方使用协议好的加密方法以及三个加密随机数生成相同的密钥,用于后续的对称加密 segmentfault.com/a/119000002…