新闻中心

EEPW首页 > 消费电子 > 设计应用 > 解决DRM 部署所面临的障碍

解决DRM 部署所面临的障碍

作者:时间:2012-08-02来源:网络收藏

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

此外,设备中存储的密秘机制还会通过其它方式被破坏。举例来说,使用的 标准会提供一定的机制,以使内容提供商能够“撤销”设备或者 OEM 厂商,或者通过其它方式禁用用户使用受损内容或硬件的权限。通过支持灾难恢复功能,设备内置了用于固件升级的安全机制,这样 OEM 厂商就能用新的安全机制来替换设备上未被禁用的机制。当然,设备必须能够确保任何替换代码影像或加密机制更新都具有值得信赖的来源。

请注意,灾难恢复也许并不是 ROM 启动加载程序的专属职责,但除了启动灾难恢复之外,ROM 启动加载程序的作用有限,比方说其不能通过 USB 下载影像。正是由于此原因,也不应该修改用户启动加载程序,这样才能确保灾难恢复代码不会损坏,从而使设备能从故障中有效恢复。

将启动进程分为若干个阶段有不同的作用。首先,这能让开发人员更方便地对设备专用和应用专用代码进行分组。不过,更重要的是,将启动过程分为若干阶段能减少设备启动过程中用户所能感知的时延。我们不妨设想,确认代码的延迟通常与代码影像的大小成正比(不过并不仅与影像大小有关),代码影像越大,确认所需的时间就越长。应用代码确认时,用户不得不对着空白的、没有响应的屏幕发呆,甚至会怀疑是不是电池没电了。

采用分散式用户启动加载程序并分阶段载入应用使设备能更快地与用户互动。比方说,用户启动加载程序完成后,就会立即在屏幕上显示“醒目”页面,以便让用户总体上感觉到设备的响应要快一些,并确信设备已经开启。甚至应用启动影像本身也可分为不同的阶段。用户界面功能可分阶段载入执行,比方说先载入用户界面代码,再载入数据库,这样用户就能访问列表中可用的内容,用户可以在大部分应用启动加载程序(如现在还不需要的 功能)不断确认并进行后台载入的同时就开始选择待播放的内容。如果必须同时确认整个应用代码,那么在应用代码确认结束、信息显示在屏幕上之前可能要花上数十秒钟的时间。

硬盘运行

优化加密功能可提高性能,不过,如前所述改善启动时间时延问题的关键在于将启动功能进行良好的计划安排,与其它工作同时进行,这样就能通过后台启动。同样的原理也有助于降低不同操作之间用户所能感知到的延迟,比方说选歌与听歌之间的时延就会感到缩短。最小化延迟对改进总体用户体验至关重要。

图 2a 显示了播放前一般的 DRM 确认内容进程。验证内容与验证代码的不同之处在于,许可证、密钥或散列信息可能没有与受保护的内容存储在一起,而是存储在数据库中。比方说,用户的许可证限制了某首歌曲能被播放的次数,超过这个次数许可证就会过期。这就会增加一系列验证工作的额外步骤,因为用户的播放列表可能很庞大(比方说一个文件夹中的音乐容量就达 20GB),因此我们必须生成支持索引功能的数据库,这样才能实现快速查找。

播放前的内容验证

解决DRM 部署所面临的障碍

图 2a 显示了播放之前验证内容的一般 DRM 进程。在本例中,所有 DRM 处理都位于关键路径中,这就会导致时延最大化。

优化数据库搜索要求开发人员在性能、存储器占用以及电池使用寿命之间进行平衡取舍。或许,影响上述因素的最重要考虑就是确定某项操作是否需要对硬盘进行存取。硬盘是便携式媒体播放器最大的耗电因素,甚至比显示屏的耗电量还大。不是所有 PMP 都具有硬盘,不过不使用硬盘的设备其存储空间要小得多,因而其数据库也更小,更易于管理。

节省电量的最佳策略之一就是最大限度地减少硬盘必须加速转动的次数。我们可以将硬盘存取集中在一起,而不是播放三首歌曲就要让硬盘从播放列表中载入三次。系统可以提前预计用户接下来在播放列表中最可能播放的歌曲,并同时载入三首歌曲。如果预计错误(用户选择其它歌曲播放),那么预取其它歌曲所用的电量就会被浪费掉。但是,执行预取所耗的电量相对于硬盘额外转动所耗电量来说非常小,从长远来看还是非常省电的。

上述策略也可应用于数据库检索。根据数据库大小的不同,我们有时可以将数据库整个都存储在存储器中,这样存取数据库就不需要操作硬盘了。在启动时就将数据库存入存储器,其所发生的更改都存入存储器中,隔一段时间才向硬盘传输。通常播放器有 10到 20 MB 的预取缓冲器容量,足够用于 10 到 40 分钟的音频。在缓冲器中存储数据库会减少内容播放所需的存储容量,但这样无需执行硬盘,从而显著缩短了检索时间。请注意,由于存储器中也载入了许可证数据库,因此系统能在执行硬盘前将数首歌的加密功能进行排序,而不是在硬盘转动时进行加密计算,而让写入磁头处于空闲状态。但是,将所有许可证都存于 RAM 中会大幅降低设备的安全可靠性,因此这种做法应当避免。

我们不妨设想这样一种情况,当用户首次启动播放器时,闪屏立即出现,然后出现可用的播放列表。用户考虑先播放哪首歌曲花的时间通常已足够该应用来完成加载任务。如果用户快速选择了播放的歌曲,那么就载入第一首歌的数据及其许可证,并对这些信息进行评估然后开始操作,这样就能最大限度地缩短用户欣赏到音乐所需的时间。

这时,由于设备还没有机会进行预取,所有 DRM 处理都位于主处理路径上。不过,在播放第一首歌时,播放器可将许可证数据库下载至存储器,这样播放器就能为播放列表中接下来的歌曲预先处理许可证密钥,并预取适当的曲目。这样,大多数 DRM 处理任务都能在后台得到高效地计划安排,毫不影响用户的欣赏体验,而且还能尽可能减少对硬盘的存取(见图 2b)。

数据库的可靠性



关键词: 障碍 面临 部署 DRM 解决

评论


相关推荐

技术专区

关闭