CN101335746A - 保护软件***的完整性的安全设备和方法及其*** - Google Patents

保护软件***的完整性的安全设备和方法及其*** Download PDF

Info

Publication number
CN101335746A
CN101335746A CNA2007101263659A CN200710126365A CN101335746A CN 101335746 A CN101335746 A CN 101335746A CN A2007101263659 A CNA2007101263659 A CN A2007101263659A CN 200710126365 A CN200710126365 A CN 200710126365A CN 101335746 A CN101335746 A CN 101335746A
Authority
CN
China
Prior art keywords
proxy module
request
template
safety means
service
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.)
Pending
Application number
CNA2007101263659A
Other languages
English (en)
Inventor
郝大明
罗琳
李实恭
杨顺祥
党亚斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CNA2007101263659A priority Critical patent/CN101335746A/zh
Priority to US12/163,797 priority patent/US8407481B2/en
Publication of CN101335746A publication Critical patent/CN101335746A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种用于保护软件***的完整性的安全设备及其方法,该设备包括:模板存储库,用于存储生成代理模块所需的模板;代理模块生成器,用于从所述模板存储库所存储的模板中随机选择一个模板,并根据所选择的模板生成新代理模块;以及收发器,用于将所述新代理模块发送到与所述安全设备通信的外部设备,以更新在所述外部设备中运行的当前代理模块,其中所述当前代理模块用于验证在所述外部设备中运行的所述软件***的完整性。该安全设备能够以高软件保护级别来保护在不安全运行环境中的软件,以防止该软件被篡改和绕过。

Description

保护软件***的完整性的安全设备和方法及其***
技术领域
本发明一般涉及计算机和软件安全领域,尤其涉及保护在不安全环境中运行的软件***的完整性的安全设备和方法及其***。
背景技术
在许多情况下,客户所获得的软件运行于对软件供应商来说不安全的环境中。虽然软件供应商已经在软件包中嵌入了诸如“试用版本”时间限制之类的使用限制机制,但是客户仍然具有强烈的动机来破解和绕过该限制机制以获得更大的利益。如何在恶意环境中保护限制机制以防止被恶意用户破解和绕过总是所关注的问题。
随着软件服务的发展,许多软件供应商提供服务软件或者软件模块,对于这些作为服务而提供和部署在客户位置处的不安全服务器中的软件来说,虽然软件供应商总是希望依据他们的服务运行而进行适当的记账,但是对服务的交易状态进行审核是非常困难的。
一个更通常的情况是那些服务组件可以进一步集成到部署在其他客户站点处的新解决方案中。在这样的情况下,如何得知服务组件的再使用状态并且控制对服务组件的使用来获得更多的收益,一直是服务组件所有者考虑的大问题。
通常,利用防篡改技术(例如,加壳(envelop)技术)来保护软件程序,以防止该软件程序被篡改或者分析(例如,提取密钥,专用算法等)。大多数传统的防篡改技术基于软件方式。这些技术是加密软件的敏感数据/代码,以提高恶意用户窃取机密的门槛。但是纯软件方式的安全级别是有限的,并面临被有经验的骇客破解的危险。此外,一旦软件程序已经交付给客户,则难以升级其安全算法。
另一种避免被破解的解决方案是将一些关键的模块移植到部署在软件供应商站点处的后台服务器中,即安全域中。但是这种解决方案要求部署在客户站点处的服务器频繁地连接后台服务器,因此,这对于客户是不方便的。(例如,客户可能想要将整个服务产品部署在单独的***中并向终端用户演示)。此外,在这种解决方案中,软件供应商必须进行7×24的维护服务,以接收来自客户的连接。
可信平台(Trusted Platform,TP)是具有可能以内置硬件形式构造的可信部件的计算平台,其使用该部件创建软件处理的信任基础。它使用基于平台完整性的信任来提供比纯软件方案更高的安全性。但是,考虑到客户的感受和实现复杂度,在客户的服务器或者机器中部署TP模块并不总是可接受的。此外,某些可信平台的存储器大小和CPU性能可能会对运行的服务进行限制。
软件狗可用于保护软件程序防止被未经授权的拷贝,但是它们不能防止破解或者绕过限制功能。
因此可以看出,现有技术要么提供过低的软件保护级别,要么需要特定的硬件***,这对于软件供应商而言都不是所期望的。所需要的是一种能够增强在不安全环境中运行的软件***的安全性、以防止被篡改和绕过,并且不用改变现有硬件结构的软件保护技术。
发明内容
考虑到上述问题而在本发明中提出了一种新颖的保护软件***完整性的安全设备和方法及其***。
本发明的一个目的是提供一种能够以高软件保护级别来保护在不安全运行环境中的软件,以防止该软件被篡改和绕过的安全设备和方法及其***。
本发明的另一个目的是提供一种能够以客户可以接受的方式来保护在客户站点处运行的软件的安全设备和方法及其***。
本发明的还有一个目的是提供一种能够不改变现有硬件结构且以高保护级别来保护软件的安全设备和方法及其***。
为了实现上述目的,根据本发明的一个方面,提供了一种用于保护软件***的完整性的安全设备,其包含:模板存储库,用于存储生成代理模块所需的模板;代理模块生成器,用于从所述模板存储库中随机选择一个模板,并根据所选择的模板生成新代理模块;以及收发器,用于将所述新代理模块发送到与所述安全设备通信的外部设备,以更新在所述外部设备中运行的当前代理模块,其中所述当前代理模块用于验证在所述外部设备中运行的所述软件***的完整性。
根据本发明的另一个方面,还提供了一种用于在安全设备中保护软件***的完整性的方法,包括步骤:选择用于生成代理模块的模板;根据所选定模板生成新代理模块;以及将所生成的新代理模块发送到与所述安全设备通信的外部设备,以更新在所述外部设备中运行的当前代理模块,其中所述当前代理模块用于验证在所述外部设备中运行的所述软件***的完整性。
根据本发明的再一个方面,提供了一种用于保护软件***的完整性的***,包括:模板提供设备,用于存储并更新生成代理模块所需的模板;安全设备,用于从所述模板提供设备接收模板,并根据接收的模板生成新代理模块;以及外部设备,用于运行所述软件***以及当前代理模块,其中所述当前代理模块用于验证所述软件***的完整性,其中,所述安全设备将所述新代理模块发送到所述外部设备,以更新所述当前代理模块。
在本发明中,安全设备部署在客户站点处,并且可以间断性地连接到部署在软件供应商站点处的后台服务器。该安全设备连接到其上部署了要被保护的软件的服务器,并且具有强制整个软件或者嵌入该软件中的代理模块自动定期更新到最新版本的机制。因此,为了获得未经授权的权限,恶意客户必须破解每个版本,因此破解工作将增强到客户无法接受的程度。此外,安全设备还提供了一些服务(例如,信任时间服务)来防止恶意客户欺骗限制机制(例如,通过时间回滚)。
与传统解决方案相比,本发明具有下列优点:
提供了比传统软件防篡改技术更强的安全性而不用太多工作;因为整个软件或者软件中的限制模块(即代理模块)的更新间隔可以根据动态风险等级而改变,所以可以动态调整安全等级。
不必让安全设备一直连接到部署在软件供应商处的后台服务器,因此允许客户将整个服务产品部署在具有安全设备的单独笔记本计算机中,并且向终端用户演示。
不取决于特定可信平台,因此其对于客户是方便和节省成本的;性能不受特定硬件的限制。
安全设备可以由多个服务器共享,以便减少成本。
因此,根据本发明所提供的安全设备和安全***及其方法不仅可以防止未经授权的拷贝,而且还可以防止对限制机制的破解。
附图说明
本发明可以通过参考下文中结合附图所进行的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件,在附图中:
图1示出了根据本发明一个实施例的服务盒的框图;
图2示出了根据本发明一个实施例的软件保护***的详细体系结构图;
图3示出了根据本发明一个实施例的代理模块及对应模板具体结构图;
图4示出了根据本发明一个实施例的生成代理模块的处理的流程图;
图5示出了根据本发明一个实施例,从模板生成代理模块的具体处理的流程图;
图6示出了根据本发明一个实施例从模板生成代理模块的具体消息流;
图7示出了根据本发明一个实施例生成模块更新请求的流程图;
图8示出了根据本发明一个实施例,在服务盒和代理模块之间更新代理模块的消息流示意图;
图9示出了根据本发明一个实施例的服务盒中的模板部署示意图;
图10示出了根据本发明一个实施例,随机选择模板的处理流程图;
图11示出了根据本发明一个实施例验证底层软件完整性的处理流程图;
图12示出了根据本发明一个实施例,验证底层软件***完整性的处理的消息流示意图;
图13示出了根据本发明一个实施例的软件***之间的功能调用流程图;
图14示出了根据本发明一个实施例的软件***之间功能调用的消息流示意图;以及
图15示出了根据本发明的***的典型布置图。
具体实施方式
以下将结合附图进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如符合那些与***及业务相关的限制条件,其中这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能非常复杂和费时,但对本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
图1示出了根据本发明一个实施例的安全设备(服务盒)110的框图。
如图1所示,本发明用于保护软件***的完整性的服务盒110包括:模板存储库111,用于存储生成代理模块130所需的模板103;模块生成器112,用于从所述模板存储库111中随机选择一个模板103,并根据所选择的模板103生成新代理模块;以及信息收发器114,用于将所述新代理模块发送到与所述服务盒110通信的外部设备140,以更新在所述外部设备140中运行的当前代理模块130。在本发明中,所述当前代理模块130用于验证在所述外部设备140中运行的软件***150的完整性。
图2示出了根据本发明一个实施例的软件保护***100的体系结构框图。如图2所示,软件保护***100包含后台服务器101、安全设备(在本说明书中也称为“服务盒”,二者可以替换使用)110、和外部设备140,其中外部设备140中运行有代理模块130。后台服务器101位于软件供应商的站点处,由软件供应商控制,后台服务器101中包含有模板存储器102,其中存储了由软件供应商提供的模板103。在后台服务器101和“服务盒”110之间存在可间断的连接,当服务盒110连接到后台服务器101时,服务盒110从后台服务器101下载新发布的模板103,并且将其存储在模板存储库111中。这里,所述新发布的模板103是从服务盒110上次连接到后台服务器101以来新发布的模板103。
服务盒110位于客户位置处,其中包含有:模板存储库111,用于存储模板103;第二信息收发器112,用于与后台服务器101建立连接(该连接可以是双向的,也可以是单向的),其可以向后台服务器101发送各种请求,和/或接收从后台服务器101发送的新模板103,并将新模板103存储到模板存储库111中;模块生成器112,用于从模板存储库111中选择一个(或多个)模板103,并根据所选择的模板103来生成新的代理模块;第一信息收发器114,用于与服务盒110外部的外部设备140建立双向连接,以便从外部设备140中的代理模块130接收各种请求以及将各种处理结果返回到外部设备140中的代理模块130;处理器115,用于对来自代理模块130的请求进行检验,并且提取其中的各种请求消息,并且根据各个消息的内容,将各个请求们转发到相应的服务模块116、117、118a、118b、119等中进行处理。
服务盒110中还包含代理模块更新服务模块116、信任时间服务模块117、关键功能服务模块118a、加密解密服务模块118b、和软件***完整***模块119之类的各种服务模块,用于对处理器115所转发的各种请求进行相应的处理。服务盒110中还包含有控制器120,用于在服务盒110通电时,加载服务盒110中的各个部件,并且验证这些部件是否运行正常和未被篡改。虽然服务盒110是一个单独的硬件装置,但是由于服务盒110部署在客户位置处,服务盒110存在被一些恶意客户篡改的可能性,因此提供控制器120,使其在服务盒110通电运行时检查其完整性,以避免服务盒110被恶意篡改,这提高了服务盒110的安全性。
代理模块130优选为软件模块,其嵌入在客户位置处运行的外部设备140中。在一些情况下,外部设备140中可以仅仅运行一个模块,此时,代理模块130本身就可以是外部设备140中运行的整个软件***。在大多数情况下,如图1所示,客户位置处的外部设备140中运行的软件***是大型的软件***,其包括多层软件模块,如位于最底层的操作***和硬件接口层141、位于其上的各种应用运行环境层(例如Java虚拟机层144和网络应用服务器145)、以及处于顶层的各个运行组件143。在多层软件模块中,越底层的模块处理越底层的事务,如***I/O,硬件接口、驱动等,所以越不会发生更新;而在软件***顶层运行的各个组件与具体业务相关,因此需要根据业务逻辑而进行较为频繁的修改。根据本发明的优选实施例,为了在保护该软件***的同时避免对现有***进行频繁更新,优选为将代理模块130实现为最顶层的运行组件之一。
现有技术中已经公开了底层软件层验证在其之上运行的上层软件的完整性的技术。在本发明的实施例中,代理模块130可以验证其底层软件层的完整性(将在下文中详细描述该处理),因此利用代理模块130就可以验证在客户位置运行的整个软件***的完整性。此时,如何保持代理模块130的完整性以及防止代理模块130被破解就成了本发明首要关注的问题。
本发明提供了一种强制代理模块130通过服务盒110以某个间隔自动地将自身更新到新版本的机制来保证代理模块130的完整性。同时,在该机制中,每个新代理模块130都是随机产生的,其难以让破解者找到破解每个自动新生成的代理模块130的一般方法。此外,一些模板103被选择的可能性非常小,而且很少被选择,因此,等待全部模板的出现变为不可能的事情。此外,由于服务盒110从软件供应商处的后台服务器101不定期下载更新后的模板,这更会使得对代理模块130的破解变为几乎不可能的事情。在下文中,将会对代理模块130更新处理进行更详细的描述。
在描述代理模块130更新处理之前,首先对代理模块130和其相对应的模板103的具体结构进行详细描述。图3示出了根据本发明实施例的代理模块130及其相对应的模板103的具体结构。
如图3所示,模板103主要包含五个单元:原始文件单元301,包含一个或者多个原始文件302,每个原始文件302包含在代理模块130中的每个相对应文件311的原始数据;参数单元303,其中定义了每个原始文件302中的哪些部分将由新生成的参数所代替;密钥拆分算法单元304,定义了如何根据密钥生成这些参数的算法,即将该密钥拆分为各个参数并且将其嵌入到各个文件311中的算法,其中密钥是在根据模板103生成代理模块130时,由服务盒110为该代理模块130生成的密钥(第一密钥);“有效时段”单元305,定义了这个模板103的有效时段;以及概率单元306,定义了该模板被选中的概率。在为每个模板103生成密钥的处理中,服务盒110可以生成对称密钥和不对称密钥对,该不对称密钥对包括私钥和公钥。在服务盒110生成不对称密钥对的情况下,由密钥拆分算法所拆分的密钥是其中的私钥。
与模板103的具体结构相对应,代理模块130中主要包含以下单元:各个文件311,其中嵌入了为该代理模块130生成的密钥(第一密钥)的各个密钥段(未示出);密钥组合算法单元313,其利用与模板103中的密钥拆分算法相反的密钥组合算法,组合嵌入在各个文件311中的密钥段,以恢复该代理模块130的密钥;代理模块证书单元314,由生成该代理模块130的服务盒110签名,并且包括所述代理模块130的密钥,该证书中还包含了代理模块130的有效期315,当有效期到期时,强制代理模块130进行更新。如上所述,在服务盒110为代理模块130生成不对称密钥对的情况下,由密钥组合算法313组合被***到各个文件311中的密钥段所形成的密钥是其中的私钥,而包含在代理模块证书单元314中的密钥是与该私钥对应的公钥。
接下来,参考图4、图5和图6描述代理模块130的更新处理,其中图4示出了根据本发明一个实施例的服务盒110生成代理模块130的流程图400。
如图4所示,生成新代理模块的处理400开始于步骤S401,其中模块生成器112响应于代理模块更新服务模块116的命令,从模板存储库111中随机选择一个模板103,如何随机选择模板103的处理将在下文中进行详细描述。代理模块更新服务模块116可以响应于来自代理模块130的请求而发出该命令,或者本身定期主动发出该命令。当然,不论是哪种情况,都属于本发明的保护范围之内。
然后,处理前进到步骤S405,其中模块生成器112根据所选择的模板103来生成新的代理模块(生成新代理模块的过程将在下面详细描述)。
在模块生成器112生成了新代理模块之后,在步骤S410,模块生成器112生成用于该新代理模块的证书314,该证书314中包含了预先为该新代理模块生成的密钥(第一密钥,其中在不对称密钥对的情况下,在该证书中包含了密钥对中的公钥),并且用服务盒110的私钥对该证书314签名,即用服务盒110本身的密钥(第二密钥,在不对称密钥对的情况下,是其中的私钥)对证书中的密钥或者密钥对中的公钥进行加密。在该证书中可定义新代理模块的有效期,以便当代理模块130到期时,强制代理模块130进行更新。此外,代理模块130的有效期是可以动态调整的值,软件供应商可根据外部设备140中的软件***所处环境的风险等级来调整该值,例如在较为友好的环境中,可以将代理模块130的有效期设置的长一些。然后该处理将该证书附加到新代理模块中。
然后,在步骤S415,服务盒110中的第一信息收发器114将所生成的新代理模块传输到外部设备140中,以替换原代理模块130(可以称为当前代理模块),从而完成该处理。
图5示出了根据模块生成器112生成新代理模块的具体处理流程500,其是上述步骤S405的更具体的描述。在该处理中,模块生成器112首先生成专用于该新代理模块的对称密钥,或者在使用不对称密钥对的情况下,生成不对称密钥对(S510)。随后,模块生成器112提取模板103的“原始文件”单元301中的各个原始文件302(S520)。接着,模块生成器112根据模板103中的密钥拆分算法304,将所生成的密钥(在不对称密钥对的情况下,是指其中的私钥)拆分为各个参数(S530)。需要注意的是,各个参数不必全部都是密钥的组成部分,这些参数可以是任何数据,只要与密钥拆分算法相对应的密钥组合算法可以根据这些参数组合出被拆分的密钥即可。例如,一些参数可以是在拆分密钥时随机生成的数据。模块生成器112然后根据模板103的参数单元303的定义,用所生成的各个参数替换原始文件302中的各个部分,以形成新代理模块中的各个文件311(S540)。可选地,模块生成器112还可以生成与密钥拆分算法304相对应的密钥组合算法313,并且将其嵌入到代理模块130中(S550)。优选地,密钥组合算法313可以作为可执行代码而预先嵌入到某个原始文件302中,此时,由于该算法已经被包括在新代理模块中,因此可以省略步骤S550。
由上述图4和图5的处理过程可知,所述生成的代理模块中被嵌入了证书以及被分解的第一密钥,其中所述证书是利用第二密钥加密所述第一密钥而获得的。
图6示出了根据本发明一个实施例,根据模板103生成代理模块130的具体示例。如图6所示,模板103包含两个原始文件,即Class1和Class2。参数单元303定义了三个参数位置,即Class1的“Factor01=0000”中的“0000”部分(P01)和“Factor02=0000”中的“0000”部分(P02),以及Class2的“Factor01=0000”中的“0000”部分(P03)。密钥拆分算法304定义了生成三个参数的算法,其中P01和P02是随机数,而P03是根据算法“P01^P02^代理模块私钥”而生成的。原始文件Class2中还嵌入了与密钥拆分算法304相对应的密钥组合算法313。在生成新代理模块的过程中,服务盒110生成用于新代理模块的密钥对,并提取原始文件Class1和Class2。然后服务盒110根据密钥拆分算法304,生成用于参数P01和P02的两个随机数1010和1001,并根据算法“P01^P02^代理模块私钥”来生成P03,其值为1111。接着,根据参数P01、P02和P03在原始文件Class1和Class2中的位置,将Class1中“Factor01=0000”修改为“Factor01=1010”以及“Factor02=0000”修改为“Factor02=1001”,以及将Class2中的“Factor01=0000”修改为“Factor01=1111”,由此产生了新代理模块中的文件Class1和Class2。
从上面的描述可以看出,代理模块中的参数位置和数目可以按照每个代理模块而不同,而且每个代理模块都有自己专用的密钥,且用于组合代理模块密钥的算法也可以随着代理模块的不同而不同,因此对于恶意客户来说,逐个破解代理模块是非常困难的事情。
上面已经完整地描述了服务盒110更新代理模块130的处理流程。
如上所述,上述过程可以是在服务盒110中的控制器120的控制下,响应于来自代理模块130的更新请求而完成的。现在将详细描述外部设备140中的代理模块130发送该更新请求的处理流程。
图7示出了在外部设备140和服务盒110之间发送和接收代理模块更新请求的处理流程700。
如图7所示,在步骤S720,代理模块130首先生成代理模块更新请求。生成代理模块更新请求的处理可以以预定的时间间隔来进行,该时间间隔的长短可以根据具体的应用环境而设定为不同的值。然后,处理前进到步骤S725,其中,代理模块130利用嵌入其中的密钥组合算法313,提取嵌入在代理模块130的各个文件311中的各个参数,并且计算得到该代理模块130的密钥(在不对称密钥对的情况下,其为代理模块130的私钥)。然后,在步骤S730,用该代理模块密钥来加密该代理模块更新请求,以生成加密后的代理模块更新请求。随后,在步骤S735,将代理模块130中的证书附加于该请求,并且以上述的预定时间间隔将它们一起发送到服务盒110。即,所述服务盒110从所述外部设备接收的由代理模块130生成的请求(代理模块更新请求),是利用从代理模块130中提取的第一密钥来加密的,并附有所述证书。
在步骤S740,服务盒110中的处理器115通过第一信息收发器114接收该请求,并且验证所附的证书。由于该证书是用服务盒110的私钥签名(加密)的,所以服务盒110可以利用其公钥(第二密钥)对其进行解密,以获得其中的代理模块密钥(第一密钥),由此验证该证书是否是由该服务盒110签名的(即,比较该代理模块密钥是否是服务盒110为该代理模块130原始产生的密钥)。如果验证通过,则处理前进到步骤S745,否则,经由第一信息收发器114发送错误警告(步骤S755)然后结束该处理。
在步骤S745,处理器115利用证书中所包含的代理模块密钥(第一密钥,在不对称密钥对的情况下,其为公钥),解密已加密的代理模块更新请求,以获得未加密的代理模块更新请求。即,处理器115利用第二密钥解密该证书,以获得第一密钥,并用所获得的第一密钥解密被加密的请求,以获得该请求的内容和/或类型。
随后,在步骤S750,处理器115根据该请求的类型(在这里是代理模块更新请求),将该请求发送给代理模块更新服务模块116进行处理。代理模块更新服务模块116接收该请求,向模块生成器112发送命令,以开始如上所述生成代理模块的更新处理。
由上所述,该模块更新请求被定期发送到服务盒110,其中的模块生成器112响应于该模块更新请求来生成新代理模块。
另外,在步骤S750,如果所接收的请求是其它类型的请求,则处理器115将根据请求的不同类型,分别将请求发送给相应的服务模块116、117、118a、118b、119等进行处理。
根据上述可以看出,代理模块130向服务盒110发送更新请求的处理中,用代理模块密钥对其进行加密,并且连同代理模块证书一起发送到服务盒110,然后服务盒110验证代理模块证书,利用代理模块证书中的代理模块密钥对解密服务请求,然后进行相关的处理。实际上不仅仅是代理模块更新请求,任何从外部设备140发送到服务盒110的处理都需要经过类似的处理,即利用代理模块密钥进行加密,并且在服务盒110处进行解密的过程。这样的处理保证了在外部设备140和服务盒110之间的加密通信,可以防止敏感信息泄露,并且提高了该通信被破解的难度,此外,由于代理模块130会定期更新,则使得恶意用户获取通信内容的企图更加难以实现。
根据上述,为了使代理模块130更加难以破解,可以在根据模板103生成代理模块130的处理中,随机地选择一个模板。
以上描述可以参考图8得到直观的示例,其中图8示出了根据本发明一个实施例,当更新代理模块130时,在服务盒110和外部设备140之间的消息流示意图。
在下文中,将参考图9和图10更详细描述模板103的存储方式和随机选择模板103的处理流程。
图9示出了根据本发明一个实施例,服务盒110中的模板103部署方式。如图9所示,服务盒110中的模板存储库111包含三个区域,“就绪”区域901,“使用中”区域902,和“过期”区域903。当服务盒110连接到后台服务器101时,它将下载更新后的全部模板103,并且将它们放入“就绪”区域901中。随后,如果模板103中的“有效时段”305的内容指示该模板103处于有效期内,则将该模板103移入“使用中”区域902中。如果模板103中的“有效时段”305的内容指示该模板103已经失效,则将该模板103移入“过期”区域903中。在选择一个模板103以生成新代理模块130的处理中,模块生成器112随机选择处于模板储存库111的“使用中”区域902中的某个模板103。
图10示出了根据本发明一个实施例随机选择模板103的处理流程1000。如图10所示,在随机选择模板103的处理中,首先在步骤S1010,模块生成器112生成大小在0和1之间的随机数Rn。然后在步骤S1020,对于在模板存储库111的“使用中”区域902中的模板103,提取这些模板103中的概率单元306中的值。接着在步骤S1030,利用“使用中”区域902中的模板103的数量和表示每个模板103被选取的可能性的概率值,为每个模板103提供一个选中范围,该选中范围与每个模板103中的概率值相对应。模板103的概率值越大,所产生的选中范围也就越大。即,模块生成器112基于随机数以及所述模板中定义的概率值,从所述模板存储库中选择所述模板。
图9中给出了计算选中范围的一种算法。如图9所示,首先计算每个模板103的概率值占“使用中”区域902中的全部模板103的概率值总和的比例,然后按照模板103的某个次序顺序排列每个模块所占比例的所处范围,即可得到每个模块的选中范围。例如,在“使用中”区域902中包括两个模板:具有概率值0.1的模板3和具有概率值0.4的模板2,则根据该算法,模板3所占比例为0.1/(0.1+0.4)=0.2,而模板2所占比例为0.4/(0.1+0.4)=0.8,因为模板的排列次序为先模板3后模板2,所以模板3的选中范围为0-0.2,而模板2的选中范围为0.2-1.0。
然后,回到图10,在步骤S1040,将随机数Rn和每个模板103的选中范围进行比较,如果随机数Rn落入某个模板103的选中范围中,则选择该模板103用于生成新代理模块130。
如上所述,每个模板103被选中以生成新代理模块130的概率和每个模板的概率值紧密相关。因为不能确定会选择哪个模板,所以难以让破解者找到破解每个新生成的代理模块的一般方法。此外,一些模板可能具有非常小的概率值而且很少被选择,因此,等待全部模板的出现变为不可能的事情,这让破解者几乎不可能破解代理模块130。
此外,应当注意到,上面结合图10流程图给出的随机获取模板103的处理仅仅是示范性的。可以使用其它任何随机处理来选择模板103,只要该随机处理使得每个模板103被选中的概率和模板中的概率值相关即可。
上面已经描述了通过强制更新代理模块130、并在更新代理模块130时随机产生所述新代理模块130来防止代理模块130的完整性被破解的机制和处理,但是如先前所述,在代理模块130作为软件组件而在软件***中运行的情况下,还需要通过代理模块130来保证底层软件的完整性。
下面参考图11和12描述利用代理模块130来保证底层软件完整性的处理。图11示出了根据本发明一个实施例,验证底层软件完整性的处理流程;而图12示出了该验证处理的消息流示意图。
假定用于计算底层软件的完整性特征信息的可执行代码包含在代理模块130中某个文件中。对于代理模块130作为代理组件在一个多层软件***中运行的情况下,由于多层软件***一般会对各层软件之间的调用进行严格限制,即在通常情况下,在多层软件***中,上层软件对底层软件的调用一般通过底层软件所提供的接口完成,且上层软件不能直接访问底层软件的地址空间,因此优选为将代理模块130中用于计算底层软件完整性特征信息的可执行代码划分为两个部分,一部分在上层软件空间中运行(如图12所示的Check.class),而另一部分则在底层软件空间中运行(如图12所示的JNI.dll)。由于JNI.dll处于底层软件空间中,所以其可以计算在底层软件运行时处理空间中的每个模块的完整性特征信息,并且通过其和Check.class之间的接口将计算结果传送到上层空间。因此,这种划分可以在符合多层软件***要求的情况下,获得底层软件的完整性特征信息。
如图11中的步骤S1110所示,在开始检查底层软件空间完整性时,位于上层软件空间中的Check.class(如图12所示)调用处于底层软件空间中的JNI.dll,对在底层软件运行空间中每个模块的只读部分进行哈希计算,以获得每个模块的哈希值。本领域技术人员应当理解,哈希值是完整性特征信息的一种,在本发明中,显然还可以使用模块的其它信息作为模块的完整性特征信息。
在随后的步骤S1120、S1130、S1140、S1150和S1160类似于参考图7所述的步骤S725、S730、S735、S740,即,将所提取的各个模块哈希值作为要由代理模块130发送的请求处理,其中,利用代理模块密钥加密该请求,并且将该加密的请求连同代理模块证书一起发送到服务盒110,然后由服务盒110检测该代理模块证书是否正确。其中,在步骤S1120,使用所计算的哈希值生成完整性验证请求;在步骤S1130,提取密钥组合算法313以计算代理模块密钥;然后,在步骤S1140,用代理模块密钥加密完整性验证请求;然后,在步骤S1150,将代理模块证书附加到该验证请求中,并将该验证请求发送到服务盒110。
在步骤S1160中,服务盒110接收该验证请求,并验证该证书是否正确以及是否过期。步骤S1160与图7中的步骤S740的不同之处在于,在步骤S1160中,还对证书的有效期进行检查,如果该证书过期了,则前进到步骤S1165,经由第一信息收发器114向代理模块130传输指示“证书不正确或者过期”的消息,以强制代理模块130进行更新。
如果对证书的验证通过,则处理前进到步骤S1170。在步骤S1170中,提取代理模块证书中的代理模块密钥,以解密该完整性验证请求;然后,在步骤S1180,根据请求的内容,处理器115将该请求发送到软件完整***模块119。步骤S1170和S1180中的处理分别类似图7中的步骤S745和S750中的处理。所不同之处在于,由于此时代理模块130发送的请求中所包含的内容是各个模块的哈希值,所以控制器120会将该请求内容发送给软件完整***模块119。
然后,在步骤S1190,软件完整***模块119将代理模块130所发送的各个模块的哈希值与软件完整***模块119中存储的各个模块的相应哈希值进行比较。如果二者相一致,则认为外部设备140中的软件***是完整的,并且在步骤S1192允许该外部设备140中的软件***进行进一步操作。否则,认为该软件***的完整性受到了破坏,并在步骤S1195采取进一步措施来阻止该软件***的运行。
也就是说,所述服务盒110的软件完整***模块119响应于上述验证请求,利用验证请求中的软件***完整性特征信息(哈希值),验证在外部设备140中运行的软件***的完整性。
如上所述,可以利用代理模块130和服务盒110来检验在代理模块130底层软件***的完整性。另外,现有技术中已经提供了由底层软件***来检验上层软件完整性的已知技术,因此,在现有技术基础上结合本发明所提供的创造性方法和***,可以保证在客户位置处的外部设备140中运行的软件***的完整性。
另外,还存在恶意客户绕过代理模块130和服务盒110的可能性,即,上述所有处理均需要代理模块130和服务盒110之间的交互,如果恶意客户使得外部设备140的软件***中的软件运行不通过代理模块130进行,则就可以绕过服务盒110,为了防止这样的绕过,可以采用下列方法中的一个或者多个以确保软件***中的某些功能需要服务盒110的帮助。
1.将软件***中运行的软件应用的一些关键功能移植到服务盒110中,作为由服务盒110提供的服务(如图2所示的关键功能服务模块118a);
2.软件***中运行的软件应用所需要的一些数据(例如,数据库,调用参数等)必须由服务盒110加密(如图2所示的加密解密服务模块118b);
3.在某一软件***中运行的软件应用(如图14所示的软件应用1403)需要调用在其他软件***中的软件应用(如图14所示的软件应用1404)所提供的功能时,该软件***间的调用必须通过代理模块130完成。
所述第1和第2种方法的处理类似于图7、8、11和12中有关代理模块130向服务盒110发送请求的处理,所不同之处仅在于代理模块130所发送的请求的类型和内容不同,以及服务盒110中进行处理的相应服务模块不同。
例如,如果代理模块130所发送的请求是信任时间服务请求、关键功能服务请求、加密解密服务请求等中的一种或几种,则服务盒110中的各个服务模块117、118a、118b等可以响应于所接收的服务请求,向外部设备140中的软件***提供信任时间服务、关键功能服务、以及加密解密服务中的一种或几种。由此,通过提供相应的服务来防止恶意客户欺骗限制机制,例如,可以提供信任时间源来防止时间回滚。
此外,当代理模块130调用服务盒110来帮助执行这些服务功能时,如上述图11中的步骤S1160所示,服务盒110将检查代理模块130是否及时更新到新的版本。如果代理模块130未更新到新版本(即代理模块130的证书已经过期了),则拒绝该调用,并强制代理模块130更新到最新的版本。也就是说,上述请求的证书中包含代理模块130的有效期,如果该有效期已经过期,则服务盒110拒绝该请求,并要求发出该请求的代理模块130进行更新。
下面参考图13和14,详细描述上述第3种方法中在软件***之间进行功能调用的过程。其中图13描述了根据本发明一个实施例、在软件***之间的功能调用流程图1300,而图14描述了根据本发明的一个实施例、软件***之间功能调用的消息示意图。
如图13所示,在步骤S1301,某一软件***中的软件应用(如图14中的1403)生成原始的***间调用请求。随后该软件***中的代理模块(如图14中的140a)在步骤S1305提取代理模块密钥,在步骤S1310用代理模块密钥加密该***间调用请求,然后在步骤S1315,将代理模块证书附于该加密请求,并且将该包含代理模块证书的请求返回到该***中的软件应用1403。步骤S1305到S1315的处理类似于图7中的步骤S725到S735,所不同之处仅为请求的内容不同。
该处理继续到步骤S1320,其中该软件应用1403将经加密的***间调用请求发送到另一个软件***中对应软件应用(如图14中的1404)。该对应软件应用1404随后在步骤S1325将该加密的***间调用请求发送到该软件***中的代理模块(如图14中的140b)。该代理模块140b在步骤S1330利用服务盒110的公钥对该请求所包含的证书进行验证并检查其是否过期。如果证书未通过验证或者过期了,则拒绝该***间调用(步骤S1335)。如果证书通过验证且未过期,则该代理模块140b在步骤S1340用代理模块证书中嵌入的代理模块密钥解密该请求以获得原始***间调用请求。可选地,该代理模块140b还可对已解密的***间调用请求进行策略检查,以确定是否允许该调用(步骤S1345)。如果不允许该调用,则拒绝该***间调用(步骤S1335)。相反,如果允许该调用,则将该***间调用请求返回到对应的软件应用1404,以进行进一步处理(步骤S1350)。
图14示出了***间功能调用的一个详细示意图,假定存在两个根据本发明的软件***1401和1402,软件***1401中包括代理模块140a和软件应用1403,而软件***1402中包括代理模块140b和软件应用1404。当软件应用1403调用软件***1402中的软件应用1404所提供的功能时,其将功能调用请求发送到代理模块140a进行加密和签名,然后将经过加密的请求和签名发送到软件应用1404。软件应用1404在收到经过加密的请求和签名之后,请求其所在的软件***1402中的代理模块140b对该请求进行验证和解密,获得原始功能调用请求,而且代理模块140b中还包括策略引擎1405,其对该功能调用请求的策略进行检查,以确定是否允许该调用,如果允许,则将该请求返回到软件应用1404进行后续处理。
上面已经描述了三种防止绕过代理模块130的方法,通过上述三种方法,使得外部设备140中的软件***的运行根本无法绕过代理模块130,因此也就无法绕过服务盒110。
如上所述,根据本发明所提供的安全设备、***和方法,在外部设备的软件***中的代理模块被强制自动地定期更新到最新的版本,而且新版本的选择是随机的,所以难以让破解者找到破解代理模块的方法。此外,代理模块可以通过与安全设备的交互来保证代理模块所处的外部设备中的软件***的完整性,而且外部设备中的软件***的运行无法绕开代理模块和安全设备,因此根据本发明所提供的安全设备、***和方法可以以较高的安全级别保护在不安全环境中运行的软件***。
另外,安全设备本身将部署在安全的嵌入***中,其中没有运行未经授权软件的方法,而且在加载期间会验证该设备本身的完整性。这些措施可以确保该安全设备本身难以被破解。
另外,安全设备和外部设备的软件***之间的连接可以采用任何连接方式,该软件***可以部署在桌面或者膝上型计算机中,或者多个软件***可以部署在一台服务器当中。所有这些软件***可以共享同一个安全设备,以便减少成本。图15给出了本发明软件保护***的典型部署方式。其中,服务盒110作为单独的设备连接到LAN 1510中,包含有代理模块的软件***1520a和1520b分别驻留在作为外部设备的膝上型计算机1530a和1530b中,且分别包含有不断更新的模板的软件***1540a和1540b驻留在同一台服务器1550中。计算机1530a和1530b以及服务器1550都连接到LAN 1510。软件***1520a、1520b、1540a和1540b通过LAN与服务盒110相连,并且共享同一个服务盒110。上述***的操作方式与图2中所示的软件保护***相类似,这里不再一一详述。
需要说明的是,本发明的实施例可以通过硬件、软件或者硬件和软件结合的方式来实现,其实现方式不对本发明的范围构成限制。
另外,本发明实施例中的各个部件的结构不对本发明的范围构成限制,其中多个部件的功能可以被合并为同一个部件来完成,而其中某一个部件的功能也可以被分解为多个部件类完成。例如,服务盒110中的处理器115和控制器120,它们的功能可以由一个部件例如控制器120独自完成。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明的示例,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式做出各种修改和变更而不背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求及其等效含义来限定。

Claims (21)

1、一种用于保护软件***的完整性的安全设备,包含:
模板存储库,用于存储生成代理模块所需的模板;
代理模块生成器,用于从所述模板存储库中随机选择一个模板,并根据所选择的模板生成新代理模块;以及
收发器,用于将所述新代理模块发送到与所述安全设备通信的外部设备,以更新在所述外部设备中运行的当前代理模块,
其中所述当前代理模块用于验证在所述外部设备中运行的所述软件***的完整性。
2.如权利要求1所述的安全设备,还包括:
第二收发器,用于从所述安全设备外部的服务提供端间断地接收新的模板,并将其存储于所述模板存储库中。
3.如权利要求1所述的安全设备,其中所述代理模块生成器基于随机数以及所述模板中定义的概率值,从所述模板存储库中选择所述模板。
4.如权利要求1所述的安全设备,其中所述当前代理模块和所述新代理模块中被嵌入了证书以及被分解的第一密钥,其中所述证书是利用第二密钥加密所述第一密钥获得的。
5.如权利要求4所述的安全设备,其中所述收发器从所述外部设备接收由所述当前代理模块生成的请求,其中所述请求是利用从当前代理模块中提取的所述第一密钥来加密的,并附有所述证书。
6.如权利要求5所述的安全设备,其中所述请求是代理模块更新请求,所述代理模块更新请求被定期发送到所述安全设备,而且所述代理模块生成器响应于所述代理模块更新请求来生成所述新代理模块。
7.如权利要求5所述的安全设备,其中所述请求是验证请求,并且所述安全设备还包括验证模块,其响应于所述验证请求,利用所述验证请求中的软件***完整性特征信息,验证在所述外部设备中运行的软件***的完整性。
8.如权利要求5所述的安全设备,其中所述请求是服务请求,并且所述安全设备还包括服务模块,其响应于所述服务请求,向所述软件***提供信任时间服务、关键功能服务、以及加密解密服务中的一种或多种。
9.如权利要求7或8所述的安全设备,其中所述请求的证书中包含所述当前代理模块的有效期,如果所述有效期过期,则拒绝所述请求,并要求发出所述请求的当前代理模块进行更新。
10.如权利要求5所述的安全设备,还包括处理器,用于利用所述第二密钥解密所述证书,以获得所述第一密钥,并用所述第一密钥解密被加密的请求,以获得所述请求。
11、一种在安全设备中保护软件***的完整性的方法,包括步骤:
选择用于生成代理模块的模板;
根据所选定模板生成新代理模块;以及
将所生成的新代理模块发送到与所述安全设备通信的外部设备,以更新在所述外部设备中运行的当前代理模块,
其中所述当前代理模块用于验证在所述外部设备中运行的所述软件***的完整性。
12.如权利要求11所述的方法,还包括步骤:
从所述安全设备外部的服务提供端间断地接收新的模板,并将所述新模板存储于所述模板存储库中。
13.如权利要求11所述的方法,其中基于随机数以及定义的概率值选择所述模板。
14.如权利要求11所述的方法,还包括步骤:利用第二密钥加密第一密钥以获得证书,所述当前代理模块和所述新代理模块中被嵌入了证书以及被分解的第一密钥。
15.如权利要求14所述的方法,其中还包括从所述外部设备接收由所述当前代理模块生成的请求的步骤,其中所述请求是利用从当前代理模块中提取的所述第一密钥加密的,并附有所述证书。
16.如权利要求15所述的方法,其中所述请求是代理模块更新请求,所述代理模块更新请求被定期发送到所述安全设备,并且响应于所述代理模块更新请求来生成所述新代理模块。
17.如权利要求15所述的方法,其中所述请求是验证请求,所述方法还包括步骤:响应于所述验证请求,利用所述验证请求中的、运行于所述外部设备中的所述软件***的完整性特征信息,验证所述软件***的完整性。
18.如权利要求15所述的方法,其中所述请求是服务请求,并且还包括步骤:响应于所述服务请求,向所述软件***提供信任时间服务、关键功能服务、以及加密解密服务中的一种或多种。
19.如权利要求17或18所述的方法,其中所述请求的证书中包含所述当前代理模块的有效期,如果所述有效期过期,则拒绝所述请求,并要求发出所述请求的当前代理模块进行更新。
20.如权利要求15所述的方法,还包括步骤:利用所述第二密钥解密所述证书,以获得所述第一密钥,并用所述第一密钥解密被加密的请求,以获得所述请求。
21.一种用于保护软件***的完整性的***,包括:
模板提供设备,用于存储并更新生成代理模块所需的模板;
安全设备,用于从所述模板提供设备接收模板,并根据接收的模板生成新代理模块;以及
外部设备,用于运行所述软件***以及当前代理模块,其中所述当前代理模块用于验证所述软件***的完整性,
其中,所述安全设备将所述新代理模块发送到所述外部设备,以更新所述当前代理模块。
CNA2007101263659A 2007-06-29 2007-06-29 保护软件***的完整性的安全设备和方法及其*** Pending CN101335746A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNA2007101263659A CN101335746A (zh) 2007-06-29 2007-06-29 保护软件***的完整性的安全设备和方法及其***
US12/163,797 US8407481B2 (en) 2007-06-29 2008-06-27 Secure apparatus and method for protecting integrity of software system and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101263659A CN101335746A (zh) 2007-06-29 2007-06-29 保护软件***的完整性的安全设备和方法及其***

Publications (1)

Publication Number Publication Date
CN101335746A true CN101335746A (zh) 2008-12-31

Family

ID=40198054

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101263659A Pending CN101335746A (zh) 2007-06-29 2007-06-29 保护软件***的完整性的安全设备和方法及其***

Country Status (2)

Country Link
US (1) US8407481B2 (zh)
CN (1) CN101335746A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902882A (zh) * 2014-03-18 2014-07-02 宇龙计算机通信科技(深圳)有限公司 一种防止用户信息泄漏的终端及方法
CN105187204A (zh) * 2015-09-29 2015-12-23 北京元心科技有限公司 文件的加密、解密方法和加解密***
CN106453125A (zh) * 2016-11-04 2017-02-22 中国电子科技集团公司第二十八研究所 一种基于实时负载率的远程服务调用负载均衡***
CN108549826A (zh) * 2018-03-30 2018-09-18 努比亚技术有限公司 应用程序的校验方法、终端、服务器及可读存储介质
CN108920957A (zh) * 2018-06-29 2018-11-30 北京奇虎科技有限公司 数据安全检测的方法及装置
CN109313678A (zh) * 2018-09-05 2019-02-05 福建联迪商用设备有限公司 一种调用api的方法及终端
CN109478221A (zh) * 2016-05-27 2019-03-15 查特通信营运有限责任公司 敏感数据的安全传输
CN110278127A (zh) * 2019-07-02 2019-09-24 成都安恒信息技术有限公司 一种基于安全传输协议的Agent部署方法及***

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856159B2 (en) * 2008-09-05 2014-10-07 Sony Corporation Content recommendation system, content recommendation method, content recommendation apparatus, program, and information storage medium
US9635048B2 (en) * 2011-03-09 2017-04-25 Irdeto B.V. Method and system for dynamic platform security in a device operating system
US8954758B2 (en) 2011-12-20 2015-02-10 Nicolas LEOUTSARAKOS Password-less security and protection of online digital assets
US9213853B2 (en) 2011-12-20 2015-12-15 Nicolas LEOUTSARAKOS Password-less login
US9613352B1 (en) 2011-12-20 2017-04-04 Nicolas LEOUTSARAKOS Card-less payments and financial transactions
CN103500202B (zh) * 2013-09-29 2017-02-01 中国船舶重工集团公司第七0九研究所 一种轻量级数据库的安全保护方法及***
CN106936768B (zh) * 2015-12-29 2020-04-10 大唐高鸿信安(浙江)信息科技有限公司 基于可信芯片的白名单网络管控***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114048A2 (en) * 2003-06-24 2004-12-29 Nokia Inc. An apparatus, system, method and computer program product for implementing remote client integrity verification
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US7051200B1 (en) * 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050212A (en) * 1990-06-20 1991-09-17 Apple Computer, Inc. Method and apparatus for verifying the integrity of a file stored separately from a computer
US6067582A (en) * 1996-08-13 2000-05-23 Angel Secure Networks, Inc. System for installing information related to a software application to a remote computer over a network
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US20040225894A1 (en) 1998-06-04 2004-11-11 Z4 Technologies, Inc. Hardware based method for digital rights management including self activating/self authentication software
AU6107600A (en) * 1999-07-14 2001-01-30 Recourse Technologies, Inc. System and method for computer security
US6981155B1 (en) * 1999-07-14 2005-12-27 Symantec Corporation System and method for computer security
US7117532B1 (en) * 1999-07-14 2006-10-03 Symantec Corporation System and method for generating fictitious content for a computer
US7287166B1 (en) * 1999-09-03 2007-10-23 Purdue Research Foundation Guards for application in software tamperproofing
US6430561B1 (en) * 1999-10-29 2002-08-06 International Business Machines Corporation Security policy for protection of files on a storage device
US6907533B2 (en) * 2000-07-14 2005-06-14 Symantec Corporation System and method for computer security using multiple cages
US7613930B2 (en) * 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US7111285B2 (en) * 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US7093132B2 (en) * 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7243348B2 (en) * 2002-09-19 2007-07-10 Tripwire, Inc. Computing apparatus with automatic integrity reference generation and maintenance
US7331063B2 (en) * 2004-04-30 2008-02-12 Microsoft Corporation Method and system for limiting software updates
US8302199B2 (en) * 2005-04-06 2012-10-30 Valve Corporation Anti-cheat facility for use in a networked game environment
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
US7701946B1 (en) * 2006-08-03 2010-04-20 Oracle America, Inc. Mechanism for data and event management across networks
US7685226B1 (en) * 2006-08-03 2010-03-23 Sun Microsystems, Inc. Mechanism for data migration across networks
US7840890B2 (en) * 2007-02-26 2010-11-23 Emc Corporation Generation of randomly structured forms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US7051200B1 (en) * 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
WO2004114048A2 (en) * 2003-06-24 2004-12-29 Nokia Inc. An apparatus, system, method and computer program product for implementing remote client integrity verification

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902882A (zh) * 2014-03-18 2014-07-02 宇龙计算机通信科技(深圳)有限公司 一种防止用户信息泄漏的终端及方法
CN105187204A (zh) * 2015-09-29 2015-12-23 北京元心科技有限公司 文件的加密、解密方法和加解密***
CN109478221A (zh) * 2016-05-27 2019-03-15 查特通信营运有限责任公司 敏感数据的安全传输
CN109478221B (zh) * 2016-05-27 2022-03-15 查特通信营运有限责任公司 敏感数据的安全传输
CN106453125A (zh) * 2016-11-04 2017-02-22 中国电子科技集团公司第二十八研究所 一种基于实时负载率的远程服务调用负载均衡***
CN106453125B (zh) * 2016-11-04 2019-09-10 中国电子科技集团公司第二十八研究所 一种基于实时负载率的远程服务调用负载均衡***
CN108549826A (zh) * 2018-03-30 2018-09-18 努比亚技术有限公司 应用程序的校验方法、终端、服务器及可读存储介质
CN108920957A (zh) * 2018-06-29 2018-11-30 北京奇虎科技有限公司 数据安全检测的方法及装置
CN109313678A (zh) * 2018-09-05 2019-02-05 福建联迪商用设备有限公司 一种调用api的方法及终端
CN109313678B (zh) * 2018-09-05 2021-11-09 福建联迪商用设备有限公司 一种调用api的方法及终端
CN110278127A (zh) * 2019-07-02 2019-09-24 成都安恒信息技术有限公司 一种基于安全传输协议的Agent部署方法及***
CN110278127B (zh) * 2019-07-02 2020-12-01 成都安恒信息技术有限公司 一种基于安全传输协议的Agent部署方法及***

Also Published As

Publication number Publication date
US8407481B2 (en) 2013-03-26
US20090327745A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
CN101335746A (zh) 保护软件***的完整性的安全设备和方法及其***
CN111429254B (zh) 一种业务数据处理方法、设备以及可读存储介质
CN110537346B (zh) 安全去中心化域名***
US10826882B2 (en) Network-based key distribution system, method, and apparatus
CN102461060B (zh) 安全网络包围区中的密钥管理
US9270466B2 (en) System and method for temporary secure boot of an electronic device
US8856544B2 (en) System and method for providing secure virtual machines
CN102624699B (zh) 一种保护数据的方法和***
CN101241527B (zh) 用于普通验证的***和方法
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
US10432600B2 (en) Network-based key distribution system, method, and apparatus
US20240007460A1 (en) Non-custodial tool for building decentralized computer applications
CN104662870A (zh) 数据安全管理***
CN111431707B (zh) 业务数据信息处理方法、装置、设备以及可读存储介质
US20200084032A1 (en) Audited use of a cryptographic key
JP5141056B2 (ja) 情報処理装置と情報処理装置のデータ転送方法
CN109981677A (zh) 一种授信管理方法及装置
CN109784072B (zh) 一种安全文件管理方法和***
KR20130085537A (ko) 암호화된 파일 접근 시스템 및 그 방법
CN115146284A (zh) 数据处理方法、装置、电子设备和存储介质
CN116781359B (zh) 一种使用网络隔离和密码编译的门户安全设计方法
JP4330973B2 (ja) 状態証明書を利用したセキュリティレベル管理システム
KR102542840B1 (ko) 오픈 api 기반의 금융 인증 서비스 제공 방법 및 시스템
JP2018107514A (ja) 位置情報保証装置、位置情報保証方法、位置情報保証プログラム、および通信システム
KR20160071711A (ko) 안전 인증 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20081231