CN1156286A - 执行可校验程序的系统和方法 - Google Patents

执行可校验程序的系统和方法 Download PDF

Info

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
Application number
CN96121876A
Other languages
English (en)
Other versions
CN1097771C (zh
Inventor
查尔斯·E·麦克马尼斯
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1156286A publication Critical patent/CN1156286A/zh
Application granted granted Critical
Publication of CN1097771C publication Critical patent/CN1097771C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, 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所述的存储器,所述类装入器包含校验器指令,用于当所请求的对象类没有存贮在所述可靠对象类保存区中并且包括至少一个中性结构程序时,调用所述程序完整性校验器来校验所请求的对象类中的每个中性结构程序;
所述程序安全指令还防止所述任何所请求的不在所述可靠对象类保存区中的对象类的装入,而所请求的对象类包括至少一个其完整性没有被所述程序完整性校验器校验的中性结构程序。
CN96121876A 1995-12-08 1996-12-05 执行可校验程序的系统和方法 Expired - Fee Related CN1097771C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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