CN1156286A - 执行可校验程序的系统和方法 - Google Patents
执行可校验程序的系统和方法 Download PDFInfo
- Publication number
- CN1156286A CN1156286A CN96121876A CN96121876A CN1156286A CN 1156286 A CN1156286 A CN 1156286A CN 96121876 A CN96121876 A CN 96121876A CN 96121876 A CN96121876 A CN 96121876A CN 1156286 A CN1156286 A CN 1156286A
- Authority
- CN
- China
- Prior art keywords
- program
- object class
- message
- notation
- hoc structure
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Abstract
一种包括执行可校验中性结构程序的程序执行器和类装入器的计算机系统。每个对象类包括至少一个程序,每个程序包含一从程序组中选择的程序,该程序组包括中性结构程序和特定结构程序。当请求执行在一对象类中任何程序时,将所请求的对象类装入用户地址空间。该类装入器防止不可校验程序的装入和执行除非:该不可校验程序驻留在这类程序中的可靠保存区,或该不可校验程序可通过其上证明该程序由可靠源产生的数字标记间接校验。
Description
本发明涉及一般的分布式计算机系统,尤其涉及一种系统和方法,其中其完整性可校验的的程序的程序解释器包括一用于使用来自可靠源的不可校验程序和用于拒绝执行其它不可校验程序的装置。
本文中定义的术语“结构”意在表示一类计算机模型的操作特征。不同结构的例子有:苹果(Macintosh)计算机,采用DOS或Windows操作系统的IBM PC兼容机,运行Solaris操作系统的SUN Microsystems计算机和采用Unix操作系统的计算机系统。
本文中定义的术语“中性结构”意指某种程序,诸如以Java(SunMicrosystems公司的一个商标)语言编写的程序,在各种采用几个不同计算机结构的计算机平台上执行的能力。
本文中定义的术语“特定结构”意指对只在采用单一计算机结构的计算机平台上执行的某种程序的要求。例如,以80486汇编语言编写的目标码程序只能在采用IBM PC兼容机结构的计算机上执行(该程序也在包含IBM PC兼容机仿真器的其它计算机中执行)。
中性结构程序(ANProgram)的重要特点包括用中性结构语言(ANLanguage)编写的程序的结构独立性。例如,Java字节码程序能在任何具有Java字节码编译器的计算机平台上执行。Java字节码程序另一重要的特点是它们的完整性能在执行之前直接被Java字节码校验器校验。Java字节码校验器确定该程序是否满足预定的完整性判据。此种判据包括操作数堆栈和数据类型使用限定规则,这保证Java字节码程序不会上溢或下溢执行计算机的操作数堆栈并且所有的程序指令只使用已知数据类型的数据。其结果是,Java字节码程序不能产生对象指针并且通常不能访问没有明确授权给用户使用的系统资源。
不幸的是,用ANLanguange编写的分布式可执行程序使ANProgram的运行效率比若它能够利用特定结构所应具有的效率低。例如,Java字节码解释器执行的Java字节码程序典型的运行时间比用相应特定结构语言(ASLanguage)编译的等效特定结构程序(ASProgram)的运行时间慢2.5至5倍。当实际上考虑到五倍的速度损失的因素特别不适于ANProgram执行器(如解释器)时,这肯定是相当大的效率损失,因为一些用户会要求或坚持要求有使用以ASLanguage编译的等效程序的能力。
能将ANProgram编译成等效ASProgram的编译器可被写操作。然而,对终端用户来说它们可能会贵得令人望而却步。此外,等效的已编译ASProgram的完整性不能从已编译的ASProgram代码中被ANProgram完整性校验器直接校验。因此,在Java字节码程序中,使用编译成等效ASProgram的ANProgram可能导致损失了ANLanguage的一个最有价值的特点。
然而,有一些能够被完整性不可校验的ASProgram执行但不能被完整性可校验的ANProgram执行的合法任务。这些包括不然就要违反应用于完整性可校验的ANProgram的操作数堆栈和数据类型使用限定规则的任务。另外,这样的ASProgram执行速度比ANProgram快得多。结果是,对于为什么希望设计一种不仅主要执行完整性可校验的ANProgram而且具有执行完整性不可校验的ASProgram能力的计算机系统,有充分的理由。
虽然由一第三方对ANProgram进行编译是可能的,但这种编译需要第三方被认证,即,必须有可能在已编译的ASProgram的信息中校验出该信息被一特定可靠第三方编译。更好的是,也应有可能认证已编译的ASProgram由特定可靠编译器产生。并且,由于考虑到预定的完整性判据,已编译的ASProgram的完整性不能直接被校验,该已编译的ASProgram就应包括以可校验的方式确定被编译的相应ANProgram和ASLanguage的信息。
因此,本发明的一个目的是提供一种ANProgram编译器和编译方法,使从一相应的ANProgram编译出的ASProgram的用户能够认证ANProgram的编译方、相应的ANProgram和用于编译ASProgram的ASLanguage。
本发明的另一个目的是提供一种ANProgram执行器和执行方法,使被执行的完整性可校验的ANProgram能够调用可靠或有可校验源和编译信息的完整性不可校验的ASProgram以便基本上能够执行所有合法任务,同时又防止其源、编译信息和完整性不可校验的ASProgram被调用。
总之,本发明包括一个执行可校验中性结构程序的程序执行器,以及一个类装入器,该类装入器防止不可校验程序的装入和执行,除非(A)该不可校验程序驻留在这类程序的可靠保存区,或(B)该不可校验程序通过在该不可校验程序上可证明该程序由一可靠源产生的数字标记间接校验。
在优选实施例中。每个可校验程序为中性结构程序,该程序体现在一对象类中,该对象类具有包括唯一与该程序相关的消息摘要的数字标记。
不可校验程序体现为对象类,这些对象类包含一个指示该程序(称为一方法)为不可校验程序的关键字。在优选实施例中,不可校验程序通常为利用一编译器编译的特定结构程序。每个这样的对象类包括:
·已编译的、特定结构的代码;
·如果有相应中性结构程序(有时没有),则有相应中性结构程序的信息,该信息包括相应中性结构程序的消息摘要的拷贝;
·由产生该对象类(例如通过对源程序进行编译)的可靠“编译方”,利用该编译方的私用密钥标注的数字标记;以及
· 果在该对象类的代码由一编译器产生,数字标记由编译器利用编译器的私用密钥标注。
一通常可得到的、可靠的公共密钥的保存区保存用于编译器和可靠编译方的公共密钥,该公共密钥有时也称指定装置。利用公共密钥,所有具有不可校验程序的对象类的接收者能解密在该对象类中的数字标记,以校验该对象类是由一可靠方产生、校验该对象类的不可校验程序代码由指定编译器(如果有的话)产生、还校验该相应中性结构程序(如果有的话)的身份。此外,在该对象类中的不可校验程序代码具有一相应的可校验程序的情况下,该对象类的潜在用户能够使用该程序校验器在执行该对象类的不可校验程序代码之前校验相应可校验程序的适当操作。
参照附图,通过下面的详细说明及附加的权利要求,本发明的其它目的和特点将更显而易见,其中:
图1是包括有本发明一优选实施例的分布式计算机系统的框图;
图2示出根据本发明一优选实施例的中性结构程序的结构;
图3示出根据本发明一优选实施例产生的已编译的、特定结构程序的结构;
图4示出根据本发明一优选实施例的对象和相关的对象类。
参考图1示出的计算机网络100,它具有多个客户计算机102、一服务器计算机104和一可靠密钥保存区106。客户计算机102经网络通信连接108互相连接并与服务器计算机104和可靠密钥保存区106连接。网络通信连接可以是局域或广域网络、Internet、它们的组合或一些其它类型的网络通信连接。
若大多数客户计算机102为台式计算机,如Sun工作站、IBM兼容机和苹果计算机,事实是任何一种计算机都可以是客户计算机。每个客户计算机包括一CPU110、一用户接口112、一存储器114和一网络通信接口116。网络通信接口使客户计算机经网络通信连接108能够互相通信并与服务器计算机104和可靠密钥保存区106通信。
每个客户计算机102的存储器114存储一操作系统118、一网络通信管理器120、一ANProgram(中性结构程序)执行器122、一ASProgram(特定结构程序)执行器124和ANProgram完整性校验器126、一ANProgram编译预处理器128、一标记产生器130、一标记校验器132、一编译方信息(Complnfo)校验器134、一对象类装入器136、一用户地址空间138、一可靠对象类保存区140、一不可靠对象类保存区142和已知可靠编译方和可靠编译器列表144。操作系统由CPU110运行并根据由用户经用户接口112传来的命令控制和协调执行CPU上的程序120-136。
每个客户计算机102的ANProgram执行器122执行存储在可靠和不可靠对象类保存区140和142的对象类中的ANProgram。另外,ANProgram程序用ANLanguage编写,用户可为其建立预定的完整性判据,如堆栈和数据使用限定规则,以便ANProgram不会执行非法任务。于是,通过确定ANPraogram是否满足预定的完整性判据,该程序的完整性能够在执行前被ANProgram完整性校验器126直接校验。因此这些ANProgram被认为是完整性可校验的ANProgram。
在优选实施例中,完整性可校验的ANProgram用Java字节码语言编写。另外,ANProgram执行器122和ANProgram完整性校验器126分别为一Java字节码解释编译器和Java字节码程序校验器,它们分别执行和校验Java字节码程序。Java字节码校验器和解释器是Sun Microsystems有限公司的产品。
然而,每个客户计算机102具有一相关的特定结构,该结构下的程序可用相应的ASLanguage编写并由ASProgram执行器122执行。ASLanguage不要求用ASLanguage编写的ASProgram满足预定的ANLanguage的完整性判据。结果是,ASProgram能够执行不能由ANProgram执行的任务,原因是它们不受预定的ANLanguage的完整性判据的限制。然而不幸的是,这也意味着它们的完整性不能被ANProgram完整性校验器126直接校验,所以它们就被认为是完整性不可校验的。
尽管如此,正如前面所指出的,ANProgram的运行效率比用ASLanguage编译的相同程序的要低。因此,客户计算机102的用户就会希望拥有由服务器计算机104用与该用户的客户计算机相关的ASLanguage编译的ANProgram,以使经编译的ASProgram能够由ASProgram执行器124执行。或者,若经编译的ASProgram由其它客户计算机的ASProgram执行器124发送和执行,该用户就会希望拥有用与其它客户计算机相关的ASLanguage编译的ANProgram。
预处理用于编译的中性结构程序
参考图1和2,若一源方(OrigParty)希望拥有由服务器计算机104编译的一ANProgram,OrigParty经用户接口112发送一命令来调用ANProgram编译预处理器128,并指示它预处理用于编译的ANProgram。ANProgram可以在一个对象类中,此对象类包含在可靠或不可靠对象类保存区140或142之一中。表1包含代表ANProgram编译预处理器128采用过程的伪代码,该编译预处理器128预处理服务器计算机104编译的ANProgram。表1-3使用的伪代码采用了通用的计算机语言格式。本说明书采用的伪代码完全为了说明,它容易被任何本领域的熟练的计算机程序员理解。
参考图1和2与表1,ANProgram编译预处理器128先调用ANProgram完整性校验器126并命令它校验ANProgram 200的ANProgram代码202的完整性。这样做是为了保证在ANProgram被发送到服务器计算机104用于编译之前ANProgram代码满足预定的ANLanguage完整性判据。如果ANProgram代码不满足预定的完整性判据,ANProgram完整性校验器就回送一个失败结果给ANProgram编译预处理器。于是,ANProgram编译预处理器终止编译预处理过程并产生指示这一点的适当消息。
然而,如果ANProgram代码202确实满足预定的完整性判据,则ANProgram完整性校验器126就回送一个合格结果给ANProgram编译预处理器128。然后ANProgram编译预处理器调用标记产生器130并命令它产生OrigParty的数字标记(DigitalSignatureOP)210,该数字标记能够被校验以保证ANProgram由可靠OrigParty产生。标记产生器产生(DigitalSignatureOP)时先产生ANProgram代码202的消息摘要(MDOP)。它先计算一个ANProgram代码的数据位的散列函数(HashFunctionOP)。采用的散列函数可以是一预定的散列函数或由Origparty选择的一个散列函数。在本文中,由于HashFunctionOP用于Origparty的DigitalSignatureOP,因此根据Origparty采用HashFunctionOP。
然后,标记产生器130利用OrigParty的私用密钥(OrigParty’sPrivateKey)给产生的消息摘要(MDOP)212和HashFunctionOP的标识(HashFunctionOP ID)214加密。该标记产生器接着将明文中的OrigParty’s ID 216添加在被加密项212和214的末端以形成DigitalSignatureOP。OrigParty’s PrivateKey和ID由OrigParty经用户接口112提供。
在DigitalSignatureOP 210产生之后,ANProgram编译预处理器128将其附加到ANProgram代码202中。然后,ANProgram编译预处理器产生一个消息,该消息说明用于服务器计算机104编译的ANProgram 200已经被预处理。
再后OrigParty经用户接口112发送一命令给网络通信管理器120来将ANProgram 200传送给服务器计算机104,并一同传送说明要用其编译该程序的特定结构语言的变量(ASLanguage ID)和说明将采用的编译器的变量(Compiler ID)。网络通信管理器从存有ANProgram的可靠或不可靠对象类保存区140或142中检索ANProgram,并把它提供给网络通信接口116。然后网络通信管理器命令网络通信接口将ANProgram和特定变量传送给服务器计算机。
编译中性结构程序
然后,被传送的ANProgram 200被服务器计算机104接收。服务器计算机包括:一CPU150、一用户接口152、一存储器154和一网络通信接口156。网络通信接口使服务器计算机能够经网络通信连接108与客户计算机102和可靠密钥保存区106通信。
服务器计算机104的存储器154存储有一操作系统158、一网络通信管理器160、一ANProgram编译器162、一标记校验器164、一ANProgram完整性校验器166、一标记产生器168、一ANProgram保存区170和一ASProgram保存区172。操作系统在CPU150上运行,并且根据由一编译方(CompParty)经用户接口152发送的命令控制和协调运行CPU上的程序160-168。
网络通信接口156接收ANProgram 200并通知网络通信管理器160它已收到。于是,网络通信管理器将接收到的ANProgram放入ANProgram保存区170。若服务器计算机104被设置为自动编译装置,则网络通信管理器160就自动完成这一操作。不然,只有当CompParty经一用户接口发送一命令时,网络通信管理器才将ANProgram移入保存区170。
然后,不论是自动地还是根据由CompParty经用户接口252发送的命令,ANProgram编译器162都被调用来编译ANProgram 200。表2包含由ANProgram编译器采用的表示编译ANProgram的编译过程的伪代码。
参考图1-2和表2,ANProgram编译器162先调用标记校验器164来校验在接收到的ANProgram 200中的DigitalSignatureOP 210以便确定DigitalSignatureOP确实是ANProgram的源方的标记(例如与一些其它版本ANProgram上的伪标记或OrigParty标记相反)。具体说,标记校验器采用在接收到的ANProgram中明文(Clear Text)的OrigParty的ID 216来从可靠密钥保存区106中获取OrigParty的公共密钥(PublicKey)。然后标记校验器利用Origarty的公共密钥(OrigParty’s PublicKey)对DigitalSignatureOP中加密的MDOP212和HashFunctionOPID 241解密。
然后,通过计算接收到的ANProgram 200的ANProgram代码202的相应HashFunctionOP,标记校验器164产生应与解密的MDOP212匹配的一检测消息摘要(TestMDOP)。解密的DigitalSignatureOP中的HashFunctionOP ID 214用于确定要采用的正确的HashFunctionOP。然后解密的MDOP和已产生的TestMDOP相互比较以校验DigitalSignatureOP 210。
若MDOP212和TestMDOP不匹配,则标记校验器164回送一失败结果给ANProgram编译器162。于是,ANProgram编译器终止编译过程并产生一适当消息。
另一方面,若MDOP212和TestMDOP匹配,则标记校验器164回送一合格结果给ANProgram编译器162并且ANProgram编译器调用ANProgram完整性校验器166。它命令ANProgram完整性校验器校验接收到的ANProgram的ANProgram代码202的完整性。其方法和目的与前述讨论预处理用于编译的ANProgram的部分中的相同。所以,若ANProgram代码不满足预定的完整性判据,则ANProgram完整性校验器回送一失败结果给ANProgram编译器。于是,ANProgram编译器终止编译过程并产生表示这一点的适当消息。
然而,若接收到的ANProgram 200的ANProgram代码202不满足预定的完整性判据,则ANProgram完整性校验器166回送一合格结果给ANProgram编译器162。然后ANProgram编译器将该ANProgram代码编译成用由OrigParty规定的ASLanguage ID确定的ASLanguage。现在参考图1-3和表2,该编译器将ANProgram代码202、DigitalSignatureOP210和编译成的ASProgram代码302放入在ASProgram保存区172存贮的ASProgram 300中。
然后ANProgram编译器162调用标记产生器168并命令它产生ANProgram编译器的数字标记(DigitalSignatureC)320,数字标记320能够被校验以保证ASProgram300被可靠的ANProgram编译器编译。这与前述的产生DigitalSignatureOP的方式类似。然而,在这种情况下,被标识的信息方是ASProgram代码和DigitalSignatureOP。具有相应HashFunctionC ID324的另一个预定的散列函数可用来产生要被DigitalSignatureC标识的信息方的消息摘要MDC322,ANProgram编译器的私用密钥(Compiler’s PrivateKey)被用来加密MDC和HashfunctionC ID,并且ANProgram编译器的标识(Compiler’s ID)被加在明文中已加密的MDC和HashfunctionC ID的末端。Compiler’s PrivateKey和Compiler’s ID由ANProgram编译器提供。
ANProgram编译器162第二次调用标记产生器168来产生编译方(CompParty)的数字标记(DigitalSignatureCP)312,数字标记312能够被终端用户校验以保证ASProgram 300由可靠的CompParty产生。这与前述的产生DigitalSignatureOP(在讨论预处理用于编译的ANProgram部分中)的方式类似。然而,这里通过计算ASProgram代码的数据位的一预定或选择的散列函数(HashFunctionCP)、DigitalSignatureOP和DigitalSignatureC来产生DigitalSignatureCP的消息摘要(MDCP)314。同HashFunctionOP相似,在本文中,由于HashFunctionCP用于CompParty的DigitalSignatureCP,因此根据CompParty采用DigitalSignatureCP。
然后标记产生器168利用CompParty的私用密钥(CompParty’s PrivateKey)加密MDCP314和HashFunctionCP的ID(HashFunctionCP ID)316。接着标记产生器将CompParty的标识318加在明文中已加密项314和316的末端以形成DigitalSignatureCP312。CompParty’s PrivateKey和ID由CompParty经用户接口152提供。
在DigitalSignatureC320和DigitalSignatureCP312产生之后,ANProgram编译器162将它们附加给ASProgram代码302,以便所得的已编译的ASProgram文件或目标码中具有下面的成份:
ANProgram代码,
DigitalSignatureOP,
ASProgram代码,
DigitalSignatureC,以及
DigitalSignatureCP。
然后,ANProgram编译器产生一消息,该消息说明ANProgram 200已经被编译成ASProgram 300并且准备发送给OrigParty。
接着CompParty利用网络通信管理器160将ASProgram 300传送给OrigParty的客户计算机102。网络通信管理器通过从保存ASProgram的ASProgram保存区172中检索到ASProgram来完成这一操作,并把它提供给网络通信接口156。再后网络通信管理器命令网络通信接口将ASProgram传送给OrigParty的客户计算机。
对象和对象类的生成与分发
被传送的ASProgram 300接着由OrigParty的客户计算机的网络通信接口116接收并通知网络通信管理器120它已收到。于是,OrigParty经用户接口252发出一命令来指示网络通信管理器检索从网络通信接口接收到的ASProgram,使网络通信管理器将收到的ASProgram放入OrigParty的客户计算机的不可靠对象类保存区142中。一旦完成,OriigParty可以将检索到的ASProgram作为只对于一方法(即已编译的程序代码)的新对象类,或可以生成包括ASProgram 300和其它的ANProgram与ASProgram的一对象类。
图4示出了根据本发明的一典型对象类400。该对象类可以包括一个或多个ASProgram402和/或一个或多个ANProgram 404和一虚拟函数表410。对于每个ASProgram,虚拟函数表包含一相应的标识(本机_ASProgramID)412,它表示该程序是一个ASProgram(即本机程序)而不是用ANLanguage编译的程序,并且一相应指针414被指向该本机程序。同样地,对于每个ANProgram,虚拟函数表包含一相应的标识(ANProgram ID)416和指向ANProgram的一相应的指针(Ptr)418。这种对象类的每个对象420包括指向该对象类400的一对象首标422。
由此,OrigParty可以利用从服务器计算机104接收的作为一个该对象类中ASProgram 402的ASProgram 300生成一对象420和一对象类400。
若OrigParty希望将包括ASProgram 300和ANProgram的一对象和对象类分发给不同执行方(ExecuteParty),则OrigParty经用户接口112发出一命令,指示网络通信管理器将这些项传送给ExecuteParty的客户计算机102。网络通信管理器通过从保存这些项的不可靠对象类保存区142中检索它们来完成这一操作,并通过适当的传输指令将它们提供给网络通信接口116。此外,OrigParty的网络通信管理器可以响应由一ExecuteParty提出的用于拷贝一特定对象类400的请求。
对象类中的特定结构程序和中性结构程序的执行
客户计算机102的网络通信接口156接收传送来的对象和对象类并通知网络通信管理器已接收到。于是,ExecuteParty经用户接口112发出一命令,指示网络通信管理器检索从网络通信接口接收到的对象和对象类。网络通信管理器接着将接收到的对象和对象类存贮在不可靠对象类保存区142中。
每个客户计算机102的不可靠对象类保存区142包括不可靠对象和与它们相关的对象类。这些对象类不可靠是因为它们包含的任何ANProgram还没有校验它们的完整性,并且对它们包含的任何ASProgram还没有校验它们的源的完整性,也没有在从相应的ANProgram编译出时校验其完整性。
每个客户计算机102的可靠对象类保存区140包括可靠对象和与它们相关的对象类。这些对象类可靠是因为它们包含的任何ANProgram已经由ANProgram完整性校验器126校验了它们的完整性,并且它们包含的任何ASProgram已经被确认是可靠的。事实上,在可靠对象类保存区140中的某些或全部对象类不必具有数字标记,原因是这些目标类是可靠的,因此没有理由对这些对象类的方法进行完整性检验。
理想的对象类应主要包括ANProgram但也可以包括ASProgram以便基本上对该对象类的所有合法的任务能够执行,如前所述。因此,ANProgram执行器122能够执行完整性可校验的ANProgram,并调用ASProgram执行器执行完整性不可校验的ASProgram,这样的ASProgram或者(1)在可靠对象类保存区140中的可靠对象类中,或者(2)在不可靠对象类保存区142中的不可靠对象类中,并且具有可校验的DigitalSignatureOP、DigitalSignatureCP和DigitalSignatureC信息以便基本上所有合法任务能够执行。这样一来,不具有DigitalSignatureOP、DigitalSignatureCP和DigitalSignatureC信息或其数字标记不能被校验的不可靠对象类的ASProgram被禁止执行。表3包含由ANProgram执行器采用的表示执行过程的伪代码。
参考图1-4和表3,在一ExecuteParty(例如OrigParty或另一方)客户计算机102中,ANProgram执行器122可以执行一ANProgram,该ANProgram试图在一特定对象类中调用一方法。最初该方法调用由对象类装入器136处理,对象类装入器136确定该对象类是否已经被装入。如果该对象类已经被装入ExecuteParty的用户地址空间138,则在该被调用的方法是一ANProgram的条件下,ANProgram执行器122执行该被调用的方法,而在该被调用的方法是一ASProgram的条件下,ASProgram执行器124执行该被调用的方法。
但是,如果该对象类没有被装进ExecuteParty的用户地址空间138,则对象类装入器136将该对象类装进ExecuteParty的用户地址空间并确定是否允许执行该被调用的方法。例如,若该对象类是从可靠对象类保存区140装入的,则允许执行该调用的方法并且调用一执行过程。若被调用的方法是一ANProgram,该执行过程(参见表3)调用ANProgram执行器,不然就调用ASProgram执行器124执行该被调用的方法。
然而,若该对象类从不可靠对象类保存区142装入,则对象类装入器136检查此对象的对象首标以确定它的对象类是否包含任何ASProgram。它通过确定在该对象的虚拟函数表中是否存在本机ASProgram ID来完成这一操作。
若在该对象类中没有ASProgram,则对象类装入器136调用ANProgram完整性校验器126来校验该对象类中ANProgram的完整性。这与前述的用于校验ANProgram 200完整性(在讨论编译一ANProgram的部分中)的方式和目的相同。所以,如果任何ANProgram的完整性没有被校验,则ANProgram完整性校验器将一失败结果传回给类装入器并且类装入器终止类装入过程并产生一个指示这一点的适当消息。但是,若ANProgram完整性校验器传回的是指示该对象类的所有ANProgram被校验的合格结果,则类装入器能够执行该调用方法。
若在该对象类中存在任何ASProgram,则对象类装入器136调用标记校验器132来校验编译器标记DigitalSignatureC和CompParty标记DigitalSignatureCP。如果任何ASProgram都不包括一DigitalSignatureCP和一DigitalSignatureC,则ASProgram的源的完整性不能被校验,因此标记校验器回送一失败结果给ANProgram执行器。于是,类装入器终止对象类装入调用过程并产生一个表示这已发生的适当消息。
再有,若在该对象类中所有ASProgram不包含一DigitalSignatureCP和一DigitalSignatureC,则在这两个数字标记中指出的CompParty和编译器的标识与可靠编译方和可靠编译器已知列表144相比较。如果在该对象类中任何ASProgram是由没有包含在已知的可靠编译方和可靠编译器的方中的CompParty或编译器编译的,则终止该对象类装入过程,因而就阻止执行该被调用的方法。若在任何ASProgram中确定的ASLanguage不与ASProgram执行器124采用的ASLanguage匹配,则同样终止该对象类装入过程。
然而,如果在该对象类中所有ASProgram包括一DigitalSignatureCP和一DigitalSignatureC,并且为所有ASProgram的确定CompParty和编译器是可靠的编译方和编译器,以及所有ASProgram使用的ASLanguage是由ASProgram执行器使用的,则标记校验器以与前述的用于校验DigitalSignatureOP(在讨论编译ANProgram200的部分中)的同样的方式校验这些标记。但是,在此情况下,编译器和CompParty的公共密钥从可靠密钥保存区106中检索并分别用于解密DigitalSignatureC中的MDC和HashFunctionC ID和DigitalSignatureCP中的MDCP和HashFunctionCP ID。另外,相应于被解密的MDCP和MDC的检测消息摘要(TestMDC和TestMDCP),分别根据由被解密的HashFunctionC ID和HashFunctionCP ID分别标识的HashFunctionC和HashFunctionCP,通过计算ASProgram代码数据位上的散列代码加上TestMDC的DigitalSignatureOP以及同一数据位上的散列代码加上TestMDCP的DigitalSignatureC来产生。
如果每个ASProgram的DigitalSignatureC和/或DigitalSignatureCP未被校验(即,MDC≠TestMDC和/或MDCP≠TestMDCP),则标记校验器132回送一个失败结果给对象类装入器136。于是,类装入器终止类装入过程并产生说明这种情况的适当消息。
然而,如果每个ASProgram的DigitalSignatureC和DigitalSignatureCP均被校验(即,MDC=TestMDC和MDCP=TestMDCP),则ASProgram执行器124再次调用标记校验器132来校验被编译成ASProgram的ANProgram的OrigParty的标记(DigitalSignatureOP)。为了校验OrigParty数字标记,每个DigitalSignatureOP以与前述有关ANProgram 200编译的部分的同样的方式校验。
若每个被编译成ASProgram的ANProgram的DigitalSignatureOP被校验,则类装入器调用ANProgram完整性校验器来校验该对象类中每个ANProgram和被编译成ASProgram的ANProgram的完整性。这采用与前述同样的方式来完成。如果这些ANProgram中的任何一个的完整性未被校验,则ANProgram完整性校验器回送一个失败结果给类装入器,类装入器就终止类装入过程并产生一适当消息。
然而,如果每个ANProgram的完整性均被校验,则ANProgram完整性校验器126回送一个合格结果给对象类装入器136。于是,类装入器调用ANProgram执行器或ASProgram执行器来执行适当的被调用的方法。
从前述中可以看出,ExecuterParty保证在不可靠保存区142中只有那些具有完整性可校验的ANProgram和ASProgram的数字标记能够被校验的ASProgram的不可靠对象类将被装入并使它们的程序被执行。
其它实施例
上述的本发明的一些特征是可选的,所以,本领域的技术人员应意识到存在不包括这些特征的其它实施例。
例如,已经说明的ANProgram编译器分别产生用于CompParty和ANProgram编译器的一DigitalSignatureCP和一DigitalSignatureC。然而,ANProgram编译器也可被简单构造仅产生使用于编译ASProgram的编译器或编译方能够被校验的这些数字标记中的一个。
同样地,已经说明的程序执行器要求校验一DigitalSignatureCP和一DigitalSignatureC。然而,也可构造要求仅校验这些数字标记中的一个和在被校验的ASProgram包含的另一个数字标记的情况下,进行有选择的校验的程序执行器。另外,还能够组建跳过相应每个ASProgram的ANProgram的完整性的校验步骤的程序执行器,前提是假设编译方是可靠的,并且,在执行编译前,编译方有校验编译成一ASProgram的每个ANProgram的完整性的义务。
若ExecuterParty为OrigParty,ExecuterParty应清楚它实际上将ANProgram 200发送到CompParty的服务器计算机104以将其编译成ASProgram 300。这种情况下,能够构造不调用标记校验器来校验ANProgam中DigitalSignatureOP的对象类装入器136。而且,ExecuterParty只简单地比较ANProgram的本机拷贝中的DigitalSignatureOP与编译成的ASProgram的DigitalSignatureOP。此外,由于在被发送到编译服务器计算机之前,ANProgram的完整性在用于编译过程的预处理期间已经被检验,所以还能够构造不调用ANProgam完整性校验器126来校验相应于一被调用的ASProgram的ANProgam的完整性的类装入器。另外,由于在执行相应的ASProgam之前,ANProgram的完整性会被编译器和类装入器调用的ANProgam完整性校验器校验,所以还能够构造在用于编译的预处理过程期间不调用ANProgam完整性校验器的ANProgram编译预处理器128。
以上参照几个特定实施例对本发明的进行了说明,此说明是示范性的而不是意在限制本发明。本领域的技术人员可对其进行的各种修改并没有脱离由所附权利要求书规定的本发明的实质和范围。
表1
表示用于编译的中性结构程序预处理方法的伪代码
Procedure: Prepare for Compiling (ANProgram code,OrigParty’s PrivateKey,and OrigParty’s ID) { Verify integrity of ANProgram with ANProgram integrity verifier If failed result {abort and generate failed result message} Generate MDOP=HashFunctionOP(ANProgram code) Generate DigitalSignatureOP=Encrypt(MDOP+HashFunctionOP ID,OrigParty’s PrivateKey)+ClearText(OrigParty’s ID) Append DigitalSignatureOP to ANProgram code Generate message that ANProgram is prepared for compiling Return }
表2
表示编译ANProgram和产生ASProgram的伪代码
Procedure:Compile(ANProgram,CompParty’s ID,ASLanguageID,CompParty’s PrivateKey,Compiler’s ID,and Compiler’s PrivateKey) { Retrieve OrigParty’s PublicKey from trusted key repository using ClearText OrigParty’s ID in DigitalSignatureOP Decryp{(MDOP+HashFunctionOP ID in DigitalSignatureOP, OrigParty’s PublicKey) Cenerate TestMDOP=HashFunctionOP(ANProgram code)using HashFunctionOPidentified by decrypted HashFunctionOP ID Compare decrypted MDOP and TestMDOP if decrypted MDOP≠TestMDOP { /* DigitalSignatureOP of OrigParty not verified */ Generate failed result message } Else { /* DigitalSignatureOP of OrigParty has been verified */ Verify integrity of ANProgram with ANProgram integrity verifier If failed result { abort and generate failed result message } Else { /* ANProgram has been verified */ Compile ANProgram code into ASLanguage identified by ASLanguage ID to generate ASProgram code Generate MDC=HashFunctionCS(ASProgram code+ DigitalSignatureOP) Generate DigitalSignatureC=Encrypt(MDC+HashFunctionC ID, ANProgrom Compiler’s PrivateKey)+ClearText ANProgram Compiler’s ID Generate MDCP=HashFunctionCP(ASProgram code+ DigitalSignatureOP+DigitalSignatureC) Generate DigitalSignatureCP=Encrypt(MDCP+HashFunctionCP ID,CompParty’s PrivateKey)+ClearText CompParty’s ID <dp n="d15"/> Generate and Return File or Object containing: ANProgram Code, DigitalSignatureOP, ASProgram Code, DigitalSignatureC,and DigitalSignatureCP /* ASProgram has been compiled and generated */ } } }
表3
表示特定结构程序的执行方法的伪代码
Procedure:Execute(ObjectClass,Program) { If the Program is a verifiable program { Execute Program using the Bytecode Interpreter } Else { Execute Program using the compiled program executer } } Procedure:ClassLoad (ObjectClass,Program) { If Object Class has already been loaded into ExecuterParty’s address space { Call Execute (ObjectClass,Program) Return } /* The Object Class has not been loaded */ Load Object Class into ExecuterParty’s address space If Object Class was loaded from Trusted Object Class Repository { Call Execute (ObjectClass,Program) Return } /* Object Class was loaded from Untrusted Object Class Repository */ If Object Class does not contain any ASPrograms designated as native_ASPrograms in Object Header of Object { Verify integrity of all ANPrograms of Object Class with ANProgram integrity verifier If failed result { Abort with appropriate failed result message } Else /* Integrity of all ANPrograms of Object Class have been verified */ { Call Execute (ObjectClass,Program) } <dp n="d17"/> Return } /* Object Class does contain ASPrograms designated as native_ASPrograms in Object Header of Object */ If any ASProgram does not contain a DigitalSignatureCP and a DigitalSignatureC { /* Compiling Party and Compiler of every ASProgram cannot be verified */ Generate appropriate message Return For each ASProgram in Object Class: { Determine identity of CompParty and Compiler and determine ASLanguage used by ASProgram } If identity of CompParty for any ASProgram is not a known,trusted,Compiling Party,or the identity of Compiler is not a known,trusted Compiler,or the identified ASLanguage is not one used by the ASProgram Executer { Generate appropriate message Return For each ASProgram in Object Class: { Retrieve CompParty’s PublicKey from trusted key repository using ClearText CompParty’s ID in DigitalSignatureCP Decrypt (MDCP+HashFunctionCP ID in DigitalSignatureCP,CompParty’s PublicKey) Generate TestMDCP=HashFunctionCP(ASProgram code+DigitalSignatureOP +DigitalSignatureC in ASProgram)using HashFunctionCP identified by decrypted HashFunctionCP ID Compare decrypted MDCP and TestMDCP } If decrypted MDCP≠TestMDCP for any ASProgram { /* DigitalSignatureCP for every ASProgram has not been verified */ Generate appropriate failed result message Return } /* DigitalSignatureCP for every ASProgram has been verified*/ <dp n="d18"/> For each ASProgram in Object Class: { Retrieve ANProgram Compiler’s PublicKey from trusted key repository using ClearText ANProgram Compiler’s ID in DigitalSignatureC Decrypt(MDC+HashFunctionC ID in DigitalSignatureC,ANProgram Compiler’s PublicKey) Generate TestMDC=HashFunctionC(ASProgram code+DigitalSignatureOP) using HashFunctionC identified by decrypted HashFunctionC ID Compare decrypted MDC and TestMDC }If decrypted MDC≠TestMDC for any ASProgram { /* DigitalSignatureC for every ASProgram in Object Class has not been verified */ Generate appropriate failed result message Return { /* DigitalSignatureC for every ASProgram in Object Class has been verified */ For each ANProgram from which an ASProgram in Object Class was compiled: { Retrieve OrigParty’s PublicKey from trusted key repository using ClearText OrigParty’s ID in DigitalSignatureOP Decrypt (MDOP+HashFunctionOP ID in DigitalSignatureOP,OrigParty’s PublicKey) Generate TestMDOP=HashFunctionOP(ANProgram code)using HashFunctionOP identified by decrypted HashFunctionOP ID Compare decrypted MDOP and TestMDOP } If decrypted MDOP≠TestMDOP for any ANProgram { /* DigitalSignatureOP for every ANProgram from which an ASProgram in Object Class was compiled not verified */ Generate failed result message Return } /* The DigitalSignatureOP in every ASProgram in Object Class is verified */ Verify integrity of ANPrograms in Object class and ANPrograms from which ASPrograms in Object Class were compiled with ANProgram integrity verifier If failed result { <dp n="d19"/> Generate failed result message Return } /* Integrity of all ANPrograms in Object class and all ANPrograms from which ASPrograms in Object Class were compiled have been verified */ Call Execute (ObjectClass,Program) }
Claims (12)
1、一种计算机,包括:
一程序完整性校验器,它校验用中性结构语言编写的程序是否满足预定的程序完整性判据;
一数字标记校验器,它校验包含在该程序中的程序源方的数字标记;
一不可靠对象类保存区,它存储不可靠对象类;
一可靠对象类保存区,它存储可靠对象类;
每个所述对象类包括至少一个程序,每个程序包含从一程序组中选择的程序,该程序组包括(A)用中性结构语言编写的中性结构程序和(B)用特定结构语言编写的其完整性不能被完整性校验器校验的特定结构程序;
一特定结构程序执行器;
一中性结构程序执行器;
一用户地址空间;以及
一类装入器,当请求执行在一对象类中的任何程序时,它将特定的所述对象类装入用户地址空间来执行,所述类装入器包括程序安全逻辑,用于防止任何所请求的包括至少一个特定结构程序的、不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个数字标记并且所述数字标记成功地被所述数字标记校验器校验。
2、如权利要求1所述的计算机,所述类装入器包括校验器逻辑,用于当所请求的对象类没有存贮在所述可靠对象类保存区中并且包括至少一个中性结构程序时,调用所述程序完整性校验器来校验所请求的对象类中的每个中性结构程序;
当所请求的对象类包括至少一个其完整性没有被所述程序完整性校验器校验的中性结构程序时,所述程序安全逻辑还防止所述任何所请求的不在所述可靠对象类保存区中的对象类的装入。
3、如权利要求1所述的计算机,
与所述特定结构程序相关的每个所述数字标记包括一加标记方标识和一加密的消息,所述加密的消息包括采用一消息摘要函数产生的特定结构程序的消息摘要,其中已采用与所述识别编译方相关的一私用密钥将所述加密的消息加密;以及
所述数字标记校验器包括的逻辑用于通过获得与所述加标记方标识识别的编译方相关的一公共密钥来预处理一特定数字标记,采用所述公共密钥解密所述数字标记的加密的消息以便产生一解密的消息摘要,通过对与所述数字标记相关的特定结构程序执行所述消息摘要函数来产生一检测消息,比较所述检测消息摘要和所述解密的消息摘要,并且如果所述解密的消息摘要同检测消息摘要不匹配就发出一失败信号。
4、如权利要求1所述的计算机,
所述程序安全逻辑还防止所述任何所请求的包括至少一个特定结构程序的、不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括两个数字标记并且所述数字标记都成功地被所述数字标记校验器校验。
与一个所述特定结构程序相关的每个所述数字标记包括一加标记方标识和一加密的消息,所述加密的消息包括由预定过程产生的一消息,其中采用与所述识别的编译方相关的一私用密钥已将所述加密的消息加密;
所述数字标记校验器包括的逻辑用于通过获得与所述加标记方标识识别的编译方相关的一公共密钥来预处理一特定数字标记,采用所述公共密钥解密所述数字标记的加密的消息以便产生一解密的消息,通过对与所述数字标记相关的特定结构程序执行所述预定过程来产生一检测消息,比较所述检测消息摘要和所述解密的消息,并且如果所述解密的消息摘要同检测消息摘要不匹配就发出一失败信号;以及
所述程序安全逻辑,用于防止所请求的不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个第一数字标记和第二数字标记,第一数字标记用于说明该编译方属于第一组可靠方而第二数字标记用于说明该编译方属于第二组可靠方。
5、如权利要求1所述的计算机,
所述程序安全逻辑,用于防止所请求的不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个相关中性结构程序的消息摘要,并且所述消息摘要与一检测消息摘要匹配,所述检测消息摘要由所述程序安全逻辑通过对所述相关中性结构程序执行预定消息摘要过程来产生。
6、一种操作计算机系统的方法,包括步骤:
将不可靠对象类存贮在一不可靠对象类保存区中;
将可靠对象类存贮在一可靠对象类保存区中;
每个所述对象类包括至少一个程序,每个程序包含一从程序组中选择的程序,该程序组包括(A)以中性结构语言编写的中性结构程序和(B)以特定结构语言编写的其完整性不能被完整性校验器校验的特定结构程序;
当请求执行在一对象类中任何程序时,将所请求的对象类装入用户地址空间来执行,除非该所请求的对象类的装入因破坏安全被禁止,这包括防止任何所请求的包括至少一个特定结构程序的、不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个数字标记并且所述数字标记成功地被所述数字标记校验器校验。
7、如权利要求6所述的方法,所述对象类装入步骤包括(A)当所请求对象类没有存贮在所述可靠对象类保存区中并包括至少一个中性结构程序时校验该请求对象类中的每个中性结构程序的完整性,以及(B)当该请求对象类包括至少一个其完整性没有被校验的中性结构程序时,防止该请求对象类的装入,除非求对象类在所述可靠对象类保存区中。
8、如权利要求6所述的方法,
与一个所述特定结构程序相关的每个所述数字标记包括一加标记方标识和一加密的消息,所述加密的消息包括采用一消息摘要函数产生的特定结构程序的消息摘要,其中采用与所述识别的编译方相关的一私用密钥已将所述加密的消息加密;以及
所述对象类装入步骤包括:通过获得与所述加标记方标识识别的编译方相关的一公共密钥来预处理一特定数字标记,采用所述公共密钥解密所述数字标记的加密的消息以便产生一解密的消息摘要,通过对与所述数字标记相关的特定结构程序执行所述消息摘要函数来产生一检测消息,比较所述检测消息摘要和所述解密的消息摘要,并且如果所述解密的消息摘要同检测消息摘要不匹配就发出一失败信号。
9、如权利要求6所述的方法,
对象类装入步骤包括防止任何所请求的包括至少一个特定结构程序的、不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括两个数字标记并且所述数字标记成功地被所述数字标记校验器校验。
与某个所述特定结构程序相关的每个所述数字标记包括一加标记方标识和一加密的消息,所述加密的消息包括由一预定过程产生的消息,其中采用与所述识别编译方相关的一私用密钥已将所述加密的消息加密;
所述对象类装入步骤包括:通过获得与所述加标记方标识识别的编译方相关的一公共密钥来预处理一特定数字标记,采用所述公共密钥解密所述数字标记的加密的消息以便产生一解密的消息,通过对与所述数字标记相关的特定结构程序执行所述预定过程来产生一检测消息,比较所述检测消息和所述解密的消息,并且如果所述解密的消息摘要同检测消息摘要不匹配就发出一失败信号。
所述对象类装入步骤还包括:防止所请求的不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个第一数字标记和第二数字标记,第一数字标记用于说明该编译方属于第一组可靠方而第二数字标记用于说明该编译方属于第二组可靠方。
10、如权利要求6所述的方法,
所述对象类装入步骤包括:防止所请求的不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中的每个特定结构程序包括相关中性结构程序的消息摘要,并且所述消息摘要与由所述程序安全逻辑对所述相关中性结构程序执行一预定消息摘要过程而产生的检测消息摘要相匹配。
11、一种用于存贮在一数据预处理系统中执行的数据程序的存储器,所述存储器包括:
一程序完整性校验器,它校验用中性结构语言编写的程序满足预定的程序完整性判据;
一数字标记校验器,它校验包含在该程序中的源程序方的数字标记;
一不可靠对象类保存区,它存储不可靠对象类;
一可靠对象类保存区,它存储可靠对象类;
每个所述对象类包括至少一个程序,每个程序包含一个从程序组中选择的程序,该程序组包括(A)用中性结构语言编写的中性结构程序和(B)以特定结构语言编写的其完整性不能被完整性校验器校验的特定结构程序;
一特定结构程序执行器;
一中性结构程序执行器;
一用户地址空间;以及
一类装入器,当请求执行在一对象类中的任何程序时,它将一特定的所述对象类装入用户地址空间来执行,所述类装入器包括程序安全指令,用于防止任何所请求的包括至少一个特定结构程序的、不在所述可靠对象类保存区中的对象类的装入,除非在所请求的对象类中每个特定结构程序包括一个数字标记并且所述数字标记成功地被所述数字标记校验器校验。
12、如权利要求11所述的存储器,所述类装入器包含校验器指令,用于当所请求的对象类没有存贮在所述可靠对象类保存区中并且包括至少一个中性结构程序时,调用所述程序完整性校验器来校验所请求的对象类中的每个中性结构程序;
所述程序安全指令还防止所述任何所请求的不在所述可靠对象类保存区中的对象类的装入,而所请求的对象类包括至少一个其完整性没有被所述程序完整性校验器校验的中性结构程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/569,398 US5692047A (en) | 1995-12-08 | 1995-12-08 | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US569398 | 1995-12-08 | ||
US569,398 | 1995-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1156286A true CN1156286A (zh) | 1997-08-06 |
CN1097771C CN1097771C (zh) | 2003-01-01 |
Family
ID=24275287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96121876A Expired - Fee Related CN1097771C (zh) | 1995-12-08 | 1996-12-05 | 执行可校验程序的系统和方法 |
Country Status (11)
Country | Link |
---|---|
US (2) | US5692047A (zh) |
EP (1) | EP0778520B1 (zh) |
JP (1) | JP4112033B2 (zh) |
KR (1) | KR100433319B1 (zh) |
CN (1) | CN1097771C (zh) |
AU (1) | AU717615B2 (zh) |
CA (1) | CA2190556A1 (zh) |
DE (1) | DE69634684T2 (zh) |
HK (1) | HK1000846A1 (zh) |
SG (1) | SG75108A1 (zh) |
TW (1) | TW355768B (zh) |
Families Citing this family (215)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US7743248B2 (en) * | 1995-01-17 | 2010-06-22 | Eoriginal, Inc. | System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components |
US6237096B1 (en) * | 1995-01-17 | 2001-05-22 | Eoriginal Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
US7162635B2 (en) * | 1995-01-17 | 2007-01-09 | Eoriginal, Inc. | System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents |
DE69637733D1 (de) | 1995-02-13 | 2008-12-11 | Intertrust Tech Corp | Systeme und verfahren für ein sicheres übertragung |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US20120166807A1 (en) | 1996-08-12 | 2012-06-28 | Intertrust Technologies Corp. | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
JP3927600B2 (ja) * | 1995-05-30 | 2007-06-13 | コーポレーション フォー ナショナル リサーチ イニシアチブス | 分散タスク実行のためのシステム |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
FR2742245B1 (fr) * | 1995-12-08 | 1998-01-23 | Transtar | Procede de manipulation de modeles de donnees utilises en genie logiciel |
US6075863A (en) * | 1996-02-28 | 2000-06-13 | Encanto Networks | Intelligent communication device |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US5978484A (en) * | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
US5794049A (en) * | 1996-06-05 | 1998-08-11 | Sun Microsystems, Inc. | Computer system and method for executing architecture specific code with reduced run-time memory space requirements |
US6161121A (en) * | 1996-07-01 | 2000-12-12 | Sun Microsystems, Inc. | Generic transfer of exclusive rights |
US5987123A (en) * | 1996-07-03 | 1999-11-16 | Sun Microsystems, Incorporated | Secure file system |
US7590853B1 (en) * | 1996-08-12 | 2009-09-15 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
AU2004240210B2 (en) * | 1996-08-12 | 2008-03-06 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
AU2003203649B2 (en) * | 1996-08-12 | 2006-03-02 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
US6089460A (en) * | 1996-09-13 | 2000-07-18 | Nippon Steel Corporation | Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor |
US6857099B1 (en) * | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US5958050A (en) * | 1996-09-24 | 1999-09-28 | Electric Communities | Trusted delegation system |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5944823A (en) * | 1996-10-21 | 1999-08-31 | International Business Machines Corporations | Outside access to computer resources through a firewall |
US7058822B2 (en) | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
US8079086B1 (en) | 1997-11-06 | 2011-12-13 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US9219755B2 (en) | 1996-11-08 | 2015-12-22 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US7613926B2 (en) * | 1997-11-06 | 2009-11-03 | Finjan Software, Ltd | Method and system for protecting a computer and a network from hostile downloadables |
US6167520A (en) | 1996-11-08 | 2000-12-26 | Finjan Software, Inc. | System and method for protecting a client during runtime from hostile downloadables |
US6154844A (en) * | 1996-11-08 | 2000-11-28 | Finjan Software, Ltd. | System and method for attaching a downloadable security profile to a downloadable |
US5937193A (en) * | 1996-11-27 | 1999-08-10 | Vlsi Technology, Inc. | Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof |
US6367012B1 (en) * | 1996-12-06 | 2002-04-02 | Microsoft Corporation | Embedding certifications in executable files for network transmission |
US6148401A (en) * | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
US5915085A (en) * | 1997-02-28 | 1999-06-22 | International Business Machines Corporation | Multiple resource or security contexts in a multithreaded application |
US5905895A (en) * | 1997-03-07 | 1999-05-18 | International Business Machines Corporation | Method and system for optimizing non-native bytecodes before bytecode interpretation |
US5946493A (en) * | 1997-03-28 | 1999-08-31 | International Business Machines Corporation | Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions |
US6167522A (en) * | 1997-04-01 | 2000-12-26 | Sun Microsystems, Inc. | Method and apparatus for providing security for servers executing application programs received via a network |
US6381698B1 (en) | 1997-05-21 | 2002-04-30 | At&T Corp | System and method for providing assurance to a host that a piece of software possesses a particular property |
CN1122213C (zh) * | 1997-05-29 | 2003-09-24 | 太阳微系统公司 | 给对象签名和签章的方法和设备 |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6065046A (en) * | 1997-07-29 | 2000-05-16 | Catharon Productions, Inc. | Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
US5970252A (en) * | 1997-08-12 | 1999-10-19 | International Business Machines Corporation | Method and apparatus for loading components in a component system |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6182279B1 (en) | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
US6009524A (en) * | 1997-08-29 | 1999-12-28 | Compact Computer Corp | Method for the secure remote flashing of a BIOS memory |
US6397331B1 (en) * | 1997-09-16 | 2002-05-28 | Safenet, Inc. | Method for expanding secure kernel program memory |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6128774A (en) * | 1997-10-28 | 2000-10-03 | Necula; George C. | Safe to execute verification of software |
US8225408B2 (en) * | 1997-11-06 | 2012-07-17 | Finjan, Inc. | Method and system for adaptive rule-based content scanners |
US7418731B2 (en) * | 1997-11-06 | 2008-08-26 | Finjan Software, Ltd. | Method and system for caching at secure gateways |
US7975305B2 (en) * | 1997-11-06 | 2011-07-05 | Finjan, Inc. | Method and system for adaptive rule-based content scanners for desktop computers |
IL122314A (en) | 1997-11-27 | 2001-03-19 | Security 7 Software Ltd | Method and system for enforcing a communication security policy |
US6334189B1 (en) * | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US6044467A (en) * | 1997-12-11 | 2000-03-28 | Sun Microsystems, Inc. | Secure class resolution, loading and definition |
US6418444B1 (en) | 1997-12-11 | 2002-07-09 | Sun Microsystems, Inc. | Method and apparatus for selective excution of a computer program |
JP2002509313A (ja) | 1998-01-16 | 2002-03-26 | メディアドナ、インコーポレイテッド | ピアコンポーネントを認証するためのシステムおよび方法 |
US7268700B1 (en) | 1998-01-27 | 2007-09-11 | Hoffberg Steven M | Mobile communication device |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
EP1058883A2 (en) | 1998-02-26 | 2000-12-13 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
JP2002505491A (ja) * | 1998-02-26 | 2002-02-19 | サンマイクロシステムズ インコーポレーテッド | 分散形システムにおける動的情報証明のための装置及び方法 |
AU3003399A (en) * | 1998-03-13 | 1999-09-27 | 2Way Corporation | Method and apparatus for publishing documents in a protected environment |
US5999732A (en) | 1998-03-23 | 1999-12-07 | Sun Microsystems, Inc. | Techniques for reducing the cost of dynamic class initialization checks in compiled code |
US6684332B1 (en) | 1998-06-10 | 2004-01-27 | International Business Machines Corporation | Method and system for the exchange of digitally signed objects over an insecure network |
WO1999066383A2 (en) * | 1998-06-15 | 1999-12-23 | Dmw Worldwide, Inc. | Method and apparatus for assessing the security of a computer system |
US6131165A (en) * | 1998-06-18 | 2000-10-10 | Sun Microsystems, Inc. | Permit for controlling access to services in protected memory systems |
US6792606B2 (en) | 1998-07-17 | 2004-09-14 | International Business Machines Corporation | Method and apparatus for object persistence |
US6223287B1 (en) | 1998-07-24 | 2001-04-24 | International Business Machines Corporation | Method for establishing a secured communication channel over the internet |
US6735696B1 (en) * | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
US6202201B1 (en) | 1998-09-23 | 2001-03-13 | Netcreate Systems, Inc. | Text object compilation method and system |
US6154842A (en) * | 1998-10-13 | 2000-11-28 | Motorola, Inc. | Method and system for reducing time and power requirements for executing computer-readable instruction streams in an execution environment having run-time security constraints |
US6802006B1 (en) * | 1999-01-15 | 2004-10-05 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US6880155B2 (en) | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
AU3993500A (en) * | 1999-03-31 | 2000-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Distribution of service execution environments with respect to a centralized service supplier environment |
WO2000060466A1 (en) * | 1999-04-05 | 2000-10-12 | Manage.Com | Management agent and system including the same |
US6748580B1 (en) | 1999-04-22 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for creating software tools using a JTML interface |
US6782478B1 (en) * | 1999-04-28 | 2004-08-24 | Thomas Probert | Techniques for encoding information in computer code |
US7421586B2 (en) * | 1999-05-12 | 2008-09-02 | Fraunhofer Gesselschaft | Protecting mobile code against malicious hosts |
AU4674300A (en) * | 1999-05-25 | 2000-12-12 | Motorola, Inc. | Pre-verification of applications in mobile computing |
US6658567B1 (en) | 1999-06-25 | 2003-12-02 | Geomechanics International, Inc. | Method and logic for locking geological data and an analyzer program that analyzes the geological data |
US6681329B1 (en) * | 1999-06-25 | 2004-01-20 | International Business Machines Corporation | Integrity checking of a relocated executable module loaded within memory |
US7650504B2 (en) * | 1999-07-22 | 2010-01-19 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
ATE306098T1 (de) | 1999-07-30 | 2005-10-15 | Intertrust Tech Corp | Verfahren und systeme zur transaktionsaufzeichnungsübertragung unter anwendung von schwellen und einem mehrstufigen protokoll |
US6675298B1 (en) * | 1999-08-18 | 2004-01-06 | Sun Microsystems, Inc. | Execution of instructions using op code lengths longer than standard op code lengths to encode data |
US7406603B1 (en) * | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
EP1128598A4 (en) * | 1999-09-07 | 2007-06-20 | Sony Corp | SYSTEM, DEVICE, METHOD AND PROGRAM SUPPORT FOR CONTENT MANAGEMENT |
US6985885B1 (en) * | 1999-09-21 | 2006-01-10 | Intertrust Technologies Corp. | Systems and methods for pricing and selling digital goods |
US6684387B1 (en) | 1999-09-23 | 2004-01-27 | International Business Machines Corporation | Method and apparatus for verifying Enterprise Java Beans |
US6748538B1 (en) * | 1999-11-03 | 2004-06-08 | Intel Corporation | Integrity scanner |
US7158993B1 (en) | 1999-11-12 | 2007-01-02 | Sun Microsystems, Inc. | API representation enabling submerged hierarchy |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
FI111567B (fi) * | 1999-12-27 | 2003-08-15 | Nokia Corp | Menetelmä ohjelmamoduulin lataamiseksi |
JP2001195247A (ja) * | 2000-01-07 | 2001-07-19 | Nec Corp | ソフトウェアの安全性を検証し保証するシステム及び方法 |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6529985B1 (en) | 2000-02-04 | 2003-03-04 | Ensim Corporation | Selective interception of system calls |
US6560613B1 (en) | 2000-02-08 | 2003-05-06 | Ensim Corporation | Disambiguating file descriptors |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US7343421B1 (en) | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US6745386B1 (en) * | 2000-03-09 | 2004-06-01 | Sun Microsystems, Inc. | System and method for preloading classes in a data processing device that does not have a virtual memory manager |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US6883163B1 (en) | 2000-04-28 | 2005-04-19 | Sun Microsystems, Inc. | Populating resource-constrained devices with content verified using API definitions |
US6651186B1 (en) | 2000-04-28 | 2003-11-18 | Sun Microsystems, Inc. | Remote incremental program verification using API definitions |
US6986132B1 (en) | 2000-04-28 | 2006-01-10 | Sun Microsytems, Inc. | Remote incremental program binary compatibility verification using API definitions |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
US6922782B1 (en) * | 2000-06-15 | 2005-07-26 | International Business Machines Corporation | Apparatus and method for ensuring data integrity of unauthenticated code |
US7117371B1 (en) | 2000-06-28 | 2006-10-03 | Microsoft Corporation | Shared names |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
BRPI0017287B1 (pt) * | 2000-07-25 | 2016-11-01 | Mediadna Inc | sistema e método de determinação da autenticidade de uma imagem executável |
US7552333B2 (en) * | 2000-08-04 | 2009-06-23 | First Data Corporation | Trusted authentication digital signature (tads) system |
JP2004506245A (ja) * | 2000-08-04 | 2004-02-26 | ファースト データ コーポレイション | デバイスの公開鍵と製造中の情報とのリンク |
US6909691B1 (en) | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
US7032114B1 (en) * | 2000-08-30 | 2006-04-18 | Symantec Corporation | System and method for using signatures to detect computer intrusions |
WO2002023331A2 (en) * | 2000-09-14 | 2002-03-21 | Sun Microsystems, Inc. | Remote incremental program binary compatibility verification using api definitions |
US6981245B1 (en) | 2000-09-14 | 2005-12-27 | Sun Microsystems, Inc. | Populating binary compatible resource-constrained devices with content verified using API definitions |
US6732211B1 (en) | 2000-09-18 | 2004-05-04 | Ensim Corporation | Intercepting I/O multiplexing operations involving cross-domain file descriptor sets |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
FR2819602B1 (fr) * | 2001-01-12 | 2003-02-21 | Gemplus Card Int | Procede de gestion d'applications informatiques par le systeme d'exploitation d'un systeme informatique multi-applications |
EP1233333A1 (en) * | 2001-02-19 | 2002-08-21 | Hewlett-Packard Company | Process for executing a downloadable service receiving restrictive access rights to al least one profile file |
US6618736B1 (en) | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US6978451B2 (en) * | 2001-05-31 | 2005-12-20 | Esmertec Ag | Method for fast compilation of preverified JAVA bytecode to high quality native machine code |
DE10131395B4 (de) * | 2001-06-28 | 2006-08-17 | Daimlerchrysler Ag | Verfahren zum Übertragen von Software- Modulen |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
GB0121064D0 (en) | 2001-08-31 | 2001-10-24 | Transitive Technologies Ltd | Obtaining translation of generic code representation |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US20030050981A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method, apparatus, and program to forward and verify multiple digital signatures in electronic mail |
US7143313B2 (en) | 2001-11-09 | 2006-11-28 | Sun Microsystems, Inc. | Support interface module bug submitter |
US7266731B2 (en) | 2001-11-13 | 2007-09-04 | Sun Microsystems, Inc. | Method and apparatus for managing remote software code update |
US7146500B2 (en) * | 2001-11-14 | 2006-12-05 | Compass Technology Management, Inc. | System for obtaining signatures on a single authoritative copy of an electronic record |
US7496757B2 (en) * | 2002-01-14 | 2009-02-24 | International Business Machines Corporation | Software verification system, method and computer program element |
US7240213B1 (en) * | 2002-03-15 | 2007-07-03 | Waters Edge Consulting, Llc. | System trustworthiness tool and methodology |
US20030188180A1 (en) * | 2002-03-28 | 2003-10-02 | Overney Gregor T. | Secure file verification station for ensuring data integrity |
US20030216927A1 (en) * | 2002-05-17 | 2003-11-20 | V. Sridhar | System and method for automated safe reprogramming of software radios |
US20070118899A1 (en) * | 2002-05-17 | 2007-05-24 | Satyam Computer Services Limited Of Mayfair Centre | System and method for automated safe reprogramming of software radios |
EP1546892B1 (en) * | 2002-09-04 | 2017-03-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Protecting mobile code against malicious hosts cross references to related applications |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US6965968B1 (en) | 2003-02-27 | 2005-11-15 | Finjan Software Ltd. | Policy-based caching |
US9781154B1 (en) | 2003-04-01 | 2017-10-03 | Oracle International Corporation | Systems and methods for supporting information security and sub-system operational protocol conformance |
US10275723B2 (en) * | 2005-09-14 | 2019-04-30 | Oracle International Corporation | Policy enforcement via attestations |
US10063523B2 (en) * | 2005-09-14 | 2018-08-28 | Oracle International Corporation | Crafted identities |
US8468330B1 (en) | 2003-06-30 | 2013-06-18 | Oracle International Corporation | Methods, systems, and data structures for loading and authenticating a module |
GB0318198D0 (en) * | 2003-08-02 | 2003-09-03 | Koninkl Philips Electronics Nv | Copy-protected application for digital broadcasting system |
GB0318197D0 (en) * | 2003-08-02 | 2003-09-03 | Koninkl Philips Electronics Nv | Copy-protecting applications in a digital broadcasting system |
US7263690B1 (en) * | 2003-11-14 | 2007-08-28 | Sun Microsystems, Inc. | Mechanism for safe byte code in a tracing framework |
US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
EP1538509A1 (fr) * | 2003-12-04 | 2005-06-08 | Axalto S.A. | Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement |
US7287243B2 (en) * | 2004-01-06 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Code verification system and method |
US8031865B2 (en) * | 2004-01-08 | 2011-10-04 | Encryption Solutions, Inc. | Multiple level security system and method for encrypting data within documents |
US7526643B2 (en) * | 2004-01-08 | 2009-04-28 | Encryption Solutions, Inc. | System for transmitting encrypted data |
US7752453B2 (en) * | 2004-01-08 | 2010-07-06 | Encryption Solutions, Inc. | Method of encrypting and transmitting data and system for transmitting encrypted data |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7500108B2 (en) | 2004-03-01 | 2009-03-03 | Microsoft Corporation | Metered execution of code |
US7647581B2 (en) * | 2004-06-30 | 2010-01-12 | International Business Machines Corporation | Evaluating java objects across different virtual machine vendors |
US7539975B2 (en) * | 2004-06-30 | 2009-05-26 | International Business Machines Corporation | Method, system and product for determining standard Java objects |
US7493596B2 (en) * | 2004-06-30 | 2009-02-17 | International Business Machines Corporation | Method, system and program product for determining java software code plagiarism and infringement |
US7590589B2 (en) | 2004-09-10 | 2009-09-15 | Hoffberg Steven M | Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference |
US8312431B1 (en) * | 2004-09-17 | 2012-11-13 | Oracle America, Inc. | System and computer readable medium for verifying access to signed ELF objects |
EP1825342A1 (en) | 2004-11-22 | 2007-08-29 | Nokia Corporation | Method and device for verifying the integrity of platform software of an electronic device |
JP4727278B2 (ja) * | 2005-04-05 | 2011-07-20 | 株式会社エヌ・ティ・ティ・ドコモ | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
US8375369B2 (en) * | 2005-04-26 | 2013-02-12 | Apple Inc. | Run-time code injection to perform checks |
US8838974B2 (en) * | 2005-07-15 | 2014-09-16 | The Mathworks, Inc. | System and method for verifying the integrity of read-only components in deployed mixed-mode applications |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
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 |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
JP4537940B2 (ja) * | 2005-11-21 | 2010-09-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、及びプログラム実行制御方法 |
US8250559B2 (en) * | 2006-04-12 | 2012-08-21 | Oracle America, Inc. | Supporting per-program classpaths with class sharing in a multi-tasking virtual machine |
KR100728517B1 (ko) * | 2006-12-28 | 2007-06-15 | 메크로비젼 코오포레이션 | 동적으로 연결 가능한 실행 가능 이미지들의 진정성을증명하는 시스템 및 방법 |
CN101226569A (zh) * | 2007-01-19 | 2008-07-23 | 国际商业机器公司 | 在虚拟机中验证代码模块的方法及装置 |
US9122864B2 (en) * | 2008-08-05 | 2015-09-01 | International Business Machines Corporation | Method and apparatus for transitive program verification |
US8301903B2 (en) * | 2009-02-27 | 2012-10-30 | Research In Motion Limited | Low-level code signing mechanism |
US9117071B2 (en) * | 2009-06-03 | 2015-08-25 | Apple Inc. | Methods and apparatuses for secure compilation |
US8677329B2 (en) * | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
CA2774728C (en) | 2009-11-13 | 2019-02-12 | Irdeto Canada Corporation | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8782435B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time using control flow signatures |
CN104054084B (zh) * | 2011-10-17 | 2017-07-28 | 英特托拉斯技术公司 | 用于保护和管理基因组及其它信息的系统和方法 |
US9015680B1 (en) * | 2012-02-24 | 2015-04-21 | Google Inc. | Differential analysis of translation of software for the detection of flaws |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US10001978B2 (en) * | 2015-11-11 | 2018-06-19 | Oracle International Corporation | Type inference optimization |
KR101691600B1 (ko) * | 2016-04-28 | 2017-01-02 | 지티원 주식회사 | 공통 구조 변환 기반 프로그램 분석 방법 및 장치 |
CN112866412B (zh) * | 2020-08-31 | 2023-06-30 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5224160A (en) * | 1987-02-23 | 1993-06-29 | Siemens Nixdorf Informationssysteme Ag | Process for securing and for checking the integrity of the secured programs |
US4868877A (en) * | 1988-02-12 | 1989-09-19 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
GB8901932D0 (en) * | 1989-01-28 | 1989-03-15 | Int Computers Ltd | Data processing system |
US4926476A (en) * | 1989-02-03 | 1990-05-15 | Motorola, Inc. | Method and apparatus for secure execution of untrusted software |
US5280613A (en) * | 1990-06-25 | 1994-01-18 | Hewlett-Packard Company | ANDF installer using the HPcode-Plus compiler intermediate language |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
US5301231A (en) * | 1992-02-12 | 1994-04-05 | International Business Machines Corporation | User defined function facility |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
FR2703800B1 (fr) * | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
US5475753A (en) * | 1993-11-12 | 1995-12-12 | Matsushita Electric Corporation Of America | Apparatus and method for certifying the delivery of information |
US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
-
1995
- 1995-12-08 US US08/569,398 patent/US5692047A/en not_active Expired - Lifetime
-
1996
- 1996-11-18 CA CA002190556A patent/CA2190556A1/en not_active Abandoned
- 1996-11-20 AU AU71856/96A patent/AU717615B2/en not_active Expired
- 1996-11-27 EP EP96308582A patent/EP0778520B1/en not_active Expired - Lifetime
- 1996-11-27 DE DE69634684T patent/DE69634684T2/de not_active Expired - Lifetime
- 1996-12-05 CN CN96121876A patent/CN1097771C/zh not_active Expired - Fee Related
- 1996-12-06 KR KR1019960062293A patent/KR100433319B1/ko not_active IP Right Cessation
- 1996-12-06 SG SG1996011559A patent/SG75108A1/en unknown
- 1996-12-09 JP JP32889796A patent/JP4112033B2/ja not_active Expired - Lifetime
- 1996-12-20 TW TW085115763A patent/TW355768B/zh active
-
1997
- 1997-11-17 US US08/971,325 patent/US6070239A/en not_active Expired - Lifetime
- 1997-12-17 HK HK97102468A patent/HK1000846A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0778520A3 (en) | 1999-03-31 |
CA2190556A1 (en) | 1997-06-09 |
DE69634684D1 (de) | 2005-06-09 |
EP0778520B1 (en) | 2005-05-04 |
DE69634684T2 (de) | 2006-01-19 |
JP4112033B2 (ja) | 2008-07-02 |
TW355768B (en) | 1999-04-11 |
KR970049730A (ko) | 1997-07-29 |
AU717615B2 (en) | 2000-03-30 |
KR100433319B1 (ko) | 2004-08-09 |
US6070239A (en) | 2000-05-30 |
AU7185696A (en) | 1997-06-12 |
HK1000846A1 (en) | 2003-04-11 |
EP0778520A2 (en) | 1997-06-11 |
SG75108A1 (en) | 2000-09-19 |
US5692047A (en) | 1997-11-25 |
JPH1011281A (ja) | 1998-01-16 |
CN1097771C (zh) | 2003-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1097771C (zh) | 执行可校验程序的系统和方法 | |
CN1103968C (zh) | 受托编译中性结构程序版本产生特定结构的系统和方法 | |
JP3982857B2 (ja) | 動的にリンクされた実行可能モジュールの使用を保護するシステム及び方法 | |
CN1201248C (zh) | 共享名 | |
US6647495B1 (en) | Information processing apparatus and method and recording medium | |
US7434263B2 (en) | System and method for secure storage data using a key | |
US5651069A (en) | Software-efficient message authentication | |
CN102271124B (zh) | 数据处理设备和数据处理方法 | |
US6922782B1 (en) | Apparatus and method for ensuring data integrity of unauthenticated code | |
CN1122213C (zh) | 给对象签名和签章的方法和设备 | |
WO2019212581A1 (en) | Secure collaboration between processors and processing accelerators in enclaves | |
US8284942B2 (en) | Persisting private/public key pairs in password-encrypted files for transportation to local cryptographic store | |
CN113391880B (zh) | 一种分层双重哈希验证的可信镜像传输方法 | |
WO2023279698A1 (zh) | 数据传输方法、系统、计算机设备及存储介质 | |
CN110602051A (zh) | 基于共识协议的信息处理方法及相关装置 | |
US8683207B2 (en) | Updating signature algorithms for strong name binding | |
CN117235755A (zh) | 一种Spark程序加密的方法、插件 | |
CN114117363A (zh) | 一种动态生成License验证方式的授权方法及存储介质 | |
CN116415211A (zh) | Java程序加密、解密运行方法及装置 | |
CN112286553A (zh) | 用户锁的升级方法、装置、系统、电子设备和存储介质 | |
CN1205475A (zh) | 信息处理设备和方法以及记录介质 |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |