解决DRM 部署所面临的障碍
扫描二维码
随时随地手机看文章
数字媒体播放器 OEM 厂商在考虑是否支持 DRM 这一争议性问题之前,要首先了解高效实施 DRM 技术所面临的障碍。高效 DRM 实施技术不仅限于优化的加密库,要是采用错误的实施方法,就会导致商业决策失误,甚至实施失败。本文将深入探讨如何减小 DRM 对数字媒体播放器的影响,以帮助那些希望采用 DRM 技术的 OEM 厂商避免对技术产生恐慌和不确定性情绪,减少对 DRM 实施可行性的不确定因素,从而使他们能专心致力于 DRM 的高效实施问题。本文探讨的方案能解决 DRM 实施所面临的最常见障碍,适用于任何标准或架构。
通常说来,解决 DRM 时延与性能问题的关键在于尽可能减少 DRM 处理任务对关键路径的影响。DRM 处理任务的计划安排通常是实现上述目的的关键,我们可以采用预取 (prefetching) 或预处理数据、后台处理等方案,也可以在用户做思考决定、时延影响不大时进行处理。工程师应侧重于解决以下三个问题,一是启动期间,二是播放,三是内容传输,这三个阶段均会对性能、易用性以及电池使用寿命造成影响。
启动时间
DRM 会影响启动时间,这一点相当重要,起初我们可能还难以直观地察觉到。说到底,DRM 是一种验证使用权限的技术方法,因此就算人们会问,它怎么会影响设备启动时间呢,也不足为奇。要了解这一点,我们就要考虑在任何 DRM 规范中都非常重要的一部分要求,那就是稳健性与符合性认证规则 (R&CR)。
R&CR 是定义着 OEM 厂商如何避免 DRM 软、硬件被欺骗或修改的指南。请注意,尽管这些指南根据具体 DRM 标准的不同可能采用不同的名称,但它们的基本目的都是一样的,即稳健的设备必须能够识别企图改变应用代码的行为,避免 DRM 机制被破解或失效。在对受保护的内容进行解锁或允许存取之前,设备必须先确认 DRM 机制已经就绪,没有被篡改,而且能正常工作。此外,设备必须避免调试工具的使用,因为这些工具会让黑客有机会破解或更改许可证。
R&CR 要求根据特定的系统资产或组件的不同要求采用不同层次的保护机制。举例来说,在基于证书的 DRM 方案中,确认播放器能够播放内容服务器内容的证书就是一种高级资产,要求最高级别的保护,因为证书受损就会导致设备上的所有内容失去保护。如果特定设备的证书由具体 OEM 厂商的证书生成,那么这种证书受损就会导致该 OEM 厂商基于该证书推出的所有设备保护失效。与此相对的是,破译某首歌曲的密钥就不是一种特别重要的资产,因为这种密钥仅保护一项内容。上述资产,不管是证书、密钥还是基于其它一些保护机制或秘密机制,都应得到正确的保护。总体说来,内容受损的风险越大,对稳健性等级的要求就越高,并且对用户使用体验的潜在影响也就越大。
损坏的代码不见得一定是因为恶意攻击而损坏的,但这是对 DRM 构成最危险的威胁之一;如果应用本身就能被修改,那么密钥与内容都可能受损。因此,在执行任何应用代码之前,设备必须确认应用来源的可信赖性。此外,这种验证必须在每次设备加电时进行,这样才能确保硬件没有被篡改。这里要面临的挑战是,确认应用的代码本身也容易受到破坏,因此它也要在执行前进行确认(见图 1)。
图 1. 在加电执行任何应用代码之前,设备必须验证并确认应用来自可信赖的来源。所面临的挑战是,如果验证并确认应用的代码本身也容易受到破坏,那么其也要在被执行前进行验证并确认。但是,如果不能修改 ROM 启动加载程序 (ROM Boot Loader),那么它就不会受到破坏,因此加电时毋需确认就可以得到信任。
表 1. 安全启动加载程序技术确认设备首次加电启动时软、硬件都处于已知的可信赖状态。为了尽可能降低时延,代码分几个阶段进行验证并载入。如果检测到某个阶段遭到破坏,设备会启动灾难恢复模式并进行设备再配置,如果没有问题,设备就会载入首个代码影像,即 ROM 启动加载程序,这是由硅芯片厂商提供的,不能修改,因此能确保验证有效。将使用散列方法进行后续代码验证,有时还会采用唯一芯片 ID 进行验证,之后进行解密。我们将启动进程分解为几个阶段,这使设备能加速与用户进行互动,缩短了用户所觉察到的启动时延时间。