混淆由软件应用对数据存储装置的访问的制作方法

文档序号:9476255阅读:411来源:国知局
混淆由软件应用对数据存储装置的访问的制作方法
【技术领域】
[0001]本发明涉及混淆(obfuscate)由软件应用对数据存储装置的访问。
【背景技术】
[0002]软件应用(或程序)可以例如本地执行(在客户端设备上)或经由web浏览器通过网络来执行。浏览器应用还可以以离线模式(在本地)运行在浏览器中,表现得像本地运行的原生应用一样。
[0003]当软件应用由处理器执行时,其中履行执行的环境是所谓的“白盒”环境,如果用户(或第三方)能够访问处理使得用户可以观察并且变更软件应用的执行的话(例如通过运行合适的调试器)一一这样的变更可以是对过程流的改变或对正处理的数据的改变。软件应用的执行的该观察和/或变更可以称作篡改。用户可以观察或变更(或换言之篡改)软件应用的执行以便满足他们自己的目的或目标,所述目的或目标在如果软件应用将正常运行而没有被篡改的情况下可能是不可能得以满足的。这样篡改以实现特定的目的或目标可以称作目标导向的篡改。目标导向的篡改可以涉及例如观察和/或变更在白盒环境中运行的软件应用的执行以便获得或推断由软件应用用于处理数字数据的密码学密钥(例如用于解密数据的解密密钥)。
[0004]已知各种技术用于保护在白盒环境中运行的数据处理软件应用(或程序或系统)的完整性。可以在 Stanley Chow, Philip Eisen, Harold Johnson,和 Paul C.VanOorschot 的 “White-Box Cryptography and an AES Implementat1n”(在密码学方面的所选领域中:第九届年度国际研讨会,SAC 2002,加拿大纽芬兰圣约翰,2002年8月15-16)中找到一种示例性的技术,所述文献的全部公开内容通过引用被并入本文中。这样的技术一般目的在于通过在软件应用的控制和/或数据路径中引入附加的复杂性和/或随机性而隐藏应用的嵌入式知识。该附加的复杂性和/或随机性具有使软件应用的信息(或数据)或执行路径模糊或混淆的效应。作为该混淆的结果,变得更难以通过代码检查而从应用中提取信息并且更难以找到和/或修改与软件应用的特定功能性相关联的代码。因此,对于攻击者而言进行以下是困难得多的:能够访问在白盒环境中运行的软件应用以检索敏感数据或变更软件应用的操作以便通过篡改软件应用的执行而满足其自己的目标。因而,降低了攻击者实施目标导向的篡改的能力。目的在于降低攻击者实施目标导向的篡改的能力的这些技术可以被认为改进软件的抗篡改性。如果对于攻击者而言实施目标导向的篡改是充分困难的,那么对于任何实际的目的,软件应用可以被认为是抗篡改的,即使在理论上篡改仍是可能的。
[0005]当软件应用由处理器执行时,软件应用一般要求对数据存储装置或数据库或存储器的访问。在数据存储装置中存储的数据可以被加密或变换以便提供用于潜在攻击者的另外的屏障。这样的数据存储装置可以被视为“受保护的”数据存储装置。
[0006]以上描述的现有技术在图1中被示意性地图示。特别地,图1示出包括“受保护的”(或抗篡改的)部分12的软件应用10、以及“受保护的”数据存储装置14。然而,在应用10的受保护的部分12以及受保护的数据存储装置14之间的任何交互16对于攻击者而言仍然可见。换言之,由软件应用10对数据存储装置14的访问16对于攻击者而言是可见的。
[0007]本发明设法混淆由软件应用对数据存储装置的访问。

【发明内容】

[0008]如以上参照图1所提及的,在应用10的受保护的部分12以及受保护的数据存储装置14之间的任何交互对于攻击者而言是可见的。数据存储装置访问的简单追踪(例如,在定时、位置、模式、大小和频率方面)可以为潜在攻击者提供关于应用10为什么、如何或何时在使用该数据的足够信息,从而给予攻击者在对它进行分析中的起始点。示例是使用表单来选择偏好或输入数据一一攻击者可以将这些动作与数据存储装置访问相互关联,理解到该类信息在本地存储。一旦攻击者开始以此方式分析软件应用10的执行,应用10就可能最终被侵入(hack)。本发明目的在于使得在应用10和数据存储装置14之间存在可见/可追踪的对接16的情况下对于攻击者而言难以分析数据存储装置访问。
[0009]根据本发明的第一方面,提供了一种混淆由软件应用对数据存储装置的访问的方法。所述方法包括通过使用访问操作而访问数据存储装置。访问操作包括真实的访问操作和虚设(du_y)的访问操作。每个真实的访问操作可操作以作为软件应用的执行的部分而访问数据存储装置。
[0010]在一些实施例中,访问操作被布置以在软件应用的至少一部分的执行期间周期性地访问数据存储装置。
[0011]在一些实施例中,对于真实的访问操作中的至少一个,在所述至少一个真实的访问操作的时间附近发生一个或多个虚设的访问操作。
[0012]在一些实施例中,虚设的访问操作被布置以与数据存储装置中的其它虚设存储位置相比更频繁地访问数据存储装置中的至少一个指定的虚设存储位置。
[0013]在一些实施例中,访问操作被布置以至少跨数据存储装置中的存储位置的子集而基本上均匀地访问数据存储装置。
[0014]在一些实施例中,访问操作包括读取操作。每个读取操作可操作以从数据存储装置的相应存储位置中读取值。真实的访问操作包括一个或多个真实的读取操作并且虚设的访问操作包括一个或多个虚设的读取操作。
[0015]在一些实施例中,访问操作包括写入操作。每个写入操作可操作以将值写入到数据存储装置的相应存储位置。真实的访问操作包括一个或多个真实的写入操作并且虚设的访问操作包括一个或多个虚设的写入操作。
[0016]在一些实施例中,访问操作包括读取/写入对。每个读取/写入对可操作以从数据存储装置的相应存储位置读取值并且随后将值写入到所述相应的存储位置。真实的访问操作包括一个或多个真实的读取/写入对并且虚设的访问操作包括一个或多个虚设的读取/写入对。
[0017]真实的读取/写入对中的至少一个可以包括软件应用的真实写入操作,其可操作以在软件应用的执行期间将指定的值写入到数据存储装置的指定的存储位置。在该情况下,真实读取/写入对中的所述至少一个可操作以从指定的存储位置读取值并且随后将指定的值写入到指定的存储位置。
[0018]真实的读取/写入对中的至少一个可以包括软件应用的真实的读取操作,其可操作以在软件应用的执行期间从数据存储装置的指定存储位置读取经编码的值X。在该情况下,真实的读取/写入对中的所述至少一个可操作以从指定的存储位置读取经编码的值X并且随后将经修改的编码值X’写入到指定的存储位置。X’被选择使得X’的经解码的版本与X的经解码的版本相同。可选地,可以通过使用误差校正码ECC来对X和X’进行解码,其中 ECC(X) =ECC (X,) O
[0019]在一个实施例中,所述方法此外包括通过在软件应用的真实访问操作当中分布虚设的访问操作来执行虚设的访问操作。
[0020]在一个实施例中,访问操作包括在真实的访问操作当中的虚设访问操作的时变分布。
[0021]在一个实施例中,提供了一种混淆由软件应用对客户端设备上的本地存储装置的访问的方法。所述方法包括以下步骤:(a)生成虚设的本地存储装置访问操作,每个虚设的本地存储装置访问操作可操作以访问本地存储装置;(b)生成本地存储装置访问操作的调度,所述调度包括软件应用的所生成的虚设的本地存储装置访问操作以及真实的本地存储装置访问操作,每个真实的本地存储装置访问操作可操作以作为软件应用的执行的部分来访问本地存储装置;以及(C)根据所生成的调度而访问本地存储装置。有利地,调度包括在真实的本地存储装置访问操作当中分布的虚设的本地存储装置访问操作。
[0022]根据本发明的第二方面,提供了一种计算机程序,所述计算机程序在被处理器执行时使得处理器实施根据第一方面的方法。
[0023]根据本发明的第三方面,提供了一种计算机可读介质,其存储了根据第二方面的计算机程序。
[0024]根据本发明的第四方面,提供了一种系统,其被配置成实施根据第一方面的方法。
[0025]在随附的权利要求中阐明本发明的其它优选的特征。
【附图说明】
[0026]现在将通过示例、参照附图来描述本发明的实施例,在所述附图中:
图1是根据现有技术的由软件应用对数据存储装置的访问的示意性图示;
图2是根据本发明的一个实施例的由软件应用对数据存储装置的访问的示意性图示;图
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1