转自ByteByteGo
超文本传输安全协议是超文本传输协议的延伸HTTPS 使用传输层安全性(Transport Layer Security,TLS.)传输加密数据如果数据在网上被劫持,劫持者只能得到二进制代码。
数据是如何加密和解密的?
步骤1-客户端(浏览器)和服务器建立 TCP 连接。
步骤2-客户端向服务器发送一个“客户端 hello”。该消息包含一组必要的加密算法(密码套件)和它可以支持的最新 TLS 版本。服务器响应“ server hello”,这样浏览器就知道它是否支持算法和 TLS 版本。
然后,服务器将 SSL 证书发送给客户机。该证书包含公钥、主机名、到期日期等。客户端验证证书。
步骤3-在验证 SSL 证书之后,客户端生成一个会话密钥并使用公钥对其进行加密。服务器接收加密的会话密钥,并用私钥对其进行解密。
步骤4-现在客户端和服务器都持有相同的会话密钥(对称加密) ,加密的数据在一个安全的双向通道中传输。
为什么 HTTPS 会在数据传输中转用对称加密:
1.安全性: 非对称加密只有一种方式。这意味着如果服务器试图将加密的数据发送回客户端,任何人都可以使用公钥解密数据。
2.服务器资源: 非对称加密增加了相当多的数学开销。它不适合于长会话中的数据传输。