少于 1 分钟阅读 次阅读

DRM 与 Widevine

DRM(数字版权管理)就是个防盗版的技术。Widevine 是 Google 家的 DRM 方案,现在国外的流媒体巨头(Netflix、Disney+、Prime Video 这类)全靠它来保护自己平台上的高清电影不被录屏或者破解。

它分几个安全等级,最常见的也就是 L1 和 L3:

  • Widevine L1(硬件级防线): 视频的解密、解码和输出全都被锁在芯片内部的 TEE(可信执行环境,也就是 ARM TrustZone) 里跑,跟外面的安卓系统是隔离的。因为很难被破解,流媒体大厂才放心给推送 1080P 甚至 4K 的高清画质
  • Widevine L3(软件级防线): 纯靠软件在普通系统层里解密。这玩意儿太容易被黑客扒下来,所以大厂们一律防着,检测到是 L3 设备最高只给输出 480P(标清) 的渣画质。

Widevine 技术的目的

简单来说就是“防盗版、防录屏”。 像 Netflix、迪士尼这些流媒体巨头,他们花了几亿美金拍的电影,希望能给提供 4K 超高清画质,但又极其害怕用个录屏软件,或者搞个 HDMI 采集卡,把原画质原封不动地录下来发到网上去免费传播。

所以,它们需要解决一个核心痛点:怎么做到让能看这个高清视频,但手机/板子上的安卓系统却“摸不到”这个视频文件?

Widevine 技术的本质

Widevine L1 的本质,是利用了芯片里的“物理隔离区”(也就是硬件级的黑盒)。

以 RK3588 芯片为例,想象成一栋大楼,里面分了两个区域:

  1. 普通世界(REE): 的安卓系统、各种 App、录屏软件都住在这里。这里人多眼杂,极不安全。
  2. 安全世界(TEE,比如 TrustZone): 这是芯片里一个物理隔离的 VIP 保密室。安卓系统根本进不去,也看不到里面在干嘛。

Widevine L1 的精髓就在于:它把视频解密、解码的全过程,死死关在了那个“安全世界”里。


Widevine L1 的工作流程

当在支持 L1 的设备上点开一部 1080P/4K 的加密电影时,其实发生了一套非常严密的防线交接:

  1. 拿到上锁的视频箱子: 加密下发. 播放器 App 从服务器下载视频流。为了防盗,这个视频本身是被重重加密的(相当于一个铁箱子),放在普通世界(安卓系统)的内存里。

  2. 向服务器申请开锁钥匙: License 请求. App 拿着的账号信息去问服务器:“我是尊贵的会员,给我密码开箱”。服务器审核通过后,发来一把“钥匙”(License)。但注意,这把钥匙本身也是被加密锁在另一个小盒子里送过来的。

  3. 送入 VIP 保密室解密: L1 的核心魔法. 此时,安卓系统把“视频箱子”和“钥匙盒子”一起送进芯片内部的安全世界(TEE)。在这个与世隔绝的保密室里,芯片动用它出厂时就烧录死在底层的“最高级主钥匙”,打开了钥匙盒子,拿到了密码,然后把视频文件解密并还原出来。

  4. 专线直达屏幕: 安全视频通路(SVP). 解密后的纯净高清视频画面,不会再退回给安卓系统!它会走一条芯片内部直达屏幕显示模块的“保密专线”。

在这个过程中,安卓系统和录屏软件,从头到尾只看到了两样东西:加密的乱码视频,和加密的钥匙。它们根本碰不到解密后的真实画面。 如果在这个时候开录屏软件,录出来的绝对是一团黑屏。

如果是普通的 Widevine L3 呢?那相当于没有那个 VIP 保密室,全在普通世界里用软件强行解密。黑客分分钟能在内存里把视频截走,所以大厂们一看到是 L3 设备,为了止损,最高只敢给推 480P 的高糊画质。

怎么确保最终通过HDMI/DP接口的信号,不被截流

把最底层的东西搞定后,最终总得输出物理信号吧?但大厂们早就防着这招了。这就引出了保护高清视频的最后一道防线——HDCP(高带宽数字内容保护)

如果说 Widevine L1 是负责在设备内部(芯片里)保护视频不被偷走,那么 HDCP 就是负责在设备外部(HDMI/DP 这根线缆上)保护视频不被截流。这两个通常是绑在一起工作的。


这根线上的“接头暗号”是怎么玩的?

当在支持 Widevine L1 的设备上播放 Netflix,并且通过 HDMI 输出到外接设备时,会发生下面这个有趣的“握手(Handshake)”过程:

  1. 查户口: RK3588(发送端)顺着 HDMI 线问对面:“我要发的是受版权保护的加密视频,是不是合法的显示器?把的 HDCP 证书拿出来看看。”
  2. 对暗号: 对面的设备(接收端)必须回复一个由官方分配的合法密钥。
  3. 加密传输: 只要暗号对上了,RK3588 才会在输出前,把视频画面再次加密,然后顺着 HDMI 线传过去。对面的显示器拿到后实时解密,才能看到画面。

为什么插上采集卡不行?

正规的采集卡(比如圆刚、Elgato 这类大牌)也是要守规矩的。 当 RK3588 问采集卡要 HDCP 证书时,采集卡要么没有这个证书,要么它的证书明确标记了“我是一个录制设备”。

RK3588 一看对面不是单纯的显示器,或者暗号不对,它的反应通常是两种:

  • 直接掐断输出,黑屏或者雪花。
  • 把画质强行降级到 480P,甚至连降级都不给。

所以,如果直接把采集卡插到跑着 Widevine L1 视频的接口上,大部分情况下的采集软件里只能录到一片漆黑,或者弹出一个“受 HDCP 保护”的警告。

补充句题外话: 理论上,市面上有那种几十块钱的“HDMI 分配器/剥离器”,它们利用了一些老旧 HDCP 版本的漏洞,在中间伪装成合法显示器骗过发送端,然后再把解密后的裸信号发给采集卡。这也是为什么现在 HDCP 一路升级到了 2.2 和 2.3 版本,就是为了堵死这些中间硬件的漏洞。

留下评论