有时候你在用手机浏览网页甚至打开 App 的时候(比如打开微信公众号文章或者打开手机淘宝),有时候会出现一个广告弹窗,甚至有时候是运营商自己的流量提醒,这个广告有时候和 App 的内容和类型完全不符,不了解情况的用户很可能会怪罪 App 乱弹广告,也许你真的是怪错人了,你的流量可能被某些机构劫持了。
今天,今日头条、美团 - 大众点评网、360、腾讯、微博、小米科技六家公司发表联合声明,共同呼吁有关运营商严格打击流量劫持问题,重视互联网被流量劫持可能导致的严重后果。
联合声明指出,在当前的移动互联网环境下,流量劫持主要分为两种方式: 域名劫持和数据劫持 ,放任流量劫持会导致扰乱市场秩序、损害用户利益以及传播诈骗、色情等低俗甚至严重违法信息的恶果。
对于流量劫持这种事情已经成为业界非常普遍但是又无可奈何的一件事情,主要在于不敢得罪运营商,现在终于到了几家大型互联网公司联合起来「声明」的地步, 那么对于这种流氓手法真的没有办法 吗?为了我们咨询了 阿里云网络方面的资深工程师亭林。
相对于 PC 端的网络环境,移动端的网络环境更为复杂,2G、3G、4G、Wi-Fi 各有不同,而复杂的网络环境也增加了流量劫持的可能性和复杂程度。
流量劫持的方式主要分为两种,域名劫持和数据劫持。
域名劫持是针对传统 DNS 解析的常见劫持方式。用户在浏览器输入网址,即发出一个 HTTP 请求,首先需要进行域名解析,得到业务服务器的 IP 地址。使用传统 DNS 解析时,会通过当地网络运营商提供的 Local DNS 解析得到结果。 域名劫持,即是在请求 Local DNS 解析域名时出现问题,目标域名被恶意地解析到其他 IP 地址,造成用户无法正常使用服务。
解决域名劫持的一个办法就是绕开 Local DNS,通过一个可信的源头来解析域名,解析方式不需要拘泥于 DNS 协议,也可以通过 HTTP 的方式。亭林介绍道两年前,手机淘宝等 APP 也曾遇到这一问题,随后在做底层网络优化时, 通过使用自己定制的 HTTPDNS,一个安全可信的域名解析方案,解决了域名劫持问题,现在 & nbsp;HTTPDNS 技术也准备通过阿里云开放给广大开发者使用,当前这款产品正在内测中,预期将在明年初上线。
数据劫持基本针对明文传输的内容发生。用户发起 HTTP 请求,服务器返回页面内容时,经过中间网络,页面内容被篡改或加塞内容, 强行插入弹窗或者广告。
行业内解决的办法即是对内容进行 HTTPS 加密 ,实现密文传输,彻底避免劫持问题。
而 MD5 校验同样能起到防止数据劫持的作用 ,MD5 校验是指内容返回前,应用层对返回的数据进行校验,生成校验值;同时,内容接收方接收到内容后,也对内容进行校验,同样生成校验值,将这两个校验值进行比对,倘若一致,则可以判断数据无劫持。 但相比 HTTPS 加密,MD5 校验存在一定风险,劫持方技术能力强则有可能在篡改内容后替换校验值,导致接收方判断错误。
HTTPS 一开始是以加密通信为需求而诞生的,第一批用户也是银行等金融机构。但随着互联网上个人数据传输变得更加普遍,HTTPS 早已经成为了互联网行业的大势所趋。 今年双 11,阿里的淘宝、天猫、聚划算等电商平台就做到了全站的 HTTPS 加密访问,当然这也是开放的。
* 题图来自日本动画片《Pokemon》