账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
克服数字权利管理应用障碍
 

【作者: Jason Kridner;Harshraj Rao】2007年09月10日 星期一

浏览人次:【4063】

目前有许多对数字权利管理(DRM)的误解,导致不少人怀疑这项技术究竟能否有效应用于数字可携式媒体播放器。虽然数字权利管理会随着硬件平台、内容拥有者和内容供货商的不同而出现各种形式与格式,但无论实作方式为何,所有数字权利管理机制都具有几项共同的重要特性。整体而言,数字权利管理技术可以保护内容不被非法使用,然而这样的保护相对需要付出部分代价。例如,用户会担心数字权利管理机制会不会影响内容播放和造成操作不便,开发商则想了解数字权利管理会对各种播放器的效能、延迟时间和电池寿命造成哪些影响。


数字媒体播放器制造商在考虑支持数字权利管理之前,应先了解必须克服那些障碍才能实现这项功能。要提供高效率的数字权利管理功能,必须进行的工作绝不仅是发展一套优化的密码链接库;厂商如果根据错误的信息贸然采取行动,就可能出现极不明智的商业决策或开发不合乎市场需求的产品。本文将讨论如何减轻数字权利管理对数字媒体播放器的冲击,让有意采用这项技术的厂商不再害怕或怀疑数字权利管理的可行性,而是集中全力找出最有效的方法来实现数字权利管理功能。本文也将探讨在实作数字权利管理功能时,最常遇到的各种障碍,这些讨论结果将可应用于任何的标准或架构。



《图一 装置开机时若要执行任何应用软件,就必须先确认其来源是否值得信任。问题在于,如果负责确认和验证应用软件的程序代码也很容易被破坏,装置就必须在执行该程序之前先进行确认和验证。但若ROM启动加载程序(ROM Boot Loader)不会被修改,那么这个程序就不会被破坏;这表示装置可以信任该程序,不必在开机时进行验证。》
《图一 装置开机时若要执行任何应用软件,就必须先确认其来源是否值得信任。问题在于,如果负责确认和验证应用软件的程序代码也很容易被破坏,装置就必须在执行该程序之前先进行确认和验证。但若ROM启动加载程序(ROM Boot Loader)不会被修改,那么这个程序就不会被破坏;这表示装置可以信任该程序,不必在开机时进行验证。》

克服问题

一般而言,要克服数字权利管理所带来的时间延误和效能问题,就必须尽量将数字权利管理作业从关键路径(critical path)中移出。这项工作通常要靠数字权利管理作业的适当排程来实现,包括预先读取或处理数据、在背景执行相关处理作业、或是在时间延误较不重要时执行处理作业,例如用户在做决策的时候。工程师真正要注意的重点有三项,分别是开机、播放和内容传送,这些动作都可能影响产品的效能、使用便利性和电池寿命。


开机时间

乍看之下,数字权利管理似乎不会对开机时间造成任何影响。毕竟它只是一种验证使用权的方法,没有理由影响产品开机时间。但事实却不然,要知道个中原由,首先必须了解任何数字权利管理规格都包含的重要原则:强固性与符合性规则(Robustness and Compliance Rules;R&CR)。


强固性与符合性规则是一套准则,厂商必须依照这套准则确实防止数字权利管理硬件与软件被规避或修改。值得注意的是,虽然不同的数字权利管理标准会给予这类准则不同的名称,它们的基本目标却都相同:确保装置坚固可靠,有能力发现任何想藉由篡改应用程序代码来欺骗或破坏数字权利管理机制的企图。具有数字权利管理功能的装置在解除保护或允许存取保护内容之前,必须先确认数字权利管理机制确实存在、未被篡改、而且功能运作正常;另外,这些装置还必须禁止使用除错工具,以免它们被用来破解或变更授权数据。


强固性与符合性规则要求为不同的系统资产或零件提供不同等级的保护。例如在以凭证为基础(certificate-based)的数字权利管理机制中,用来让播放器通过内容服务器验证的凭证就是高级资产,需要最高等级的保护,因为这类凭证一旦遭到破解,装置的所有内容就会被全部泄露。根据特定厂商凭证所产生的特定装置(device-specific)凭证也很重要,倘若这类凭证被破解,就等于破解了厂商利用该凭证生产的所有播放器。相形之下,个别曲目的解密密钥就显得没有那么重要,因为这类型的解密密钥所保护的只是一首歌曲的内容。无论是凭证、密钥或其他保护机制所采用的机密信息,都需要适当的保护。一般而言,曝露的风险越大,保护机制就必须越坚固可靠,但这意味可能对用户造成越大的影响。


程序代码毁损是指程序代码已被破坏,虽然不一定来自恶意攻击,却是数字权利管理可能遇到的最大威胁之一。如果应用软件能被篡改,就表示密钥和内容一样不安全。因此,装置在执行任何应用程序代码之前,都必须确认和验证这些软件的来源是否值得信任;另外,装置在每次开机时都必须执行这项检查,确保硬件没有被篡改。问题在于,如果负责确认和验证应用软件的程序代码也很容易被破坏,装置就必须在执行这些程序代码之前,先进行确认和验证,请参考(图一)。


(表一) 安全启动加载程序(boot loader)技术能在装置刚开机时,确认硬件与软件都处于值得信任的已知状态。为了将延迟时间减到最短,程序代码的验证和加载会分数个阶段进行。装置若在任一阶段发现程序代码被篡改,就会启动灾难恢复模式和重新设定装置组态;否则装置会加载第一个程序,也就是储存在ROM内存的启动加载程序,此程序是由芯片厂商提供,而且无法修改,故能确保程序正确有效。装置接着会利用哈希算法验证其余的程序代码并进行译码,有些产品还会使用芯片内储存的特定ID来进行验证和译码的动作。把开机启动程序分成数个阶段可以加快用户与装置的互动,有效缩短开机时间。

程序代码(按照验证和加载顺序

安全性

程序代码(按照验证和加载顺序

说明

功能

ROM启动加载程序(boot loader)

无法修改,所以不必验证
有限的密码功能

特定处理器(Processor-specific)程序代码

可以取得储存于芯片内的特定ID,以便将用户和应用软件激活加载程序解密

用户启动加载程序(user boot loader)
利用开发工具产生
哈希算法(hash)加密保护

完整加密功能
特定平台(Platform-specific)程序代码
操作系统与驱动程序
可显示开机画面
提供链接界面以便下载重新设定组态的程序代码
有限的显示功能
灾难恢复模式

基本装置功能
提供开机画面,让用户知道装置正在操作中

特定装置(Device-specific)程序代码(上方)

特定应用(Application-specific)程序代码(下方)

应用软件激活加载程序:阶段1

哈希算法加密保护

启动播放列表

验证速度很快,延迟时间很短

应用软件激活加载程序:阶段2

哈希算法加密保护

应用软件激活加载程序:阶段2

验证速度很快,延迟时间很短
把授权数据库和首批可能用到的内容档案加载内存

加载部份的数字权利管理链接库

应用软件激活加载程序:阶段3+

加载其他/大多数的应用软件

验证时间最久,延迟时间最长
同时进行下载和让用户选择所要播放的第一个内容;亦即在关键路径(critical path)外执行这些作业


安全启动加载技术就能避免前述的两难局面,并且确认硬件和软件都在值得信任的已知状态下,请参考(表一)。装置刚开机时,处理器会先执行ROM内存内的启动加载程序,这个程序是一种特定装置(device-specific)程序,而且只会支持最基本的功能,例如用来确认和验证后续启动加载程序的基本密码功能,以及发现程序被篡改时,立刻启动灾难恢复模式的能力。这个程序储存在ROM内存,不可能被窜改破坏,所以不需要验证。但是有些功能可储存在芯片外,或是加入其他程序代码一起接受ROM启动加载程序的验证,譬如验证失败通知的显示功能;但是在设计ROM启动加载程序时必须注意,一旦发现验证失败,就不可以再使用这些程序。


ROM启动加载程序通常由芯片厂商提供,OEM厂商要获得许可才能进行修改。ROM启动加载程序的主要工作是验证用户启动加载程序(user boot loader)。用户启动加载程序则是由OEM厂商发展,他们会利用芯片厂商开发工具所提供的可规划式架构发展用户启动加载程序,以便提供显示器、USB界面和硬盘等底层驱动程序和界面链接功能,以及装置所需的其他密码功能。厂商在必要时可在产品设计时间更新和修改用户启动加载程序,但只要产品上市,厂商通常就不会再修改这些程序。


为了验证用户启动加载程序,ROM启动加载程序通常会先执行哈希算法,确认程序代码未被篡改,然后将程序代码解密还原(厂商提供的程序代码都已加密,以免有人透过逆向工程找出程序弱点或机密信息)。用户启动加载程序通过ROM启动加载程序的验证后,即可开始确认和验证主要应用软件(亦即应用软件激活加载程序),用户也可以开始存取被保护的内容。如果处理器芯片内含一个独一无二的ID,而且此ID只能读取而不能修改,那么程序代码验证的安全性还可进一步提高。厂商也能将此ID做为私钥的基础,或是利用这个ID将内容加密,只允许特定的播放器播放这些内容。


如果ROM启动加载程序认为用户启动加载程序已被篡改,就会进入数字权利管理的一个重要模式:灾难恢复模式(Disaster Recovery Mode)。此时,装置会先告知用户这个装置将不会再播放任何内容,让用户了解装置并未故障,只是需要重新设定;接着再向用户解释如何重新设定装置。这个步骤非常重要,否则用户一旦发现无法播放内容,就会打电话要求厂商维修或是愤怒地退货,而导致厂商付出很大的成本。


有时,产品中储存的机密信息很可能在其他地方被破解。如果发生这种情形,该产品所使用的数字权利管理标准将会提供某种机制,让内容供货商「撤销」该装置或OEM厂商的权限,又或者透过某种方式让用户无法再使用被破解的内容或硬件。产品如果支持灾难复原,就表示该产品包含一套安全的轫体升级机制,让厂商能以未被撤销的机密信息取代装置原有的机密信息。当然,产品须能确保新程序代码或机密信息的来源值得信任。


注意ROM启动加载程序不会提供从USB下载程序代码等灾难复原所需的功能,所以只会启动灾难恢复模式,但不太可能亲自执行这项作业;事实上,灾难复原功能是由用户启动加载程序提供。由于这个原因,系统也应禁止旁人修改用户启动加载程序,才能确保灾难复原程序不会被篡改,产品也能在发生问题时顺利恢复正常运作。


把开机程序分为数个阶段有几项好处。首先,厂商更容易将程序代码分为特定装置(device-specific)和特定应用(application-specific)两个部份。更重要的是,能够让用户感觉开机时间没那么长。举例来说,验证程序代码所需的时间通常都与程序代码长度成正比;因此程序代码越长,所需的验证时间就越久,而当产品在验证应用程序代码时,用户只能干瞪着空白而毫无反应的屏幕,心想是不是产品的电池没电了。


只要采用精简的用户启动加载程序,并且分阶段加载应用软件,就能加快系统与用户的互动。例如用户启动加载程序开始执行后,就应立即在屏幕上显示开机画面,这会让用户感觉系统的响应很快,并且确信产品正在运作。甚至应用软件激活加载程序也可分为数个阶段,像是界面功能就可分阶段加载和执行:先加载用户界面程序,然后加载用户界面所须存取的数据库。透过这种方式,产品就能一边在背景中继续加载和验证大部份的应用软件功能(例如目前还用不到的数字权利管理功能),一边先让用户选择所要播放的内容。如果不采取这种分阶段的做法,而是一次就要验证整个应用软件,那么这项产品可能需要数十秒钟才能完成验证工作并将信息显示在屏幕上。


启动硬盘

将密码功能优化虽可提高效能,但缩短开机时间的关键如前所述,仍在于让开机功能与其他作业平行操作,使产品能在背景执行这些功能。同样的原理也可让用户觉得等待的时间没那么长,例如在选择一首歌后,用户觉得很快就听到产品开始播放。缩短延迟时间对提升用户的整体感受很重要。


如(图二)是数字权利管理功能在播放内容前所执行的验证程序。验证内容与验证程序有很大的区别,因为授权码、密钥或哈希表可能不会与受保护的内容储存在一起,而是储存在其他数据库。例如有些歌曲可能会对播放次数做出限制,这表示验证程序必须增加数个处理步骤,才能支持这种授权方式。由于用户的播放列表可能很长(例如把20GB的音乐储存在同一个文件夹),产品最好能产生索引数据库以加速查询过程。



《图二 数字权利管理功能在播放内容前所执行的验证程序。在此例中,所有数字权利管理作业都在关键路径内,因此所需的时间最久。》
《图二 数字权利管理功能在播放内容前所执行的验证程序。在此例中,所有数字权利管理作业都在关键路径内,因此所需的时间最久。》

要将数据库查询优化,开发人员必须在效能、内存分配和电池寿命之间取得平衡,而影响这三项因素的最大关键或许在于作业是否需要存取硬盘。硬盘是可携式媒体播放器的最大耗电来源,其耗电量甚至超过屏幕。并不是所有的可携式媒体播放器都有硬盘,但不含硬盘的产品所能提供的储存空间就会大幅减少,数据库也会相对地较小,但也比较好管理。


节省电力的最好方法是将多个硬盘存取动作一次执行完毕,以便将硬盘启动次数减到最少。例如系统不应为了播放三首歌曲而启动硬盘三次,而应该按照播放列表的顺序一次就加载三首歌曲,这是因为用户最有可能按照顺序播放歌曲。如果这项猜测错误(亦即用户选了另外一首歌曲),那么预先加载歌曲所用的电力就等于浪费了。不过相较于硬盘额外运转时间所需的电力,这种预先加载动作的耗电其实很少,因此这种做法就长期而言将能节省可观电力。


这套方法也能用在数据库查询。随着数据库大小差异,有时更好的做法是把整个数据库都加载内存,而不是不停地存取硬盘。例如产品可于开机时将数据库加载内存,此后的任何数据修改都只会套用在内存内的数据库,系统偶尔才会将这些数据写回硬盘。媒体播放器通常有10~20MB的预先读取内存,大约能储存10~40分钟的音乐。把数据库储存在这个缓冲区虽会减少播放内容时所能使用的内存,却能免除启动硬盘的需求,因此能大幅加快查询时间。


值得注意的是,如果授权数据库也加载内存,系统就能把多首歌曲所需执行的密码功能放到队列里,然后启动硬盘并一次完成所有动作,而不是在硬盘启动后跑去执行这些计算,然后留着硬盘空转。虽然把所有授权数据都加载RAM内存可以减少耗电,但这也会大幅降低装置安全功能的可靠性,因此除非有特别需要,否则还是应该加以避免。


假设用户开启播放器后,屏幕很快就出现开机画面,然后是播放列表。此时用户多半会想一下要先播放那首歌曲,而这段思考时间通常就足以让系统加载应用软件。如果用户很快就选择了所要播放的歌曲,系统就能加载歌曲内容和授权数据,进行验证,然后开始播放,让用户在最短的时间内听到音乐。


此时,由于装置还没有机会预先下载任何内容,因此所有的数字权利管理作业都会在关键路径内执行。但等到第一首歌曲开始播放后,播放器就能把授权数据库加载内存,并根据播放列表预先处理后续几首歌的授权密钥,同时继续预先下载所需的歌曲内容。透过这种方式,多数的数字权利管理作业实际上都会在背景执行,不但不会影响用户的操作感受,还能将硬盘运转时间减到最少,请参考(图三)。


数据库的强固性

随着所采用的数字权利管理机制不同,管理内存内的数据库有可能比管理硬盘里的数据库更复杂,因为须提供适当的保护功能,以免用户藉由开关机的方式规避数字权利管理机制。以「有限次数播放」授权为例,用户每播放一次受到这类保护的内容,数据库就必须将剩余播放次数减一。但用户可能在数据库尚未将内存内的这些修改内容写回硬盘时,就先将装置关机,企图藉此规避这项保护机制。



《图三 显示同样的数字权利管理程序,但这个程序已尽可能将最多的处理步骤移到关键路径外,让用户完全感觉不到播放速度变慢或效能受到影响。将授权数据库储存在预先下载缓冲区后,系统就能在背景同时验证多笔授权数据,同时减少硬盘存取次数以节省电力。》
《图三 显示同样的数字权利管理程序,但这个程序已尽可能将最多的处理步骤移到关键路径外,让用户完全感觉不到播放速度变慢或效能受到影响。将授权数据库储存在预先下载缓冲区后,系统就能在背景同时验证多笔授权数据,同时减少硬盘存取次数以节省电力。》

通常当播放的时间或歌曲达到一定数目时,强固性与符合性规则(R&CR)还会规定内存内的数据库在经过几次更新后,就应将新内容写回硬盘内的数据库中。如果系统内含闪存,那么更新数据也可储存在闪存内的更新队列,这样就算用户故意开关机,更新数据也不会消失,可惜多数硬盘式媒体播放器都不包含如快闪记忆等类型的数据非挥发性内存。另外要注意的是,这些更新内容不可储存在卸除式媒体,因为用户可能在关机后移除该媒体,也就等于将储存更新数据的队列也移除。


这些设计的目标,都是为了避免数字权利管理的相关功能让硬盘启动次数增加。为了让内存和硬盘的数据库内容尽量一致,同时把所需的更新次数减到最少,系统必须注意其他功能对于启动硬盘的要求,然后在这些功能执行后进行数据库更新。举例来说,当播放器预先下载某首歌曲时,机器本身就应该自动更新硬盘里的数据库。而用户原本就会预期下载歌曲需要一些时间,因此系统可透过这种方式,在传送歌曲数据时顺便传送授权数据。除此之外,如果系统将更新数据储存在队列,那就只有这些数据库内容变更需要写回硬盘,而不需要将整个数据库都写回。


系统还能记录和分析用户的使用模式,然后预测他们会如何使用媒体内容,这种方式也能将硬盘的运转时间减到最少。举例来说,如果用户习惯按照播放列表播放歌曲,播放器就能利用这个习惯节省电力。甚至随机播放都不必那么随机,播放器可随机产生一份播放列表,然后就像在处理普通的播放列表一样,一次就预先从硬盘读取数首歌曲,同时让用户查看已经播放过的曲目。在记录用户的播放习惯时,系统甚至还能记录用户跳过某一首歌曲的次数,在随机播放时,就能减少播放这些不受欢迎的曲目。


传送授权数据

通常下载内容档案所需的等待时间最容易让用户感到不耐烦,数字权利管理则会让这个状况雪上加霜,因为这个机制必须传送授权数据、执行安全功能交握协议(secure handshaking)以及验证内容的著作权。要减少数字权利管理功能对于授权数据和内容传送时间的影响,系统同样可以安排数字权利管理作业在背景执行,或是事先就与其他作业一起执行。


处理授权数据时,很重要的一点是使其易于使用。用户希望他们点选一首歌后,播放器就能立刻播放该歌曲。因此尽管数字权利管理的职责是管理授权数据,并且防止用户在授权期满后继续使用媒体内容,但系统在执行这项功能时,一定要以很客气的方式提出明确的说明。


有许多方法都能管理授权期满的处理方式,实际做法则要视产品所用的数字权利管理标准而定。无论在那种情形下,系统都应清楚告诉用户什么东西已经期满,他们应如何取得新授权。某些授权数据还可能有「过期状态」(stale-date),例如用户把歌曲下载到可携式媒体播放器后,最多只能播放一个星期,然后就必须让播放器重新连接到一台值得信任的内容服务器(亦即利用个人计算机透过因特网连接到值得信赖的服务器)。


为了避免用户造成混淆,开发商应预先设想可能出现的问题。举例来说,用户可能出外旅行,因此最近都没有联机到内容服务器。如果这位用户的授权方式是以使用时间或使用次数为基准,而授权数据刚好在这段期间过期,那么用户可能会感到很愤怒,却找不到方法向厂商索取赔偿。这些问题可能成为厂商导入数字权利管理时的障碍,因为他们无法控制授权数据多久需要更新一次。


减轻这些问题的关键是将部份授权信息告知用户,例如在播放歌曲时显示该首歌曲的授权届满日期或还能再播放几次等信息,以免用户措手不及。系统还应提供用户自行安排预警时间的功能,例如授权期间即将到期时就先发出通知,只不过这些预警通知的次数要适当,不要让用户淹没在一大堆恼人的预警信息中(例如播放每首歌时都发出预警通知),使他们无法安心欣赏媒体内容。


基本功能之外

数字权利管理的技术障碍不一定会影响效能、使用的简易性和电池寿命,因此对有意提供这项支持的厂商来说,导入数字权利管理功能已成为一种实际可行的选项。数字权利管理机制虽会增加系统的复杂性,厂商却只需对基本系统架构做出最小幅度的修改,就能解决这些问题。开发人员只要充份了解用户与媒体播放器的互动模式,就能妥善安排数字权利管理的作业程序,使其几乎完全不会影响产品的开机、播放和传送授权数据。


开发商现在所面对的挑战,已不再是他们能否以高效率和不影响现有架构的方式导入数字权利管理功能,而是如何超越现成次系统所提供的基本功能,发展出具有未来性的强大设计,进而与竞争对手的产品做出区隔。厂商提供的数字权利管理功能除了在开机、播放和传送数据时以透明化的方式进行授权验证外,还要能发挥其他更大作用。为了以最有弹性的许可证管理机制支持种类最广泛的数字权利管理协议,开发商需要一套可程序架构以及透过优化链接库或加速硬件协同处理器所提供的完整密码功能,以便将延迟时间和耗电量减到最少,同时提供厂商最多的选择。


举例来说,内容散布模型(content distribution model)就像数字权利管理标准一样的变化多端。用户有时可先与他人随意分享内容,稍后再购买合法的用户许可证,或是同意在每次播放这些内容时,就从网络帐户支付一次授权费用。超级散布(Superdistribution)模型则能让用户在手机或其他装置之间很方便地交换内容,同时为其他功能保留有限的无线网络带宽。新出现的行动通讯虚拟网络营运商(MVNO)标准也很重要,这个标准能让任何公司向行动电信业者租用空间,使用户随时随地都能存取更丰富的内容;未来,这项服务还会扩大到所有的装置。


展望未来,最有弹性的厂商将拥有最强大的竞争力。更重要的是,MVNO之类的创新标准不但能让厂商弹性导入数字权利管理功能,还能让他们跨出播放器应用领域,走向更广阔的内容市场,进而提供令人振奋的新应用商机和未来营收潜力。


---本文作者任职于TI德州仪器---


相关文章
以爆管和接触器驱动器提高HEV/EV电池断开系统安全性
低 IQ技术无需牺牲系统性能即可延长电池续航力
以霍尔效应电流感测器简化高电压感测
以固态继电器简化高电压应用中的绝缘监控设计
以半导体技术协助打造更安全更智慧的车辆
comments powered by Disqus
相关讨论
  相关新闻
» SIG:2028年蓝牙装置年度总出货量将达到75亿台
» 罗姆旗下SiCrystal与意法半导体扩大SiC晶圆供货协议
» 美光针对用户端和资料中心等市场 推出232层QLC NAND
» 摩尔斯微电子在台湾设立新办公室 为进军亚太写下新里程碑
» 爱德万测试与东丽签订Micro LED显示屏制造战略夥伴关系


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84U7N3JSUSTACUKI
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw