Widevine
| 原作者 | Internet Direct Media |
|---|---|
| 開發者 | |
| 首次发布 | 1999年 |
| 当前版本 | 1.4.9.1088 |
| 编程语言 | C++ |
| 操作系统 | 跨平台 |
| 类型 | 数字版权管理 |
| 网站 | www |
Widevine是一家数字版权管理(DRM)技术提供商,其產品常用於Google Chrome和Firefox瀏覽器(及其一些衍生产品)、Android MediaDRM、Android TV和其他消费电子设备。Widevine的產品支持各种加密方案,能将视频内容安全地分发到消费者设备上。Widevine的產品可供内容提供商免费使用,不收取任何费用[1]。
Widevine最初由Internet Direct Media于1999年开发,后更名为Widevine Technologies,于2010年被谷歌收购[2][3]。
历史
[编辑]起源(1998—2006 年)
[编辑]Widevine由总部位于西雅图的Internet Direct Media于1999年创建,最初名为Widevine Cypher。[4]这家公司由企业高管Brian Baker和密码学研究人员Jeremy Horwitz创立,随后更名为Widevine Technologies。[5][6]
2001年2月Widevine Technologies发布了Widevine Cypher Enterprise。当时,屏幕录制和网络请求监控等技术已十分普遍。Widevine Cypher使用DES-X加密来防范这些技术。[7]同年4月,Widevine Technologies与总部位于贝尔维尤的流媒体公司Midstream Technologies建立合作关系。[8]Baker于2001年重返公司并领导其进行重组。重组过程包括对公司进行资本重组,以及裁撤大量员工。[9]
2003年6月,Widevine Technologies从风险投资公司Constellation Ventures和Pacesetter Capital获得了780万美元的融资。[10] 同年,Widevine Technologies与台湾电信公司中华电信合作,致力于保护其视频点播服务。[11]2004年,Widevine Technologies再次获得融资。Constellation Ventures、Pacesetter Capital和Phoenix Capital Partners参与了本轮融资,VantagePoint Venture Partners负责领投,公司共筹集到1300万美元。[12]
2005年,Widevine Technologies将业务拓展至数字水印领域,并与内容处理公司TVN Entertainment(现为Vubiquity)合作推出Mensor系统。[13]Widevine Mensor会将一个64位有效载荷嵌入信号中,这一操作所需的计算资源较少。[14]
增长期(2006—2010年)
[编辑]2006年4月,Constellation Ventures、Pacesetter Capital、Phoenix Capital Partners和VantagePoint Venture Partners联合数字通信公司思科系统及加拿大电信公司Telus,向Widevine Technologies投资了1600万美元。思科参与此次投资,是在其以70亿美元收购机顶盒制造商Scientific Atlanta之后。[15]Widevine与 Telus签订了一份为期六年的协议,获得了在Telus各平台上使用其技术的合同。[16]
2007年8月3日,Widevine Technologies对内容安全公司Verimatrix提起专利侵权诉讼。[17]两家公司于2010年3月达成和解。[18]
截至2010年,采用Widevine技术的供应商数量持续增长。2008年8月,CinemaNow开始使用Widevine,将服务拓展至多种设备,包括Nintendo Wii、LG和三星的光盘播放器,以及iPhone和iPod。[19]为了在不使用Microsoft Windows的浏览器中向Microsoft Silverlight添加 DRM,微软与Widevine Technologies展开合作。[20]Widevine还被集成到多个采用Adobe Flash的流媒体服务中,其中包括通过虚拟社交网络Gaia Online分发的索尼和华纳兄弟内容。[21]
2009年12月,Widevine从电信公司Liberty Global和三星旗下的风险投资子公司Samsung Ventures获得了额外的1500万美元融资。[22]三星于2010年6月扩大了对Widevine的使用范围。[23]LoveFilm于2010年7月与Widevine签署了合作协议。[24]
Google 收购(2010 年至今)
[编辑]2010年12月3日,Google宣布以未公开的金额收购Widevine。[25]此次收购发生在同一天,当时维亚康姆就Viacom v. YouTube一案提起上诉。该案涉及Google对用户将维亚康姆拥有的内容上传至YouTube所承担的责任。[26]2011年2月,CNN的一篇报道披露,Google为Widevine支付了1.5亿美元,尽管该公司内部估值仅为3000万至4000万美元。这使Widevine成为当时Google收购规模第九大的公司。[27]
采用Widevine的流媒体服务包括Netflix、Disney+、[28]Amazon Prime Video、HBO Max、Hulu、Paramount+和Discovery+。[29]
架构
[编辑]Widevine分为三个安全级别:L1、L2和L3。所使用的安全级别取决于客户端设备是否使用可信执行环境(TEE)。例如,ARM Cortex-A处理器采用TrustZone技术,允许加密运算和视频处理完全在TEE内部进行。[30]在Widevine L1中,媒体解密和处理完全在TEE内部进行,内容可以原始分辨率播放。在Widevine L2中,尽管存在TEE,媒体解密和处理仍由软件或专用视频硬件完成,内容只能以固定分辨率播放。在Widevine L3中,媒体解密和处理由软件完成,且不存在TEE,内容同样只能以固定分辨率播放。[31]
在Android中,Widevine L1可以集成到Android的媒体播放引擎Stagefright中。[32] 这种实现方式应用于高通芯片,其中一个OpenMAX(OMX)组件会在内核层与视频设备驱动程序通信。多媒体内存通过ION的内存管理单元驱动程序进行划分。ION是一种内存管理器,于Android 4.0中引入,旨在统一Android中各种不同的内存管理接口。[33]随后,系统会分配输入/输出缓冲区,并将内容解密后存储到TrustZone中的安全输入缓冲区内。[34]
输入 → 输出概览
[编辑]Widevine使用多种标准和规范,包括MPEG Common Encryption(CENC)、加密媒体扩展(EME)、媒体源扩展(MSE)和 基于HTTP的动态自适应流(DASH)。[35]此外,Widevine还支持由Apple Inc.于2009年开发的HTTP Live Streaming(HLS)协议。[36]
在Widevine的一种实现方式中,浏览器从内容分发网络(CDN)接收加密内容。随后,内容被发送至内容解密模块(CDM),由其创建许可证请求并发送给许可证服务器。播放器随后从许可证服务器接收许可证,并将其传递给CDM。许可证请求和许可证响应消息通过Protocol Buffers发送和接收。[37]为了解密媒体流,CDM会将媒体内容和许可证发送给OEMCrypto模块,后者负责解密内容。[38]OEMCrypto是面向TEE的接口;大多数实现会确保会话密钥、解密后的内容密钥以及解密后的内容流无法被其他正在运行的应用程序访问。这通常通过使用具有独立内存的辅助处理器来实现。[39]随后,内容被发送至视频处理栈,并以分块形式呈现给最终用户。[40]
在用户授权由供应商现有的代理服务器管理时,供应商可以在许可证服务器内部实现自己的代理服务器。[41]这种配置要求将代理服务器用作中间环节。[42]从Chrome 59开始,Widevine要求使用服务证书;iOS和部分ChromeOS配置也有此要求。[43] 代理服务器可以拒绝向未实现“可验证”框架的浏览器发放许可证,该框架也称为已验证媒体路径(VMP)。值得注意的是,在Linux上运行的浏览器不在VMP的支持范围内。[44]类似地,代理服务器也可以强制要求客户端设备使用特定版本的高带宽数字内容保护(HDCP)。[45]
对于Widevine L1设备,证书配置通常只需执行一次。在配置过程中,CDM会创建一个Nonce,并派生用于证书解密和完整性检查的密钥,同时生成动态缓冲区。设备密钥被视为信任根(RoT)。从RoT派生的客户端密钥通过HMAC保护请求。[46]RoT由一种在工厂预先配置的组件建立,该组件称为“keybox”(密钥盒)。密钥盒长度为128字节,包含两个特殊字段。通过验证最后8个字节是否符合特定格式,可以检查密钥盒的完整性:这 8 个字节由魔数(“kbox”)和一个循环冗余校验(CRC-32)值组成。[47] 其余120个字节包含内部设备ID(32 字节)、一个高级加密标准密钥(16字节)以及一个配置令牌(72字节)。[48]
| 字段 | 描述 | 大小(字节) |
|---|---|---|
| 设备ID | 通过OEMCrypto模块中的OEMCrypto_GetDeviceID获取
|
32 |
| 设备密钥 | 128位AES密钥,通过OEMCrypto模块中的OEMCrypto_GenerateDerivedKeys派生为多个密钥
|
16 |
| 配置令牌 | 也称为“key data”(密钥数据),用于配置请求;通过OEMCrypto模块中的OEMCrypto_GetKeyData获取
|
72 |
| 魔数 | 称为“kbox” | 4 |
| CRC-32 | 用于验证密钥盒的完整性 | 4 |
每个内容密钥都关联一个128位的密钥控制块,用于指定安全约束。密钥控制块用于确保客户端的数据路径满足安全要求,例如在Android上,视频和音频分别加密;它还会向TEE提供超时值。该控制块使用随机初始化向量(IV)进行AES-128-CBC加密,其字段采用大端序字节顺序定义。控制块的值包括一个验证字段、一个以秒为单位的持续时间字段、一个随机数以及控制位,每个字段均为32位。[49]控制位由一系列位字段组成,用于控制允许使用的HDCP版本、数据路径类型、是否应使用随机数,以及所采用的复制通用管理系统(CGMS)。[50]尽管如此,供应商仍可选择使用同一个密钥加密音频和视频,甚至完全不加密音频。[51]
客户端支持
[编辑]Widevine已集成到大多数主流网页浏览器中,包括Google Chrome。基于Chromium的衍生浏览器,包括Microsoft Edge、Vivaldi、[52]和Opera,也实现了对Widevine的支持。[53]自2016年6月起,Firefox开始直接支持Widevine,以逐步移除对NPAPI的支持。[54]此外,Android和iOS也支持Widevine。[35]自Android 5起,Android版Google Chrome所使用的版本便支持Widevine。[55] 2021年2月,Android版Firefox增加了对Widevine的支持。[56]
在Android中,Widevine通过硬件抽象层(HAL)模块插件实现。Android上的 Widevine 库会将Android DRM API调用转换为Widevine CDM调用,其具体作用取决于所实现的安全级别:在Widevine L1中,该库充当可信执行环境(TEE)的代理;而在L3中,该库则包含经过混淆处理的CDM。此外,对于Widevine L1,库liboemcrypto.so会通过专用的TEE驱动程序,将请求封送至Widevine trustlet并对其响应进行解封送,例如,面向高通安全执行环境(QSEE)的驱动程序QSEEComAPI.so。[57]
iOS原生不支持DASH或CENC。为绕过这一限制,Widevine会将DASH转封装为HLS;通用DASH转封装器(UDT)使用XML解析器(例如libxml2)解析DASH清单,随后生成HLS播放列表。[58]
2021年5月31日,Widevine停止支持32位Linux,因此该平台无法播放受DRM保护的内容。[59][60]
安全性
[编辑]Widevine曾多次遭到破解。内盖夫本-古里安大学的研究人员于2016年6月发现了Widevine中的一个漏洞,该漏洞允许用户获取缓存中受保护内容的解密版本。[61]
2019年1月,安全研究人员David Buchanan声称,他通过针对Widevine的AES-128白盒密码学实现发起差別錯誤分析攻击,成功破解了Widevine L3,使其能够获取用于加密视频流的原始密钥。随后可以使用FFmpeg解密MPEG-CENC视频流。[62][63]2020年10月,又有人利用了类似的漏洞。[64]
2021年,安全研究人员对Android版本的Widevine L3进行了逆向工程并成功破解。[65]同年,研究人员通过恢复L1密钥盒(keybox),成功实施了针对Android上Widevine L1的破解攻击。[66]
參考資料
[编辑]- ^ Widevine digital rights management explained. Android Authority. 2017-12-11 [2018-08-06]. (原始内容存档于2022-05-07) (英语).
- ^ Widevine Media Optimizer | Encoding.com. Encoding.com. [2018-08-06]. (原始内容存档于2021-12-29) (美国英语).
- ^ Widevine Content Decryption Module plugin. Chromium. Arch Linux. 2017 [2018-01-11]. (原始内容存档于2021-04-16).
- ^ Chiang, Oliver. Google 收购数字视频公司Widevine,拓展视频点播服务. 福布斯. December 3, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Dudley, Brier. Google收购Widevine. 西雅图时报. December 3, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Internet Direct Media更名为Widevine Technologies. Ad Age. September 29, 2000 [March 13, 2023]. (原始内容存档于March 14, 2023).
- ^ Kieskowski, Ellie. Widevine 发布面向企业的安全解决方案. Streaming Media. February 12, 2001 [March 13, 2023].
- ^ Midstream与Widevine展开合作. InternetNews. April 18, 2001 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Cook, John. 西雅图Widevine获得1600万美元融资. 西雅图邮讯报. April 18, 2006 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Widevine筹集780万美元. 普吉特海湾商业日报. June 17, 2003 [March 13, 2023]. (原始内容存档于July 25, 2004).
- ^ Meisner, Jeff. 风险投资机构押注Widevine的数据加密软件. 普吉特海湾商业日报. March 7, 2004 [March 13, 2023]. (原始内容存档于June 1, 2004).
- ^ Widevine筹集1300万美元. 普吉特海湾商业日报. February 10, 2004 [March 13, 2023]. (原始内容存档于February 20, 2006).
- ^ White, Peter. 风险投资机构押注Widevine的数据加密软件. Rethink Technology Research. November 16, 2005 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Rassool, Reza. Widevine的Mensor系统. TV Technology. August 1, 2007 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Reardon, Marguerite. 思科支持DRM初创公司. CNET. April 19, 2006 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ TELUS选择Widevine. Converge Digest. November 12, 2006 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Widevine指控专利侵权. Advanced Television. August 3, 2007 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Spangler, Todd. Widevine与Verimatrix就专利纠纷达成和解. Multichannel News. March 24, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Healey, Jon. CinemaNow与Widevine将电影带到更多设备. 洛杉矶时报. August 18, 2008 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ 微软、Silverlight与Widevine. 洛杉矶时报. April 14, 2008 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Nicole, Kristen. 索尼与华纳在虚拟世界中的影院采用Widevine进行 RM保护. Mashable. January 3, 2008 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Widevine从投资者处获得1500万美元. 西雅图时报. December 14, 2009 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Dickson, Glen. 三星将Widevine用于联网设备. Broadcasting & Cable. June 22, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ O'Hear, Steve. Lovefilm(欧洲版Netflix)签署协议,与Widevine合作加强多平台服务. TechCrunch. July 29, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Healey, Jon. Google收购反盗版公司Widevine. 洛杉矶时报. December 3, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Murph, Darren. Google再花数百万美元收购Widevine DRM软件公司. Engadget. December 5, 2010 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Konrad, Alex. Google规模最大的十宗收购(截至当时). CNN. August 16, 2011 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Patat, Sabt & Fouque 2022a,第1頁.
- ^ 概述. Widevine. [2023-03-16]. (原始内容存档于2023-03-16).
- ^ Triggs, Robert. 什么是Widevine数字版权管理(DRM),为何它如此重要?. Android Police. November 27, 2022 [March 13, 2023]. (原始内容存档于May 7, 2022).
- ^ Davenport, Corbin. 如何检查Android设备是否支持Widevine DRM. XDA Developers. March 27, 2021 [March 13, 2023]. (原始内容存档于May 5, 2021).
- ^ 媒体. Android开源项目. [March 13, 2023]. (原始内容存档于March 7, 2023).
- ^ Zeng, Thomas. Android ION内存分配器. LWN.net. February 8, 2012 [March 13, 2023]. (原始内容存档于October 22, 2022).
- ^ 通过Inforce平台上的Widevine数字版权管理(DRM)保护优质高清内容. Penguin Solutions. September 10, 2016 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ 35.0 35.1 Google 2017,第5頁.
- ^ Google 2017,第9頁.
- ^ Google 2017,第10頁.
- ^ Google 2017,第10-13頁.
- ^ Google 2013,第9頁.
- ^ Google 2017,第11頁.
- ^ Google 2019,第6頁.
- ^ Google 2019,第7頁.
- ^ Google 2019,第20頁.
- ^ Salter, Jim. Linux上的《星际迷航》粉丝有福了:CBS All Access现已支持Linux. Ars Technica. January 31, 2020 [March 15, 2023].
- ^ Google 2019,第31頁.
- ^ Patat, Sabt & Fouque 2022a,第5頁.
- ^ Patat, Sabt & Fouque 2022a,第6頁.
- ^ Patat, Sabt & Fouque 2022a,第7頁.
- ^ Google 2013,第16頁.
- ^ Google 2013,第17頁.
- ^ Patat, Sabt & Fouque 2022b,第5頁.
- ^ Conway, Adam. Google正逐步弃用Chrome和基于Chromium的浏览器中的Widevine CDM. XDA Developers. October 21, 2022 [March 15, 2023]. (原始内容存档于March 16, 2023).
- ^ Abrams, Lawrence. 基于Chromium的Microsoft Edge能播放4K Netflix视频,而Chrome不能. BleepingComputer. April 2, 2019 [March 15, 2023].
- ^ Mozilla将在Firefox Nightly中测试Widevine CDM,以便用户在线观看视频. Mozilla. April 7, 2016 [March 13, 2023]. (原始内容存档于June 7, 2016).
- ^ Google 2017,第23頁.
- ^ Humphries, Matthew. Firefox 85 for Android允许再次播放受DRM保护的内容. PCMag. February 2, 2021 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Patat, Sabt & Fouque 2022a,第3頁.
- ^ Google 2017,第24頁.
- ^ Netflix无法在32位Linux上运行?原因在于Google. 4 July 2021 [26 May 2024]. (原始内容存档于26 May 2024).
- ^ 在Firefox中观看DRM内容 | Firefox帮助. [2019-05-31]. (原始内容存档于2015-09-07).
- ^ Chirgwin, Richard. Google的WidevineDRM并未做到尽善尽美. The Register. June 28, 2016 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Humphries, Matthew. 报告:Google的Widevine L3 DRM已被破解. PCMag. January 3, 2019 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Hager, Ryne. Netflix、Hulu和HBO使用的Google Widevine L3 DRM已被破解. Android Police. January 3, 2019 [March 13, 2023]. (原始内容存档于March 13, 2023).
- ^ Krebs, Brian. Google正在修补Widevine的另一个漏洞. Krebs on Security. March 13, 2023 [March 13, 2023]. (原始内容存档于August 14, 2021).
- ^ Patat, Sabt & Fouque 2022a,第10頁.
- ^ Zhao, Qi. Wideshears:调查并破解QTEE上的Widevine (PDF). Hyrathon's Blog. [26 July 2023]. (原始内容存档 (PDF)于12 October 2023).