AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

Hugging Face创始人亲述:一个GitHub史上增长最快的AI项目

OneFlow

人工智能 深度学习 nlp 开源社区

AIRIOT物联网低代码平台如何配置MQTT驱动?

AIRIOT

物联网 低代码平台 驱动配置

Go1.18泛型浅谈

CodeWithBuff

golang 泛型 新特性 Go 语言

等保三级全称是什么?是什么意思?

行云管家

网络安全 等级保护 等保三级 等保2.0

Spring Security

Zhang

Java spring security

如何清除 WordPress 中的缓存

海拥(haiyong.site)

WordPress 5月月更

拿起手中的键盘做公益侠客,让你的第一个低代码应用为公益发光发热!

InfoQ写作社区官方

低代码 公益 大学生 热门活动 码上公益

企业文档爆炸,如何管?

小炮

企业文档管理工具

墨天轮访谈 | OceanBase 白超:海量数据管理,为什么选择OceanBase?

墨天轮

数据库 oceanbase 国产数据库

英特尔以四大超级技术力量,助力数字未来,发布多项进展

科技新消息

无聊科技正经事周刊(第6期):纯粹的程序员与必然的中年危机

潘大壮

程序员 周刊 行业趋势 科技周刊

英特尔公布数据中心和人工智能领域重大进展,全方位展示强劲领导力

科技新消息

ansible template jinja2 渲染

ghostwritten

ansible

容器化 | 构建 RadonDB MySQL 集群监控平台

RadonDB

MySQL 数据库 容器化 RadonDB KubeSphere

蝉联第一!金蝶夺取Gartner中国高生产力aPaaS市场冠军!

金蝶云·苍穹

netty系列之:我有一个可扩展的Enum你要不要看一下?

程序那些事

Java Netty 程序那些事 5月月更

揭秘英特尔未来IPU路线图,开启数据中心“进化之旅”

科技新消息

数据标准在网易的实践

网易数帆

大数据 数据仓库 数据治理 元数据 数据标准

GPU分类和应用现状分析

Finovy Cloud

人工智能 云计算 gpu GPU服务器

基于 FFI 的 PyFlink 下一代 Python 运行时介绍

Apache Flink

大数据 flink 编程 流计算 实时计算

windows服务器是什么?运维管理用什么工具好?

行云管家

windows 服务器 自动化运维 服务器运维

硬件为矛 软件为盾 英特尔分享数据中心GPU的攻守之道

科技新消息

Apache DolphinScheduler 2.X保姆级源码解析,中国移动工程师揭秘服务调度启动全流程

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

如何开发 LAXCUS 分布式应用软件(三):编写终端软件

LAXCUS分布式操作系统

集群架构 并行计算 端边云 分布式操作系统 分布式应用软件

有趣、实用、全面,是程序员心中理想人工智能教材的样子了

图灵教育

深度学习 PyTorch

FinClip+微幕小程序,助力企业全端公私域流量互通

Speedoooo

小程序 WordPress 移动开发 小程序容器

Spring Authorization Server 实现授权中心

Zhang

Java OAuth 2.1 Spring Security OAuth

echarts饼图指示器文字颜色设置不同

空城机

eCharts 5月月更

直播预告 | PolarDB-X 动手实践系列——PolarDB-X Replica原理和使用

阿里云数据库开源

数据库 阿里云 开源 PolarDB-X

「码」力集结!他们用作品为FinClip黑客松打造出一道靓丽的风景线

Speedoooo

小程序 hackathon 黑客马拉松 黑客松 小程序容器

美哭了,一款开发者必备的接口管理工具!

Liam

Postman 开发工具 API API接口管理 接口管理工具

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