为什么会出现Https?
Http采用明文传输,很容易被窃听、篡改,存在很大的安全隐患;Https的核心就是将传输数据加密,保证数据的安全性。
Https的安全策略
- 传输数据:对称加密和完整性校验;
- 对称**:非对称加密;
- 身份认证:数字证书;
TLS握手过程
- 客户端发送Client Hello报文,开启TLS握手过程。报文内容包括:随机数、客户端支持的加密套件等;
- 服务端响应Server Hello报文,报文内容包括三个方面:随机数、服务端选择的加密方式(对称、非对称和完整性校验等)、服务端数字证书等;
- 客户端接受到数字证书后,验证服务端身份的有效性;
- 使用非对称加密算法将对称**加密发送给服务器;
- 使用对称加密算法将带传输的数据加密发送给服务器;
TLS性能优化
TLS的握手过程很耗时,为了避免每次发送请求时都进行TLS的握手过程,TLS引入了“session id”的概念。准备TLS握手时,客户端将session id加入Client Hello报文,发送给服务端,服务端接受到之后进行有效性验证,如果session有效则直接跳过握手阶段,进行数据传输。优化之后的现象是:第一次发送https请求时会比较慢,之后速度很快;