Netflix如何通过支持TLS 1.3提供更安全高效的播放体验


翻译:LiveVideoStack

来源:Netflix Tech Blog

Technologist Note:这样一个端到端的加密通信系统,对Netflix而言,是为了保护自身网络的数据流,防止截播一类的情况发生。同时,就算有不怀好意的人拿到了数据,也没有办法解读。现在基本上是TLS1.2就已经很难被解密了,但有一些黑客就是喜欢冒险去做这个事情。

密码保护或者是点对点的加密通信,对Netflix这种规模的流媒体服务来说非常重要,尤其他们现在原创的剧集越来越多,一个平台肯定要保护好自己的内容与用户。(来自南京大学副教授马展

在Netflix,观众希望得到最流畅的观影体验,这意味所有的视频都必须做到即点即播,并且在任何网络环境中都不会出现卡顿。与此同时,Netflix还致力于在不牺牲观影体验的情况下保护用户的隐私与安全。

为了实现这一目标,Netflix使用了ABR(自适应比特率流)来获得更好的播放体验、用DRM(数字版权管理)来保护自身提供的服务,并使用TLS(传输层安全协议)来保护客户的隐私并创造更安全的播放体验。

此前,在消费者的电视、机顶盒和电视棒之类的电子设备上,Netflix一直使用TLS 1.2,现在,为提供更安全、快速的播放体验,Netflix开始支持TLS 1.3。

什么是TLS

为了使两方安全通信,安全通道是非常必要的,它需要具有以下三个属性。

• 身份验证:已验证通信方的身份。

• 机密性:通过通道发送的数据仅对终端可见。

• 完整性:未经检测的攻击者无法修改通过通道发送的数据。

TLS协议旨在通过提供实现上述属性的工具和方法在两端之间提供安全通道。

TLS 1.3是传输层安全协议的最新版本,它比其前身更简单、安全和高效。

PFS

Netflix认为提供PFS(完美前向保密性)是非常重要的。

PFS是密钥交换算法的一项功能,该功能确保即使服务器的私钥受到破坏,会话密钥也不会受到破坏。通过为每个会话生成新的密钥,PFS可以保护过去的会话,以防将来密钥遭到泄露。

TLS 1.2支持带有PFS的密钥交换算法,但它也允许不支持PFS密钥交换算法的存在。即使在使用TLS 1.2的早期版本时,Netflix仍始终选择提供PFS的密钥交换算法,例如ECDHE(Elliptic Curve Diffie HellmanEphemeral)。但是,TLS 1.3通过删除所有不提供PFS的密钥交换算法(例如静态RSA),进一步加强了这一功能。

认证加密

对于加密,TLS 1.3会删除所有弱密码,并且仅使用带有关联数据的身份验证加密(AEAD)。这样可以确保数据的机密性、完整性和真实性。Netflix使用AES Galois /计数器模式,因为它拥有良好的性能并能提供高吞吐量。

安全握手

尽管上述更改很重要,但TLS 1.3中最重要还是对握手协议的重新设计。

TLS 1.2握手并非仅仅是为了保护整个握手的完整性而设计。在密码组协商(cipher suite negotiation)之后,它仅保护握手的一部分,这就为降级攻击提供了可乘之机,并有可能使攻击者强制用户使用不安全的密码组合。

使用TLS 1.3后,服务器将对整个握手进行签名,包括密码组协商,从而防止攻击者降级密码组。

同样在TLS 1.2中,扩展是在ServerHello中以明文形式发送的。而在使用TLS 1.3后,甚至是扩展名和ServerHello之后的所有握手消息都被加密了。

减少握手

TLS 1.2支持多种密钥交换算法、密码组和数字签名,包括那些较弱和易受攻击的密码。因此,它需要更多的消息来执行一次握手和两次网络往返。

相比之下,TLS 1.3中的握手只需要一次往返,这既使设计得到简化,也删除了所有较为脆弱和易受攻击的算法。

同时,它具有被称为0-RTT或TLS早期数据的新功能,用于恢复握手。这允许应用程序在其初始握手消息中就包含应用程序数据,而不必等到握手完成之后。

Netflix通过恢复TLS会话以及数据流谨慎使用0-RTT,有效地减少了播放延迟。

A/B测试结果

Netflix相信TLS 1.3通过对其协议组成的分析将带来更好的安全性,但同时,他们表示并不知道TLS 1.3在真实播放情况下表现如何。

由于TLS 1.3与性能相关的功能是握手恢复后的0-RTT模式,因此Netflix假设TLS 1.3会减少播放延迟,因为他们可以发出媒体数据的HTTP请求,并较早接收媒体数据的HTTP响应,而不再需要等待握手完成。

为了在现场查看TLS 1.3的实际表现,Netflix在以下场景条件下进行了实验

•用户帐户:每个单元50万个用户帐户。

•设备类型:具有Quad ARM内核@ 1.7GHz的中性能设备。

•控制单元:TLS 1.2

•处理单元:TLS 1.3

播放延迟

播放延迟由开始播放所需的时间定义。以下是实验中测量的播放延迟数据。结果表明,在速度较慢或拥塞的网络(至少可以用0.75的分位数表示)上,TLS 1.3达到了最好的表现,在所有网络条件下,延迟表现均得到了提升。

以下是中等性能设备在现场的时间序列中值播放延迟图。它还显示在TLS 1.3的支持下,播放变得更快了。

播放:

媒体重新缓冲

Netflix将媒体重新缓冲定义为非网络引起的重新缓冲。当由于CPU的高负载而导致设备没能足够快速地处理媒体数据时,通常会发生这种情况。与带有TLS 1.2的控制单元进行比较,带有TLS 1.3的实验单元显示了媒体重缓冲得到了大约7.4%的改善。此结果表明,将TLS 1.3与0-RTT结合使用会更有效,并且可以减少CPU负载。

结论

通过安全性分析,Netflix称在改善通信安全性方面,TLS 1.3比TLS 1.2的效果更好。现场测试也表明, TLS 1.3为Netflix提供了更好的播放体验。

移动互联网正在承受比以往更高的通信量和流量,此时,保存少量数据和round trip是非常有意义的,如果同时还能提供更安全、有效的观影体验,这岂不是更好。

Netflix称已经开始在较新的消费类电子设备上部署TLS 1.3,并且希望能很快在更多设备上部署TLS 1.3。

原文链接:https://netflixtechblog.com/how-netflix-brings-safer-and-faster-streaming-experience-to-the-living-room-on-crowded-networks-78b8de7f758c

原创文章 505 获赞 369 访问量 61万+

猜你喜欢

转载自blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/105828213