翻译: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

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

  1. Gowild狗尾草推出HE琥珀,标贝科技为其提供更“温柔”的声音

    ​​8月22日,"2018Gowild狗尾草品牌发布会"在中国电影导演中心举行.会上Gowild狗尾草公布了"AI虚拟生命"大战略,并发布了基于大战略之下的新一 ...

  2. 主流浏览器新版本将不再支持TLS 1.0/1.1

    2019独角兽企业重金招聘Python工程师标准>>> Microsoft Edge 高级项目经理 Kyle Pflug 说:"随着 TLS 1.0 的不断陈旧,许多网站已 ...

  3. Mesalink v1.0.0 发布,正式支持 TLS 1.3 和 IPv6,支持CMake编译,支持Windows,实现生产环境可用...

    百度智能云 云生态狂欢季 热门云产品1折起>>>   MesaLink TLS是百度安全实验室研发的下一代传输层安全(Transport Layer Security, TLS)库. ...

  4. Netty搭建Http2服务端并支持TLS传输加密

    Netty搭建Http2服务端并支持TLS传输加密 @Slf4j public class SslUtil {public static SslContext sslContext() {SslPro ...

  5. 性能提升一倍!云原生网关支持 TLS 硬件加速

    作者|井轶 审核&校对|如葑 随着网络环境的日渐复杂,传统 HTTP 明文传输协议带来的传输安全风险也日渐升高,因此 HTTPS 的密文传输协议得到了业界的普遍认可与广泛应用:任何事情都有其两 ...

  6. RabbitMQ 支持TLS

    RabbitMQ内置了对TLS的支持. 本文覆盖了RabbitMQ中与TLS相关的各种主题,重点是客户端连接: 使用TLS进行客户端连接的两种方式:直接或者通过TLS终端代理 TLS支持的Erlang ...

  7. 浏览器大厂将停止支持TLS 1.0/1.1的HTTPS网站

    火狐.Safari.Chrome和Edge等主流浏览器大厂表示,本月底,将陆续停止访问TLS 1.0/1.1的HTTPS网站. 意味着,在2020年3月底,几乎所有的主流浏览器都将陆续禁止访问TLS ...

  8. Memcached 1.5.13 发布,支持 TLS

    Memcached 1.5.13 发布了,新版主要更新内容是对 TLS 的支持. Memcached 是一个高性能多线程基于事件的键/值缓存存储,旨在用于分布式系统.新版更新亮点如下: 修复 TLS ...

  9. linux如何开启sni服务,Nginx开启单IP多SSL证书支持-TLS SNI support

    Nginx支持单IP多域名SSL证书需要OpenSSL支持,由于CentOS5.X系统自带的OpenSSL版本太低不支持,所以首先需要编译安装一个高版本的openssl,CentOS 6.X的系统自带 ...

最新文章

  1. 微信小游戏视频激励广告onClose接口叠加回调的问题解决方法
  2. 【Linux】17.Ubuntu16.04 系统添加网关和DNS的两种方式
  3. java版b2b2c社交电商spring cloud分布式微服务:服务消费(Ribbon)
  4. python anylogic_分享 | IE工具与仿真软件学习分享会
  5. php instanceof 基类,PHP强制对象类型之instanceof操作符
  6. 《Spark与Hadoop大数据分析》一一1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色...
  7. 题目477- A+B Problem III (陷阱题)
  8. 21世纪大学生之你是属于哪种看网课。
  9. 数据管理:业务数据清洗,落地实现方案
  10. 数据平台投标方案模板
  11. 计算机基础文化课认识,【计算机基础论文】计算机基础的教学改革解析(共4653字)...
  12. marttype加载到word中不能用_WSTMart三级分销系统是怎么接入支付宝支付的
  13. 感知系统性能评估分析解决方案
  14. 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进
  15. 3.1 控制器之ReplicaSet/ReplicationController
  16. WPF使用转换器(Converter)
  17. shells - 有效登录 shell 的路径名
  18. 如何让IE6/IE7/IE8支持HTML5标签
  19. 嵌入式截屏工具-gsnap移植 arm平台
  20. dropblock代码和介绍

热门文章

  1. 回调地狱解决方案之Promise
  2. Placeholder in IE8 and older
  3. CodeForces - 1481E Sorting Books(贪心+dp)
  4. 洛谷 - P4755 Beautiful Pair(笛卡尔树+主席树)
  5. 牛客多校2 - Keyboard Free(几何)
  6. HDU - 3829 Cat VS Dog(最大独立集-二分图最大匹配)
  7. EOJ_1081_朋友圈
  8. 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
  9. 文件夹的位置_感觉电脑变卡了?删除这5个文件夹 C盘立马清爽
  10. L1-038. 新世界