我坚定地认为,在星期五晚上,拿着一杯红酒,把手机放在腿上安静地刷六小时无聊的侦探节目,是我的基本人权。我也会认为,私底下做这丢脸的事,不把我浪费周末的秘密泄露给除了Netflix以外的其他人,是我的权利。
Netflix似乎会同意我的观点。2016年夏天以来,该公司一直在使用HTTPS加密来保护视频流。但新的研究表明,这一策略无法阻止第三方服务提供商和入侵者偷看我在看什么。
最近有两篇文章提供了通过对加密数据流进行简单流量分析,识别视频的方法。一篇来自西点军校,另一篇来自特拉维夫大学和康奈尔大学新科技校区。其中一种方法使任何一方(如ISP或VPN提供商)能够直接访问用户正在观看视频的网络。另一种方法可以被任何入侵者使用,只要他们能够向用户浏览器传递恶意Javascript代码。但是两种方法都会监控用户网络传输数据突发的大小,以便将其与已知数据库进行比较。
许多商业视频流服务(Netflix并不是唯一)使用了一套使這种视频比对识别成为可能的方法。第一种协议为MPEG-DASH流媒体协议,它将视频内容分成数个较小的部分。当你看直播时,你实际上在看一长串播放列表,各部分的质量因网络速度而异。动态自适应流(DASH)指定你的浏览器能看到哪些部分。
第二个协议称为加密可变码率,它是一种消除连续数据突发中冗余的方法,由此缩小发送给你的文件大小。当影像出现时,VBR协议将视频每帧与之前的进行比较,消除不变的内容。这意味着,与几乎所有内容都是黑色的片尾相比,传输一个混乱的、瞬息万变的动作场景需要一系列更大的数据突发。
网络流量的这两个特征足够独特,可以将其用作单个视频比对的位点。
“一个视频里的两分钟与任何其他视频的任意其他两分钟完全不同吗?”西点军校的电气工程副教授,其中一篇论文的合作者Andrew Reed问道,“事实证明它们是非常不同的。”
因此,仅通过编制数据突发的时间和大小,Reed和他的同事们就能够编写超过30万个Netflix视频的位点比对数据库。这些信息来自实时流发送的前100kb数据。
为了在入侵中使用这些信息,该团队需要直接访问提供实况流的网络,这让他们能够在每次服务器请求新的数据突发时进行观察。使用这种技术使得他们在观察八分钟后就能将未知视频与已知位点匹配,准确度达90%。
在另一篇文章中,研究人员也展示了入侵者如何通过在用户浏览器中运行恶意JavaScript代码,收集流式视频可变码率信息。这样的JavaScript代码可以由用户访问的任何网站或网络广告公司发送,且仅需要在与用户相同的网络上运行。这意味着当我们在智能电视上观看流媒体电视节目时,JavaScript代码正在连接同一网络的手机上运行,同样可以进行攻击。这篇文章来自哥伦比亚大学研究员,特拉维夫大学实验信息安全实验室主任Eran Tromer,康奈尔大学的Vitaly Shmatikov,以及他们的学生Roei Schuster。
代码在运行时,会以无关紧要的流量堵住用户网络。每当电视机再次卡顿时,对方流量就会延迟,从而可以推断突发时间和大小。
与Reed和他的团队的直接测量相比,通过这些方法收集的信号干扰程度更高。但是,通过深入学习算法,Tromer团队已经表明,视频识别的准确度可达90%以上。
考虑到最近FCC(美国联邦通讯委员会)隐私规则的变化,这些发现很有用处。该隐私规则免费授权互联网服务提供商将其顾客的浏览习惯商品化。但这一问题缺少一个简单的解决方案。虽然两个研究团队已经找到了阻止信息泄漏的方法,但每个方法都将使传输流视频的效率降低。
“所有这些效率降低产生的成本都将由流媒体提供商和用户承担。目前,很难看到有激励流媒体服务提供商支付这些成本以保护用户的因素,”Tromer说,“我们希望当人们意识到这些隐私风险以及他们面临对方监控时,将会增加对隐私保护流媒体服务的需求。”