写点什么

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:262125
用户头像

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

关注

评论

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

DevOps | 产研协同效能提升之评审、审批流、质量卡点

laofo

DevOps 研发效能 持续集成 持续交付

什么是DevOps监控以及如何在组织中实施?

互联网工科生

DevOps 运维工具

低代码项目实战第一弹!2人14天快速构建电商企业供应链管理平台(一)

优秀

低代码 供应链 供应链管理

开发运维一体化平台 应用研发全生命周期管理

力软低代码开发平台

彻底搞懂Java继承的五种用法

互联网工科生

Java 编程语言 JNPF

无需点跟踪,克服DragGAN缺陷!中科大联合上海AI Lab发布FreeDrag:可稳定拖动语义内容

Openlab_cosmoplat

北京站|活动预告:图创价值 · 图技术 + AI 在金融行业的应用

悦数图数据库

图数据库

这个夏天,追光动画在阿里云上“绘出”《长安三万里》

新云力量

长安三万里

Perforce Helix Core新版本推出资源压力感知功能,提升服务器可用性,助力大规模开发

龙智—DevSecOps解决方案

版本控制 版本控制系统

从Istio在CNCF毕业,看服务网格的架构变迁

博文视点Broadview

NFTScan 获得 SpaceID Grant 资金支持!

NFT Research

NFT\

真正的云原生大数据平台,让Kubernetes又牛了一把

智领云科技

Kubernetes 云原生大数据平台 智领云 云原生K8s大数据平台

MES与MOM的区别和联系

高端章鱼哥

低代码 mes 制造业生产管理系统

如何通过三级缓存解决 Spring 循环依赖

江南一点雨

Java spring

“拿捏”Kubernetes,智领云让数据应用标准化

智领云科技

云原生 云原生大数据平台 智领云 云原生K8s大数据平台

解码 LangChain | LangChain + GPTCache =强强联合

Zilliz

向量数据库 LLM gptcache #LangChain langchain

PEPE的二代分叉币PEPEP空投和预售正式开启

新消费日报

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