CN1610296B - 对信任确定实体安全地识别可执行码的方法 - Google Patents

对信任确定实体安全地识别可执行码的方法 Download PDF

Info

Publication number
CN1610296B
CN1610296B CN2004100877113A CN200410087711A CN1610296B CN 1610296 B CN1610296 B CN 1610296B CN 2004100877113 A CN2004100877113 A CN 2004100877113A CN 200410087711 A CN200410087711 A CN 200410087711A CN 1610296 B CN1610296 B CN 1610296B
Authority
CN
China
Prior art keywords
request
resource
code
forwarding
computing equipment
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
CN2004100877113A
Other languages
English (en)
Other versions
CN1610296A (zh
Inventor
A·德西尔
K·D·雷
P·恩格拉恩德
T·V·库里恩
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1610296A publication Critical patent/CN1610296A/zh
Application granted granted Critical
Publication of CN1610296B publication Critical patent/CN1610296B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

对在计算设备上运行的资源请求方(RR)从资源提供方(RP)获得资源。该RR具有与其相关的身份描述符(id),其中该id包括规定该RR在其中运行的环境的安全相关信息。对应于并基于加载的RR和加载的id计算代码身份(code-ID)。该RP验证在请求该资源中计算的code-ID匹配对该识别的RR的一个或多个有效的code-ID的一个,以得出结论,该RR和id能是可信的,且该RP通过将请求的资源提供给RR而响应于转发的请求。

Description

对信任确定实体安全地识别可执行码的方法
技术领域
本发明涉及一方法和机制,通过它可执行码等能对信任确定实体安全地识别本身,使得能希望向该可执行码提供资源。具体说来,本发明涉及那样的方法和机制,使得信任确定实体在提供资源给可执行码之前能认证该可执行码。
发明的背景
在许多计算机场合,第一计算机类实体提供某些类型的计算机型资源给第二计算机类实体。可以理解,第一类和第二类实体的每一个能是硬件或软件实体,如:计算机程序或可执行码,计算机存储设备,计算机数据服务器等。类似地,资源可以是原始数据,带有以某种组织形式的原始数据的文件等。
尤其在资源具有专门的值或按照预定规则处理的情况,若第二实体或相关实体向第一实体提出认证信息且第一实体据此认证第二实体,则第一实体,或资源提供方可以只提供资源给第二实体,或资源接收方。例如,若金融机构处的服务器(第一实体)正提供安全密钥(资源)给用户的计算机的金融程序(第二实体),使该用户能通过它在计算机上进行金融事务,则该服务器可以要求具有某些保证,该金融程序是可信任的来以对银行负责的方式使用此安全密钥。
即,服务器需要来自金融程序本身或代表该金融程序的认证者的认证信息,使得该金融程序具有某种类型,运行在根据某些变量的某种环境内,等。因此,服务器实际只有在根据提供的认证信息认证之后才提供安全密钥给该金融程序。重要的是,服务器在根据认证信息认证金融程序时希望确保该金融程序没有以如误用该安全密钥的方式被更改,且还希望确保该运行的金融程序不在安全密钥能被转向到如盗窃者那样的有问题实体或被其读取的环境中运行。
因而需要一种方法和机制,通过它能向计算机程序,可执行码,或其它资源接收方提供认证信息,提供资源的资源提供方能借此认证资源接收方。尤其是需要用于向资源提供方描述资源接收方的身份的身份描述符,其中身份描述符除其它信息以外还包括描述资源接收方的环境和认证签名等的一组变量。
发明的内容
上述需要至少部分地由本发明满足,其中在计算设备操作的资源请求者(RR)从资源提供者(RP)获得资源。RR具有与其关联的身份描述符(id),其中id包括指定RR的操作环境的与安全有关的信息。
RR和与对应于RR的id被加载到计算设备,并向RR提供对加载的id的参照。对应于并根据加载的RR和加载的id计算代码身份(code-ID)。在接收来自RR对资源的请求之后,需查明,请求的RR对该资源拥有权利,并对该资源是可信任的。然后,对该资源的请求从RR转发到RP。
RP验证接收的请求,从接收的请求获得代码身份,id,和所请求的资源的定义,并从接收的请求确定请求的RR的身份。而且RP获得对识别的RR的一个或多个有效的代码身份的每一个,并验证,在接收的请求中计算的代码身份匹配对识别的RR的有效代码身份之一。然后RP得出结论,RR作为认为是可信的已知RR能被信任,且RR操作的与安全有关的信息是认为可信的已知与安全有关的信息。
随后,RP通过向该RR提供请求的资源来响应该转发的请求。RR接收由RP提供的请求的资源,并以与由RP传达给RR的信任一致的方式,并按照在对应子RR的id中列出的与安全相关的信息加以使用。
附图简述
上述发明内容及本发明的实施例的下面详述,在结合附图阅读时更容易理解。为说明本发明的目的,在附图中示出较佳的实施例。应理解,本发明不限于示出的精确安排及手段。附图是:
图1是示出基于信任系统的示例的实施的体系结构的方框图;
图2是示出资源请求方,资源接收方,资源接收方的身份描述符和按本发明的实施例安排及操作有关实体的方框图;
图3是流程图,示出按本发明的实施例在从图2的资源提供方请求资源中,由图2的资源接收方和相关实体完成的关键步骤;和
图4是流程图,示出按本发明的实施例在提供资源到图2的资源接收方中,由图2的资源提供方完成的关键步骤。
本发明的详细描述
计算机环境
图1和下面讨论试图提供本发明和/或其诸部分能实现的合适计算环境的简要描述。虽然不是必须,本发明在以由如客户机工作站或服务器那样的计算机执行的诸如程序模块那样的计算机可执行指令的一般情况中描述。通常,程序模块包括例行程序,程序,对象,组件,数据结构等,它们完成特定任务或实现特定的抽象数据类型。此外应该理解,本发明和/或其诸部分能用其它计算机系统配置实施,包括手持设备,多处理器系统,基于微处理器或可编程的消费品电子设备,网络PC,小型机,大型主机等。本发明还能在分布式计算环境中实施,其中任务由通过通讯网络链接的远程处理设备完成。在分布式计算环境中,程序模块能位于本地或远程的存储器存储设备中。
如图1所示,示例的通用计算系统包括传统的个人计算机120等,它们包括处理单元121,系统存储器122,和将包括系统存储器的诸多系统组件连接到处理单元121的系统总线123。系统总线123能是若干类型总线结构的任一种,包括存储器总线或存储器控制器,外围总线,和使用各种总线体系结构的任一种的局部总线。系统存储器包括只读存储器(ROM)124和随机存储器(RAM)125。包含如在起动时帮助在个人计算机120中各单元之间传输信息的基本例行程序的基本输入/输出系统126(BIOS)存储在ROM124中。
个人计算机120还包括用于读写硬盘(未示出)的硬盘驱动器127,用于读写可移动磁盘129的磁盘驱动器128,用于读写如CD-ROM或其他光介质的可移动光盘131的光盘驱动器130。硬盘驱动器127,磁盘驱动器128,和光盘驱动器130分别连接到磁盘驱动器接口132,磁盘驱动器接口133,和光盘驱动器接口134。诸驱动器和它们相关的计算机可读介质为个人计算机120提供计算机可读指令、数据结构、程序模块、和其它数据的非易失性存储。
虽然这里描述的示例环境利用硬盘,可移动磁盘129,和可移动光盘131,应理解,能存储由计算机可访问的数据的其它类型计算机可读介质也能在示例的操作环境中使用。那些其它类型介质包括盒式磁带,闪存卡,数字视频盘,Bernoulli磁带盒,随机访问存储器(RAM),只读存储器(ROM)等。
包括操作系统135,一个或多个应用程序136,其它程序模块137和程序数据138的若干程序模块能存储在硬盘,磁盘129,光盘131,ROM124或RAM125中。用户能通过如键盘140和指点设备142那样的输入设备将命令和信息输入到个人计算机120。其它输入设备(未示出)能包括麦克风,操纵杆,游戏垫,卫星式圆盘天线,扫描器等。这些和其它输入设备常常通过连接到系统总线的串口接口146连接到处理单元121,但能经由如并行口,游戏口,或通用串行总线(USB)那样的其它接口连接。监视器147或其它类型的显示设备也经过如视频适配器148那样的接口连接到系统总线123。除监视器147外,个人计算机通常包括如扬声器和打印机那样的其它外围输入设备(未示出)。图1的示例系统还包括主适配器155,小型计算机系统接口(SCSI)总线156,和连接到SCSI总线156的外部存储设备162。
个人计算机120能使用到如远程计算机149那样的一个或多个远程计算机的逻辑连接在网络环境中操作。远程计算机149能是另外的个人计算机,服务器,路由器,网络PC,对等设备或其它公共网络节点,并通常包括上面与个人计算机120相关的许多或所有单元,虽然在图1中只示出存储器设备150。图1中画出的逻辑连接包括局域网(LAN)151和广域网(WAN)152。那样的网络环境在办公室,企业范围计算机网络,内联网和因特网是常见的。
在LAN网络环境中使用时,个人计算机120通过网络接口或适配器153连接到LAN151。在WAN网络环境中使用时,个人计算机120通常包括调制解调器154或用于在如因特网的广域网152上建立通讯的其它装置。内置或外接的调制解调器154通过串行口146连接系统总线123。在网络环境中,关于个人计算机画出的程序模块或其诸部分能存储在远程存储设备中。可以理解,示出的网络连结是示例性的,可以使用在计算机之间建立通讯链路的其它装置。
对资源接收方的身份描述符
现转向图2,可以看出,本发明在下述情况表示,担当资源提供方(RP)的第一计算机类型实体10向资源接收方(RR)14提供某种类型的计算机类型资源12。可以理解,依据任何给定环境的情况,RP10和PR14的每一个能是硬件或软件实体,或能是软件实体的硬件单元或硬件实体的软件单元,这些均不脱离本发明的精神与范围。例如,RP10能是提供如资源12的数据,文件,密钥,内容等的服务器,而RR14能是需要那样资源的软件结构,数据存储设备,计算机程序等。类似地,RP10能是打印机,网络等,而RR14能是寻求资源访问那些RP10的程序或其它结构。
在本发明的实施例中,资源12具有专门值或按照预定规则处理,且因此若RR14或有关的认证者提供认证信息给RP10且RP10据此认证RR14,则RP10只提供该资源给RR14。例如,RR和认证者16能都驻留在用户的计算设备18上,其中认证者16是可信的估算器,或是在计算设备18上的某些其它实体,如在计算设备18上的加载程序或操作系统的其它部分。
在现有技术中,RR14通常包括关于RR14的信息的清单,包括的条目如:在RR14的进程中的环境描述,带有验证证书链的数字签名,能用于验证RR14的组成单元的密钥等。然而在操作中,在计算设备18上操作的单元引用关联的清单,例如来获得验证RR14的密钥,或确定RR14的进程实际上应包括某些组成单元,或获得在操作过程中必须遵循的某些过程等。
因此,RR14的清单描述RR14,RR14的安全环境,到RR14的输入等。然而那样的清单在下列方面是有缺陷的:
1,该清单能规定可被加载到单个进程的多个可执行码。虽然允许更多的灵活性,将清单限止在单个可执行码更安全,因为一个清单能与一个可执行码串接或以其它方式组合,且能根据那样的组合计算单个代码身份或‘code-ID’。可以理解,code-ID是该组合的摘要,尤其是在清单中列出的与安全有关的输入的摘要和可执行码本身的摘要。如下面更详细说明,本发明的身份描述符或‘id’是包括那些与安全有关输入的数据结构。
2,为包括多个特征该清单增大了,这导致增加了复杂性和其它不可预期的影响。相反,本发明的id能直接加入的该清单中,通过引用从其它处导入,或在运行时从该清单和/或其它处导出,这具体的导向只到对应的可执行码的上述与安全有关的输入,且具有在访问控制系统的最低层的安全相关性。因而,该id能具有相当简单的格式。
现具体转到本发明的身份描述符或id,id20是用于到进程中的可执行码的与安全有关的输入的数据包,其中该可执行码假定为图2中的RR14。可以理解,id20能嵌入到该可执行码,从单独的文件导出,或从如清单的另外文档提取。本质上,id20是规定描述可执行码/RR14(以后称RR14)操作环境,尤其是安全环境的输入变量的环境框;并能由RR14和RR14驻留的计算设备18的操作系统使用来控制那样RR14的起动和执行;还能在RP10决定是否提供资源12给那个RR14时由RP10使用。代码身份或‘code-ID’22从RR14和i d20的摘要推导或计算得出,且通常以类似于在数字签名中使用的方式是上述内容的散列值。
重要的是若RR14希望如通过阅读文件,打开调试端口等修改其安全环境,那样的RR14本身负责这样做。然而,若开发RR14的开发者希望具有参数化的特定行为,且该参数具有安全性的含意(例如根据程序输入打开不同的文件,或根据程序输入调试),则该参数能放置在id20中,且能只参考id20对该参数写RR14。因此,虽然参数在id20中能潜在地由非法的实体修改,经修改的id20将引起计算的code-ID20改变,其中那样的改变能被如RP10那样的关注方解释成RR14应不是可信的一种指示。
在本发明的实施例中,id20具有函数形式:
MAP<NameString.String>Environment Variables
即,在这里id20包括一组名字-值配对,其每一个将如加点的字符数字串那样的名字映射到对应的值串。注意,id20能以XML文档等的格式而不偏离本发明的精神和范围,尽管这种XML能不必要地引起分析的复杂性。还注意,至少某些变量能是表示成字符串的XML文档。因此,id20表示成下面形式的列表:
Name1=StringValue1
Name2=StringValue2
Name3=StringValue3
如下是id20的使用的例子。注意,例子是说明性的,不需要包罗万象。假设加点的名字空间用于“name(名字)”,“_System”,名字空间能保留为计算设备18的操作系统使用,且RR14的id20能包括其中:
_System.Debuggable=“true”
_System.ProgramName=“Excel”
_System.SealTohocalAdmin=“true”
因此,计算设备18的操作系统能参考id20以确定,对应于id20的RR14的进程是可调试的,该可执行码是命名‘Excel’,且变量_System.SealToLocalAdmin已被设置成“true”。
RR14能利用id20,根据安全性质的程序输入作出行为决策。对“name-名字”假设加点的名字空间,“MyProg”名字空间能保留为RR14所用,且RR 14的id20能包括其中:
MyProg.ProgName=“MS URT running Trusted Backup Script”
MyProg.Script=“main(){foreach(blob in blobs)print f(blob);}”
MyProg.UI=“<xml>Some UI XML</xml>”
MyProg.AllowResourceFile=“0×1234,0×3456,0×89abb”;
MyProg.KeyHolderWhoCanDebugMyProcess=“Ox fedcb”;
因此,RR14能根据id20确定以XML格式的特定程序名,程序脚本,程序UI(用户界面),若干允许的源文件,和能调试RR14的进程的特定的密钥保持器。
应该理解,在任何特定的id20中的实际名字-值的配对能是任何合适的名字-值配对而不偏离本发明的精神和范围。此外,那样的名字-值的配对能包括从RR14到RR14变化的值的类型,如特定程序脚本或有效用户的列表,并还包括对几乎所有RR14共同的值的类型,如程序名和RR14的进程是否可调试。通常在任何特定id20的名字-值配对是安全相关的,因为id20主要是规定描述操作RR14的安全环境的输入变量的环境框,虽然可以理解,与安全无关的名字-值配对也能在id20中而不偏离本发明的精神和范围。
因此,尤其谈到有关安全的事项,特定的id20能包括名字-值配对,所述名字-值配对描述:操作系统、虚拟机、真实机、和/或RR14要在其上运行的计算设备18等;RR14要在不能由调试程序等监控的隔离过程中操作,还是要在实际上能被这样监控的可调试的进程中操作;能够访问RR14的每个进入点;以及,提供给RR14的安全相关的输入等安全相关的事务。应该理解,那样的与安全相关的事务一般是影响RR14如何操作,RR14在何处得到数据和其它输入,以及RR14尤其是否能在外部能影响及监控等的事情。因此一般而言,id20中的信息描述RR14,描述操作系统和RR14在其上操作的计算设备18,并描述RR14与安全相关的方面。虽然注意到,RR14的code-ID22是部分地根据id20且code-ID22应是众知的且在下面更详细地列出,该id20应该不包括对特定的计算设备18上的对RR14的任何特定的例示是特定的名字-值的配对。
在本发明的一个实施例中,代码身份或对应于特定RR14的‘code-ID’22被定义成与id20串接的RR14的散列值。例如,散列值能基于若干已知SHA算法的任一种,包括SHA-1和SHA-256:
Code-ID22=SHA(RR14|id20)
在一个特定实施例中,Code-ID22是两个上述散列值的串接,其中一个散列值基于SHA-1,另一个基于SHA-256:
Code-ID22=SHA-1(RR14|id20)|SHA-256(RR14|id20)
因此应该理解,根据RR14和id20的知识,并还根据计算code-ID22的方法的知识,RR14和相关的认证者16能计算对应于那个RR14的code-ID22,用于以数字签名的方式呈现给RP10。重要的是,RR14的一个或多个有效的Code-ID22的每一个应是众知的,尤其应由被请求提供资源12给RR14的RP10所熟知。注意,RR14能具有多于一个有效的code-ID22,尤其在RR14以多个版本出现,能在多个操作系统上操作等情况,每个版本必需是RR14和/或id20的一个变化。因而大概是,只有在对RR14的一个有效code-ID22代表这个RR14被提交给RP10时,RP10具有RR14和对该RR14的每个有效的code-ID22的知识,且那样的RP10提供资源12给RR14。
现转到图3在本发明的一个实施例中,以下述方式使用id20和对应于RR14的code-ID22。最初,通过由用户或其它过程的激活的实例使得RR14在计算设备18的操作系统的进程中被实例化(步骤301)。通常,借助在计算设备18的操作系统运行的加载程序24达到这样的实例,虽然那样的实施可以借助任何其它合适的实体达到而不偏离本发明的精神和范围。
作为实施RR14的部分,加载程序24从存放RR14的任何什么地方获得RR14,并将其加载(步骤303)。应该理解,加载程序能以任何合适的方式获取和加载RR14而不偏离本发明的精神和范围,其中获取RR14具体方法是众知的,且在有关出版物中是公开的,因此不需在这里详述。
而且作为实例化RR14的部分,加载程序24从存放id20的任何什么地方获得与这种RR对应的id20,并将其加载到适当位置(步骤305)。如上所述,那样的id能嵌入RR14,从单独的文件导出,或从如清单那样的其它文档中提取。加载程序24能以任何速率从所述位置,以对应于那个位置的方式获取id20而不偏离本发明的精神和范围,其中获取id20的具体方法是众知的,且在有关出版物中是公开的,因而不需要在这里详述。加载程序加载id20的位置能是任何合适的位置,如列表,id高速缓存器,RR14的进程等,而不偏离本发明的精神和范围。
注意,RR14和运行RR14的计算设备18的操作系统均需要访问加载的id20。因而在加载id20时,加载程序至少为RR14提供对id20的位置的指针或其它参照(步骤307)。因此,RR14能在那个id20中找到与之相关的与安全有关的信息。此外,操作系统也能找到那样安全有关的信息,通过RR14或还通过接收那样的指针或其它引用。
最初,在RR14的操作的某点,那个RR14需要来自一个RP10的资源12,如上所述仅当对该RR14的有效code-ID22代表该RR14被提交给那个RP10时,该RP10才提供该资源12给该RR14。因而在加载RR14和与其对应的id20时,计算对应于该加载的RR14的code-ID22和id20(步骤309)。可由加载程序24或上面提到的提供认证信息给RP10的认证程序16计算那个code-ID22。可以理解,认证程序16能是加载程序24的一部分,或者加载程序24能是认证程序16的一部分。Code-ID也能以合适的方式计算而不偏离本发明的精神和范围,只要计算的code-ID22是以预期能被RP10认识的形式。
因此在RR14操作期间的某个点,那个RR14确实需要来自RP10的资源12,并因而请求认证程序16以代表该RR14获得那个资源12(步骤311)。注意,在试图获取那样的资源12前,认证程序16尤其能完成各种关于RR14的认证功能,以确保该RR14具有对资源的权利,并对该资源是可信任的,等等(步骤313)。在这样做时,认证程序16本身能查证在对应于RR14的id20中的安全有关的信息,并还能确认,该RR14未以任何方式加以修改,包括取消信任关系及其它的修改。通常,认证程序16能完成任何关于RR14的认证功能而不脱离本发明的精神和范围。那样的认证功能是众知的或在有关出版物中是公开的,因而不需要在这里详述。
假设认证程序16对RR14是满意的,则认证程序16将对资源12的请求从RR14转发到RP10(步骤315)。那样转发的请求能是来自RR14的请求的忠实拷贝或其修改。因此,该转发的请求能取任何合适的形式而不脱离本发明的精神和范围。例如,那样的形式能是预定仪的引证函数(quoting function),它包括对请求的RR14的计算的code-ID22,对请求的RR14的id20,和由RR14请求的资源12的定义及其它。应该理解,该引证函数也能根据一个或多个项包括数字签名等,其中该签名是根据在认证程序和RP10之间共享的安全密钥可验证的。
现转向图4,响应接收的引证函数或其它转发的请求,RP10决定实际上是否承诺来自RR14对资源的请求。具体说来,除其它事情外RP10验证转发的请求(步骤401),在引证函数的情况这包括根据共享的安全密钥验证其签名。此外,RP10获取code-ID22,id20,和来自转发的请求所请求资源12的定义(步骤403),从转发的请求确定请求的RR14的身份(步骤405),获取对识别的RR14的有效的code-ID22(步骤407),并验证在转发的请求中计算的code-ID22是否匹配对识别的RR14的各有效的code-ID22中的一个(步骤409)。
注意,RP10能以任何合适的方式从转发的请求确定请求的RR14的身份而不脱离本发明的精神和范围。例如,那样的身份能在转发的请求的id20中指定为具体的名字-值的配对。当然,盗用知识产权的实体能更改id20中的那些身份信息,试图从RP10不恰当地获取资源12。然而由于由认证程序16计算的code-ID22部分地根据id20,那样计算的code-ID应不能匹配RP10所知的任何有效code-ID。此外应注意,认证程序16由RP10信任而合适地工作,因而相信不会破坏code-ID22。
还注意,RP10被认为和预期具有对RR14的每个有效code-ID22。RR14的一个或多个有效code-ID22的每一个也应是众知的,尤其为请求向RR14提供资源12的RP10所知。最后注意,通过找到在转发的请求中的有效code-ID22,RP10能根据有效的code-ID22得出结论,哪个是从RR14和其i d20导出;RR14能作为可信赖的已知的未更改的RR14加以信任;而且RR14运作的安全相关信息是认为可信赖的已知未更改的与安全有关的信息。此外可以理解,通过采用code-ID22,经权衡的特定的RR14能通过从对RP10可用的code-ID移除所有相关的code-ID而不承诺提供资源。
除了使该请求的计算的code-ID22生效以外,RP10还能根据其它信息使转发的请求(步骤411)生效。例如,即使使该code-ID22生效,RP10能根据id20中的某些信息,如RR14是否在隔离的进程中运行,来编程承诺或拒绝该请求。类似地,若转发的请求包括RR14的计算设备18的用户的识别,则RP10能根据识别的用户编程来承诺或拒绝该请求。当然,RP10能根据任何准则使转发的请求生效而不脱离本发明的精神和范围。
若转发的请求如在步骤409和411那样被生效,则RP10确定,请求的资源12是可用和/或能被提供(步骤413)。例如,若资源12是数据,RP10确定,该数据实际上是否可用,或若资源是对打印机的访问,则RP10确定,该打印机是否实际上在线,有纸,能接收新的打印请求,等。
然后假设,转发的请求如步骤409和411那样被生效,且请求的资源12可用和/或能如步骤413那样被提供,则RP10通过提供请求的资源12响应转发的请求(步骤415)。因此,若资源12是一对象,RP10提供该对象,若资源12是对服务的访问,RP10如通过安全密钥或访问的其它标记安排那样的访问,并提供安全密钥或其它访问的标记。
用由RP10提供的请求的资源12的那些响应由RR14借助认证程序16直接或间接地接收(图3的步骤317),然后若响应是适当的RR14就使用提供的资源12(步骤319)。至少隐含地因为RP10实际上确实提供请求的资源12到RR14,RR14和运行它的计算设备被RP10信任用来仅以那个信任一致的方式,尤其是按照在对应于RR14的id20中列出的安全有关的信息,提供资源。
结论
本发明能对于任何资源请求方RR14和提供方RP10实施。更具体地,例如本发明能用于使PC上的文字处理程序能接收受保护的文字处理文档,使在专用播放设备处的音乐播放者能发送演播的音乐到扩音器系统,使无线设备能访问局域无线网等,因而,RR14被解释为请求资源12的任何设备,RP10被解释为在一系统中提供资源的任何设备,其中RR14根据在id20中与安全有关的信息操作,而RP10部分地根据id20使RR14的可信任性生效。
为实施结合本发明完成的进程的编程是相对直截了当的,并对相关的编程出版物是公开的。因而那样的编程不附在这里。因而能采用任何具体编程来实施本发明而不脱离其精神的范围。
在上面描述中可以看到,本发明包括新的和有用的方法和机制。借此可为计算机程序,可执行码,或其它资源接收方RR14提供如id20那样的认证信息,为RR14提供资源12的资源提供方RP10能用它来认证该RR14。Id20向RP10描述RR14的身份,并除其它事情外还包括一组描述RR14的环境的变量。
应当理解,对上述实施例能作出改变而不脱离本发明的创意。然而可以理解,本发明不限于所揭示的具体实施例,而且试图涵盖在由附后的权利要求确定的本发明的精神和范围中的修改。

Claims (18)

1.从资源提供方RP为运行在计算设备上的资源请求方RR获得资源的方法,所述RR具有与其相关的身份识别符id,所述id包括规定所述RR操作的环境的安全相关信息,所述方法包括:
由加载程序将所述RR加载到所述计算设备;
由加载程序加载所述id,所述id对应于所述计算设备上的RR;
由加载程序提供带有到所加载id的位置的参照的所述RR,所述RR在所述id中找到与所述RR相关的安全相关信息;
由所述加载程序或认证程序计算代码身份code-ID,该code-ID对应于并基于所加载的RR和所加载的id,其中所述认证程序在所述计算设备上;
所述认证程序从所述RR接收对所述资源的请求;
所述认证程序确定所述的发请求的RR对所述资源具有权利,且对所述资源是可信任的;
所述认证程序将对所述资源的请求从所述RR转发到所述RP,所述转发的请求包括对发请求的RR的计算的code-ID、对所述请求RR的id、以及由所述RR请求的资源的定义;所述RP验证在转发的请求中的所计算的code-ID匹配对所识别的RR的一个或多个有效的code-ID中一个,并且所述RP据此得出以下结论:所述RR能够作为可信赖的已知的RR加以信任,并且所述RR运作的安全相关信息也能够被认为是可信赖的已知的安全相关信息,然后所述RP通过提供所述请求的资源响应所述转发的请求;
由所述RR接收由所述RP提供的所述请求的资源,并以与所述RP传达给所述RR的信任一致的方式,按照在对应于所述RR的所述id中列出的所述安全相关信息使用所述资源。
2.如权利要求1的方法,其特征在于,所述认证程序关系到在对应所述RR的所述id中的安全相关信息。
3.如权利要求1的方法,其特征在于,所述转发的请求还包括基于对于所述请求RR的所述计算的code-ID、对于所述请求RR的所述id、和所述由RR请求的所述资源的定义中的至少一个的数字签名,所述签名是根据与RP共享的安全密钥可验证的。
4.如权利要求1的方法,其特征在于,所述id包括可用作对所述RR、所述RP、和所述RR在其上运行的所述计算设备上的操作系统的至少一个的输入的一组安全相关的名字-值配对。
5.权利要求4的方法,其特征在于,所述名字-值配对描述以下各项中的至少一个:所述RR在其中操作的环境、所述RR是否要在隔离的进程中操作、以及能够访问所述RR的每个进入点。
6.如权利要求1的方法,其特征在于,所述code-ID从所述RR和所述id的摘要计算。
7.如权利要求6的方法,其特征在于,所述code-ID是与其所述id串接的所述RR的散列值。
8.如权利要求7的方法,其特征在于,所述code-ID是两个散列值的串接,每个散列值具有与其所述id串接的所述的RR。
9.由资源提供方RP向在计算设备上运行的资源请求方RR提供资源的方法,所述RR具有与其相关的身份描述符id,所述id包括指定所述RR操作的环境的安全相关信息,所述方法包括:
从所述RR接收对所述资源的转发的请求,所述转发的请求包括对所述请求RR计算的代码身份code-ID,所计算的code-ID对应于并基于在所述计算设备上加载的所述RR和所述id,所述转发的请求还包括对请求RR的所述id和由所述RR请求的所述资源的定义;
验证所述接收的请求;
从所述接收的请求获得所述code-ID,所述id,和所述请求的资源的所述定义;
从所述接收的请求确定所述请求RR的身份;
获得对所述识别的RR的一个或多个有效的code-ID的每一个;
验证在所接收的请求中的所计算的code-ID匹配对所识别的RR的一个或多个有效的code-ID中的一个,并据此得出以下结论:所述RR能够作为可信赖的已知的RR加以信任,并且所述RR运作的安全相关信息也能够被认为是可信赖的已知的安全相关信息;通过向所述RR提供请求的资源对转发的请求作出响应,所述RR接收由所述RP提供的所述请求的资源,并以与所述RP传达给所述RR的信任一致的方式,按在对应于所述RR的所述id中列出的所述安全相关信息使用所述资源。
10.如权利要求9的方法,其特征在于,在所述计算设备上接收从认证程序来的转发的请求,确定所述请求RR具有对所述资源的权利并对所述资源是可信任的,其中所述认证程序参照在对应于所述RR的所述id中的安全相关信息。
11.如权利要求9的方法,其特征在于,所述转发请求还包括基于对所述请求RR的所述计算的code-ID、对所述请求RR的所述id、和由所述RR请求的所述资源的定义中的至少一个的数字签名,所述方法还包括验证所述签名。
12.如权利要求9的方法,其特征在于,还包括基于在所述转发的请求中包括的其它信息来使该转发的请求生效。
13.如权利要求9的方法,其特征在于,还包括确定所述请求的资源是可用的和/或能被提供的。
14.如权利要求9的方法,其特征在于,所述id包括可用作对所述RR,所述RP、和所述RR在其上运行的所述计算设备上的操作系统的至少一个的输入的一组安全相关的名字-值配对。
15.如权利要求14的方法,其特征在于,所述名字-值配对描述以下各项中的至少一个:所述RR在其中操作的环境、所述RR是否要在隔离的进程中操作、以及能够访问所述RR的每个进入点。
16.如权利要求9的方法,其特征在于,所述code-ID从所述RR和所述id的摘要计算。
17.如权利要求16的方法,其特征在于,所述code-ID是与其所述id串接的所述RR的散列值。
18.如权利要求17的方法,其特征在于,所述code-ID是两个散列值的串接,每个散列值具有其与所述id串接的所述的RR。
CN2004100877113A 2003-10-23 2004-10-25 对信任确定实体安全地识别可执行码的方法 Expired - Fee Related CN1610296B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692,224 2003-10-23
US10/692,224 US7418512B2 (en) 2003-10-23 2003-10-23 Securely identifying an executable to a trust-determining entity

Publications (2)

Publication Number Publication Date
CN1610296A CN1610296A (zh) 2005-04-27
CN1610296B true CN1610296B (zh) 2010-12-08

Family

ID=34435459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100877113A Expired - Fee Related CN1610296B (zh) 2003-10-23 2004-10-25 对信任确定实体安全地识别可执行码的方法

Country Status (11)

Country Link
US (1) US7418512B2 (zh)
EP (1) EP1531377B1 (zh)
JP (1) JP4680562B2 (zh)
KR (1) KR100949024B1 (zh)
CN (1) CN1610296B (zh)
AU (1) AU2004214529B2 (zh)
BR (1) BRPI0411961B1 (zh)
CA (1) CA2482243C (zh)
DE (1) DE602004022004D1 (zh)
MX (1) MXPA04009838A (zh)
RU (1) RU2357287C2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251835A1 (en) * 2004-05-07 2005-11-10 Microsoft Corporation Strategies for pausing and resuming the presentation of programs
US7640343B2 (en) * 2004-05-27 2009-12-29 Microsoft Corporation Using resource item lists to consume resource items
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
KR100758219B1 (ko) * 2005-08-08 2007-09-12 (주)이월리서치 유에스비 장치의 동작을 통제하는 방법
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
US8230412B2 (en) * 2007-08-31 2012-07-24 Apple Inc. Compatible trust in a computing device
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US8225390B2 (en) * 2008-06-27 2012-07-17 Microsoft Corporation Licensing protected content to application sets
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
KR101225013B1 (ko) * 2010-12-29 2013-02-07 (주)트라이디커뮤니케이션 리소스 제공 시스템 및 방법
CN105426771B (zh) * 2015-10-28 2018-06-26 成都比特信安科技有限公司 一种实现大数据安全的方法
CN110138731B (zh) * 2019-04-03 2020-02-14 特斯联(北京)科技有限公司 一种基于大数据的网络防攻击方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
EP1191422A2 (en) * 2000-09-22 2002-03-27 International Business Machines Corporation Transparent digital rights management for extendible content viewers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates
JP2001308849A (ja) * 2000-02-14 2001-11-02 Victor Co Of Japan Ltd コンテンツ伝送システム、認証機器、コンテンツ取扱装置、データ伝送方法、伝送媒体、信頼度判定装置、信頼度被判定装置、記録媒体
US20040010717A1 (en) 2002-01-29 2004-01-15 Intertainer Asia Pte Ltd. Apparatus and method for preventing digital media piracy
US7174320B2 (en) 2002-04-04 2007-02-06 Intel Corporation Method of providing adaptive security

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
EP1191422A2 (en) * 2000-09-22 2002-03-27 International Business Machines Corporation Transparent digital rights management for extendible content viewers

Also Published As

Publication number Publication date
MXPA04009838A (es) 2005-04-28
EP1531377B1 (en) 2009-07-15
EP1531377A3 (en) 2006-09-20
CA2482243A1 (en) 2005-04-23
BRPI0411961B1 (pt) 2017-05-16
EP1531377A2 (en) 2005-05-18
DE602004022004D1 (de) 2009-08-27
US7418512B2 (en) 2008-08-26
RU2004131028A (ru) 2006-04-10
RU2357287C2 (ru) 2009-05-27
KR100949024B1 (ko) 2010-03-23
BRPI0411961A (pt) 2006-04-25
AU2004214529A1 (en) 2005-05-12
US20050125548A1 (en) 2005-06-09
CA2482243C (en) 2013-10-29
AU2004214529B2 (en) 2010-01-07
CN1610296A (zh) 2005-04-27
JP2005129045A (ja) 2005-05-19
JP4680562B2 (ja) 2011-05-11
KR20050039528A (ko) 2005-04-29

Similar Documents

Publication Publication Date Title
CN112292682B (zh) 分散式文档和实体验证引擎
US11257073B2 (en) Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
CN109074579B (zh) 使用分布式散列表和区块链保护计算机软件的方法及系统
RU2673842C1 (ru) Автоматическая аттестация сохранности устройства с применением цепочки блоков
US7509497B2 (en) System and method for providing security to an application
US20190236562A1 (en) Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
US20190238525A1 (en) Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
US20190236606A1 (en) Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment
US8327450B2 (en) Digital safety deposit box
US8091142B2 (en) Supplementary trust model for software licensing/commercial digital distribution policy
KR101948721B1 (ko) 파일 해시 값을 이용한 파일 위변조 검사 방법 및 단말 장치
US9135030B2 (en) Method, an apparatus and a computer program product for extending an application in a client device
BR102020005717A2 (pt) Segurança e rastreamento de máquina e dados agronômicos com base em transação distribuída
US20140123292A1 (en) Transit control for data
US20120291089A1 (en) Method and system for cross-domain data security
US9565211B2 (en) Managing exchanges of sensitive data
CN1610296B (zh) 对信任确定实体安全地识别可执行码的方法
Nauman et al. Using trusted computing for privacy preserving keystroke-based authentication in smartphones
Gallery et al. Trusted computing: Security and applications
US8904487B2 (en) Preventing information theft
CN112445705B (zh) 基于可信校验的软件运行系统、方法、装置和计算机设备
US20150007293A1 (en) User authentication utilizing patterns
US20230281321A1 (en) Secure application development using distributed ledgers
TR2023006911T2 (tr) Şi̇freli̇ dosya kontrolü

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150514

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150514

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101208

Termination date: 20191025

CF01 Termination of patent right due to non-payment of annual fee