CN1828621A - 基于环境的程序认证 - Google Patents

基于环境的程序认证 Download PDF

Info

Publication number
CN1828621A
CN1828621A CNA2006100037853A CN200610003785A CN1828621A CN 1828621 A CN1828621 A CN 1828621A CN A2006100037853 A CNA2006100037853 A CN A2006100037853A CN 200610003785 A CN200610003785 A CN 200610003785A CN 1828621 A CN1828621 A CN 1828621A
Authority
CN
China
Prior art keywords
program
psid
described program
cpsid
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006100037853A
Other languages
English (en)
Inventor
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 Corp
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 CN1828621A publication Critical patent/CN1828621A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B39/00Locking of screws, bolts or nuts
    • F16B39/02Locking of screws, bolts or nuts in which the locking takes place after screwing down
    • F16B39/12Locking of screws, bolts or nuts in which the locking takes place after screwing down by means of locknuts
    • F16B39/126Locking of screws, bolts or nuts in which the locking takes place after screwing down by means of locknuts causing radial forces on the bolt-shaft
    • F16B39/128Locking of screws, bolts or nuts in which the locking takes place after screwing down by means of locknuts causing radial forces on the bolt-shaft by means of eccentrical or spiral interengaging parts
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B33/00Features common to bolt and nut
    • F16B33/002Means for preventing rotation of screw-threaded elements
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B39/00Locking of screws, bolts or nuts
    • F16B39/22Locking of screws, bolts or nuts in which the locking takes place during screwing down or tightening
    • F16B39/28Locking of screws, bolts or nuts in which the locking takes place during screwing down or tightening by special members on, or shape of, the nut or bolt
    • F16B39/282Locking by means of special shape of work-engaging surfaces, e.g. notched or toothed nuts

Landscapes

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

Abstract

为向对计算设备本地或远程的资源认证该计算设备上的程序,检索对应于该程序的储存的程序安全标识符(PSID),其中该储存的PSID包括考虑到程序本身、程序的执行设置以及提供给程序的任何输入和初始化的信息。PSID基于从本地源获得的同一信息来重构,且将储存的和重构的PSID进行比较以确定是否存在匹配。如果是,则可得出结论,该程序是依照一组批准的条件以可信的方式操作的。

Description

基于环境的程序认证
技术领域
本发明涉及用于允许不仅基于程序本身,还基于该程序所驻留的环境来认证程序的体系结构和方法。更具体而言,本发明涉及这样一种体系结构和方法,其中程序的认证包括对程序和诸如计算设备等底层硬件之间的每一层的认证。
背景技术
为计算设备等开发的软件程序或应用程序等(后文称为“程序”)有时候需要向对该计算设备本地或远程的另一实体认证。对于一个示例,与远程银行服务器交互的银行程序可能需要向该银行服务器认证为实际上是银行程序,而不是为恶意或邪恶的目的而冒充银行程序的某一其它程序。对于另一示例,与计算设备上的权限管理程序交互的音频呈现程序可能要求向该权限管理程序认证为实际上是音频呈现程序,而不是为了恶意或邪恶的目的而冒充音频程序的某一其它程序。
如可以理解的,程序认证在许多其它设置中都是重要的。例如:本地用户需要确保他或她正在向合法程序而非被设计成盗窃口令的程序键入口令;运行程序的平台在执行程序之前可要求诸如程序的证书等认证令牌;组织可要求每一雇员或其它个人使用具有带有特定的批准配置的操作系统的计算设备;这一操作系统可被配置成仅加载和执行遵循特定管理员策略的驱动程序或程序;等等。
如可以理解的,对程序认证存在许多技术,且认证数据可用于许多不同的访问控制目的。然而,且重要的是,认证程序本身对于确定是否对程序给予信任的目的并不总是足够的。具体地,为向其给予信任的目的认证程序也应包括认证程序所驻留的设置,且还应包括认证程序所操作的底层平台。例如,直接运行在计算设备的硬件上的操作系统的安全状态与运行在虚拟机(它进而直接运行在该硬件上)上的这一操作系统的安全状态是不同的。
具体地,运行在虚拟机上的操作系统的安全状态应当考虑到运行在该虚拟机上的其它操作系统可能能够检查和修改有待解决的操作系统及其执行流程的事实。在这一情况下,对是否向所述的操作系统给予信任的确定应当包括对是否向虚拟机给予信任的确定。因此,更一般地,对是否向程序给予信任的确定应当包括对是否向程序的执行环境给予信任的确定,因为执行环境会影响程序的运行状态。如可以理解的,执行环境可以是硬件,或者可以由另一程序建立,或两者皆可。
因此,需要这样一种方法和机制,通过该方法和机制,计算机程序可以按照程序本身和该程序所驻留的环境来认证。更具体地,需要这样一种方法和机制,通过该方法和机制,对程序本身的认证包括对该程序本身运行的设置和环境以及提供给该程序的输入的考虑。此外,需要这样一种方法和机制,通过该方法和机制,对程序的认证包括对该程序所操作的底层平台的认证。
发明内容
上述需求至少部分地由本发明来满足,在本发明中,提供了一种与在计算设备上操作的程序相结合的方法,其中该方法向对计算设备本地或远程的资源认证程序。在该方法中,检索对应于程序的所储存的程序安全标识符(PSID),其中,所储存的PSID包括考虑到程序本身、程序的执行设置以及提供给程序的任何输入和初始化的信息。由此,该PSID表示一组批准的条件,用于以可信的方式来操作该程序。
PSID是基于与从本地源获得的同一信息来重构的,且对重构的PSID进行比较以确定是否存在匹配。如果确定存在匹配,则可以得出结论,程序是依照该组批准的条件以可信的方式操作的。同样,如果确定不存在匹配,则可以得出结论,程序不是依照该组批准的条件以可信的方式操作的。
另外,提供了一种认证程序的方法,其中要认证的程序是由多层主宿程序来主宿的,该多层主宿程序最终位于表示计算设备的硬件上。在这一方法中,对于要认证的每一程序以及至少某些层的每一层上的主宿程序,建立对应于该程序的PSID,且将所有建立的PSID组合在一起以产生表示要认证的程序的总体安全环境的合成PSID(CPSID)。产生的CPSID被传递到资源,由此,这些资源审阅这些所传递的CPSID,并至少部分地基于这一审阅来确定是否信任要认证的程序。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下本发明的实施例的详细描述。为说明本发明起见,附图中示出了当前较佳的实施例。然而,应当理解,本发明不限于所示的确切装置和工具。附图中:
图1是表示其中可结合本发明的各方面和/或其部分的通用计算机系统的框图;
图2是示出本发明可在其中操作的体系结构的框图,尤其是在计算设备上操作且由多个分层程序主宿的程序,这些分层程序形成了位于计算设备的硬件上的底层平台;
图3是示出依照本发明的一个实施例,通过其程序安全标识符(PSID)来认证图2的程序时执行的关键步骤的流程图;
图4是示出依照本发明的一个实施例,通过其合成程序安全标识符(CPSID)的方式来认证图2的程序时执行的关键步骤的流程图;以及
图5是依照本发明的一个实施例,基于所有的PSID来计算图4的CPSID时执行的关键步骤的流程图。
具体实施方式
计算机环境
图1及以下讨论提供了对适于在其中实现本发明和/或其部分的计算环境的简要概括描述。尽管并非所需,但本发明将在诸如程序模块等由如客户机工作站或服务器等计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。此外,应当理解,本发明和/或其部分可以用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机120等,包括处理单元121、系统存储器122以及将包括系统存储器的各类系统组件耦合至处理单元121的系统总线123。系统总线123可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统(BIOS)126包含如在启动时协助在计算机120内的元件之间传输信息的基本例程,它储存在ROM 124中。
个人计算机120也可包括用于对硬盘(未示出)进行读写的硬盘驱动器127、用于对可移动磁盘129进行读写的磁盘驱动器28以及用于对可移动光盘131,如CD-ROM或其它光介质进行读写的光盘驱动器130。硬盘驱动器127、磁盘驱动器128以及光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接至系统总线123。驱动器及其相关联的计算机可读介质为计算机120提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。
尽管这里描述的示例性环境采用了硬盘、可移动磁盘129以及可移动光盘131,然而应当理解,示例性操作环境中也可以使用可储存计算机可访问的数据的其它类型的计算机可读介质。这些其它类型的介质包括盒式磁带、闪存卡、数字视频盘、Bernoulli盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可储存在硬盘、磁盘129、光盘131、ROM 124或RAM 125中,包括操作系统135、一个或多个应用程序136、其它程序模块137以及程序数据138。用户可以通过诸如键盘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连接至LAN 151。当在WAN网络环境中使用时,计算机120通常包括调制解调器154或用于通过广域网152,如因特网建立通信的其它装置。调制解调器154可以是内置或外置的,它通过串行端口接口146连接至系统总线123。在网络化环境中,相对于个人计算机120所描述的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
基于环境的程序认证
本发明涉及至少部分地基于程序的环境来认证计算设备上的程序。如上所述,这一认证包括对诸如运行在计算设备上的操作系统以及对程序的输入等设置类型的考虑,并且还可包括对该程序在其上操作的底层平台的认证,诸如认证程序和计算设备的硬件之间的每一基础软件层。
特别地,认证可被提供给对计算设备本地或远程的另一实体。由此,认证可例如被给予程序从中请求数据的远程服务器,或有待解决的程序从中请求资源的本地程序。尽管所述的程序本身可提供认证而不会偏离本发明的精神和范围,然而更有可能的是认证是由另一程序或计算设备的硬件来提供的,其任一个已与认证的目标建立了信任级别。
如可以理解的,情况通常是要向目标或资源12(后文称为“资源12”)认证的程序10实际上是由最终位于表示特定计算设备16上的硬件14上的一层或多层其它程序10主宿的,如在图2中所见的。例如,如图所示,计算设备16的硬件14最初可例示为一个虚拟机,作为第一或最底层上的程序10,且虚拟机10可被认为是支持作为第二较高层处的程序10的两个例示的操作系统和服务系统的平台。类似地,操作系统10之一可被认为是支持作为第三较高层处的程序10的游戏系统和网络浏览系统的平台,且游戏系统10可以被认为是支持作为第四,即最高层处的程序10的特定游戏的平台。
因此,对于游戏10,可以理解,在向游戏10给予信任时的资源12应当不仅考虑游戏10本身,还应考虑支持游戏10的游戏系统10、支持游戏系统10的操作系统10、支持操作系统10的虚拟机10以及支持虚拟机10的硬件14。例如,这一资源12可能希望确定支持游戏系统10的操作系统10可被信任为防止其它支持的程序10访问由资源12提供给游戏10的任何资源。同样,这一资源12可能希望确定支持游戏10的游戏系统10可被信任为仅用一组规定的输入来操作。
通常,尽管并非所需,硬件14是特别地可信的,且包括能够通过认证的引导协议等来认证每一程序10的可信平台等。这一可信硬件14对相关公众是已知或应当是显而易见的,因此无需在此详细描述。因此,可采用任何类型的这一可信硬件14,而不会偏离本发明的精神和范围。
由此,资源12至少部分地基于对硬件14可信的确认来确定是否信任向其认证的特定程序10。然而,注意,在硬件14不是特别地可信的情况下,资源12可替换地在计算设备上的特定程序10中建立信任,而不会偏离本发明的精神和范围。例如,程序10也可由最终位于表示特定计算设备16的硬件14上的一层或多层其它程序10来主宿,如图2中所见的,但是较低层上的程序10可以是特别地可信的,且包括可通过认证的引导协议等来认证每一程序10的上述可信平台等。
一般而言,如果诸如硬件14或特定程序10等元素是被资源12信任的,则资源信任这一元素以提供对该元素所支持的每一程序10的认证。由此,参考图2,在被信任之后,硬件14可提供对虚拟机10的认证,虚拟机10在基于来自硬件14的认证被信任之后可提供对操作系统10的认证,操作系统10在基于来自虚拟机10的认证被信任之后可提供对游戏系统10的认证,而游戏系统10在基于来自操作系统10的认证被信任之后可提供对游戏10的认证。注意,为提供认证,每一特定元素应当具有可收集对这一认证所必需的信息、构造认证以及传递认证的策略引擎等。还要注意,认证可被直接传递给资源12,或可被传递给下一较低层上的程序10或硬件14,视情况而定。
在本发明的一个实施例中,对任何特定程序10的认证考虑以下:程序10本身;程序10的执行设置;以及提供给程序10的任何输入和初始化(后文称为“输入”)。尤其是由于图2的分层系统涉及较低层处例示下一较高层处的有待解决的程序10并控制其设置的程序10或硬件14,因此较低层处的例示实体10/14尤其适合具有这些项的知识,且因此尤其适合通过这一例示实体10/14的策略引擎来认证所例示的程序10。此外,这一例示实体10/14及其策略引擎也可在常规的基础上或在请求时重新认证这一例示的程序10,视情况而定。
在其认证过程中考虑到程序10本身,例示实体例如可参考对应于程序10的数字证书,并可确认其数字签名,且还可使其对于证书是从可接受的信任根证书得出而感到满意其自身。除此之外或作为替换,如果程序10是由复写本或其它清单实现的,则应当检查该复写本以确定相关文件和数据的存在,程序10的任何散列能得到验证等等。同样,程序10本身可按照文件名、程序10的文件中的元数据、名字参数等来标识。
在其认证过程中考虑到程序10的设置,例示实体例如可参考上述证书和/或复写本来确定对该程序批准的设置,且实际上确认该批准的设置的确存在。通常,尽管并非所需,批准的设置可包括对有待解决的程序10和硬件14之间的层上的其它程序10的标识,以及可能诸如应当在计算设备16上操作的其它程序10和/或不应当在计算设备16上操作的其它程序10等其它信息。另外,设置可包括为程序10建立的特定运行模式,为程序10建立的任何特殊特权或限制等等。
在其认证过程中考虑到对程序10的输入,例示实体可例如再次参考上述证书和/或复写本等,以确定对该程序的一组批准的输入,且实际上确认该组批准的输入的确用于例示程序10。通常,尽管并非所需,该组批准的输入包括可被馈入到程序10的例示中的任何内容,诸如命令串、运行脚本、在例示期间加载的库或可执行代码、例示期间由程序10采用的注册表键、例示期间由程序10呈现的用户界面等等。
在本发明的一个实施例中,与上述程序10本身、程序10的执行设置以及与提供给程序10的输入有关的信息由程序10的发布者等参数化成程序安全标识符(PSID),其中PSID对例示这一程序10的例示程序10可用。由此,PSID表示用于以可信的方式操作程序10的一组批准的条件,如由发布者等所陈述的。这种由发布者等提供的程序10的这一PSID可与该程序10一起储存,或可储存在对例示程序10可用的另一位置中,而不偏离本发明的精神和范围。
储存的PSID的实际形式实际上可以是任何适当的形式,而不偏离本发明的精神和范围,只要所储存的PSID确实记住了上述与程序10本身、程序10的执行设置以及提供给程序10的输入有关的信息。例如,这一信息可在储存的PSID中被陈述为列表,或者这一信息可以用适当的方式来串接和散列以形成PSID。
值得注意的是,在本发明的一个实施例中,现在参考图3,程序10或硬件14通过检索程序10的储存的PSID(步骤301)、通过基于从本地源获得的同一信息重构PSID(步骤303)、然后通过将所储存的和重构的PSID进行比较来确定是否存在匹配(步骤305),来认证向上的下一层(图2)上的程序10。假定的确存在匹配,则可以得出结论,对应的程序10可能是依照上述由发布者等陈述的一组批准的条件以上述可信方式来操作,且因此程序10可被认证(步骤307)。然而,如果不存在匹配,则仅可得出结论,该组批准的条件内的某些要求不被满足,且因此作为程序10不以可信方式操作的结果,程序10不能被认证(步骤309)。
特别地,为如步骤303处那样重构PSID,所储存的PSID必须伴随一组关于如何重构该PSID的指令。这些指令当然应当包括要本地获取的每一条信息的标识、该信息的本地源等等。另外,这一指令应当包括如何格式化信息以及如何在必要时串接和散列该信息。注意,该指令可包括由执行认证的程序10或硬件14执行的一系列步骤,或者可包括本身执行该一系列步骤的可执行代码等。
尽管层n上的第一程序10可以由往下的下一层(n-1)上的第二程序10向资源12认证,然而没有向资源14建立有关第二程序10本身可以是可信的任何内容。因此,第二程序10应当由往下的下一层(n-2)处的第三程序10向资源12认证,依此类推,直到最底层1处的程序10由可信硬件14向资源12认证。更简单地,在本发明的一个实施例中,为向资源12表示所述的程序10的总体安全环境,创建从所述的程序10到最底层的程序10的所有PSID的合成,作为合成PSID(CPSID):
                CPSID=PSID1,PSID2,...,PSIDn
由此,CPSID可被呈现给资源12,例如作为对该资源12的请求的一部分,且作为对有待处理的程序10的认证。通常,由于硬件14是被资源14信任的,因此CPSID的呈现者是该硬件14。
然而,如果在中间层上的程序10被资源14信任,则可信中间程序可以替代地为呈现者,而不会偏离本发明的精神和范围。在这一情况下,CPSID将是所述的程序10到在可信中间程序10上方的层x处的程序10的所有PSID的合成:
                CPSID=PSIDx,PSID(x+1),...,PSIDn
如上所述,CPSID的实际形式可以实际上是任何适当的形式,而不偏离本发明的精神和范围,只要所储存的PSID确实以可再现的方式记住了其中所有各个PSID的混合。例如,CPSID可以是其中所有的PSID的有序列表的串接,或者可以是这一串接的散列,或者可以是基于这一PSID的数学级数的结果。
值得注意的是,在本发明的一个实施例中,现在转向图4,向资源14认证向上一层或多层上(图2)的有待解决的程序10的程序10或硬件14可在每一重构的较高层中具有程序10的PSID,并以联系图3所示的方式来验证该PSID(步骤401)。注意,认证者10/14可以自己执行该重构和验证,或可使每一程序10的这一重构和验证由下一较低层上的程序10来执行,然后使这一重构和验证的PSID被传递到该认证者10/14。在任一情况下,认证者10/14以适当的方式组合所有重构和认证的PSID,以产生CPSID(步骤403),然后将产生的CPSID传递到资源12(步骤405)。假定该资源12审阅这一传递的CPSID(步骤407),并至少部分地基于这一审阅来确定是否信任有待解决的程序10(步骤409)。
特别地,对于要由资源12综合的CPSID,资源12和认证者10/14要么提前对如何构造这一CPSID达成一致,要么资源向认证者10/14提供一组关于如何构造该CPSID的指令。这一指令当然应当包括CPSID内期望的每一组成PSID以及如何格式化PSID的标识,包括如何在必要时串接、散列和/或计算PSID。如上所述,该指令可包括要由认证者10/14执行的一系列步骤,或者可包括自身执行该一系列步骤的可执行代码等。
在本发明的一个实施例中,假定资源12向计算设备16的硬件14给予信任,则该信任是至少部分地基于包括信任模块18的硬件14(图2),该信任模块18至少认证第一层处的程序10并向其分配PSID。该信任模块18对相关公众是已知或应当是显而易见的,因此无需在此详细描述。因此,可采用任何适当的信任模块18,而不偏离本发明的精神和范围。
通常,信任模块18用于提供在体系结构上定义的执行设置,其中第一层上的程序10可初始化其本身,该设置确保不会遭受到外部干扰。通常也向信任模块18提供PSID寄存器20,在该寄存器20内,该信任模块18可储存第一层上的程序10的PSID。
可以理解,在至少某些情形中,资源12可能愿意接受如由可信硬件14及其信任模块18提供的的程序10的CPSID,而不是由任何程序10提供的CPSID。尽管上述PSID寄存器20可用于储存这一CPSID,然而可以理解,通常不应作出对这一PSID寄存器20的改变,尤其是鉴于给予硬件14的信任。因此,为实现信任模块18的这一提供,在本发明的一个实施例中,也向该信任模块18提供CPSID寄存器22,在该寄存器中该信任模块18可储存对应于任一层上的特定程序10的CPSID。另外,且重要的是,信任模块18可在计算或串创建CPSID期间采用这一CPSID寄存器22。
注意,如果CPSID仅是多个PSID的串接,则CPSID可具有变化的长度,且实际上可能是相当大的。然而,可以理解,硬件14和其上的信任模块18在本质上不包括用于CPSID寄存器22的很多空间,且因此该CPSID寄存器22应当被保持在相当小的大小。因此,为容纳任何CPSID,在本发明的一个实施例中,信任模块18在数学上基于其每一组成的PSID以迭代的方式构建CPSID,由此,所构建的CPSID的长度足够短以适合CPSID寄存器22。实际上,在本发明的一个实施例中,上述迭代方式包括对特别地将CPSID的大小定为CPSID寄存器22的函数的应用。
注意,对于CPSID寄存器22,信任模块18有时可允许最底层的已认证程序10访问该CPSID寄存器22,且也允许该已认证程序10构造CPSID。尽管这样做可造成安全风险,但该风险实际上轻微地假定采取了正确的安全措施来将已认证程序10的访问仅限于该CPSID寄存器22。无论如何,该风险都不会像信任模块18允许已认证程序10访问PSID寄存器20那样严重,且信任模块18不直接向已认证程序10给予信任。
为在CPSID寄存器22内构建CPSID,在本发明的一个实施例中,现在转向图5,信任模块18或已认证程序10首先清除CPSID寄存器22(步骤501),然后以有序的方式接收用于CPSID的每一组成的PSID(步骤503)。对于这一所接收的PSID,信任模块18或已认证程序10将其应用于检索CPSID寄存器22的当前内容的函数f(步骤503a),以某一方式将PSID与所检索到的CPSID寄存器22的当前内容组合(步骤503b),执行对该组合的数学运算的某一排序(步骤503c),以及将该操作的结果放置在CPSID寄存器22中(步骤503d)。由此,在处理了最后一个PSID之后,CPSID寄存器22的内容包含CPSID,在本实例中该CPSID是基于其所有的组成SPID,但可能不能被分解成这些组成的PSID(步骤505)。然而,这一CPSID可用作如在图4的步骤405那样被传递到资源12的有效形式(步骤507)。
如可以理解的,大多数任意组合的形式可以在步骤503b使用,而不脱离本发明的精神和范围。例如,可采用简单的串接。注意,由于这一串接可能在CPSID寄存器22内不适合,因此该串接可被储存在替换位置中。如还可以理解的,大多数任何数学运算可以在步骤503c使用。例如,数学运算可包括诸如SHA散列函数等散列函数,且还可选择散列函数以产生常规大小的固定长度输出,以如步骤503d处那样匹配CPSID寄存器22。
结论
本发明可用相对于具有分层程序10的任何适当的计算设备16来实施,其中若干程序10的每一个要向本地或远程资源12认证。如现在应当理解的,对于此处所陈述的本发明,认证不仅基于程序10本身,还基于程序10的设置和输入以及程序10在其上操作的底层平台。这一设置和输入以及程序10本身可以被表示为PSID,且该底层平台可以被表示为构成该程序10的所有PSID的合成的CPSID。
实现结合本发明所执行的过程所必需的程序设计是相对直截了当的,且对于相关的程序设计公众应当是显而易见的。因此,该程序设计不附加于此。因此,可采用任何特定的程序设计来实现本发明,而不脱离本发明的精神和范围。
在以上描述中,可以看到,本发明包括一种新且有用的方法和机制,通过该方法和机制,计算机程序10可以按照程序10本身和程序10所操作的底层平台两者来认证。程序10本身的认证包括对程序10在其中运行的设置以及提供给程序10的输入的考虑。程序10的认证包括对程序10在其上操作的底层平台的认证。
应当理解,可以对所描述的实施例作出改变,而不脱离其发明性概念。因此,一般而言,应当理解,本发明不限于所揭示的特定实施例,而是旨在覆盖如由所附权利要求书所定义的本发明的精神和范围内的修改。

Claims (20)

1.一种结合在计算设备上操作的程序的方法,所述方法用于向对所述计算设备本地或远程的资源认证所述程序,所述方法包括:
检索对应于所述程序的储存的程序安全标识符(PSID),所述储存的PSID包括考虑到所述程序本身、所述程序的执行设置、以及提供给所述程序的任何输入和初始化的信息,由此,所述PSID表示用于以可信方式操作所述程序的一组批准的条件;
基于从所述本地源获得的同一信息重构所述PSID;
将所述储存的和重构的PSID进行比较以确定是否存在匹配;
如果确定存在匹配,则得出结论,所述程序是依照所述一组批准的条件以可信的方式操作的;以及
如果确定不存在匹配,则得出结论,所述程序不是依照所述一组批准的条件以可信的方式操作的。
2.如权利要求1所述的方法,其特征在于,要认证的所述程序是由最终位于表示所述计算设备的硬件上的多层其它程序来主宿的。
3.如权利要求1所述的方法,其特征在于,要认证的所述程序是由最终位于表示所述计算设备的硬件上的多层其它程序来主宿的,所述方法是由主宿要认证的所述程序、且位于朝向所述硬件的下一层上的程序来执行的。
4.如权利要求1所述的方法,其特征在于,包括检索考虑到所述程序本身的信息的储存的PSID,该信息包括对应于所述程序的数字证书和对应于所述程序的复写本中的至少一个。
5.如权利要求1所述的方法,其特征在于,包括检索考虑到所述程序的执行设置的信息的储存的PSID,该信息包括直接或间接主宿要认证的所述程序的其它程序、应当在所述计算设备上操作的其它程序、以及不应当在所述计算设备上操作的其它程序的标识中的至少一个。
6.如权利要求1所述的方法,其特征在于,还包括检索考虑到所述程序的输入的信息的PSID,该信息包括对所述程序的一组批准的输入中的至少一个。
7.如权利要求1所述的方法,其特征在于,包括检索包括如由列表和散列之一所述的信息的储存的PSID。
8.如权利要求1所述的方法,其特征在于,包括基于从本地源获得的同一信息以及一组重构指令重构所述PSID,所述一组重构指令包括要执行的一系列步骤以及执行该一系列步骤的可执行代码中的至少一个。
9.一种结合在计算设备上操作的程序的方法,所述方法用于向对所述计算设备本地或远程的资源认证所述程序,要认证的所述程序是由最终位于表示所述计算设备的硬件上的多层主宿程序来主宿的,所述方法包括:
对于要认证的所述程序以及至少某些层的每一层上的主宿程序的每一个,建立对应于所述程序的程序安全标识符(PSID),所建立的PSID包括考虑到所述程序本身、所述程序的执行设置、以及提供给所述程序的任何输入和初始化的信息,由此,所述PSID表示用于以可信的方式操作所述程序的一组批准的条件;
组合所有建立的PSID以产生表示要认证的所述程序的总体安全环境的合成PSID(CPSID);以及
将所产生的CPSID传递给所述资源,其中,所述资源审阅该所传递的CPSID,并至少部分地基于该审阅确定是否信任要被认证的所述程序。
10.如权利要求9所述的方法,其特征在于,包括由从特定程序到所述硬件的下一层上的主宿程序为所述特定程序建立PSID。
11.如权利要求9所述的方法,其特征在于,为特定程序建立PSID包括检索对应于所述程序的储存的PSID、基于从本地源获得的同一信息重构所检索的PSID、以及将所述储存的和重构的PSID进行比较以确定是否存在匹配。
12.如权利要求9所述的方法,其特征在于,包括:
对于要认证的所述程序以及每一层上的主宿程序的每一个,建立对应于所述程序的程序安全标识符(PSID),所储存的PSID包括考虑到所述程序本身、所述程序的执行设置以及提供给所述程序的任何输入和初始化的信息,由此,所述PSID表示用于以可信的方式操作所述程序的一组批准的条件;以及
组合所有建立的PSID以产生表示要认证的所述程序的总体安全环境的CPSID。
13.如权利要求9所述的方法,其特征在于,包括组合所有建立的PSID以产生CPSID,作为所建立的PSID的有序列表、所建立的PSID的散列以及基于所建立的PSID的数学级数的结果中的一个。
14.如权利要求9所述的方法,其特征在于,包括为每一程序建立所述PSID以包括考虑到所述程序本身的信息,该信息包括对应于所述程序的数字证书以及对应于所述程序的复写本中的至少一个。
15.如权利要求9所述的方法,其特征在于,包括为每一程序建立所述PSID,以包括考虑到所述程序的执行设置的信息,该信息包括直接或间接主宿要认证的所述程序的其它程序、应当在所述计算设备上操作的其它程序、以及不应当在所述计算设备上操作的其它程序的标识中的至少一个。
16.如权利要求9所述的方法,其特征在于,包括为每一程序建立所述PSID,以包括考虑到所述程序的输入的信息,该信息包括对所述程序的一组批准的输入中的至少一个。
17.如权利要求9所述的方法,其特征在于,所述硬件包括信任模块,所述信任模块组合所有建立的PSID以产生所述CPSID,并将所产生的CPSID传递到所述资源。
18.如权利要求9所述的方法,其特征在于,组合所有建立的PSID以产生所述CPSID包括:
清除被指定为保持所述CPSID的存储器位置;
以有序的方式接收用于所述CPSID的每一建立的PSID,且对每一接收的PSID,以迭代的方式:
将所接收的PSID应用于检索所述存储器位置的当前内容的函数f;
以预定方式将所接收的PSID与所检索的存储器位置的当前内容相组合;
在所述组合上执行数学运算以产生结果;以及
将所述运算的结果放置在所述存储器位置中,
使得在处理了所有PSID之后,所述存储器位置包含所述CPSID。
19.如权利要求18所述的方法,其特征在于,包括按照串接将所接收的PSID与所检索的存储器位置的当前内容相组合。
20.如权利要求18所述的方法,其特征在于,包括在所述组合上执行散列函数以产生所述结果。
CNA2006100037853A 2005-03-04 2006-02-10 基于环境的程序认证 Pending CN1828621A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/072,982 US7591014B2 (en) 2005-03-04 2005-03-04 Program authentication on environment
US11/072,982 2005-03-04

Publications (1)

Publication Number Publication Date
CN1828621A true CN1828621A (zh) 2006-09-06

Family

ID=36791393

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100037853A Pending CN1828621A (zh) 2005-03-04 2006-02-10 基于环境的程序认证

Country Status (5)

Country Link
US (1) US7591014B2 (zh)
EP (1) EP1698992A2 (zh)
JP (1) JP2006244508A (zh)
KR (1) KR20060096277A (zh)
CN (1) CN1828621A (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
WO2008046101A2 (en) 2006-10-13 2008-04-17 Ariel Silverstone Client authentication and data management system
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8875271B2 (en) * 2006-12-08 2014-10-28 Microsoft Corporation Executing unsigned content and securing access in a closed system
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8291480B2 (en) 2007-01-07 2012-10-16 Apple Inc. Trusting an unverified code image in a computing device
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8166476B2 (en) * 2007-08-24 2012-04-24 Symantec Corporation On-demand access to a virtual representation of a physical computer system
US8230412B2 (en) * 2007-08-31 2012-07-24 Apple Inc. Compatible trust in a computing device
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
DE102010000482A1 (de) 2010-02-19 2011-08-25 WINCOR NIXDORF International GmbH, 33106 Methode und Verfahren für PIN-Eingaben bei konsistentem Software-Stack auf Geldautomaten
US9218462B2 (en) * 2012-04-25 2015-12-22 Hewlett Packard Enterprise Development Lp Authentication using lights-out management credentials
US9294282B1 (en) * 2013-07-01 2016-03-22 Amazon Technologies, Inc. Cryptographically verified repeatable virtualized computing
JP6069160B2 (ja) 2013-10-07 2017-02-01 株式会社日立製作所 制御システム及び認証装置
US10103872B2 (en) * 2014-09-26 2018-10-16 Intel Corporation Securing audio communications
US9426159B2 (en) 2014-09-26 2016-08-23 Intel Corporation Securing sensor data
US9846617B2 (en) 2015-05-07 2017-12-19 Dell Products, Lp System and method for self-healing basic input/output system boot image and secure recovery
US11868474B2 (en) 2019-01-08 2024-01-09 Hewlett Packard Enterprise Development Lp Securing node groups
CN112905469B (zh) * 2021-02-22 2023-08-04 北京百度网讯科技有限公司 用于检测小程序能力特征的方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
GB9905056D0 (en) * 1999-03-05 1999-04-28 Hewlett Packard Co Computing apparatus & methods of operating computer apparatus
US7213266B1 (en) * 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
WO2004004855A1 (en) * 2002-07-05 2004-01-15 Cyberscan Technology, Inc. Secure game download
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7309004B1 (en) * 2002-12-26 2007-12-18 Diebold Self-Service Systems, Division Of Diebold, Incorporated Cash dispensing automated banking machine firmware authentication system and method
US7313679B2 (en) * 2003-10-17 2007-12-25 Intel Corporation Extended trusted computing base
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
EP1617587A1 (en) * 2004-07-12 2006-01-18 International Business Machines Corporation Method, system and computer program product for privacy-protecting integrity attestation of computing platform

Also Published As

Publication number Publication date
KR20060096277A (ko) 2006-09-11
EP1698992A2 (en) 2006-09-06
JP2006244508A (ja) 2006-09-14
US7591014B2 (en) 2009-09-15
US20060200859A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
CN1828621A (zh) 基于环境的程序认证
US20220164214A1 (en) Container platform-oriented trusted software authorization and verification system and method
CN1097772C (zh) 在安全存储区中保护应用程序数据的方法和装置
US8528069B2 (en) Trustworthy device claims for enterprise applications
KR101075380B1 (ko) 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체
JP4769304B2 (ja) オペレーティングシステム非依存型データ管理
EP1443381B1 (en) System and method for secure software activation with volume licenses
JP5500458B2 (ja) プロセッサメインメモリのメモリコンテンツのセキュリティ保護
US6907531B1 (en) Method and system for identifying, fixing, and updating security vulnerabilities
US7636851B2 (en) Providing user on computer operating system with full privileges token and limited privileges token
US11269537B2 (en) Software containers with security policy enforcement at a data storage device level
US20080077806A1 (en) Encrypting and decrypting database records
US20120310983A1 (en) Executable identity based file access
US20140020083A1 (en) Customizable Storage Controller With Integrated F+ Storage Firewall Protection
US20090070853A1 (en) Security Policy Validation For Web Services
US20080282354A1 (en) Access control based on program properties
US8738822B2 (en) System and method for controlling operation of a component on a computer system
CN1808455A (zh) 安全许可证管理
CN105659211A (zh) 虚拟机管理器促进的选择性代码完整性实施
CN1808326A (zh) 使用部分映像散列确认可执行文件完整性的系统和方法
CN102341805A (zh) 使用外围设备的完整性验证
CN1713106A (zh) 为应用程序提供保密的系统和方法
CN1449523A (zh) 内容消费环境的完整性验证和确认的系统和方法
CN103793654A (zh) 服务器主动管理技术协助的安全引导
CN1744061A (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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20060906

C20 Patent right or utility model deemed to be abandoned or is abandoned