CN100451983C - 下一代媒体播放器的双虚拟机以及信任平台 - Google Patents
下一代媒体播放器的双虚拟机以及信任平台 Download PDFInfo
- Publication number
- CN100451983C CN100451983C CNB2004800182146A CN200480018214A CN100451983C CN 100451983 C CN100451983 C CN 100451983C CN B2004800182146 A CNB2004800182146 A CN B2004800182146A CN 200480018214 A CN200480018214 A CN 200480018214A CN 100451983 C CN100451983 C CN 100451983C
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- application program
- secure
- media player
- secure virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一种基于运算环境的软件,用于提供从网络下载或从媒体播放器载入的媒体的安全认证,所述软件包括两个对等模式操作的虚拟机。低级虚拟机提供解码和解密功能,而高级虚拟机提供应用级功能,例如用户接口、输入/输出。
Description
技术领域
本发明涉及开发新的安全系统和方法,包括对可拆卸媒体播放器的拷贝保护。
背景技术
虚拟机(VM)是用于说明充当编译器和微处理器(或“硬件平台”)之间的接口、并实际执行程序指令的软件的术语。编译器是处理按照特定编程语言写出的陈述并且将其变为二进制机器语言的特殊程序或计算机处理器所使用的“代码”。
Java编程语言和运行环境的开发者,Sun Microsystems,因为其Java虚拟机的开发而著名。Java虚拟机为计算机处理器(或“硬件平台”)解释编译的Java二进制代码(称为字节代码),以便其可以执行Java程序指令。
Java被设计为允许构建应用程序,应用程序可以在任意平台上运行而不需要程序员针对每一个独立平台重写或重新编译。当给平台提供Java虚拟机时,任何Java程序可以在该平台上运行。Java虚拟机使这成为可能,因为它考虑到特定指令长度和平台的其它特性。
虚拟机是一种抽象的运算机器。与真实的运算机器一样,它具有指令组并且在运行时操作各种存储区域。使用虚拟机来实现编程语言是相当普遍的;最著名的虚拟机也许是UCSD Pascal的P-Code机器。
另外,更一般地,可以将虚拟机描述为操作系统或运行计算机的任何程序。
在下一代媒体播放器中,例如DVD或CD播放器,长期需要发展拷贝保护的改进方法。
一个公知的用于DVD的内容安全系统是内容加扰系统(CSS),其中DVD上的数据被加密。然后当读盘时,DVD播放器使用40比特解密密钥来解密数据。然而,CSS的严重缺陷在于其密钥和算法是固定的。反向设计加密算法,并且播放现有DVD盘的每一个可能解密密钥是可用的。当泄漏秘密时,系统将受到永远威胁,这是因为没有办法更新安全算法或密钥。现在,存在多个消费者可用的程序,其利用单个“点击”从DVD内容中去除所有安全性。
内容所有者不希望再次发生这种情况,尤其随着内容的逼真度增加。因此,下一代内容安全系统不应该这样易受攻击。
软件零售商也面临盗版问题,然而由于计算机的本质,他们采取不同于DVD娱乐公司所使用的方式。历史上,打包软件程序(例如计算机游戏)制造商利用“程序安全”来保护其内容。即,不存在用于保护程序的固定的预定方法,而是每一个软件厂商编写或获得“安全代码”来保护其内容。这种程序安全代码在复杂度和技术上根据程序不同而变化,但是最重要地,因为每一个程序具有不同的安全软件实施方式,不可能写出通用“去除安全”程序,就像写出用于攻击DVD安全的程序。
另一种公知的拷贝保护的方法是写硬件特殊指令。该方法的问题在于它是极其有限的。利用这种方法,对于每一个硬件配置,必须呈现不同组的指令。这有点不切实际。
因此,需要一种向例如媒体播放器(不是专用硬件)的硬件提供拷贝保护的方法。
发明内容
因此,向媒体播放器提供了一种与平台无关的程序拷贝保护的系统和方法。本公开提出一种解决方法,其中给下一代媒体播放器提供双虚拟机架构。本公开还提出使用基于硬件的嵌入式安全子系统,例如信任平台模块(TPM),来连接虚拟机架构的特定方面。
根据本公开的双虚拟机架构由高级虚拟机和低级虚拟机组成。低级虚拟机被设计用于支持低级媒体解密和解码功能,而高级虚拟机被设计用于处理应用层的行为。因此,这种架构从应用软件中分离出安全软件。
通常,最适于程序安全的虚拟机更近似于实际硬件CPU的指令组。即,其支持指针,并且在可执行代码和数据之间存在根本区别。因此,这种第一类虚拟机被称为“低级VM”,或“安全VM”。低级虚拟机被设计为与支持抗篡改(tamper resistant)软件技术的传统CPU类似。
类似这种的虚拟机的不利方面在于编程错误或意外的运行条件是严重的。对于安全系统,这可以认为是强项,但是对于应用(更为复杂,并且通常具有强度较低的测试覆盖),这是缺点。
对于应用,“在后台”管理大部分运算细节的“高级VM”允许开发按照更加可预测和鲁棒方式运转的更可靠的应用程序。“高级”虚拟机的典型范例是Java。例如,Java不需要支持“指针”的概念或明确的存储管理(编程错误的一般来源),然而支持“例外处理”,按照可预测方式帮助程序和程序员处理意外运行条件。
高级或应用级虚拟机被设计具有所有特点,并且提供丰富的应用接口。
因此,理想的是组合低级VM和高级VM的优点,以便提供与其它应用结合进行工作的平台无关安全功能。此外,信任平台模块通过安全地询问和验证执行环境,提供基于硬件的信任基础。
在典型实施例中,本公开被用于DVD和CD播放器中的可更新安全和拷贝保护的目的。然而,这种架构还支持存储在硬盘、固态存储器中或在网络上发送的媒体的回放。
如上所述,低级虚拟机被设计用于支持低级媒体解密和解码功能。在下一代媒体(NGM)应用中,这种低级虚拟机还负责引导高级VM。高级VM处理应用层的行为,例如高级用户接口、misc、IO和网络行为。
本公开的双VM架构是新型的。双VM架构提供“对等”关系而不像传统的“堆叠(stacked)VM”关系。一个VM在另一个之上运行的堆叠关系的一个范例是运行窗口仿真程序(x86仿真程序或VM)的PowerPC(如在Mac中一样),窗口仿真程序依次执行JavaVM。
此外,这种双VM架构与基于硬件的信任运算模块的结合是创新的。
本公开将程序安全的使用扩展到例如CD和DVD的媒体。此外,程序安全还允许内容持有者具有比公布的系统更灵活的版权管理。与现有技术固定安全系统(类似CSS)所提供的简单拷贝保护(CP)相对,这种灵活性可以被用于实现完备的数字版权管理(DRM)系统。
下面的实施例示出了本公开的特点和优点,从阅读典型实施例的详细说明中,显而易见本发明的上述及其它目的、特点和优点。
附图说明
图1是根据典型实施例在运算环境中的媒体播放器架构的图。
图2是示出了根据典型实施例的低级虚拟管理器和高级虚拟管理器的交互和功能性的方框图。
需要理解,为了演示的简化和清楚,不必按比例绘制图中所示的单元。例如,为了清楚,相对于彼此,放大一些单元的尺寸。此外,适当考虑时,在附图中重复参考数字来表示相应的单元。
具体实施方式
在此公开详细的说明;然而,要理解到,公开的实施例只是本发明的范例,本发明可以按照各种形式实现。因此,在此公开的特殊结构和功能的细节不应该被理解为限制,而只是作为权利要求的基础并作为代表基础,教导本领域技术人员实际按照任意适当详细的结构来不同地使用本公开。详细参考在附图(图1-2)中所示的本公开。
本公开的系统和方法提供使用媒体播放器的双虚拟机架构。一个VM被设计用于支持安全功能,例如媒体解密和解码。在下一代媒体应用中,低级VM也许负责引导应用级VM。高级或应用级VM处理应用层的行为,例如高级用户界面、misc、IO和网络行为。
图1和2示出了根据典型实施例的运算环境10中的媒体播放器架构。具体地,示出了包括媒体数据或内容18的媒体源(例如DVD、光盘、固态设备或网络)、用于允许在媒体播放器上回放媒体的安全代码12以及导入代码16。
根据本公开的媒体回放设备包含能够运行至少一个虚拟机(VM)的中央处理单元25。在典型实施例中,虚拟机是双虚拟机架构,包括在CPU26上运行的低级VM(例如安全VM)22和高级VM(例如应用VM)24。在VM中运行的程序可以执行并且实施使用规则,以及更新加密算法。运算环境10还可以包括应用程序接口(API)40-44,40-44是用于允许各种程序互相进行通信的一组例程或协议。
在一个方案中,VM之一(22或24)控制另一个VM。在另一个方案中,高级和低级虚拟机作为对等虚拟机,按照非等级方式在其之间传递消息。可以以“外部功能调用”来实现这些消息,其中一个虚拟机调用另一个虚拟机中的例程,或者以沿通信信道传递的传统消息来实现。
例如,应用VM(或高级VM)24可以调用安全VM(或低级VM)22,以便开始媒体内容18的回放(并因此透明解码)。
类似地,安全VM22中的代码可以调用应用VM22,使其了解同步事件或解码问题(例如,安全或许可问题)。
例如,在已经从其原始光学媒体上拷贝媒体的情况下,安全VM22通知应用VM24:需要密钥以便继续播放。响应之,应用VM24经由应用级功能25显示消息,通知用户他们可以通过用户接口27“租赁”该电影特定时间长度。如果用户选择这么做,用户必须与工作室服务器进行交易,以便获得包含密钥的“不透明消息”(只由VM可理解)。然后,应用VM24将包含密钥的消息传递给安全VM22以及拷贝保护算法23,以便认证。
媒体播放器设备还包含处理模块(例如信任处理模块或TPM)32。TPM规范是由信任运算组织(TCG)创造的信任运算平台联盟(TCPA)规范的一部分(http://www.trustedcomputinggroup.org)。TPM32包含解密密钥,并且处理安全密码运算。媒体回放设备还包含API40、42,允许在虚拟机中运行的任何程序询问设备IO硬件和TPM。这使在VM中执行的程序对于使用规则做出智能选择。还提供附加在CPU26上的解码模块34,用于分解解码音频/视频流。
通常,信任平台使实体能够确定该平台中的软件状态或运算环境10并且能够将数据密封在该平台的特定软件环境中。实体推断运算环境的状态是否是可接受的并且与平台进行一些交易。如果交易涉及必须存储在该平台上的敏感数据,实体确保按照秘密格式处理该数据,除非该平台中的运算环境的状态对于实体是可接受的。
为了实现该条件,信任平台提供信息,使实体能够推断出信任平台中的软件环境。可靠地测量该信息并且告知实体。同时,信任平台提供了一种装置,用于加密密码并且描述在解密密钥之前必须进入的软件环境。
“信任测量根基(root)”测量特定平台特征,将测量数据记入测量库,并且将最终结果存储在TPM(包含用于存储和告知完整测量的信任根基)。因此,TPM是所有解密密钥的安全存储位置。TPM还处理大多数密码运算和功能。
此外,媒体回放设备具有安全、受保护的输入和输出28、与其它播放器30联网的能力以及存储设备(例如RAM36和ROM38)。
因此,根据典型实施例,独立虚拟机(VM)运行于包括CPU的相同运算环境中。该架构分离两个虚拟机(即高级或应用级VM和低级或安全VM),其中应用和安全虚拟管理器通过标准API进行通信。应用虚拟管理器的功能性包括给正在安全虚拟管理器中执行的安全代码提供网络服务,而安全VM协调媒体存取和解码功能,以使内容安全对于应用作者是透明的。
对于运算复杂度,安全VM对系统资源具有较低的影响,是简单、轻量、低级、并且安全的,并且可以由安全零售商为该VM提供适当的软件。应用VM具有相对较大的CPU以及存储影响,并且负责用户接口和输入/输出功能。
本公开不局限于在例如传统CD和DVD播放器的媒体播放器中使用,而是可以扩展到在PC上运行,或者推广为包括播放可删除媒体的功能性的硬件系统。
为了演示和说明,呈现了本公开的优选实施例的上述说明。从阅读下面的附录中,显而易见本公开的其它目的、特点和优点。并不是意欲成为详尽的或者将本公开限制于公开的精确形式。在上述教导下,各种修改和变化是可能的。
Claims (20)
1、一种用于为包括引导代码和内容的媒体提供媒体安全保护的媒体播放器,所述媒体播放器包括:
安全虚拟机,被配置成执行媒体播放器的安全解密和解码功能;
应用程序虚拟机,被配置成执行媒体播放器的应用程序级功能,并提供用户接口,应用程序虚拟机是高级虚拟机,安全虚拟机是低级虚拟机;
处理单元,被配置成运行所述安全虚拟机和应用程序虚拟机。
2、根据权利要求1所述的媒体播放器,其中,安全虚拟机还被配置成支持第一指令组,应用程序虚拟机还被配置成支持第二指令组,其中第一指令组是低级虚拟机的指令集,第二指令组是高级虚拟机的指令集。
3、根据权利要求1所述的媒体播放器,还包括应用程序接口API,允许安全虚拟机和应用程序虚拟机彼此通过API进行通信。
4、根据权利要求1所述的媒体播放器,其中,安全虚拟机还被配置成引导应用程序虚拟机。
5、根据权利要求1所述的媒体播放器,其中,媒体包括安全代码,应用程序虚拟机向安全虚拟机传送安全代码。
6、根据权利要求1所述的媒体播放器,其中,安全虚拟机被配置成解密引导代码。
7、根据权利要求1所述的媒体播放器,其中,安全虚拟机被配置成向应用程序虚拟机传送与同步事件相关的信息。
8、根据权利要求1所述的媒体播放器,其中,安全虚拟机和应用程序虚拟机具有对等关系。
9、根据权利要求1所述的媒体播放器,其中,安全虚拟机不包括例外处理能力,应用程序虚拟机包括例外处理能力。
10.根据权利要求1所述的媒体播放器,其中,安全虚拟机使用拷贝保护算法。
11、一种为包括引导代码和内容的媒体提供媒体安全保护的方法,该方法包括步骤:
使用运行在处理单元上的安全虚拟机来执行媒体播放器的安全解密和解码功能;
使用运行在处理单元上的应用程序虚拟机来执行媒体播放器的应用程序级功能;
其中,应用程序虚拟机提供了用户接口,应用程序虚拟机是高级虚拟机,安全虚拟机是低级虚拟机。
12、根据权利要求11所述的方法,还包括:
使用安全虚拟机支持第一指令组;
使用应用程序虚拟机支持第二指令组;
其中第一指令组是低级虚拟机的指令集,第二指令组是高级虚拟机的指令集。
13、根据权利要求11所述的方法,其中,允许安全虚拟机和应用程序虚拟机彼此通过API进行通信。
14、根据权利要求11所述的方法,其中,由安全虚拟机来引导应用程序虚拟机。
15、根据权利要求11所述的方法,其中,媒体包括安全代码,所述方法还包括:通过应用程序虚拟机从媒体向安全虚拟机传送安全代码。
16、根据权利要求11所述的方法,还包括使用安全虚拟机解密引导代码。
17、根据权利要求11所述的方法,其中,安全虚拟机向应用程序虚拟机传送与同步事件相关的信息。
18、根据权利要求11所述的方法,其中,安全虚拟机和应用程序虚拟机具有对等关系。
19、根据权利要求11所述的方法,其中,安全虚拟机不包括例外处理能力,应用程序虚拟机包括例外处理能力。
20.根据权利要求11所述的方法,其中,安全虚拟机使用拷贝保护算法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48103403P | 2003-06-27 | 2003-06-27 | |
US60/481,034 | 2003-06-27 | ||
US60/481,066 | 2003-07-07 | ||
US60/493,072 | 2003-08-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1813244A CN1813244A (zh) | 2006-08-02 |
CN100451983C true CN100451983C (zh) | 2009-01-14 |
Family
ID=36845369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800182146A Active CN100451983C (zh) | 2003-06-27 | 2004-06-28 | 下一代媒体播放器的双虚拟机以及信任平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100451983C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011018431A1 (de) | 2011-04-21 | 2012-10-25 | Giesecke & Devrient Gmbh | Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts |
DE102011115135A1 (de) | 2011-10-07 | 2013-04-11 | Giesecke & Devrient Gmbh | Mikroprozessorsystem mit gesicherter Laufzeitumgebung |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4792895A (en) * | 1984-07-30 | 1988-12-20 | International Business Machines Corp. | Instruction processing in higher level virtual machines by a real machine |
US4831541A (en) * | 1985-12-30 | 1989-05-16 | International Business Machines Corporation | System for editing real and virtual storage and secondary storage media |
CN1208193A (zh) * | 1997-04-30 | 1999-02-17 | 索尼公司 | 信息处理设备和方法及记录载体 |
US20020161996A1 (en) * | 2001-02-23 | 2002-10-31 | Lawrence Koved | System and method for supporting digital rights management in an enhanced javaTM2 runtime environment |
US20020169987A1 (en) * | 2001-05-14 | 2002-11-14 | Meushaw Robert V. | Device for and method of secure computing using virtual machines |
-
2004
- 2004-06-28 CN CNB2004800182146A patent/CN100451983C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4792895A (en) * | 1984-07-30 | 1988-12-20 | International Business Machines Corp. | Instruction processing in higher level virtual machines by a real machine |
US4831541A (en) * | 1985-12-30 | 1989-05-16 | International Business Machines Corporation | System for editing real and virtual storage and secondary storage media |
CN1208193A (zh) * | 1997-04-30 | 1999-02-17 | 索尼公司 | 信息处理设备和方法及记录载体 |
US20020161996A1 (en) * | 2001-02-23 | 2002-10-31 | Lawrence Koved | System and method for supporting digital rights management in an enhanced javaTM2 runtime environment |
US20020169987A1 (en) * | 2001-05-14 | 2002-11-14 | Meushaw Robert V. | Device for and method of secure computing using virtual machines |
Also Published As
Publication number | Publication date |
---|---|
CN1813244A (zh) | 2006-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9003539B2 (en) | Multi virtual machine architecture for media devices | |
KR100950007B1 (ko) | 차세대 미디어 플레이어층에 대한 이중 가상 머신 및 신뢰플랫폼 모듈 아키텍쳐 | |
US11263311B2 (en) | Securing virtual-machine software applications | |
JP5443599B2 (ja) | セキュアなアプリケーションの実行を提供する方法および装置 | |
US7254586B2 (en) | Secure and opaque type library providing secure data protection of variables | |
US8307215B2 (en) | System and method for an autonomous software protection device | |
US8667600B2 (en) | Trusted computing source code escrow and optimization | |
US20080263366A1 (en) | Self-verifying software to prevent reverse engineering and piracy | |
CN103136468A (zh) | 协助用于硬件保护的应用程序的系统服务请求交互 | |
JP2005527019A (ja) | マルチトークンのシール及びシール解除 | |
JP2007529044A5 (zh) | ||
Haupert et al. | Honey, i shrunk your app security: The state of android app hardening | |
Averbuch et al. | Truly-protect: An efficient VM-based software protection | |
van Schaik et al. | Sok: Sgx. fail: How stuff get exposed | |
US20140351947A1 (en) | Method of generating execution file for mobile device, method of executing application of mobile device, device to generate application execution file, and mobile device | |
US8479014B1 (en) | Symmetric key based secure microprocessor and its applications | |
Liu et al. | Practical and efficient in-enclave verification of privacy compliance | |
CN100451983C (zh) | 下一代媒体播放器的双虚拟机以及信任平台 | |
Crăciun et al. | Malware in the SGX supply chain: Be careful when signing enclaves! | |
JP6068325B2 (ja) | セキュアなアプリケーションの実行を提供するプロセッサ | |
KR20150051835A (ko) | 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치 | |
WO2006011888A1 (en) | Dual virtual machine architecture for media devices | |
Yu et al. | A survey on key technologies of privacy leakage detection for Android platform | |
Liu et al. | Confidential attestation: Efficient in-enclave verification of privacy policy compliance | |
MXPA06000204A (en) | Dual virtual machine and trusted platform module architecture for next generation media players |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |