您好,欢迎光临电子应用网![登录] [免费注册] 返回首页 | | 网站地图 | 反馈 | 收藏
在应用中实践
在实践中成长
  • 应用
  • 专题
  • 产品
  • 新闻
  • 展会
  • 活动
  • 招聘
当前位置:中国电子应用网 > 技术应用 > 正文

解决 DRM 部署所面临的障碍

2011年05月25日09:14:59 本网站 我要评论(2)字号:T | T | T
关键字:应用 数字 

作者:德州仪器影像与音频产品部系统架构师Jason Kridner;技术主管 Harshraj Rao

摘要

对数字权限管理 (DRM) 技术普遍存在的误解导致人们往往怀疑 DRM 在数字便携式媒体播放器 (PMP) 领域中的实施效率。DRM 具有许多不同的形式与格式,具体取决于其硬件平台、内容所有者以及内容提供商,不过,不管其采用何种实施方案,不同 DRM 机制间总存在着一些基本的共同特性。总体说来,DRM 可保护内容不被非授权使用,但这种保护机制也是有代价的。用户担心 DRM 机制会影响播放功能与易用性,而开发人员则要努力弄清 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.


代码影像 (Code Image):根据确认与加载的顺序

 

确保安全性的方法

 

功能性

 

注释

ROM 启动加载程序

不能被修改,因此毋需确认。

有限的加密能力;
采用处理器专用代码。

能访问唯一的硅芯片 ID,对用户与应用启动加载程序进行解密。

用户启动加载程序

使用开发工具创建;
开发阶段的可配置性有限;
散列保护;
加密保护。

全面的加密功能;
平台专用代码;
操作系统与驱动程序代码;
显示闪屏;
连接接口支持再配制代码下载;显示功能有限;
灾难恢复模式。

基本设备功能;
醒目页面 (Splash Page)通知用户设备可工作。

设备专用代码(见上)
应用专用代码(见下)

应用启动加载程序:第一阶段

散列保护、加密保护

播放列表启动

快速验证、极低时延

应用启动加载程序:第二阶段

散列保护、加密保护

下载许可证数据库和预计较先播放的内容文件进入存储器

快速验证、极低时延;
载入部分 DRM 库。

应用启动加载程序:第三阶段及以上

散列保护、加密保护(可选)

载入剩余/大部分应用

确认时间较长,时延较长,下载与用户选择较先播放的内容同时进行,也就是说,下载不影响重要任务的完成

安全启动加载程序技术确认设备首次加电启动时软、硬件都处于已知的可信赖状态。为了尽可能降低时延,代码分几个阶段进行验证并载入。如果检测到某个阶段遭到破坏,设备会启动灾难恢复模式并进行设备再配置,如果没有问题,设备就会载入首个代码影像,即ROM 启动加载程序,这是由硅芯片厂商提供的,不能修改,因此能确保验证有效。将使用散列方法进行后续代码验证,有时还会采用唯一芯片 ID 进行验证,之后进行解密。我们将启动进程分解为几个阶段,这使设备能加速与用户进行互动,缩短了用户所觉察到的启动时延时间。

安全启动加载程序技术是避免执行两难困境的关键,也是成功确认软、硬件均处于已知可信赖状态的关键(见表 1)。当设备首次加电后,处理器会执行已知的 ROM 启动加载程序。这个代码影像是设备专用的,并只支持较基本的功能,其中包括有限的加密功能,以验证并确认后续启动加载程序代码,并在检测到破坏情况下启动灾难恢复模式。该代码不能修改,这一点至关重要;换言之,由于其不能被更改,因此不会遭到损坏,也毋需进行确认。请注意,诸如显示功能等确认故障通知信息等功能可能实现片外存储,或在通过 ROM 启动加载程序确认的代码中有选择性的执行,不过在确认已发生故障的情况下,ROM 启动加载程序不能确保相关代码的可用性。

在许多情况下,ROM 启动加载程序由硅芯片厂商提供,除非双方有特定的协议规定,否则 OEM 厂商不能修改。其首要任务就是确认用户启动加载程序。用户启动加载程序是通过硅芯片厂商开发工具的可配置框架构建而成,由 OEM 厂商确定。它能提供底层驱动程序和连接接口,如显示屏、USB 接口或硬盘等,此外还能补充设备的加密功能。在产品设计阶段,能够根据需要对其进行更新修改,但通常产品上市后就不能再修改了。

ROM 启动加载程序确认用户启动加载程序的常见方法是采用散列来确认代码是否被改动,随后再对代码解密(代码加密是为了避免有可能导致代码安全性受影响或者泄露加密信息的逆向工程破解)。一旦 ROM 启动加载程序验证了用户启动加载程序,用户启动加载程序就可依次验证并确认主应用(即应用启动加载程序),然后用户就能开始存取受保护的内容。如果处理器采用唯一的硅芯片 ID,只可以读取但不能修改,那么代码确认的安全性还能进一步提高。此外,OEM 厂商除了能用这种唯一的 ID 作为密钥根 (root for secret key) 而外,也能用它来对内容加密,使内容锁定于特定的播放器。

如果 ROM 启动加载程序确定用户启动加载程序遭到篡改,那么设备将进入灾难恢复模式。灾难恢复模式是 DRM 的重要组成部分。首先,该设备必须通知用户设备将不能再回放内容(即没有损坏设备,但需要再配置),并解释如何成功地完成设备再配置。不能低估这一步骤的重要性,因为用户一发现设备不能回放内容就会拨打技术支持

网友评论:已有2条评论 点击查看
登录 (请登录发言,并遵守相关规定)
如果您对新闻频道有任何意见或建议,请到交流平台反馈。【反馈意见】
关于我们 | 联系我们 | 本站动态 | 广告服务 | 欢迎投稿 | 友情链接 | 法律声明
Copyright (c) 2008-2025 01ea.com.All rights reserved.
电子应用网 京ICP备12009123号-2 京公网安备110105003345号