写点什么

Netflix 安全通信的新型方案——消息安全层

  • 2014-11-14
  • 本文字数:1472 字

    阅读完需:约 5 分钟

近期,为了改善之前流媒体传输、通信过程中的诸多安全问题,Netflix 公司提出了消息安全层(Message Security Layer,简称 MSL)的概念。作为 1997 年在美国成立的视频租赁公司,Netflix 主要为美国和加拿大的用户提供流媒体播放服务和电视、电影的在线出租业务。经过数十年的发展,Netflix 已经发展成为全球领先的在线流媒体服务公司。目前,Netflix 在美国的订阅人数就已经超过 3300 万,季度营业额达到十几亿美元。

为了能够为千万订阅者提供服务,Netflix 利用庞大的快递体系和互联网系统形成了自己的解决方案。尤其在目前十分火热的流媒体部分,大量的设备来为在线观看视频提供提供支撑。然而,这些基于不同硬件和软件的设备在传输用户信息、视频信息等的时候,如何保证信息的安全性是 Netflix 公司一直在关注的问题。

最初,Netflix 通过结合 HTTPS 和 NTBA 安全机制这两种方式来保证消息传递过程中的安全。这种方法在前期起到了很好的作用,但是随着互联网相关技术的发展,该方法越来越不能满足当前服务对安全的要求。据 Netflix 的安全工程师 Wesley Miaw 和 Mitch Zollinger 分析,HTTPS 在安全方面的问题可以分为四个方面。

首先,HTTPS 最大的问题在于其所采用的 PKI 架构。作为 HTTP 协议的安全版本,HTTPS 通过安全套接字层(SSL)进行信息交换。在 HTTPS 的使用过程中,需要牵涉到 RC4 流加密算法以及数字认证。这其中就需要大量的证书来对服务器等进行证明。而服务器的证书在废除、重新启用等方面就容易引起大量的问题。之前,Netflix 已经尝试利用 CRL 和 OCSP 等来解决这些问题。然而,仍然频繁有安全漏洞出现,消息传递的效率也受到影响。其次,影响 HTTPS 安全性的是其对时间精度的严格要求。对于使用 X.509 数字认证的 HTTPS,如果时间不能明确保证,就不能对链接的安全性进行有效验证。然而,大量的设备现在都没有精确的时间,无法完成该任务。再次,HTTPS 本身在设计过程中就存在一定的安全隐患。其中包括填充攻击以及先 MAC 后加密的工作方式等,都使得 HTTPS 本身的设计不完美。最后,HTTPS 不能很好的支持新的特性和行为。为了能够对某些设备的特性和行为进行支持,需要修改 SSL/TLS 的协议栈,从而会引起大量的问题。

为了能够彻底解决这些问题,Netflix 提出了消息安全层的概念。这一概念的提出主要遵循了跨语言、自动错误恢复、高性能、灵活、可扩展以及标准可兼容等设计思路。消息安全层具备完全性保护、加密、认证、同一消息不可重复传输、可信的服务网络、点到点等基本安全特征。相比于 HTTPS,MSL 有着明显的优点。首先,MSL 采用了 plug-in 结构,使得不同的认证机制、密钥协议等等都可以被集成到 MSL 中。此外,时间无关性和服务环都能够很好增强其安全性。

在 MSL 协议中,一个典型的 MSL 消息包含消息头和负载数据包两个部分。消息头用来建立和维护安全链接,负载数据包承载着需要传输的内容。一旦建立起安全链接,数据就可以进行稳定传输。(而且,在初始链路建立过程中,一旦认证过程完成,以后的消息都可以直接使用已经获得的会话密钥来进行。)在错误处理方面,接收端感知到错误后会返回错误信息,发送端通过对相关信息进行认证完成会话恢复工作。

目前,读者可以在 GitHub 的 Message Security Layer repository 中看到相关的资料。其中,包括了对 MSL 的介绍、使用指南以及利用 Java 和 JavaScript 语言实现的 MSL 协议栈。


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-11-14 09:262319
用户头像

发布了 268 篇内容, 共 128.3 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

尚硅谷Airflow视频教程发布

小谷哥

USB端口的ESD防护电路设计

元器件秋姐

经验分享 usb 电路设计 电源电路 ESD防护

为什么开发者这么看重SQL?看完这些应用场景你就明白了

雨果

sql 数据库管理工具 SQL开发工具

POI 中 getPhysicalNumberOfCells 与 getLastCellNum 有什么区别

ModStart

ClassIn:如何打造更稳定的Zabbix监控系统

OceanBase 数据库

oceanbase 数据库·

先行试点,创新改造:中信期货关键业务系统自主可控的实践之路

OceanBase 数据库

从实战出发,聊聊缓存数据库一致性

C++后台开发

MySQL 数据库 缓存 中间件 后端开发

2023年汽车行业向好发展,火山引擎VeDI助力车企数智转型

字节跳动数据平台

数据库 大数据 数据处理

podman如何开启sock使用docker客户端进行管理

ModStart

大数据就业培训班哪家好?

小谷哥

每个Java程序员都必须知道的四种负载均衡算法

JAVA旭阳

Java 架构 后端

PHP 中命令行调用 escapeshellarg 函数中文问题

ModStart

Apache APISIX Ingress 1.6 正式发布!

API7.ai 技术团队

APISIX Serverless Kubernetes Ingress Controller

葡萄城邀您参与「表格技术开发者新年分享会」,共话表格技术新未来!

葡萄城技术团队

小程序编译原理解析

Onegun

微信小程序 前端

安信证券资管清算重要业务在原生分布式数据库的创新实践

OceanBase 数据库

数据库 oceanbase

高并发中的atomic

Steven

培训班有哪些学习前端开发的方法

小谷哥

数据可视化图表系列解析——南丁格尔玫瑰图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

Camtasia Studio2023免费版本电脑屏幕录制软件

茶色酒

Camtasia Studio2022 Camtasia Studio2023

盘点微服务架构下的诸多身份验证方式

API7.ai 技术团队

微服务 身份认证 APISIX

移动跨端框架最全盘点,16款总有一款适合你

Onegun

flutter 移动开发 跨端框架

培训机构与自学的优缺点有哪些

小谷哥

阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限

云布道师

阿里云

数据治理:数据质量管理策略!

用友BIP

JDK结构介绍

Steven

RISC-V SIG 新进展:Chromium 等多个桌面软件登录欧拉开源操作系统

openEuler

firefox Linux 操作系统 openEuler risc-v

Java培训机构哪家比较不错

小谷哥

先行“蜀道”, 四川农信核心系统分布式转型

OceanBase 数据库

2022 OceanBase 年度报告|用技术让海量数据的管理和使用更简单!

OceanBase 数据库

数据库 oceanbase

NFTScan:优质 NFT 应具备什么?

NFT Research

区块链 NFT

Netflix安全通信的新型方案——消息安全层_安全_张天雷_InfoQ精选文章