HTTPS 工作流程
HTTPS 的连接建立在 SSL/TLS 握手之上,主要分为以下几个步骤:

- ①、客户端向服务器发起请求
- ②、服务器接收到请求后,会返回自己的数字证书,包含了公钥、颁发机构等信息。
- ③、客户端收到服务器的数字证书后,会验证证书的合法性,如果合法,就会生成一个随机码,然后用服务器的公钥加密这个随机码,发送给服务器。
- ④、服务器收到会话密钥后,用私钥解密,得到会话密钥。
- ⑤、客户端和服务器通过会话密码对通信内容进行加密,然后传输。
如果通信内容被截取,但由于没有会话密钥,所以无法解密。当通信结束后,连接会被关闭,会话密钥也会被销毁,下次通信会重新生成一个会话密钥。
HTTPS 在不同阶段会使用不同的加密方式:
- 非对称加密:在握手阶段使用,特别是在密钥交换过程中。非对称加密使用公钥和私钥,其中公钥可以公开,私钥保密。客户端使用公钥加密信息,服务器使用私钥解密。
- 对称加密:在完成握手后,所有的数据传输都使用对称加密。对称加密使用相同的密钥进行加密和解密,这种加密方式比非对称加密更快。
HTTPS 会加密 URL 吗?
HTTPS 通过 SSL/TLS 协议确保了客户端与服务器之间交换的数据被加密,这包括 HTTP 头部和正文。而 URL 是 HTTP 头部的一部分,因此这部分信息也是加密的。

但因为涉及到 SSL 握手的过程,所以域名信息会被暴露出来,需要注意。

另外,完整的 URL 可能在 Web 服务器的日志中记录,这些日志可能是明文的。还有,URL 在浏览器历史记录中也是可见的。因此,敏感信息永远不应该通过 URL 传递,即使是在使用 HTTPS 的情况下。
什么是中间人攻击?
中间人攻击(Man-in-the-Middle, MITM)是一种常见的网络安全威胁,攻击者可以在通信的两端插入自己,以窃取通信双方的信息。

在很多电影中,都会存在这样的场景:主角通过某种方式,将自己伪装成中间人,然后窃取通信双方的信息,阿汤哥的碟中谍中就有很多类似的手笔。
中间人攻击是一个缺乏相互认证的攻击,因此大多数加密协议都会专门加入一些特殊的认证方法,以防止中间人攻击。像 SSL 协议,就是通过验证服务器的数字证书,是否由 CA(权威的受信任的数字证书认证机构)签发,来防止中间人攻击的。
郭慕荣博客园

浙公网安备 33010602011771号