SSL证书怎样防流量劫持

网安 问答 2021-12-20 06:25:52 阅读(...)

HTTP请求前SSL协议增加了握手阶段,客户端浏览器通过证书验证服务器身份。证书由证书授权机构为域名颁发,可理解为网站的身份证明文件,客户端将需要对此证件进行验证,需要确定此证书是否属于目标网站,以及确认证书本身是否有效。

流量劫持总体来说属于中间人攻击(Man-in-the-Middle Attack,MITM)的一种,本质上攻击者在通信两端之间对通信内容进行嗅探和篡改,以达到插入数据和获取关键信息的目的。目前互联网上发生的流量劫持基本是两种手段来实现。

ssl 证书

域名劫持:通过劫持掉域名的 DNS 解析结果,将 HTTP 请求劫持到特定 IP 上,使得客户端和攻击者的服务器建立 TCP 连接,而非和目标服务器直接连接,这样攻击者就可以对内容进行窃取或篡改。在极端的情况下甚至攻击者可能伪造目标网站页面进行钓鱼攻击。

直接流量修改:在数据通路上对页面进行固定的内容插入,比如广告弹窗等。在这种情况下,虽然客户端和服务器是直接建立的连接,但是数据内容依然可能遭到野蛮破坏。

能够实施流量劫持的根本原因,是 HTTP 协议没有办法对通信对方的身份进行校验以及对数据完整性进行校验。如果能解决这个问题,则流量劫持将无法轻易发生。

HTTPS 如何防止劫持

HTTPS,是 HTTP over SSL 的意思,提到 HTTPS 就不得不先简单描述一下 SSL/TLS 协议。SSL 协议是 Netscape 在 1995 年首次提出的用于解决传输层安全问题的网络协议,其核心是基于公钥密码学理论实现了对服务器身份认证、数据的私密性保护以及对数据完整性的校验等功能。1999 年 IETF 将 SSL 3.0 标准化,是为 TLS 1.0 版本,目前 TLS 协议的最新版本是版本,TLS 1.3 标准正在制定中。为了方便,下文将 SSL/TLS 协议都简称为 SSL 协议。

SSL 协议在 HTTP 请求开始之前增加了握手的阶段,在 SSL 握手阶段,客户端浏览器会认证服务器的身份,这是通过“证书”来实现的,证书由证书权威(CA)为某个域名签发,可以理解为网站的身份信息,客户端需要对这个**进行认证,需要确定该证书是否属于目标网站并确认证书本身是否有效。最后在握手阶段,通信的双方还会协商出一个用于加密和解密的会话密钥。

SSL 握手阶段结束之后,服务器和客户端使用协商出的会话密钥对交互的数据进行加密/解密操作,对于 HTTP 协议来说,就是将 HTTP 请求和应答经过加密之后再发送到网络上。

由此可见,因为 SSL 协议提供了对服务器的身份认证,所以 DNS 劫持导致连接错误服务器的情况将会被发现进而终止连接,最终导致 DNS 挟持攻击无法实现。此外 SSL 协议还提供数据的加密和完整性校验,这就解决了关键信息被嗅探以及数据内容被修改的可能。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..