原文地址:https://yq.aliyun.com/articles/2666?spm=5176.100244.teamlist.22.tAQ5BV

摘要: 何为流量劫持 前不久小米等六家互联网公司发表联合声明,呼吁运营商打击流量劫持。流量劫持最直观的表现,就是网页上被插入了一些乱七八糟的广告/弹窗之类的内容。比如下面这种: 页面的右下角被插入了广告。 流量劫持总体来说属于中间人攻击(Man-in-the-Middle Attack,MITM)的一种,本质上攻击者在通信两端之间对通信内容进行嗅探和篡改,以达到插入数据和获取关键信息的目的。

何为流量劫持

前不久小米等六家互联网公司发表联合声明,呼吁运营商打击流量劫持。流量劫持最直观的表现,就是网页上被插入了一些乱七八糟的广告/弹窗之类的内容。比如下面这种:

页面的右下角被插入了广告。

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

  • 域名劫持:通过劫持掉域名的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协议的最新版本是1.2版本,TLS 1.3标准正在制定中。为了方便,下文将SSL/TLS协议都简称为SSL协议。

SSL协议在HTTP请求开始之前增加了握手的阶段,其粗略流程如下图所示:

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

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

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

如何部署HTTPS

要将网站进行HTTPS支持以达到防劫持的效果,首先需要的是为网站的域名搞一张证书。这个证书必须是由知名CA所签发的,这是因为知名CA的根证书广泛的存在于大多数浏览器和操作系统中,因此可以被客户端用来校验网站证书是否合法。

传统CA的证书签发流程大体相同,基本上都是根据证书认证的级别,进行一系列不同流程的认证,然后认证通过后申请者缴纳相应的费用就可以或得到证书。这个流程相对比较繁琐,尤其是对于个人和小型网站管理者来说搞起来也确实麻烦。这里推荐一种新型的方法——使用Let's Encrypt的自动化服务获取免费的证书。

Let's Encrypt项目是由ISRG提供的免费CA服务,其主要目的是减少证书获取的难度,将证书的签发/续签/作废等操作进行自动化处理。Let's Encrypt的使用方法非常简单,按照文档中步骤操作即可。如需进一步了解如何使用Let's Encrypt自动获取免费证书,可以参考:用Let’s Encrypt获取免费证书

在获得到证书(以及对应的私钥)之后,主要有如下几种方法来使用:

  1. 直接在Web服务器上部署证书和私钥,相关apache或nginx都有大量的文档说明,在此就不赘述了
  2. 在服务器集群的接入层/反向代理处部署证书和私钥,例如阿里云的CDN, SLB和高防IP等产品均提供HTTPS支持,可以直接上传证书和私钥就可以实现网站的HTTPS改造。

阿里云的HTTPS支持

阿里巴巴在2015年的双11期间,成功的使用了全站范围(包括淘宝、天猫等核心电商域名)的HTTPS为广大买家提供安全的购物体验,这种体量的HTTPS服务在业界也极为少见。我们在进行电商业务的HTTPS改造时,在密码学、SSL/TLS协议以及PKI体系等领域进行了一系列的优化和创新,并在此过程中积累了大量宝贵的经验。

阿里云做为底层基础设施的提供者,在阿里全站HTTPS化的过程中提供了大量的技术支撑,阿里云的CDN和SLB等产品在HTTPS的加速以及卸载等环节发挥了重要的作用。我们希望能将在淘宝/天猫业务上积累的HTTPS领域的经验和成果,借助阿里云的平台,让更多人来使用,籍此希望跟多的互联网流量能够HTTPS化,让流量劫持再无可能。

使用HTTPS防止流量劫持相关推荐

  1. HTTP/HTTPS与流量劫持/DNS劫持

    DNS劫持:类似使用导航系统时,导航被劫持,给了一条驶向贼窝的路线. 流量劫持:类似写信,信的内容被改过,收信人并不知情. HTTP: 1,HTTP不能防DNS劫持,劫持者可以把域名解析指向别的服务器 ...

  2. 【流量劫持】躲避 HSTS 的 HTTPS 劫持

    前言 HSTS 的出现,对 HTTPS 劫持带来莫大的挑战. 不过,HSTS 也不是万能的,它只能解决 SSLStrip 这类劫持方式.但仔细想想,SSLStrip 这种算劫持吗? 劫持 vs 钓鱼 ...

  3. HTTPS 能否避免流量劫持?

    近日,看了一篇关于流量劫持的文章<安全科普:流量劫持能有多大危害?>,作者EtherDream以图文并茂的形式详细讲解了流量劫持及相关知识."在如今这个讲究跨平台.体验好,并有云 ...

  4. DNS劫持、流量劫持,HTTP/HTTPS劫持

    DNS劫持:DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问 ...

  5. DNS劫持,HTTP劫持、HTTPS劫持【流量劫持】

    1 流量劫持 先说劫持,再说劫持的种类 流量劫持: 早已见怪不怪的电信运营商的劫持,频繁的广告页弹出,大家只要能忍受得了,那就没什么危害,各大运营商毕竟是活在我党的英明领导下的,太过分的事情,它们也是 ...

  6. HTTPS能否避免流量劫持?

    流量劫持会带来什么危害?不同的劫持方式,获得的流量也有所差异.DNS劫持,只能截获通过域名发起的流量,直接使用IP地址的通信则不受影响:CDN入侵,只有浏览网页或下载时才有风险,其他场合则毫无问题:而 ...

  7. https怎么防止流量劫持

    相信很多人都遇见过域名没输错,结果却跑到了一个钓鱼网站上这样的情况,用户数据泄露.流量劫持.页面篡改等安全事件频发. iis7网站监控 网站打开速度查询.DNS污染.地区电信劫持等问题检测. 全站HT ...

  8. HTTPS如何防止流量劫持?一篇文章让你了解什么是流量劫持

    流量劫持总体来说属于中间人攻击(Man-in-the-Middle Attack,MITM)的一种,本质上攻击者在通信两端之间对通信内容进行嗅探和篡改,以达到插入数据和获取关键信息的目的. 能够实施流 ...

  9. https真的可以避免流量劫持吗

    http,一个使用了 20 多年的老协议.如今,网页技术有了长足的进步和发展,http 也开始逐渐被 https(即安装了SSL证书的网站)取代,在 http 中,很容易受到网络攻击,特别是流量劫持, ...

最新文章

  1. CSS文件可维护、可读性提高指南第2/2页
  2. 中国.NET:东莞+长沙.NET俱乐部现场花絮及合肥、苏州、上海等地活动预
  3. canny算子的理论分析
  4. Elasticsearch整理笔记(二)
  5. python3高级 之 生成器
  6. android崩溃拦截给出提示显示日志
  7. 定义和声明之间有什么区别?
  8. cvThreshold() 阈值化
  9. 判断IP是否为搜索引擎蜘蛛或爬虫
  10. flash cs4 调整渐变工具
  11. erp5 主要业务模块介绍
  12. 联想计算机怎么设置硬盘,联想电脑硬盘模式怎么更改
  13. Xcode8 及 iOS 10 的适配
  14. Ruby ERB注入反序列化
  15. 2022总结,强风吹拂
  16. opencv-车辆牌照识别(一)
  17. AUTODESK 卸载工具,完美彻底卸载清除干净autodesk各种软件残留注册表和文件
  18. XILINX GTX/GTP 使用小结
  19. springboot+电影售票小程序 毕业设计-附源码201532
  20. matlab 游戏手柄,QtGamepad模块与游戏手柄交互小示例

热门文章

  1. (二十九 ~ 三十一)巴菲特与索罗斯的投资习惯:投资习惯
  2. 炫酷的vue登陆界面2.0
  3. android画圆形边框
  4. downloadjs下载库 源码解析
  5. 这里聚焦了全球嵌入式技术风景~
  6. 个人永久性免费-Excel催化剂功能第81波-指定单元格区域内容及公式填充
  7. 融资租赁行业开始“国进民退”,中小微租赁机构该何去何从?
  8. interlib android客户端开发,基于Android移动图书馆设计与开发.doc
  9. 用tecplot进行批量绘制流线图和涡量图的python脚本
  10. chrome浏览器控制台发送post请求