CN1130648C - 保护性使用动态连接的可执行模块的系统和方法 - Google Patents

保护性使用动态连接的可执行模块的系统和方法 Download PDF

Info

Publication number
CN1130648C
CN1130648C CN96122021A CN96122021A CN1130648C CN 1130648 C CN1130648 C CN 1130648C CN 96122021 A CN96122021 A CN 96122021A CN 96122021 A CN96122021 A CN 96122021A CN 1130648 C CN1130648 C CN 1130648C
Authority
CN
China
Prior art keywords
unit
procedure
module
invocation
validator
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.)
Expired - Fee Related
Application number
CN96122021A
Other languages
English (en)
Other versions
CN1154515A (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 CN1154515A publication Critical patent/CN1154515A/zh
Application granted granted Critical
Publication of CN1130648C publication Critical patent/CN1130648C/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
    • 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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

保护性使用动态连接的可 执行模块的系统和方法
技术领域
本发明涉及限制可执行模块使用的系统和方法,以使每一可执行模块只与其它可靠性已得到验证的可执行模块动态连接。
背景技术
在计算机程序的上下文中,“外部函数”是位于使用该外部函数的计算机程序外部的程序库或其他函数库中的一典型的程序或函数。外部函数经常但并非总是被不同于使用这些外部函数的计算机程序的其他人或其它团体编写。
程序的执行环境要求外部函数在运行期间而并非在连接或编译时被连接,以简化维护和更新计算机程序,因为对应用到此类执行环境的程序来说,只有那些正在被修改或更新的程序需要重新编译,而其它的模块不用做任何改变,此外,由于即使程序使用的其他模块在程序开发系统中并不出现,但被修改程序的编译也能执行,因此重新编译的过程得到简化。
然而,运用此类程序执行环境的系统是有缺陷的,因为程序模块间的接口通常被较好地说明了,或可以被第三者确定,因此对第三者来说可能以未被相应软件许可协议承认的方式来使用那些程序模块。另外,这些第三者可以用损坏的模块来代替真正的程序模块,使系统遭到破坏。
在以从美国向其他国家的消费者或发行商出口为目的的软件中,当用密码程序进行处理时,该问题就更严重了。目前,美国的商业法禁止出口提供通用密码的软件模块。另一方面,这样一类的程序出口是允许的,即这些程序在有限的上下文中可执行密码功能,在其外的程序中不能执行通用的密码功能。事实上,设计以授权方式使用密码功能的出口软件系统在商业上是很重要的。现有技术中最新的约束系统,如动态连接库(Windows系统中的DLLS)或共享目标(如Solaris里的·SO文件),试图通过隐藏软件模块间的接口或者通过单独提供“仅供出口”的软件版本来解决此问题。单独提供“仅供出口”的软件产品导致了要用单一的代码库保持对国内和出口版本进行升级和修订维护“同步”的问题。
另一个有必要限制或禁止使用动态连接模块的情况是一个出版商写的应用软件,由于商业秘密或合同的原因,他希望应用软件中某些函数是保密的。这样的系统就要求限制访问这些秘密函数的方式。
发明内容
总而言之,本发明提供一计算机系统,它包括:(A)一个单元(程序模块)验证器,用于通过验证对任何指定的单元的可靠性,并通过根据每一个这样的过程调用返回一个验证肯定或否定来响应所述单元验证器的过程调用;(B)第一单元(程序模块),和(C)第二单元(程序模块);所述的第一单元包含对所述的第二单元的一个过程调用;所述的第一单元包含:对所述的单元验证器的一第一过程调用,用以验证所述的第二单元的可靠性;和用于当对所述的单元验证器的所述的过程调用产生被所述的单元验证器返回的一个验证否定时,终止所述的第一单元的运行的装置;所述的第二单元包含:响应于对所述的第二单元的所述的过程调用被运行的一可运行过程,对所述的单元验证器的一第二过程调用,用以验证所述的第一单元的可靠性;和用于当对所述的单元验证器的所述的第二过程调用产生被所述的单元验证器返回的一个验证否定时,禁止或终止所述的第二单元的运行的装置。
本发明还提供一种连接单元的方法,包含的步骤为:(A)在从一个第一单元对一个第二单元所做的一个过程调用之前,验证所述的第二单元的可靠性;(B)一旦验证了所述的第二单元的可靠性,进行从所述的第一单元对所述的第二单元的过程调用;(C)一旦否定了所述的第一单元的可靠性,禁止进行从所述的第一单元对所述的第二单元的过程调用;(D)在进行为响应所述过程调用而通过所述的第一单元完成运行在所述的第二单元中的一个过程之前,验证所述的第一单元的可靠性;(E)一旦验证了所述第一单元的可靠性,就完成运行在所述第二单元中的所述过程,以产生一个结果,并返回所述结果给所述的第一单元;和(F)一旦否定了所述第一单元的可靠性,禁止完成运行在所述第二单元中的所述过程。
在该优选实施例中,当单元验证器无法验证第二单元的可靠性时,第一单元就产生异常并终止运行。同样地,当单元验证器无法验证第一单元的可靠性时,第二单元就产生异常并终止运行。
附图说明
当结合附图,并根据下面详细的描述和所附权利要求,本发明另外的目的和特点就更易明白了。其中:
图1是结合本发明的计算机系统框图;
图2是一个代表使用本发明的优选实施例的一个典型的过程调用的“时间序列”。
图3是在优选实施例中两个连接的软件模块相互验证可靠性方法的流程图。
具体实施方式
参见图1,图示为一个计算机系统100。虽然计算机100可以是台式计算机,如Sun工作站、IBM兼容机或Macintosh计算机,但实际上可使用任何型号的计算机。计算机100包括一个CPU102,一个用户接口104及存储器106。存储器106包括主随机存储器(RAM)和辅助存储器,一般为一个或多个磁盘或光盘。存储器106存储着一个操作系统110、一个程序模块或目标可靠性验证器112及一组应用程序目标实例114、116、118和120,又称程序模块或应用程序模块。
如图1所示,在本发明的一个优选实施例中,每个应用程序目标实例包括目标标题122、至少一个数字标记124、至少一个嵌入式公用密钥126和一个主应用过程128(常称之为方法)。每个方法(或称过程)128包括至少一个验证过程调用指令130和用于答复为响应验证过程调用而收到的验证否定信息的指令132,例如终止过程执行的指令。在第一个程序模块中的主应用程序A过程(128-A)进一步包括调用在第二程序模块中的一个可执行过程(如主应用程序B过程128-B)的过程调用134,调用程序模块验证器的过程调用130-A在逻辑上位于在第一程序模块中,以便在调用第二程序模块的过程调用134执行之前就被执行。
调用程序模块验证器的过程调用130-B在逻辑上位于第二程序模块中紧接着通向第二程序模块中各可执行过程128-B的入口点之后的地方,以便先于过程128-B而使其执行。更一般地说,在本发明的其他实施例中,调用程序模块验证器的过程调用130-B在逻辑上位于在第二程序模块中先于每一可执行过程完成点之前的地方(更普遍地说,位于所有会被其它程序模块调用的程序模块中),以便如果验证器否定了调用程序的验证时,则避免每个这样的模块执行完毕。
在本发明的一个优选实施例中,在指定组中的所有过程(如某一特定顶层应用程序所使用的所有过程或一组顶层应用程序)具有同一嵌入式公钥126,且都使用同一密钥,如RSA加密术,来进行数字标记。但在另一个实施例中,不同的过程和过程子组以不同的密钥来进行标记。在这个另外的实施例中,包含有过程调用的过程模块具有用于验证它们所能调用的过程的嵌入式公钥,所有可被其它过程调用的过程模块包含用于调用过程验证的公钥。
图2是一个代表一个典型的本发明的优选实施例中使用的过程调用是如何进行的“时间序列”。在图2中,先发事件在垂直方向上的位置比后发事件要高。图3中是过程调用执行中所包含的各步骤的流程图。
参见图2与图3,在步骤200,在程序模块A中的可执行过程(如图1中的主应用程序A过程)开始执行。为便于讨论,在程序模块A中正被执行的过程称为“过程A”,而在程序模块B中试图调用的过程称为“过程B”,在步骤220,程序模块B对一可执行过程进行过程调用之前,过程A在步骤202中对验证器进行过程调用以要求对程序模块B的可靠性进行验证,验证器然后在步骤204试图对程序模块B的可靠性进行验证并对程序A发送一个返回值以显示对程序模块B的验证是否成功。
更确切地说,最好是一个不同的受托目标(或另外一个可信系统服务过程)的验证器。在步骤206,接收来自过程A的请求信息,并在步骤208中使用一个由调用过程(即过程A)所提供的公钥对嵌入程序模块B中的数字标记进行解码,通过验证器调用过程A所提供的公钥是嵌入在程序模块A中的“组”公共钥126-A。
在优选实施例中,程序模块的数字标记是通过以下步骤产生的:计算程序模块的信息摘要;对信息摘要增加一个散列函数标识符以指出用以产生信息摘要的散列函数(hash Function)的类型;通过一个密钥,采用RSA加密术对所得值进行加密;然后对加密值再增加一个该程序模块源(即作者或发行者)的明确文本标识符:
MDB=散列函数(程序模块B)
数字标记B=加密(MDB+散列函数ID,密钥)+程序模块B源的明确文本ID。
因此,为了对程序模块B的数字标记进行解码,验证器(A)从数字标记中删去明确文本ID之后(B)通过公钥对数字标记的剩余部分进行解码以产生一个基于标记的信息摘要DS-MDB和散列函数ID。
DS-MDB+散列函数ID=解码(数字标记B-明确文本ID,公共钥)
之后,验证器使用在解码数字信号中标识的散列函数来计算至少作为程序模块B一部分的信息摘要MDB。用于产生信息摘要的函数是一个典型的函数,如CRC解密函数,它是以极高的概率对不同的程序模块产生不同的值。许多适用于产生信息摘要的散列函数是被本领域中的技术人员所了解的。
在步骤212中,验证器然后对已计算过的信息摘要MDB和已解码的数字标记中的信息摘要DS-MDB进行比较,如果这两个信息摘要匹配时,则在步骤214向调用过程返回一个验证肯定信息,若不匹配则在步骤216中产生一个验证否定信息。
在一个优选实施例中,每个程序模块有一个唯一的数字标记,相关的信息摘要是使用基于整个程序模块内容的一个散列函数计算出来的。在其他实施例中,信息摘要基于的是可以仅为程序模块的一个部分。例如在第二个优选实施例中,每个程序模块有两个数字标记:一个用于程序模块的多个方法部分,另一个用于程序模块的一个(若有的话)数据部分。当程序模块有两个数字标记时,通过对这两个数字标记进行解码而得到的两个信息摘要必须与由验证器计算出的相应信息摘要相匹配,以使验证器返回一个验证肯定信息。如果经解码的数字标记中的信息摘要有一个与由验证器计算产生的相应信息摘要不匹配,则验证器返回一个验证否定信息。
如果在步骤216中验证器否定了对程序模块B的验证,在步骤218中过程A则“产生异常”然后终止。产生异常通常会引起相关的执行线程(thread)终止,且进一步引起一个由正在调用的异常处理过程执行线程进行执行,以便给执行调用线程一个机会来进行分析,否则给被调用的过程一个否定的回答。(本例中即为过程A)。
一般地,仅当程序模块被破坏,如在安装或从一台计算机向另一台计算机传输的过程中被故意地扰乱时,验证器就会对程序模块验证进行否定。在正常操作时,验证否定应为异常事件。
如果在步骤214中验证器肯定了程序模块B的验证,在步骤220中过程A继续进行对程序模块B中的过程B进行过程调用。在优选实施例中,当接收到过程调用之后,在步骤222中程序模块B首先要做的一件事是对验证器进行过程调用,发出一个对调用程序模块的可靠性进行验证的请求。(即本例中的程序模块A)。
然后在步骤230,验证器试图验证程序模块A的可靠性,并向过程B返回一个值以表明对程序模块A的验证是否成功。
更确切地说,在步骤232中验证器收到来自过程B的请求信息,在步骤234中用过程B提供的公共钥对程序模块A中嵌入的数字标记解码。过程B提供给验证器的公共钥是嵌入程序模块B的“组”公共钥126-B。
正如上文所解释的,程序模块A的信息摘要是按下面步骤产生的,计算程序模块A的信息摘要;用散列函数标识符加在信息摘要上以表明用来产生信息摘要的散列函数的类形;用RSA加密技术的密钥对所得值进行加密;然后将程序模块源的(即作者或分销商)一个明确文本标识符附加到被加密的值:
MDA=散列函数(程序模块A)
数字标记A=加密(MDA+散列函数ID,密钥)+程序模块A源的明确文本ID
因此为对程序模块A的数字标记进行解码,验证器(A)从数字标记中删去明确文本ID,然后(B)对数字标记的剩余部分进行解码以产生一个基于标记的信息摘要DS-MDA和一个散列函数ID。
DS-MDA+散列函数ID=解码(数字标记A-明确文本ID,公共钥)
下一步,在步骤236中,验证器用解码数字标记中标记的散列函数计算至少为程序模块A一部分的信息摘要MDA
在步骤238中,验证器然后比较计算得到的信息摘要MDA与被解码的数字标记中的信息摘要DS-MDA,如果两个信息摘要匹配时,在步骤240中对调用过程返回一个验证肯定的信息,如果两个信息摘要不匹配时,则返回一个否定的信息。
如果在步骤216中验证器否定对程序模块A的验证,过程B“产生异常”,然后在步骤244中终止执行。
如果在步骤240中验证器肯定程序模块A的验证,则在步骤250中过程B被执行完毕并且在步骤252中执行过程B所产生的结果被返回到过程A。最终,在步骤254中过程A用从过程B的到的值完成它的执行。
在一些补充的实施例中,一组程序模块中仅有一部分程序模块包含“敏感”的算法,或者说对它的验证比其它程序模块更重要。例如,在第一个补充实施例中,一组程序模块(此中叫“全套程序模块”)的发行商可能想确保组内少数程序模块(此处叫“有限子套程序模块”)仅能与组内的其他程序模块一起使用,但发行商可能允许其他剩余程序模块被授权者免费使用,甚至可与组外的程序模块一起使用。在此实施例中,仅仅是那些被限制的程序模块组包含调用验证器模块的过程调用,它在逻辑上位于紧随那些模块入口点之后。这些调用验证器的入口点的过程用来验证调用的程序模块的可靠性,一旦验证到此调用的程序模块是一被确认为可靠的组中的一部分,被调用的程序模块就执行调用程序模块所要求的计算。
在第二补充实施例中,一组程序过程的发行商并不关心限制使用一组“被限制的程序模块”,而是关心所有试图使用被限制的程序模块的服务的调用过程实际上得到被限制的程序模块可靠版本的服务。在这一实施例中,所有对被限制的程序模块产生过程调用的过程都包含对验证器模块的过程调用,验证器模块逻辑上紧在对被限制的程序模块的过程调用之前。这些验证器过程调用用来验证被限制的程序模块的可靠性。然而,在这些实施例中,被限制的程序模块中的过程不包含对调用程序模块的可靠性进行验证的验证器过程调用。一旦验证到被调用的被限制的程序模块是可靠的,调用程序模块就对已被确认为可靠的被限制的程序模块进行调用。
虽然,参考几个已说明的实施例,本发明已经得到了描述,但该描述是对本发明解释并非对发明的限制。对于那些本领域的技术人员来说,在不脱离后附的权利要求所限定的本发明的精神和范围的情况下,可进行各种修改。

Claims (10)

1、一个计算机系统包括:
(A)一个单元验证器,用于通过验证对任何指定的单元的可靠性,并通过根据每一个这样的过程调用返回一个验证肯定或否定来响应所述单元验证器的过程调用;
(B)第一单元,和
(C)第二单元;
所述的第一单元包含对所述的第二单元的一个过程调用;
所述的第一单元包含:对所述的单元验证器的一第一过程调用,用以验证所述的第二单元的可靠性;和用于当对所述的单元验证器的所述的过程调用产生被所述的单元验证器返回的一个验证否定时,终止所述的第一单元的运行的装置;
所述的第二单元包含:响应于对所述的第二单元的所述的过程调用被运行的一可运行过程,对所述的单元验证器的一第二过程调用,用以验证所述的第一单元的可靠性;和用于当对所述的单元验证器的所述的第二过程调用产生被所述的单元验证器返回的一个验证否定时,禁止或终止所述的第二单元的运行的装置。
2、如权利要求1所述的计算机系统,
所述的第一单元包含一个第一数字标记;
所述的第二单元包含一个第二数字标记;
所述的单元验证器包含对要求验证一个所述的第一和第二单元中所指定单元的过程调用的装置,该装置按如下方式做出响应:(A1)用一个相应的解码钥对所述指定的单元中的所述数字标记进行解码,(A2)根据一个预定的信息摘要函数产生至少是所述指定的单元一部分的信息摘要,(A3)当所述被解码的数字标记与所述的信息摘要匹配时,返回一个验证肯定,以及(A4)当所述被解码的数字标记与所述的信息摘要不匹配时,返回一个验证否定。
3、如权利要求1或2所述的计算机系统,其中
对所述的单元验证器的第一过程调用逻辑上位于所述的第一单元中,以便先于对所述的第二单元的所述的过程调用运行之前就被运行;和所述的第一单元包括用于当对所述的单元验证器的所述的第一过程调用产生被所述的单元验证器返回的一个验证否定时,禁止所述的对所述的第二单元的所述的过程调用的运行的装置。
4、一种连接单元的方法,包含的步骤为:
(A)在从一个第一单元对一个第二单元所做的一个过程调用之前,验证所述的第二单元的可靠性;
(B)一旦验证了所述的第二单元的可靠性,进行从所述的第一单元对所述的第二单元的过程调用;
(C)一旦否定了所述的第一单元的可靠性,禁止进行从所述的第一单元对所述的第二单元的过程调用;
(D)在进行为响应所述过程调用而通过所述的第一单元完成运行在所述的第二单元中的一个过程之前,验证所述的第一单元的可靠性;
(E)一旦验证了所述第一单元的可靠性,就完成运行在所述第二单元中的所述过程,以产生一个结果,并返回所述结果给所述的第一单元;和
(F)一旦否定了所述第一单元的可靠性,禁止完成运行在所述第二单元中的所述过程。
5、如权利要求4所述的方法,
所述步骤(D)包括用一个相应解码钥来对在所述第一单元中的所述第一数字标记进行解码;根据所述的预定的信息摘要函数产生至少为所述第一单元一部分的信息摘要;当所述被解码的数字标记与所述的信息摘要匹配时确认所述第一单元的可靠性;以及当所述被解码的数字标记与所述信息摘要不匹配时否定所述第一单元的可靠性。
6、如权利要求4或5所述的方法,其中,步骤(C)包括终止所述第一单元的运行。
7、如权利要求5所述的方法,其中所述第一单元包括一个第一数字标记,所述的第二单元包括一个第二数字标记;
所述步骤(A)包括用一个相应的解码钥对在所述第二单元中的所述第二数字标记进行解码;根据所述预定的信息摘要函数产生至少为所述第二单元一部分的信息摘要;当所述被解码的数字标记与所述的信息摘要匹配时确认所述第二单元的可靠性;以及当所述的被解码的数字标记与所述信息摘要不匹配时否定所述第二单元的可靠性。
8、如权利要求4或5所述的方法,
所述步骤(A)中包括对可信的单元验证器做一次过程调用,所述的单元验证器是通过验证所述的第二单元的可靠性并通过根据所述过程调用返回一个肯定或否定的验证来响应所述过程调用。
9、如权利要求6所述的方法,所述步骤(A)中包括对可信的单元验证器做一次过程调用,所述的单元验证器是通过验证所述的第二单元的可靠性并通过根据所述过程调用返回一个肯定或否定的验证来响应所述过程调用。
10、如权利要求7所述的方法,所述步骤(A)中包括对可信的单元验证器做一次过程调用,所述的单元验证器是通过验证所述的第二单元的可靠性并通过根据所述过程调用返回一个肯定或否定的验证来响应所述过程调用。
CN96122021A 1995-10-26 1996-10-24 保护性使用动态连接的可执行模块的系统和方法 Expired - Fee Related CN1130648C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US547,720 1995-10-26
US547720 1995-10-26
US08/547,720 US5757914A (en) 1995-10-26 1995-10-26 System and method for protecting use of dynamically linked executable modules

Publications (2)

Publication Number Publication Date
CN1154515A CN1154515A (zh) 1997-07-16
CN1130648C true CN1130648C (zh) 2003-12-10

Family

ID=24185862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96122021A Expired - Fee Related CN1130648C (zh) 1995-10-26 1996-10-24 保护性使用动态连接的可执行模块的系统和方法

Country Status (6)

Country Link
US (3) US5757914A (zh)
EP (1) EP0770957A3 (zh)
JP (1) JP3982857B2 (zh)
KR (1) KR100417443B1 (zh)
CN (1) CN1130648C (zh)
TW (1) TW378304B (zh)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
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
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
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
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
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
DE69637733D1 (de) 1995-02-13 2008-12-11 Intertrust Tech Corp Systeme und verfahren für ein sicheres übertragung
US6389483B1 (en) * 1995-10-17 2002-05-14 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling between modules in a telecommunications environment
US5757914A (en) 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US6067639A (en) * 1995-11-09 2000-05-23 Microsoft Corporation Method for integrating automated software testing with software development
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US6085320A (en) * 1996-05-15 2000-07-04 Rsa Security Inc. Client/server protocol for proving authenticity
US5937187A (en) * 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US7590853B1 (en) 1996-08-12 2009-09-15 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
DE19716015A1 (de) * 1997-04-17 1998-10-29 Ibm Einbringen von Information auf einer Chipkarte
US5987608A (en) * 1997-05-13 1999-11-16 Netscape Communications Corporation Java security mechanism
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
JPH1131105A (ja) * 1997-07-10 1999-02-02 Fuji Xerox Co Ltd データカプセル生成装置および方法
US6000032A (en) * 1997-07-15 1999-12-07 Symantec Corporation Secure access to software modules
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
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
JPH11110193A (ja) * 1997-09-30 1999-04-23 Toshiba Corp コンピュータシステム及び同システムに適用するライブラリのリンク方法
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
IL122314A (en) 1997-11-27 2001-03-19 Security 7 Software Ltd Method and system for enforcing a communication security policy
US6311274B1 (en) * 1997-12-15 2001-10-30 Intel Corporation Network alert handling system and method
JP2002509313A (ja) * 1998-01-16 2002-03-26 メディアドナ、インコーポレイテッド ピアコンポーネントを認証するためのシステムおよび方法
US6233687B1 (en) * 1998-01-21 2001-05-15 Nortel Networks Limited Method and apparatus for providing configuration information in a network
US7268700B1 (en) 1998-01-27 2007-09-11 Hoffberg Steven M Mobile communication device
US6173404B1 (en) * 1998-02-24 2001-01-09 Microsoft Corporation Software object security mechanism
US6532451B1 (en) * 1998-03-23 2003-03-11 Novell, Inc. Nested strong loader apparatus and method
US6751735B1 (en) 1998-03-23 2004-06-15 Novell, Inc. Apparatus for control of cryptography implementations in third party applications
US6701433B1 (en) 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US6615350B1 (en) * 1998-03-23 2003-09-02 Novell, Inc. Module authentication and binding library extensions
US7236610B1 (en) * 1998-04-30 2007-06-26 Fraunhofer Gesellschaft Authenticating executable code and executions thereof
US6341351B1 (en) * 1998-05-07 2002-01-22 Banctec, Inc. Method for communicating and controlling transactions between unsecured parties
US6256393B1 (en) * 1998-06-23 2001-07-03 General Instrument Corporation Authorization and access control of software object residing in set-top terminals
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
CA2292041A1 (en) * 1998-12-22 2000-06-22 Scott Alan Thomson Software program protection mechanism
AU1889699A (en) * 1999-01-13 2000-08-01 Hitachi Limited Method and system for executing mobile code
US6802006B1 (en) * 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6779117B1 (en) 1999-07-23 2004-08-17 Cybersoft, Inc. Authentication program for a computer operating system
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
US7086584B2 (en) * 1999-08-09 2006-08-08 First Data Corporation Systems and methods for configuring a point-of-sale system
US7406603B1 (en) * 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
DE19944991B4 (de) * 1999-09-20 2004-04-29 Giesecke & Devrient Gmbh Verfahren zur Sicherung eines Programmablaufs
US6985885B1 (en) * 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6748538B1 (en) * 1999-11-03 2004-06-08 Intel Corporation Integrity scanner
WO2001037067A1 (en) * 1999-11-16 2001-05-25 Intel Corporation A method of providing secure linkage of program modules
FI111567B (fi) * 1999-12-27 2003-08-15 Nokia Corp Menetelmä ohjelmamoduulin lataamiseksi
US6880083B1 (en) * 1999-12-31 2005-04-12 Intel Corporation Method and apparatus for creating and executing secure scripts
US6789199B1 (en) * 2000-02-08 2004-09-07 International Business Machines Corporation Tamper resistance with pseudo-random binary sequence program interlocks
US7284124B1 (en) * 2000-06-05 2007-10-16 Microsoft Corporation Trust level based platform access regulation application
US6816984B1 (en) * 2000-06-23 2004-11-09 Microsoft Corporation Method and system for verifying and storing documents during a program failure
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
EP1176507A3 (en) 2000-07-24 2005-08-17 Sony Corporation Information processing method, inter-task communication method, and computer-executable program for the same
US6683629B1 (en) * 2000-08-03 2004-01-27 Neoplanet, Inc. Method in a computer system for embedding a child window in a parent window
JP3712366B2 (ja) 2000-08-15 2005-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、実行可能モジュール生成方法および記憶媒体
KR100561497B1 (ko) * 2000-09-08 2006-03-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어 보안 인증 경로
US6971023B1 (en) * 2000-10-03 2005-11-29 Mcafee, Inc. Authorizing an additional computer program module for use with a core computer program
US20020087876A1 (en) * 2000-12-28 2002-07-04 Larose Gordon Edward Adaptive software installation process supporting multiple layers of security-related attributes
JP2002244989A (ja) * 2001-02-20 2002-08-30 Nec Corp デバイスドライバ作動方法
IL157854A0 (en) * 2001-03-28 2004-03-28 Digital rights management system and method
IL142487A0 (en) * 2001-04-05 2003-09-17 Hexalock Ltd Method and system for protecting data
US20050039032A1 (en) * 2001-04-16 2005-02-17 Stanley Babowicz Apparatus and method for authentication of computer-readable medium
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7234061B1 (en) * 2001-06-29 2007-06-19 Cisco Technology, Inc. Methods and apparatus for verifying modules from approved vendors
US7366911B2 (en) * 2001-12-11 2008-04-29 Lucent Technologies Inc. Methods and apparatus for computationally-efficient generation of secure digital signatures
US7496757B2 (en) * 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
IL149759A (en) * 2002-05-20 2009-07-20 Eyal Cohen Method and system for protecting digital media from illegal copying
FR2843465B1 (fr) * 2002-08-06 2005-07-01 Checkflow Procede de communication entre applications destine a securiser l'acces aux donnees d'une application
FR2845493A1 (fr) * 2002-10-04 2004-04-09 Canal Plus Technologies Logiciel embarque et procede d'authentification de celui-ci
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7565551B2 (en) * 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
EP3043232A1 (en) 2003-08-26 2016-07-13 Panasonic Intellectual Property Corporation of America Program execution device
JP2005115933A (ja) * 2003-09-19 2005-04-28 Fuji Electric Systems Co Ltd 電子署名装置、方法、及びそのプログラム
US7350079B2 (en) * 2003-11-20 2008-03-25 International Business Machines Corporation Apparatus and method for inter-program authentication using dynamically-generated public/private key pairs
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US20050128520A1 (en) * 2003-12-16 2005-06-16 Jeff Glickman Digital signature protection for software
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7549148B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US7500108B2 (en) * 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
JP2005268931A (ja) * 2004-03-16 2005-09-29 Matsushita Electric Ind Co Ltd 情報セキュリティ装置及び情報セキュリティシステム
JP2005275839A (ja) * 2004-03-25 2005-10-06 Nec Corp ソフトウェア利用許可方法及びシステム
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7779269B2 (en) * 2004-09-21 2010-08-17 Ciena Corporation Technique for preventing illegal invocation of software programs
KR100681696B1 (ko) * 2004-11-29 2007-02-15 주식회사 안철수연구소 컴퓨터 응용 프로그램의 메모리 데이터 조작 방지 방법
US8181020B2 (en) * 2005-02-02 2012-05-15 Insyde Software Corp. System and method for securely storing firmware
CN100594509C (zh) * 2005-02-11 2010-03-17 辛普雷克斯梅杰有限公司 软件保护方法
US7631198B2 (en) * 2005-05-10 2009-12-08 Seagate Technology Protocol scripting language for safe execution in embedded system
US7624111B2 (en) * 2005-06-27 2009-11-24 Microsoft Corporation Active content trust model
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
SE530662C2 (sv) * 2005-11-09 2008-08-05 Noll Och Ett Data Ab Förfarande och anordning
JP4537940B2 (ja) * 2005-11-21 2010-09-08 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、及びプログラム実行制御方法
US7845016B2 (en) * 2005-11-28 2010-11-30 Cisco Technology, Inc. Methods and apparatus for verifying modules from approved vendors
JP4783163B2 (ja) * 2006-01-19 2011-09-28 Okiセミコンダクタ株式会社 マイクロコントローラ
US8700902B2 (en) * 2006-02-13 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to certify digital signatures
US8341747B2 (en) * 2006-08-08 2012-12-25 International Business Machines Corporation Method to provide a secure virtual machine launcher
US9389839B2 (en) * 2008-06-26 2016-07-12 Microsoft Technology Licensing, Llc Safe code for signature updates in an intrusion prevention system
US8769654B2 (en) * 2009-06-23 2014-07-01 Cisco Technology, Inc. Counterfeit prevention strategy for pluggable modules
US8776245B2 (en) * 2009-12-23 2014-07-08 Intel Corporation Executing trusted applications with reduced trusted computing base
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
JP6792133B2 (ja) * 2014-08-07 2020-11-25 キヤノンマーケティングジャパン株式会社 サーバと、その処理方法及びプログラム
CN112513839A (zh) * 2018-08-02 2021-03-16 日本电气方案创新株式会社 许可证管理设备、发布设备和方法、程序执行设备和方法以及计算机可读介质
CN109688158B (zh) * 2019-01-23 2022-07-08 平安科技(深圳)有限公司 金融执行链认证方法、电子装置及存储介质
WO2023028734A1 (en) * 2021-08-30 2023-03-09 Qualcomm Incorporated Functional safety software image integrity verifier
US11928205B1 (en) 2022-03-01 2024-03-12 CSP Inc. Systems and methods for implementing cybersecurity using blockchain validation
US11822647B1 (en) * 2022-03-01 2023-11-21 CSP Inc. Data structure for trust store

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339403A (en) * 1990-05-11 1994-08-16 International Computers Limited Access control in a distributed computer system
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845715A (en) * 1984-10-29 1989-07-04 Francisco Michael H Method for maintaining data processing system securing
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
CA1341310C (en) * 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
JPH04143881A (ja) * 1990-10-05 1992-05-18 Toshiba Corp 相互認証方式
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5235642A (en) * 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5542045A (en) * 1993-10-15 1996-07-30 Software Security, Inc. Method for interposing a security function in a computer program
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
GB9422389D0 (en) * 1994-11-05 1995-01-04 Int Computers Ltd Authenticating access control for sensitive functions
US5742759A (en) * 1995-08-18 1998-04-21 Sun Microsystems, Inc. Method and system for facilitating access control to system resources in a distributed computer system
US5757914A (en) 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5737523A (en) * 1996-03-04 1998-04-07 Sun Microsystems, Inc. Methods and apparatus for providing dynamic network file system client authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339403A (en) * 1990-05-11 1994-08-16 International Computers Limited Access control in a distributed computer system
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication

Also Published As

Publication number Publication date
US5970145A (en) 1999-10-19
US6546487B1 (en) 2003-04-08
EP0770957A3 (en) 2000-03-15
TW378304B (en) 2000-01-01
EP0770957A2 (en) 1997-05-02
US5757914A (en) 1998-05-26
CN1154515A (zh) 1997-07-16
JPH09231068A (ja) 1997-09-05
KR970022747A (ko) 1997-05-30
JP3982857B2 (ja) 2007-09-26
KR100417443B1 (ko) 2004-04-28

Similar Documents

Publication Publication Date Title
CN1130648C (zh) 保护性使用动态连接的可执行模块的系统和方法
US11048824B2 (en) Method for improving security of trusted application
US7496757B2 (en) Software verification system, method and computer program element
US6263431B1 (en) Operating system bootstrap security mechanism
US7155743B2 (en) Method and system for controlling use of a dynamically linked software library
US7140005B2 (en) Method and apparatus to test an instruction sequence
US7181603B2 (en) Method of secure function loading
US8341431B2 (en) Scalable and extensible secure rendering of digital content
USRE43934E1 (en) Method and apparatus to assign trust to a key
US20050132209A1 (en) Certificate based digital rights management
WO2013015910A1 (en) Software run-time provenance
CN105844150A (zh) 一种应用程序的数据保护方法和装置
CN111476652A (zh) 基于区块链的数据处理方法、装置、终端及存储介质
CN1516836A (zh) 软件安全认证信道
US9122864B2 (en) Method and apparatus for transitive program verification
CN101305377A (zh) 通信终端装置、服务器终端装置、使用它们的通信系统
US7721100B2 (en) Granting an access to a computer-based object
CN112101945B (zh) 一种区块链内容的监管方法及系统
CN1918877A (zh) 包括两个执行空间的电信终端
CN112764827B (zh) 一种具有安全验证的Java类热加载方法
US20030204833A1 (en) Method for dynamically adding new code to an application program
US7392523B1 (en) Systems and methods for distributing objects
CN1369809A (zh) 一种批量生产的计算机软件的注册码防盗版加密方法
US7711957B2 (en) Granting access to a computer-based object
US20070089116A1 (en) Method for assuring event record integrity

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1000844

Country of ref document: HK

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