本发明专利技术涉及在包括可重新配置的硬件组件(311)的硬件平台(301)上执行计算机可读指令,其中所述可重新配置的硬件组件(311)诸如是现场可编程门阵列(FPGA)。根据重新配置集来重新配置该可重新配置的硬件组件,并且至少部分地在已重新配置的硬件组件上执行第一应用,由此生成一个输出。本发明专利技术提供一种混淆和防止篡改要在硬件平台上执行的软件的方式。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种在包括可重新配置的硬件组件的硬件平台上执行计算 机可读指令的方法。此外,本专利技术涉及一种计算机程序产品以及用于实现 本方法的设备。
技术介绍
销售在开放平台上运行的软件的软件供应商可能要面临 一个基本的问题。这个问题发生在这种情况下该软件包含应始终保持隐藏的机密,例 如数字版权管理(DRM)应用中的私有算法和密钥。在开放平台上,已经 获得程序拷贝的个人拥有全部能力来仔细检查和反汇编该程序的代码,例 如通过逆向工程,由此而得以识破或者甚至访问口令、密钥、证书以及了 解具体算法等。这样的人通常被称作为攻击者。也有可能例如通过绕开IF 语句、替换密钥、删除/插入代码来修改代码。结果,这样的人可以导致 代码停止按照依从规则(compliance rule)运转、置入病毒/蠕虫/特洛 伊木马等。.可以通过软件混淆(obfuscation)来阻碍对软件代码的攻击,其中代 码被转换为一种混淆形式,在这种形式下该代码难以被理解,因而也难以 4皮进行窥视或^皮进行逆向工程。在 Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE'04)的论文 "Flexible Software Protection Using Hardware/Software Codesign Techniques" (636页, Zan)breno, J等人,2004 )中,公开了 一种把保护编译器技术与可重新配 置的硬件支持相结合的方法。在该论文中公开了用基于FPGA(基于现场可 编程门阵列)的安全硬件组件对处理器进行补充。专利技术概要本专利技术寻求提供一种在硬件平台上执行计算机指令的改进方法,以下 可以看作是本专利技术的目的提供在硬件平台上以安全的方式执行计算机指 令的手段,以使得对软件代码的篡改、逆向工程以及其它攻击被禁止或至 少使其复杂化。在上面所提到的Zambreno等人的论文中,现场可编程门致性检验。本专利技术的专利技术人已经洞察到通过使用在其上能执行定制的计 算机指令的FPGA或另一可重新配置的硬件组件中的普通实现,提供一种 防止篡改硬件平台的改进的和有利的方式。优选地,本专利技术单个地或以任 意组合的方式减轻、緩和或消除现有技术的一个或更多的不利之处。根据本专利技术的第 一方面,提供一种在包括可重新配置的硬件组件的硬 件平台上执行计算机可读指令的方法,该方法包括-冲艮据重新配置集(reconfiguration set)来重新配置可重新配置的硬 件组件;-至少部分地在已重新配置的硬件组件上执行第一应用,并且从第一 应用生成输出。本专利技术提供一种对将要在硬件平台上执行的软件进行混淆和防止篡改 的方法。在对可重新配置的硬件组件进行重新配置后,攻击者实际上面对 的是对于每一个新的软件应用(或甚至相同应用的新发布版)的新的且未 知的硬件平台。因而没有工具可利用来对运行在这种新平台上的代码或指 令进行反汇编。用于重新配置可重新配置的硬件组件的指令可以是第 一应 用的一部分。替换地,为该目而执行单独的应用。重新配置集可以连同第 一应用一起或与之分开地被提供。例如,重新配置集可以是第一应用的一 部分,它们(即重新配置集和第一应用)可以是分开的实体,但被一起提 供在例如存储设备上;或者它们可以是分开的实体,其中第一应用被指令 如何访问重新配置集,例如经由网络、经由存储设备等。在有利的实施例中,可重新配置的硬件组件可以是FPGA,但替换地可 以使用其它类型的可重新配置的硬件组件。可重新配置的硬件组件比在标 准PC存储器中进行的活动更难以进行运行时(run-time)观测。典型地 攻击者可能结合详查应用而监视总线上的业务量。对于诸如FPGA的可重 新配置的硬件组件,不存在总线,因而访问被发送给或来自于FPGA的数 据以及正在FPGA中进行处理的数据是很困难的或者甚至是不可能的。因 此,本专利技术可以提供这样一种状况,其中可重新配置的硬件组件不能由固 定的硬件组件进行运行时4全查。公开了有优势的实施例,其中可重新配置的硬件组件可以被设置成在 不同的模式中进行操作或作为操作模式的组合进行操作,包括作为CPU进 行操作,其适合于并行处理或形成神经网络。能够应用不同的操作模式是有利的,因为由此提供了一种保护软件免受攻击的通用的、灵活的方式。公开了有优势的实施例,其中可以根据第 一应用的输出而设置访问级 别。可以根据对硬件平台的、或与硬件平台关联的各种部分的完整性测试, 对访问级别进行设置。设置访问级别是一种提供对数据、对软件和硬件应 用、对服务、对连接等的有条件访问的有利方式。在有利的实施例中,第一应用使能执行诸如与加密内容关联的解密指 令(例如伴随加密内容)之类的指令,因而提供对加密内容的安全访问。 重新配置集可以伴随以加密内容,例如重新配置集可以连同加密内容一起 被递送。将重新配置集连同加密内容一起递送可以是一种提供配置参数集 的便利方式。作为另一优势,本专利技术考虑以这样一种方式混淆可重新配置的硬件组件的功能性,即功能性并不是从重新配置数据的检查显而易见的。实际上,-波混淆的代码或指令甚至比非混淆的可重新配置的硬件组件更难以进4亍逆向工禾呈。在本专利技术的其它方面中,提供一种计算机程序产品,其被安排成使得处理器执行笫 一方面的方法;还提供一种包括硬件平台和可重新配置的硬 件组件的设备,其被安排成执行第一方面的方法。结合。本专利技术的这些和其它方面、特征和/或优势将从下文描述的实施例 变得明显,并将参考所述实施例予以阐述。附图简介仅作为例子,将参考附图对本专利技术的实施例进行描述,其中附图说明图1举例说明第 一应用和硬件平台之间的关系的 一般性示意总图2举例说明本专利技术的实施例的流程图;和图3举例说明一种装备有根据本专利技术实施例的硬件平台的再现设备。 具体实施例方式在本专利技术中,可重新配置的硬件被用于在个人具有全部能力详查应用 的平台上进行软件混淆。软件载有用于重新配置硬件的指令、以及将要在 新近配置的硬件上执行的另外指令。新的配置代表新的平台,它对于攻击 者而言还是未知的,这有利于对软件进行混淆。6在实施例中,硬件平台的处理器^皮补充以可重新配置的^/f牛组件,其 为现场可编程门阵列(FPGA),在其上软微处理器被实现,即重新配置集描述了微处理器,因而将可重新配置的逻辑与通用CPU组合在一起。在这一方案中,专用计算机语言汇编器将子程序汇编为位屏蔽以配置该逻辑。典型地,程序的其他的、不太关键的部分能够通过在CPU上共享它们的时 间而被运行。FPGA是包含象或门和与非门之类的可编程逻辑组件的半导体 器件。这样的门能以可编程的方式被组合为更复杂的功能,甚至有可能在 FPGA上"编程"微处理器功能性,包括它自己的指令集。通过对FPGA重 新编程,可以获得新的功能性。可以采用可替换的另外类型的可编程逻辑 器件来代替FPGA,例如复杂可编程逻辑器件(CPLD)。可以借助于硬件描 述语言(HDL ),例如VHDL和Verilog,通过按照所使用的HDL定义重新 配置集,从而对FPGA的行为进行定义。以实现。在典型的实现中,该硬件平台可以在诸如硬盘记录器或DVD设备 本文档来自技高网...
【技术保护点】
在包括可重新配置的硬件组件(21,311)的硬件平台(20,301)上执行计算机可读指令的方法,该方法包括: -按照重新配置集(26)来重新配置该可重新配置的硬件组件; -至少部分地在已重新配置的硬件组件上执行第一应用(10), 并且从第一应用生成输出(25,108)。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:B斯科里克,FLAJ坎帕曼,
申请(专利权)人:皇家飞利浦电子股份有限公司,
类型:发明
国别省市:NL[荷兰]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。