Netflix 如何在网络不好时提供更安全、更流畅的流媒体体验?
作者丨NetflixTechnologyBlog
译者丨平川
策划丨万佳
Netflix专注于提供最好的流媒体体验 。 我们希望可以立即开始回放(playback) , 并且在任何网络环境中都不会意外停止 。 我们还致力于在不牺牲任何回放体验的情况下保护用户隐私和服务安全 。 为实现这一目标 , 我们正使用ABR(自适性串流)来实现更好的播放体验 。 同时 , 我们还使用DRM(数字版权管理)来保护我们的服务 , 用TLS(传输层安全)来保护客户隐私并创建一个更安全的流媒体体验 。
在诸如电视、机顶盒等消费类电子设备上 , Netflix最近才在流媒体业务上使用TLS1.2 。 现在 , 为获得更安全、更流畅的体验 , 我们已经支持TLS1.3 。
TLS是什么?
要实现双方间的安全通信 , 就要有一个安全通道 。 该通道需要具有以下三个特性 。
身份验证:验证通信双方的身份 。
保密性:通过通道发送的数据仅对端点可见 。
完整性:通过通道发送的数据如果被攻击者修改可以检测到 。
TLS协议旨在通过提供实现上述特性的工具和方法 , 来提供两个对等点之间的安全通道 。
TLS1.3
TLS1.3是传输层安全协议(TransportLayerSecurity)的最新版本 。 与前一个版本相比 , 它更简单、更安全、更高效 。
PerfectForwardSecrecy对Netflix而言 , 我们认为非常重要的一点是提供PFS(PerfectForwardSecrecy) 。
PFS是密钥交换算法的一个特性 , 即使服务器的私钥被破坏 , 它也可以确保会话密钥不被破坏 。 通过为每个会话生成新的密钥 , PFS可以保护过去的会话不受未来密钥泄露的影响 。
TLS1.2支持具备PFS特性的密钥交换算法 , 但是它也允许不支持PFS的密钥交换算法 。 即使在TLS1.2的前一个版本中 , Netflix也总是会选择一个提供PFS的密钥交换算法 , 比如ECDHE(EllipticCurveDiffieHellmanEphemeral) 。 不过 , TLS1.3删除了所有不提供PFS的密钥交换算法(如静态RSA) , 进一步强化了这一概念 。
认证加密
对于加密 , TLS1.3删除了所有弱密码 , 只使用带有关联数据(AEAD)的认证加密 。 这保证了数据的保密性、完整性和真实性 。 我们使用AESGalois/Counter模式 , 因为它同时还提供良好的性能和高吞吐量 。
安全握手
虽然上述更改很重要 , 但TLS1.3中最重要的变化可能是重新设计了握手协议 。
TLS1.2的握手并不是为了保护整个握手过程的完整性而设计的 。 它只保护ciphersuitenegotiation后的握手部分 , 这就增加了降级攻击的可能性 , 让攻击者能强制使用不安全的ciphersuites 。
使用TLS1.3 , 服务器会对整个握手过程(包括ciphersuitenegotiation)进行签名 , 从而防止攻击者降低ciphersuite的级别 。
同样 , 在TLS1.2中 , 扩展在ServerHello中是明文发送的 。 现在 , 在TLS1.3中 , 甚至连扩展都加密了 , ServerHello后的所有握手消息都加密了 。
###减少握手TLS1.2支持许多密钥交换算法、ciphersuites和数字签名 , 包括易受攻击的数字签名 。 因此 , 它执行一次握手需要更多的消息和两次网络往返 。
相比之下 , TLS1.3中的握手现在只需要一次往返 , 它简化了设计 , 去掉了所有易受攻击的算法 。
此外 , 它还有一个针对重新握手的新特性 , 称为0-RTT或TLS早期数据 。 这让应用程序可以在初始握手消息中包含应用程序数据 , 而不必等到握手完成 。
在Netflix , 我们通过高效地恢复TLS会话并谨慎地将0-RTT用于流数据 , 来减少播放延迟 。
A/B测试结果
基于对TLS1.3的协议组合分析 , 我们确信它会给我们带来更好的安全性 , 但是 , 我们不知道它在流媒体环境下的效果如何 。
由于TLS1.3的性能特性是支持重新握手的0-RTT模式 , 所以我们假设TLS1.3将减少延迟 。 我们不需要再等待握手完成 , 相反 , 我们可以更早地发送媒体数据HTTP请求 , 并接收媒体数据的HTTP响应 。
为了解TLS1.3在实际应用时的性能 , 我们做了一个实验:
用户帐户:每个组50万个帐户
设备类型:中端设备(QuadARMcore@1.7GHz)
对照组:TLS1.2
实验组:TLS1.3
播放延迟
播放延迟是指需要多少时间才开始播放 。 以下是在实验中测得的播放延迟数据 。 结果表明 , 在较慢或拥塞的网络中(即分位数大于0.75) , TLS1.3的增益最大 , 并且在所有的网络条件下都有所改善 。

文章图片
下面是实验所用的中端设备在实际应用中的时序平均播放延迟图 。 从中可以看出 , 使用TLS1.3播放开始得更早 。

文章图片
MediaRebuffer(媒体重新缓冲)
在Netflix , 我们将媒体重新缓冲定义为非网络起点的重新缓冲 。 其发生通常是由于CPU的负载过高导致设备处理媒体数据的速度不够快 。 与对照组使用的TLS1.2相比 , 使用TLS1.3的实验组在媒体重新缓冲方面提高了大约7.4% 。
这个结果表明 , 使用TLS1.3和0-RTT更高效 , 可以减少CPU负载 。

文章图片
小结
此时 , 互联网正经历着比平时更高的流量和拥堵 。 我们相信 , 即使节省少量的数据和网络往返也很有意义 , 如果它还能提供更安全、更高效的流媒体体验 , 那就更好了 。
因此 , 我们已经开始在比较新的消费类电子设备上部署TLS1.3 , 希望不久的将来可以部署到更多的设备上 。
参考阅读:
https://netflixtechblog.com/how-netflix-brings-safer-and-faster-streaming-experience-to-the-living-room-on-crowded-networks-78b8de7f758c
【Netflix 如何在网络不好时提供更安全、更流畅的流媒体体验?】点个在看少个bug
推荐阅读
- 三国杀:卡牌是否应该“界限突破”?且看这版「界闪电」设计如何
- 姚明38岁妻子叶莉,保养年轻如20岁少女,如今做公益担任理事长
- 如果核武器没有了,世界剩余200余国联合起来,能否战胜五常?
- 为人处事请牢记,如果碰到以下3种人,躲得远才避灾!
- 颜值在线的它,东风风行T5L表现如何?网友:“纸老虎”
- 河南“耗资巨大”的景区,建设成本高达100多亿,如今免费开放
- 花高价买了电动车头盔,如何做好头盔防盗,网友出奇招
- 当年教训忘记了?越南160万人丧命,如今主动邀请美军进驻
- 外行领导内行,关键是要看你如何去领导
- 如何选择小型SUV?开得好,用得好,价格好,最低6万,最高10万,到底便宜不便宜?
