[发明专利]防篡改可信任虚拟机无效
申请号: | 200480034386.2 | 申请日: | 2004-11-09 |
公开(公告)号: | CN101305333A | 公开(公告)日: | 2008-11-12 |
发明(设计)人: | 金红霞;D·小利克;J·罗茨皮奇;S·宁;W·普罗夫 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F1/00 | 分类号: | G06F1/00 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于静;李峥 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 篡改 可信任 虚拟机 | ||
技术领域
本发明一般地涉及在虚拟计算机上运行的应用。更具体地说,本发明涉及在提供了用于使应用防篡改的方法的可信任环境中运行的应用。
背景技术
娱乐业正经历着数字革命。音乐、电视和电影正日益变得数字化,在质量和灵活性方面为用户提供了新的优点。同时,由于数字数据可以被完整并快速地复制,数字革命也包含着威胁。如果用户可以随意地复制娱乐内容并在因特网上提供该内容,那么娱乐内容的市场就会消失。
已经设计了内容保护方案来减少此威胁,例如数字权利管理(DRM)系统、用于DVD视频的内容扰乱系统(CSS)、用于DVD音频的预记录媒体的内容保护(CPPM)等等。这些系统都具有以下特征:实现这些系统的软件需要是“健壮的”,即,所述软件可以阻挡黑客从所述软件提取机密(密钥)或者修改所述软件的行为以获得未授权功能的攻击。阻挡此类攻击的技术被称为防篡改软件。
通常的理解是防篡改软件与“开放源代码”的概念相冲突,前提是黑客可以更容易地危害开放源代码程序的安全。但是,开放源代码内容保护方案提供了不容置疑的优点。开放标准可以防止市场分割并避免专有解决方案排除竞争。此外,开放源代码内容保护方案实际上可以帮助降低黑客攻击的级别。对DVD视频CSS方案的公知破解很大一部分是通过来自内部人员的泄漏来实现的。这些内部人员显然受到在开放源代码平台Linux上拥有DVD播放器的愿望的驱动。
同时,对于许多应用,Java语言已取代了计算机C语言。Java语言通过将源程序转换成被称为Java虚拟机(“JVM”)的假想计算机的指令(称为字节代码)来实现。
Java虚拟机并不是实际的硬件计算机,而是解释所述字节代码并在给定的物理计算机上实现它们的功能的程序。此方法给定了Java可移植性;所述语言可用于所有类型的计算机甚至可用于诸如蜂窝电话、立体声系统以及电视机机顶盒之类的嵌入式设备中。
许多公司已生产出其指令集与Java虚拟机相同的计算机。在这种情况下,所述Java虚拟机是实际的而并非虚拟的。但是,按照惯例(将在此采用的惯例),此类实际计算机仍被称为“Java虚拟机”。
内容保护的一种方法使用Java虚拟机来实现内容保护方案的健壮性要求。在此方法中,所有机密数据和算法都不在Java中实现;相反,它们被“内装”到Java虚拟机本身。此外,Java虚拟机提供了“沙箱”环境以便阻止未授权的行动。例如,当Java虚拟机正在处理受保护的内容时,Java的正常文件写入机制被禁用。有利地,无需验证Java代码自身的完整性。
此“沙箱”通过Java代码防止了任何未授权的行为。每个内容保护方案的重要逻辑都隐藏在Java虚拟机自身内的防篡改环境中。尽管此技术已被证明是有用的,但是仍希望提供其中机密数据和算法无需在Java虚拟机中被实现并且它们可以在Java中被实现的解决方案。此类解决方案具有其可以支持“开放源代码”概念的额外优点。
与机密算法相反,多数内容保护应用都涉及机密数据(密钥)。某些内容保护方案(如水印方案)还涉及机密算法。对于黑客来说,从字节代码导出原始Java程序要相对容易。传统的“字节代码困惑”程序实际上几乎不阻止此操作,而只是使变量、方法和类的名称变得混乱。需要一种包括用于字节代码的强加密保护(如果必要)的解决方案。
某些内容保护方案使用“安全计数器”。例如,DVD音频用户被允许只进行一定数量的复制。用户可以仅通过在其硬盘上保存或重新存储某些文件来重置这些计数器。用户还可以将其受保护的文件复制给某些朋友,并由此复制原始用户已购买的内容。需要一种解决内容保护的这些基本缺陷的解决方案。
Java语言提供了相对的“公共”和“私有”的概念。每个方法或子例程都被声明是公共的、私有的还是两者都不是。公共方法最初旨在用于Java应用的外部接口。私有方法旨在用于不能被外部地调用的Java应用内的所有函数。既不是公共也不是私有的方法旨在用在“软件包”(一组相关的Java类)内。
但是,大型的Java应用包括许多Java“软件包”,并且因此几乎每个函数都必须是公共的。黑客可以将这些公共方法用作“后门”,导致应用以未授权的方式运行。甚至在单个软件包内,黑客也可以通过只是将其自己的类添加到所述软件包中来简单地使软件包保护失效。应用设计者很难验证他或她并未无意中暴露某些黑客可能利用的内部但是“公共的”接口。需要一种防止暴露方法和函数的虚拟机语言,将安全问题从应用移至虚拟机语言。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200480034386.2/2.html,转载请声明来源钻瓜专利网。