CN1729457A - 主动检测软件窜改的系统和方法 - Google Patents
主动检测软件窜改的系统和方法 Download PDFInfo
- Publication number
- CN1729457A CN1729457A CNA2003801069413A CN200380106941A CN1729457A CN 1729457 A CN1729457 A CN 1729457A CN A2003801069413 A CNA2003801069413 A CN A2003801069413A CN 200380106941 A CN200380106941 A CN 200380106941A CN 1729457 A CN1729457 A CN 1729457A
- Authority
- CN
- China
- Prior art keywords
- key
- software
- key value
- log
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 75
- 238000012550 audit Methods 0.000 claims abstract description 33
- 230000008520 organization Effects 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 39
- 238000001514 detection method Methods 0.000 claims description 14
- 230000004069 differentiation Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000013474 audit trail Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000218692 Cryptomeria Species 0.000 description 1
- 241001379910 Ephemera danica Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/316—User authentication by observing the pattern of computer usage, e.g. typical user behaviour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
Abstract
利用动态演变审查日志(404)主动检测软件侵入,其中,在审查日志(404)中生成日志项目,并根据依赖于以前的日志(404)项目和以前的密钥(406)两者的单向函数(408)使密钥值(408)演变。将含有生成的日志项目的审查日志(404)和最终密钥值发送到清算机构(410),清算机构(410)通过分析这些值检测软件侵入。为了尽力缩小要发送的日志(404)的大小,将相同值指定给日志项目,从而只需将一个日志项目和最终密钥值发送到清算机构(410)。
Description
技术领域
本发明一般涉及软件安全的领域。更具体地说,本发明涉及软件窜改的检测。
背景技术
随着用于电影和音乐的数字技术的出现,未授权复制的问题已经变得很严重。数字复制品是完全相同复制品,为了防止它们在因特网上被广泛地重新分发,人们开发了诸如DTCP(数字传输内容保护)和CPRM(可记录媒体的内容保护)之类的许多内容保护技术。这些技术在它们的许可证中具有“健壮性条款”,其中,这样许可证中的条款为抗窜改实现提供了保证。抗窜改技术,尤其软件抗窜改技术的开发已经变成朝阳产业。
大多数侵入检测机制都用在受到损害之后,因此,是反应性的。术语“主动性安全”指的是在最后受到损害之前的进程中,譬如,在执行软件期间检测出了什么毛病。现有系统无法为主动性安全机制提供保证来抗击软件的逆向设计(reverse-engineering)。这些现有系统无法识别黑客在逆向设计尝试期间留下的证据。因此,需要在黑客成功窜改之前和在他们访问诸如秘密密钥之类的重要信息之前,主动检测正在进行的逆向设计进程(从而,通过将黑客攻击扼杀在萌芽之中,防止真正损害发生)。
一般说来,现有侵入检测系统是反应性的,它们利用现有知识来监视异常。监视这样异常的一种方式是保留“审查日志”。使用审查日志的一般概念已经存在很长时间。但是,当应用于特定“检测”目的时,“审查日志”方案才表现良好和更加实用。在这种情形下,人们需要识别为了检测目的和应该跟着的核实进程而需要放入日志中的信息。使日志中信息满足某些特性不仅可以不时地使方案更加有效(就缩小日志大小和创建更有效核实进程而言),而且可以保证核实进程和检测目标异常。
另一个相关概念是“正向安全”,正向安全是已经认可的和出现在有关安全的文献中的正式特性。正向安全包括在已经发生窜改之后防止旧代码或日志遭到破坏的方法。未来的行动可能不可信,但先存可信项目仍然未泄密。
发明内容
因此,本发明的一个方面是提供使客户机能够通过半可信万维网服务器访问来自原始万维网服务器的限制信息的方法。
本发明的另一个方面是提供使客户机能够通过半可信万维网服务器访问来自原始万维网服务器的限制信息的设备。
本发明的另一个方面是降低将cookies用于验证的安全风险。
本发明的另一个方面是保护存储在半可信万维网服务器上的数据。
在本发明的例子中,客户机将使用这里公开的方法访问半可信万维网服务器上的限制信息。
如下参考文献为反应性侵入检测机制的一般描述提供保证。
Drake的美国专利(6,006,328)公开了用于计算机软件验证、保护和安全的方法。该方法涉及用直接与硬件通信的等效代码(消除了易受攻击性)替代易受攻击代码(例如,易被窃听),并禁止系统中断或允许流氓软件窃听的其它功能。窜改检测技术用在软件内或被软件访问,以便如果检测到窜改,就不许ID数据的随后项目进入输入例程中。公开的发明为如下步骤提供了保证:执行RAM(随机访问存储器)或其它图像的代码检验和;将存储器与可执行代码的其它存储副本相比较和/或解密进入进程;检查可执行环境;将可执行大小与期望值相比较;向第三方人员或进程通知和/或传输验证失败详细资料;和记录与用法和/或用户的详细资料有关的日志(输入例程或安全进入进程)。
Auerbach等人的美国专利(5,673,316)为创建和分发密码封套提供了保证。其中公开了含有用部分加密密钥和公开密钥加密每个部分的信息部分的集合体的封套。然后,用秘密密钥签名列表以生成也包括在封套中的签名。
Pearson的欧洲专利(EP1076279-A1)公开了含有参照签名版本和公开密钥证书完整性检验的许可证相关代码的计算机平台。计算机平台或可信模块形成在表现得像用户所期望的那样的可信环境内可以发生许可检验的防窜改部件。相关清算机构机制允许对数据加以登记和支付。该系统还允许本地用户或远程实体核实平台的完整性。
Allen等人的美国专利(4,757,533)公开了将硬件和软件结合在一起以提供用户和文件访问的防窜改保护的用于个人微型计算机的安全系统。公开的芯片之一提供了审查痕迹日志、保护和加密系统标志和用户访问权限,其中,这个芯片保证了只有有效用户才能访问。
外国专利WO200077597 A1、WO200114953 A1和WO200O77596 B1一般性地公开了涉及转换计算机软件代码中的数据流,以便将转换代码的可观察操作与原始软件代码的用途割裂开的抗窜改方法。这些方法为使计算机软件抗窜改和抗逆向设计提供了保证。
Stanton等人的外国专利(WO9904530 A1)公开了将会话密钥用作数据加密密钥防止窜改的文件加密方法。该方法使用基于允许合法机构紧急访问文件的共享秘密密钥或公开-专用密钥密码体制的强加密算法。
Bellare等人名称为“安全审查日志的正向完整性(Forward Integrity ForSecure Audit Logs)”的非专利文献提供了保持审查日志的安全性的方法。公开的申请包括:保护侵入检测或追究的审查日志(例如,系统日志(syslogd)数据)、通信安全和为移动代理器验证部分计算结果。
Song名称为“实用正向安全组签名方案(Practical Forward Secure GroupSignature Schemes)”的非专利文献为正向安全方案减轻密钥暴露引起的损害提供了保证。
不管上面引用的参考文献的精确价值、特征和优点如何,没有一篇能够取得或实现本发明的目的。
本发明公开了根据动态演变审查日志和密钥值主动检测软件窜改的方案,其中,检测是主动的。密钥值根据取决于以前日志项目和以前密钥两者的单向函数演变。审查日志(含有生成的日志项目)和最终密钥值两者都传送给通过分析这些值检测软件侵入的清算机构。在一个特定实施例中,日志项目值是相同的,从而缩小要传送的日志的大小。在这个实施例中,在传送到清算机构期间,只有最终密钥值和一个日志项目需要传送。因此,本发明通过将“完整性检验”记录到日志中使用完整性检验,以便在软件执行期间检测正在进行的黑客攻击进程。公开的方法将“完整性检验”和“正向安全”结合成一种工作方案,并以黑客攻击进程不能逃避检测的方式应用这种方案来主动检测窜改软件的黑客。
在推广的实施例中,本发明的方案进一步包括对检测的窜改作出响应的步骤,其中,该响应包括如下步骤的任何一个或它们的组合:断开软件代码用户;废除软件代码用户的设备密钥;拒绝软件代码用户对附加内容的请求;在发送给用户的软件代码或内容中增加完整性检验的类型的数量和多样性;增加定期发送所述审查日志和最终密钥的频率;和将所述检测窜改通告给系统管理者。
在另一个推广的实施例中,通过确定是否超过日志项目异常的预定阈值检测(在清算机构上)窜改。一旦超过预定阈值,清算机构可以使用上述响应的任何一个。
附图说明
图1例示了密钥演化独立于日志项目值的一般方法;
图2例示了密钥演化使用日志项目值的本发明方法的一个实施例;
图3例示了本发明的单个密钥实施例;和
图4例示了实现公开在图2和3中的实施例的系统的概况。
具体实施方式
虽然本文以优选实施例的方式对本发明加以例示和描述,但本发明可以用许多不同的配置、形式和素材形成。画在附图中的和这里详细描述的是本发明的优选实施例,但应理解为本公开被当作本发明的原理和其结构的相关功能说明的示范,而非打算使本发明局限于所例示的实施例。本领域的普通技术人员可以在本发明的范围内设想出许多其它可能变种。
应该注意到,自始至终用在本说明书中的术语“用户”指的是试图窜改软件代码(譬如,与如下有关的软件代码:万维网浏览器程序;声卡驱动器;游戏控制台程序;Java小应用程序;或嵌在诸如图像、音乐或视频文件之类的多媒体内容中的宏)的不可信计算机(例如,顶置盒、PC(个人计算机)、PDA(个人数字助理)、视频游戏控制台等)的操作者。另外,术语“日志”指的是利用一组项目描述对于软件代码的执行到底发生了什么的审查痕迹。在一种实现中,这些项目描述嵌在软件代码中并由软件代码执行的完整性检验的结果(例如,一块代码的检验和)。
本发明为利用审查痕迹检测异常的系统和方法提供了保证。应该注意到,软件在客户机方(例如,在不友好用户的机器上)运行的情形是想像得到的。因此,威胁来自不可信用户本身。这种类型的威胁特别值得注意,简单地说,这是因为黑客不仅可以访问和窜改代码,而且还可以窜改审查痕迹。因此,在这种情况下,痕迹本身需要保护,以便黑客没有办法不被检测地删除痕迹中的任何旧项目。不过,过了一会,仍然存在黑客完全明白记入机制的可能性,从那时开始,不能信任痕迹中的新项目。但是,根据本发明,黑客不能回头修改日志中的项目。
这里所述的发明是在软件执行期间将“正向安全”特性应用于完整性检验,以便主动检测软件窜改进程的方案。当用户进行连接获取新内容时,容易检测到日志的任何截断、日志的删除或旧有效日志的替代。假设在黑客完全明白特定软件程序之前,他将触发已经记入的许多“完整性检验”故障。因此,根据本发明,黑客无法不被检测地逆向设计软件。
正向安全是通过使进入日志的信息动态演变取得的。例如,在开始执行的时候选择随机数作为密钥,然后,这个密钥用于将项目记录到日志中。利用单向函数使这个密钥演变成新密钥,然后,擦除(改写)旧密钥。接着,新密钥用于将信息记录在日志中。该密钥可以用于生成信息、决定记录什么信息、加密记录,或用于任何其它用法。因此,进入日志中的项目是利用单向函数演变的密钥的函数。例如,在时间t,黑客发现他/她的行为被记录到日志中,但他/她没有办法回头弄清楚以前的密钥(时间t之前),以便伪造已经记录在日志中的信息,试图使日志看起来是正确的。
定期将日志与清算机构连接并发回清算机构(清算机构是定期接收日志、检验日志、通过将日志内容与适当日志内容相比较确定是否已经发生了窜改的实体)。同时,一边软件正在记录随着代码执行发生的事情,另一边在清算机构中相同的初始随机数(密钥)以同步的方式演变。清算机构知道应该进入日志中的确切信息。然后,发生在清算机构中的核实/检测进程可以是返回日志和清算机构利用从一次连接到下一次连接不断地演变的相同演变密钥计算的正确信息之间的简单比较。如果不可信用户替代旧有效日志,密钥将是不正确的。如果用户提交截断日志,那么,下一次发送日志的时候,密钥将是不正确的。第一次在日志中检测异常时,清算机构可以提醒管理者。管理者下一次可以注意同一用户或选择向用户发出警告。当累积到“足够多”的窜改证据(例如,超过阈值)时,可以将用户与网络断开并不许用户将来接收新的内容分发。
这种方案所涉及的基本步骤:
(1)决定(decide on)进行完整性检验的地方和需要什么类型的完整性检验。所有类型的完整性检验都在范围之内。例如,测试一块代码的检验和可以是完整性检验之一。
(2)选定单向函数,譬如,C2_G、MD5或RSA。C2_G(Cryptomeria单向函数)是用在称为CPRM的众所周知内容保护方案中的单向函数。MD5(消息摘要#5)是在数字签名操作中通常用作密码散列函数的单向函数。RSA是分类公开密钥加密算法。RSA加密算法对于不包含相关专用密钥的任何一个都起单向函数的作用。
(3)将完整性检验信息嵌入要保护的代码中,以便在在步骤(1)中确定的点上生成日志项目并当发生时利用单向函数使密钥演变。
(4)将日志发回清算机构,而清算机构核实日志和检测窜改进程或确定是否发生了窜改。
图1例示了密钥演化独立于日志项目值的一般方法。日志的大小是无界的。单向函数f1用于使密钥独立于完整性检验值v_i地演变f1(k_i)->k_i+1。另一个函数f2使用完整性检验值v_i上的密钥生成日志项目。函数f2可以是,例如,用值v_i加密密钥k_i,但是,也可以用其它f2函数替代。由于利用单向函数使密钥演变,在黑客窜改成功和获得当前密钥k_i的时间t,黑客仍然没有办法知道以前的密钥k_0...k(i-1)。因此,黑客不能回头伪造已经记录的任何日志项目。当将日志项目发回清算机构时,清算机构可以重复f2计算并在两种意义上核实日志项目是否正确:它们被正确加密,而完整性检验值指示没有发生窜改。由于黑客攻击进程在一些完整性检验值v_i上的失败,日志项目将是不正确的,可以被清算机构检测到。
在本发明的基本方法(如上所述)内,存在与步骤(3)-(4)相联系的两个不同实施例。下面提供两个实施例的每一个的简要描述。
实施例A:图2例示了密钥演化使用日志项目值的本发明方法。在这种模式中,单向函数使用当前密钥k_i和当前完整性检验值v_i生成新密钥k-(i+1)。在日志中,只输入当前完整性检验值v_i。日志项目与获得的最终密钥k_n被发回清算机构。当软件受到黑客攻击和黑客窜改了一些完整性检验值v_i时,密钥演变是错误的。因此,清算机构可以使用k_0和日志项目值v_O...v_n使密钥演变并检测窜改进程。首先,它核实利用观察的日志项目v_i的确可以获得返回的k_n。这是确定黑客还没有窜改日志中的任何v_i值。然后,清算机构检验实际v_i值,看一看是否存在在软件执行期间窜改的证据。黑客以后可以得知应该存储起来的正确完整性检验值v_i;但不幸的是,这对黑客来说没有任何用处。首先,函数f是有关k和v两者的。当黑客第一次摸索时,这是他/她无法进行完整性检验和获得错误完整性检验值v_i的原因。当黑客最终在黑客攻击上取得成功和在他/她的黑客攻击进程中弄清楚正确完整性检验值v时,黑客只知道当前密钥k-n,而不能知道以前的密钥k_0...k_(n-1),而黑客仍然没有办法知道正确的k-n值应该是什么。因此,清算机构总是可以检测到黑客攻击进程。其次,如果黑客试图将所有正确完整性检验值v_i都恢复到日志中,那么,清算机构将知道黑客正在试图伪造日志,因为值k_n不会与观察到的v_i一致。
因此,实施例A使实际日志处在干净状态(只输入当前完整性检验值v_i)。在某些应用中可以有利地利用这个方面。
实施例B:图3例示了本发明的单个密钥实施例。前一实施例需要将整个日志发送回到清算机构。日志本身随着时间的流逝可以变得非常大。这个实施例B是图1的一般方法的变种,目的在于缩小日志的大小。在完整性检验期间,当每检验成功时,可以使完整性检验值成为固定默认值v。换句话说,只有当完整性检验失败时,检验值才是除了v之外的其它不同值。在这种情况下,最后k_n和日志的长度N是需要存储和发送回到清算机构的唯一值,因为正确的日志只不过是N个值v的序列。清算机构可以利用函数f进行密钥计算和核实k_n是否正确。如果在软件执行期间所有完整性检验都是成功的,最后k_n必定正确。如果在执行期间任何一次完整性检验失败了,完整性检验值就不同于v,密钥演变进程是错误的(即,由于f是单向函数,决不会再次生成正确值)。
为了缩短出现在清算机构中的核实计算进程,这样选择单向函数f,使任何有效密钥值k_i共享公共特性,并且与无效密钥值不同。然后,清算机构只需要核实那个特性是否成立。它不需要再次执行密钥演变进程。例如,如果单向函数是RSA类计算和v=1:
ki=(vki-1)3mod pq (p和q是大素数)
然后,清算机构可以核实:
kn=k0 3nmod pq
黑客或不知道因子p和q的其它任何人不能对mod pq开3n次方根,使密钥向后演变,从而保持了正向安全特性。
密钥k_i需要存储在非易失性存储器中,以便不用让用户关掉电源来重置k演变。对于最终用户来说,恢复以前的值也很重要,因此,简单地将密钥k_i存储在文件中通常是不够的。应该注意到,本发明被设想成用在存在存储内容密钥和用法计数的完全相同问题的内容保护应用中。
本发明的另一个推广涉及当日志具有固定大小时回绕的使用,问题出在超过固定大小的时候。实施例B是这种情况的极端情况(可以认为实施例B是大小为1的日志)。在图1的一般方法中,如果日志具有固定长度N,即使由于回绕而一些已经丢失了,但只要清算机构知道已经记录的日志项目的总数,一切都会正常运行。利用总数,清算机构可以计算密钥演变和读取最后N个项目。应该注意到,以前的项目将被改写,但当存在固定长度日志时,那是不可避免的。但是,实施例A在日志具有固定长度时,需要多一点帮助。如果由于被改写而丢失了一些日志项目,清算机构不能计算密钥演变和读取最后N个值。
于是,本发明通过将“完整性检验”记录到日志中来使用完整性检验,以便在软件执行期间检测正在进行的黑客攻击进程。公开的方法将“完整性检验”和“正向安全”结合成一种工作方案,并以黑客攻击进程不能逃避检测的方式应用这种方案主动检测窜改软件的黑客。
图4例示了实现本发明的上述实施例(A和B)的系统400的概况。方块402代表存在嵌入式完整性检验的一块软件代码。如上所述,可以设想出各种各样的完整性检验。例如,完整性检验可以是测试一块软件代码402的检验和。方块404和406分别代表审查日志和演变密钥。单向函数408用于使密钥值406演变,其中,单向函数依赖于以前的日志项目(在审查日志404中)和以前的密钥。在特定实施例中,密钥值存储在非易失性存储器405中。审查日志中的值和最终密钥值被发送到清算机构410,然后,清算机构410分析这些值(利用单向函数再现一系列密钥值并将该系列与分配到404中的日志项目中的密钥相比较)以检测软件侵入。最后,如果清算机构检测到软件侵入,将响应412发送给诸如系统管理者之类的适当人员414。应该注意到,发生密钥演变的位置不应该用于限制本发明的范围。例如,上述密钥演变方案可以在清算机构410中实现。
另外,本发明为包括使其成为最健壮的包含在一个或多个模块内的计算机可读程序代码的制品提供了保证。并且,本发明包括基于计算机程序代码的产品,这种产品是含有存储在其中的可以用于命令计算机执行与本发明有关的任何一种方法的程序代码的存储媒体。计算机存储媒体包括如下的任何一种(但不局限于此):CD-ROM(只读光盘存储器)、DVD(数字多功能盘)、磁盘、光盘、硬盘、软盘、铁电体存储器、闪速存储器、铁磁体存储器、光存储器、电荷耦合器件、磁卡或光卡、智能卡、EEPROM(电可擦除可编程只读存储器)、EPROM(电可编程只读存储器)、RAM(随机访问存储器)、ROM(只读存储器)、DRAM(动态随机访问存储器)、SRAM(静态随机访问存储器)、SDRAM(同步动态随机访问存储器)和任何其它适当的静态或动态存储器或数据存储器件。
在基于计算机程序代码的产品中实现的是完成如下步骤的软件模块:(a)生成审查日志中的日志项目;(b)使密钥值根据单向函数演变,其中,单向函数依赖于以前的日志项目和以前的密钥两者;和(c)帮助含有生成的日志项目的审查日志和最终密钥值发送到清算机构,该清算机构通过分析所述日志项目和所述最终密钥值检测软件侵入。
结论
在上面有效实现系统和方法以便主动检测软件窜改的实施例中已经示出了系统和方法。虽然已经示出和描述了各种各样的优选实施例,但本领域的普通技术人员应该明白,我们的意图不是通过这样的公开来限制本发明,而是打算涵盖如所附权利要求书限定的、在本发明的精神和范围内的所有变型和可替代结构。例如,本发明不应该受软件代码的类型、完整性检验的类型、单向函数的类型或计算环境限制。
上面的改进是在各种各样的计算环境下实现的。例如,本发明可以在传统IBM PC(美国国际商用机器公司的个人计算机)或等效多节点系统(例如,LAN(局域网))或联网系统(例如,因特网、WWW(万维网)、无线网络)上实现。所有程序设计和与之有关的数据都存储在计算机存储器(静态或动态)中,并可以由用户通过如下任何一种方式检索:传统计算机存储器、显示器(即,CRT)和/或硬拷贝(即,打印)方式。本发明的程序设计可以由熟悉现有安全/加密程序设计的普通技术人员实现。
Claims (33)
1.一种利用动态演变审查日志主动检测软件侵入的方法:所述方法包括如下步骤:
a.生成所述审查日志中的日志项目;
b.使密钥值根据单向函数演变,所述单向函数依赖于以前的日志项目和以前的密钥两者;和
c.将含有所述生成日志项目的所述审查日志和最终密钥值发送到清算机构,所述清算机构通过分析所述日志项目和所述最终密钥值检测软件侵入。
2.根据权利要求1所述的方法,其中,所述日志项目是基于软件执行的完整性检验结果。
3.根据权利要求2所述的方法,其中,所述完整性检验包括对一部分软件代码的检验和计算。
4.根据权利要求1所述的方法,其中,所述日志项目的值是相同的。
5.根据权利要求1所述的方法,其中,所述审查日志的大小是有限的,从而所述日志项目形成回绕的审查日志。
6.根据权利要求1所述的方法,其中,在产生下一个密钥值之后,删除以前的密钥。
7.根据权利要求1所述的方法,其中,使密钥演变的所述步骤与所述清算机构独立地执行。
8.根据权利要求1所述的方法,其中,所述清算机构所作的所述分析包括利用所述单向函数再现一系列密钥值并将所述系列与分配到所述日志项目中的密钥相比较。
9.根据权利要求1所述的方法,其中,密钥值的所述演变发生在所述生成步骤上。
10.根据权利要求1所述的方法,其中,密钥值的所述演变发生在所述发送步骤上。
11.根据权利要求1所述的方法,其中,所述密钥在数字上具有不同的特性。
12.根据权利要求1所述的方法,其中,所述密钥值存储在非易失性存储器中。
13.根据权利要求1所述的方法,其中,所述发送定期发生。
14.根据权利要求1所述的方法,其中,所述发送发生在第三方执行软件代码期间。
15.根据权利要求1所述的方法,其中,如果已经超出日志项目异常的阈值,所述清算机构检测软件窜改。
16.一种包括含有具体化在其中的有助于利用动态演变审查日志主动检测软件侵入的计算机可读程序代码的计算机可用媒体的制品,所述媒体包括:
a.生成所述审查日志中的日志项目的计算机可读程序代码;
b.使密钥值根据单向函数演变的计算机可读程序代码,所述单向函数依赖于以前的日志项目和以前的密钥两者;和
c.有助于将含有所述生成日志项目的所述审查日志和最终密钥值发送到清算机构的计算机可读程序代码,所述清算机构通过分析所述日志项目和所述最终密钥值检测软件侵入。
17.一种利用动态演变审查日志主动检测软件侵入的方法,所述方法包括如下步骤:
a.将完整性检验嵌入软件代码中;
b.生成所述审查日志中具有相同日志项目值的日志项目;
c.使密钥值根据单向函数演变,所述单向函数依赖于以前的日志项目和以前的密钥两者;和
d.将所述相同日志项目值和最终密钥值发送到清算机构,所述清算机构通过分析所述相同日志项目值和所述最终密钥值检测软件侵入。
18.根据权利要求17所述的方法,其中,所述软件代码可以包括:万维网浏览器、声卡驱动器、游戏控制台程序、Java小应用程序、嵌在其它数字内容中的宏。
19.根据权利要求18所述的方法,其中,所述数字内容包括如下的任何一种:图像、音乐、视频或数据库文件。
20.根据权利要求17所述的方法,其中,所述方法进一步包括对检测的窜改作出响应的步骤,所述响应包括如下步骤中的任何一个或它们的组合:断开软件代码用户;废除软件代码用户的设备密钥;拒绝软件代码用户对附加内容的请求;在发送给用户的软件代码或内容中增加完整性检验的类型的数量和多样性;增加定期发送所述审查日志和最终密钥的频率;和将所述检测窜改通告给系统管理者。
21.根据权利要求17所述的方法,其中,所述审查日志的大小是有限的,从而所述日志项目形成回绕的审查日志。
22.根据权利要求17所述的方法,其中,所述完整性检验包括对一部分所述软件代码的检验和计算。
23.根据权利要求17所述的方法,其中,在产生下一个密钥值之后,删除以前的密钥。
24.根据权利要求17所述的方法,其中,使密钥演变的所述步骤与所述清算机构独立地执行。
25.根据权利要求17所述的方法,其中,所述清算机构所作的所述分析包括利用所述单向函数再现一系列密钥值并将所述系列与分配到所述日志项目中的密钥相比较。
26.根据权利要求17所述的方法,其中,密钥值的所述演变发生在所述生成步骤上。
27.根据权利要求17所述的方法,其中,密钥值的所述演变发生在所述发送步骤上。
28.根据权利要求17所述的方法,其中,所述密钥在数字上具有不同的特性。
29.根据权利要求17所述的方法,其中,所述密钥值存储在非易失性存储器中。
30.根据权利要求17所述的方法,其中,所述发送定期发生。
31.根据权利要求17所述的方法,其中,所述发送发生在第三方执行软件代码期间。
32.根据权利要求17所述的方法,其中,如果已经超出日志项目异常的阈值,所述清算机构检测软件窜改。
33.一种包括含有具体化在其中的有助于利用动态演变审查日志主动检测软件侵入的计算机可读程序代码的计算机可用媒体的制品,所述媒体包括:
a.将完整性检验嵌入软件代码中的计算机可读程序代码;
b.生成所述审查日志中具有相同日志项目值的日志项目的计算机可读程序代码;
c.使密钥值根据单向函数演变的计算机可读程序代码,所述单向函数依赖于以前的日志项目和以前的密钥两者;和
d.有助于将所述相同日志项目值和最终密钥值发送到清算机构的计算机可读程序代码,所述清算机构通过分析所述相同日志项目值和所述最终密钥值检测软件侵入。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/248,130 | 2002-12-19 | ||
US10/248,130 US7305564B2 (en) | 2002-12-19 | 2002-12-19 | System and method to proactively detect software tampering |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1729457A true CN1729457A (zh) | 2006-02-01 |
CN100380338C CN100380338C (zh) | 2008-04-09 |
Family
ID=32592759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801069413A Expired - Fee Related CN100380338C (zh) | 2002-12-19 | 2003-10-22 | 主动检测软件窜改的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7305564B2 (zh) |
EP (1) | EP1573545A4 (zh) |
JP (1) | JP2006511877A (zh) |
CN (1) | CN100380338C (zh) |
AU (1) | AU2003282989A1 (zh) |
CA (1) | CA2505477C (zh) |
TW (1) | TWI299449B (zh) |
WO (1) | WO2004061667A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351938A (zh) * | 2015-10-29 | 2018-07-31 | 惠普发展公司,有限责任合伙企业 | 校验针对程序代码的一部分所计算的安全值 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305564B2 (en) * | 2002-12-19 | 2007-12-04 | International Business Machines Corporation | System and method to proactively detect software tampering |
DE10340411B4 (de) * | 2003-09-02 | 2005-10-13 | Infineon Technologies Ag | Vorrichtung und Verfahren zur sicheren Ausführung eines Programms |
US8539608B1 (en) * | 2004-03-25 | 2013-09-17 | Verizon Corporate Services Group Inc. | Integrity checking at high data rates |
WO2005098564A1 (en) * | 2004-04-06 | 2005-10-20 | Telecom Italia S.P.A. | Secure logging for irrefutable administration |
US7451325B2 (en) * | 2004-08-02 | 2008-11-11 | At&T Intellectual Property I, L.P. | Methods, systems and computer program products for detecting tampering of electronic equipment by varying a verification process |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
KR100746012B1 (ko) * | 2005-11-07 | 2007-08-06 | 삼성전자주식회사 | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 |
EP1860816B1 (en) * | 2006-05-26 | 2009-03-25 | Sap Ag | A method and a system for securing processing of an order by a mobile agent within a network system |
US11075899B2 (en) | 2006-08-09 | 2021-07-27 | Ravenwhite Security, Inc. | Cloud authentication |
US20080037791A1 (en) * | 2006-08-09 | 2008-02-14 | Jakobsson Bjorn M | Method and apparatus for evaluating actions performed on a client device |
US8844003B1 (en) | 2006-08-09 | 2014-09-23 | Ravenwhite Inc. | Performing authentication |
US9195834B1 (en) | 2007-03-19 | 2015-11-24 | Ravenwhite Inc. | Cloud authentication |
US20080148061A1 (en) * | 2006-12-19 | 2008-06-19 | Hongxia Jin | Method for effective tamper resistance |
US20080235802A1 (en) * | 2007-03-21 | 2008-09-25 | Microsoft Corporation | Software Tamper Resistance Via Integrity-Checking Expressions |
US8332635B2 (en) * | 2007-05-29 | 2012-12-11 | International Business Machines Corporation | Updateable secure kernel extensions |
US7886162B2 (en) * | 2007-05-29 | 2011-02-08 | International Business Machines Corporation | Cryptographic secure program overlays |
US8433927B2 (en) * | 2007-05-29 | 2013-04-30 | International Business Machines Corporation | Cryptographically-enabled privileged mode execution |
US8422674B2 (en) * | 2007-05-29 | 2013-04-16 | International Business Machines Corporation | Application-specific secret generation |
US8332636B2 (en) * | 2007-10-02 | 2012-12-11 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
KR100938672B1 (ko) * | 2007-11-20 | 2010-01-25 | 한국전자통신연구원 | 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 |
US8448218B2 (en) * | 2008-01-17 | 2013-05-21 | Josep Bori | Method and apparatus for a cryptographically assisted computer system designed to deter viruses and malware via enforced accountability |
US8473752B2 (en) * | 2010-03-17 | 2013-06-25 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for auditing access to secure data |
WO2011119137A1 (en) | 2010-03-22 | 2011-09-29 | Lrdc Systems, Llc | A method of identifying and protecting the integrity of a set of source data |
WO2011159356A1 (en) | 2010-06-16 | 2011-12-22 | Ravenwhite Inc. | System access determination based on classification of stimuli |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
US8788817B1 (en) * | 2011-09-30 | 2014-07-22 | Emc Corporation | Methods and apparatus for secure and reliable transmission of messages over a silent alarm channel |
US9515989B1 (en) | 2012-02-24 | 2016-12-06 | EMC IP Holding Company LLC | Methods and apparatus for silent alarm channels using one-time passcode authentication tokens |
US9160539B1 (en) | 2011-09-30 | 2015-10-13 | Emc Corporation | Methods and apparatus for secure, stealthy and reliable transmission of alert messages from a security alerting system |
US8984609B1 (en) * | 2012-02-24 | 2015-03-17 | Emc Corporation | Methods and apparatus for embedding auxiliary information in one-time passcodes |
CN103092742B (zh) | 2011-10-31 | 2015-08-19 | 国际商业机器公司 | 程序日志记录优化方法和系统 |
US8922224B2 (en) | 2012-08-07 | 2014-12-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Snoop detection on calibrated bus |
US11132659B2 (en) * | 2015-07-14 | 2021-09-28 | Texas Instruments Incorporated | Tamper detection |
EP3163789B1 (en) * | 2015-10-29 | 2021-08-18 | Airbus Defence and Space GmbH | Forward-secure crash-resilient logging device |
TWI637282B (zh) * | 2017-04-11 | 2018-10-01 | 精品科技股份有限公司 | 檔案存取數量之控管與限制之系統與方法 |
US10826924B1 (en) * | 2020-04-22 | 2020-11-03 | Quantum Information Security, LLC | Computer security and methods of use thereof |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4757533A (en) | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US5724425A (en) | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US6006328A (en) | 1995-07-14 | 1999-12-21 | Christopher N. Drake | Computer software authentication, protection, and security system |
US5673316A (en) | 1996-03-29 | 1997-09-30 | International Business Machines Corporation | Creation and distribution of cryptographic envelope |
US6178509B1 (en) * | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US5944821A (en) * | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US5850559A (en) * | 1996-08-07 | 1998-12-15 | Compaq Computer Corporation | Method and apparatus for secure execution of software prior to a computer system being powered down or entering a low energy consumption mode |
US5969632A (en) * | 1996-11-22 | 1999-10-19 | Diamant; Erez | Information security method and apparatus |
US5996113A (en) * | 1996-11-26 | 1999-11-30 | Intel Corporation | Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation |
US6192475B1 (en) | 1997-03-31 | 2001-02-20 | David R. Wallace | System and method for cloaking software |
AU8757398A (en) | 1997-07-15 | 1999-02-10 | V-One Corporation | File encryption with key recovery |
US5978475A (en) * | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US6725377B1 (en) * | 1999-03-12 | 2004-04-20 | Networks Associates Technology, Inc. | Method and system for updating anti-intrusion software |
US7096499B2 (en) * | 1999-05-11 | 2006-08-22 | Cylant, Inc. | Method and system for simplifying the structure of dynamic execution profiles |
US7185367B2 (en) * | 1999-05-11 | 2007-02-27 | Cylant, Inc. | Method and system for establishing normal software system behavior and departures from normal behavior |
US6681331B1 (en) * | 1999-05-11 | 2004-01-20 | Cylant, Inc. | Dynamic software system intrusion detection |
US6594761B1 (en) | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
CA2384360A1 (en) | 1999-06-09 | 2000-12-21 | Harold J. Johnson | Tamper resistant software encoding |
EP1076279A1 (en) | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
US6779114B1 (en) | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
JP3873603B2 (ja) * | 1999-10-22 | 2007-01-24 | 株式会社日立製作所 | ディジタル署名方法および装置 |
US6789199B1 (en) | 2000-02-08 | 2004-09-07 | International Business Machines Corporation | Tamper resistance with pseudo-random binary sequence program interlocks |
US6725240B1 (en) * | 2000-08-08 | 2004-04-20 | International Business Machines Corporation | Apparatus and method for protecting against data tampering in an audit subsystem |
US7096497B2 (en) * | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
US20020144121A1 (en) * | 2001-03-30 | 2002-10-03 | Ellison Carl M. | Checking file integrity using signature generated in isolated execution |
CN1196296C (zh) * | 2001-12-04 | 2005-04-06 | 上海复旦光华信息科技股份有限公司 | 易扩展型网络入侵检测与安全审计系统 |
CN1160899C (zh) * | 2002-06-11 | 2004-08-04 | 华中科技大学 | 分布式网络动态安全保护系统 |
US7305564B2 (en) * | 2002-12-19 | 2007-12-04 | International Business Machines Corporation | System and method to proactively detect software tampering |
-
2002
- 2002-12-19 US US10/248,130 patent/US7305564B2/en active Active
-
2003
- 2003-10-22 CN CNB2003801069413A patent/CN100380338C/zh not_active Expired - Fee Related
- 2003-10-22 EP EP03774922A patent/EP1573545A4/en not_active Withdrawn
- 2003-10-22 JP JP2004564803A patent/JP2006511877A/ja active Pending
- 2003-10-22 AU AU2003282989A patent/AU2003282989A1/en not_active Abandoned
- 2003-10-22 WO PCT/US2003/033485 patent/WO2004061667A1/en active Search and Examination
- 2003-10-22 CA CA002505477A patent/CA2505477C/en not_active Expired - Fee Related
- 2003-11-27 TW TW092133335A patent/TWI299449B/zh not_active IP Right Cessation
-
2007
- 2007-10-31 US US11/930,425 patent/US7707429B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351938A (zh) * | 2015-10-29 | 2018-07-31 | 惠普发展公司,有限责任合伙企业 | 校验针对程序代码的一部分所计算的安全值 |
Also Published As
Publication number | Publication date |
---|---|
TW200426582A (en) | 2004-12-01 |
US7305564B2 (en) | 2007-12-04 |
CN100380338C (zh) | 2008-04-09 |
US20040123116A1 (en) | 2004-06-24 |
EP1573545A1 (en) | 2005-09-14 |
US7707429B2 (en) | 2010-04-27 |
TWI299449B (en) | 2008-08-01 |
AU2003282989A1 (en) | 2004-07-29 |
WO2004061667A1 (en) | 2004-07-22 |
EP1573545A4 (en) | 2008-08-27 |
JP2006511877A (ja) | 2006-04-06 |
CA2505477A1 (en) | 2004-07-22 |
CA2505477C (en) | 2009-10-13 |
US20080066178A1 (en) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100380338C (zh) | 主动检测软件窜改的系统和方法 | |
Bellare et al. | Forward integrity for secure audit logs | |
US10305875B1 (en) | Hybrid blockchain | |
US6968456B1 (en) | Method and system for providing a tamper-proof storage of an audit trail in a database | |
JP3964941B2 (ja) | 分散化した照合子による情報保全検証方法及び装置 | |
Crosby et al. | Efficient data structures for tamper-evident logging. | |
US7996679B2 (en) | System and method for performing a trust-preserving migration of data objects from a source to a target | |
Li et al. | Constructing a virtual primary key for fingerprinting relational data | |
Accorsi | Safe-keeping digital evidence with secure logging protocols: State of the art and challenges | |
Maniatis et al. | Enabling the archival storage of signed documents | |
CN111881109B (zh) | 数据库可合并分类账 | |
CN114969786A (zh) | 基于区块链的保函数据处理方法、节点及系统 | |
JPWO2004068350A1 (ja) | データ改ざん検出方法、データ改ざん検出装置及びデータ改ざん検出プログラム | |
KR20190027207A (ko) | 개인정보 접속기록 무결성 검증시스템 및 검증방법 | |
CN100452026C (zh) | 数据一次写入方法和基于该方法的数据库安全管理方法 | |
CN109271811B (zh) | 一种基于群签名的电子物证防篡改存储方法 | |
JP2007158489A (ja) | デジタルフォレンジック保全装置 | |
CN110445756B (zh) | 云存储中可搜索加密审计日志的实现方法 | |
Yang et al. | A multi-grained log auditing scheme for cloud data confidentiality | |
JP4765262B2 (ja) | 電子データ保管装置、プログラム | |
Hartung | Advanced Cryptographic Techniques for Protecting Log Data | |
CN111784339A (zh) | 一种基于区块链的商品房项目证照文件防伪存证方法 | |
KR102578606B1 (ko) | 클라우드에서 데이터 저장 및 공유를 위한 핑거프린팅 장치 및 방법 | |
Aryapetov et al. | Improving the protection of logging systems | |
Li et al. | Worm-seal: Trustworthy data retention and verification for regulatory compliance |
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 | ||
C56 | Change in the name or address of the patentee |
Owner name: TREND TECHNOLOGY CORP. Free format text: FORMER NAME: INTERNATIONAL BUSINESS MACHINES CORP. |
|
CP03 | Change of name, title or address |
Address after: Tokyo, Japan, Japan Patentee after: Trend Technology Corp. Address before: New York grams of Armand Patentee before: International Business Machines Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080409 Termination date: 20201022 |
|
CF01 | Termination of patent right due to non-payment of annual fee |