CN103329093A - 更新软件 - Google Patents

更新软件 Download PDF

Info

Publication number
CN103329093A
CN103329093A CN2012800059767A CN201280005976A CN103329093A CN 103329093 A CN103329093 A CN 103329093A CN 2012800059767 A CN2012800059767 A CN 2012800059767A CN 201280005976 A CN201280005976 A CN 201280005976A CN 103329093 A CN103329093 A CN 103329093A
Authority
CN
China
Prior art keywords
code
verification system
mensuration
assembly
renewal
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
CN2012800059767A
Other languages
English (en)
Other versions
CN103329093B (zh
Inventor
J.W.沃尔克
D.海内伊
D.A.吉尔伯特
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103329093A publication Critical patent/CN103329093A/zh
Application granted granted Critical
Publication of CN103329093B publication Critical patent/CN103329093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • 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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明涉及用于更新软件的方法和设备。具体地,本发明涉及用于更新管理器中的操作系统的方法、系统和计算机程序,包括:确定操作系统的组件的新版本;安装新的组件版本;测定组件的识别特性,并使其可用于认证系统;向认证系统通知已将组件更新到新的版本,由此,当认证系统发现新组件的识别特性不匹配预先存储的认证值时,其意识到可能已发生了合法的不匹配。组件的新版本的安装包括:识别与组件的新版本相关联的更新方;测定更新方的识别特性;加载并安装组件的新版本;以及使更新方的识别测定和组件的新版本可用于认证系统。

Description

更新软件
技术领域
本发明涉及用于更新软件的方法和设备。具体地,本发明涉及可信引导(boot)和远程认证处理。如在此说明书中描述的,可信计算、可信引导和远程认证一般涉及被称为“可信计算组(Trusted Computing Group)”的标准组开发的技术标准。
背景技术
可信引导是用于在可信计算系统中引导和建立信任链的过程。引导的组件可被加密测定(measure)并被存储在诸如可信平台模块(Trusted PlatformModule(TPM))的安全装置中。每个引导组件测定并在安全装置中存储下一引导组件的特性测定(measurement),在控制被转移到测定的组件之前,取得此测定。一旦系统正在运行,远程系统便可使用远程认证处理(例如,通过直接匿名认证(Direct Anonymous Attestation(DAA)))来提取测定用于检验(inspection)。测定的序列被描述为信任链。
通过新的特征和软件补丁来频繁更新计算机系统。更新可能需要改变形成信任链的一部分的引导组件,并且,在该更新之后,远程认证将显示测定的改变;信任链将被打破。在很多系统和很多更新的情况下,这导致更大困难的管理问题。测定的改变将仅最少在重新测定之后“显示”。重新测定可能仅在重新引导时发生,或者在运行时发生(取决于系统是如何被构造的)。
因此,在现有技术中,需要处理前述问题。
发明内容
在本发明的第一方面,提供了一种用于更新执行环境中的代码的方法,包括:安装新代码;测定新代码的识别特性,并使识别特性可用于认证系统;向认证系统通知已将代码更新到新的版本,由此,当认证系统发现新代码的识别特性不匹配预先存储的认证值时,其意识到可能已发生了合法的不匹配。
在优选实施例中,代码为在引导处理中使用的组件,但其还可指信任链中未被引导的另一个组件。在其它实施例中,代码为固件、管理器、虚拟机、操作系统或应用的全部或部分。新代码可为组件的新版本、或全新的组件。
预先存储的认证值是被认证系统使用的基准,用来针对系统组件的有效识别特性进行测试。预先存储的认证值通过系统管理保存在认证系统中、或通过某个初始化处理获取,由此,组件的初始识别特性是被信任的,且被认证系统用作认证值。
有利地,该方法还包括:确定操作系统组件的新版本的存在,由此,自动执行更新阶段。
本发明向认证系统通知更新,但是,只有认证系统或系统管理员才能够更新认证值。只有在较不安全的实施例中,认证值才可被管理器更新。在优选实施例中,管理器不具有对认证系统的访问权,除非通过通知;认证系统必须在通知之后直接执行认证,由此,其检查组件的新版本的来源。一旦其已核实(verify)了新组件的来源,其可在将来的重新引导之后接受新组件的引导测定,即便其不匹配所存储的认证值也是这样。
管理器通知阶段被添加到已知的软件更新处理,使得信任链通过管理器开始。在优选实施例中,通知阶段包括更新的系统,其利用“test me(测试我)”消息来通知认证系统,使得认证系统意识到已进行了新的测定。在所认证的系统重新引导并遇到不同的测定时,认证通知使认证系统停止恐慌。
优选实施例允许诸如管理器的可信组件参与测定处理,并测定另一个组件,使得认证系统可信任所测定的组件。
有利地,组件(616.N)的新版本(651.N)的安装包括:识别与组件的新版本(651.N)相关联的更新方(updater)(612.N);测定所识别的更新方(612.N)的识别特性;安装组件的新版本(651.N);以及使更新方的识别测定(PCR17)可用于认证系统(620),由此,认证系统(620)可使更新方(612.N)的识别测定(PCR17)匹配预先存储的认证值(624.N),以验证(validate)合法更新。为了清楚且仅用于示例,以将来自图6的附图标记添加到上述段落。
更有利地,认证系统在通知之后直接检查其在管理器中找到的组件的新版本的来源。在优选实施例中,检查组件的来源包括检查安装了更新的组件,但在其它实施例中,可进行其它检查,如更新来自何处、或其被如何安装。此外,如果测定不匹配认证值、且认证系统已检查了对应的组件的来源,则执行以下操作中的一个或多个:用组件的新版本的测定来更新认证值;以及/或者向管理级别通知测定不匹配认证值、以及认证系统是否辨识出组件的来源。
在本发明的第二方面,提供了一种用于更新并认证管理器中的操作系统组件的方法,包括:确定操作系统的组件的新版本;安装新的组件版本;测定组件的识别特性,并使其可用于认证系统;向认证系统通知已将组件更新到新的版本,由此,当认证系统发现新组件的识别特性不匹配预先存储的认证值时,其意识到可能已发生了合法的不匹配。
在本发明的第三方面,提供了一种用于测试程序的完整性的方法,包括:提取程序安装处理所存储的组件测定;通过测试系统存储的基准测定来测试组件测定,并且,如果其不匹配,则测定失败;进一步测试失败的组件测定,并且,如果测定不是源自测试系统已知的另一个组件,则测定再次失败;以及如果组件测定通过一个测试,则指示通过,并且,如果测定未通过任一测试,则指示失败。
如权利要求11所述提供了本发明的第四方面。
如权利要求19所述提供了本发明的第五方面。
如权利要求20所述提供了本发明的第六方面。
从另一个方面看,本发明提供了一种计算机程序产品,用于更新执行环境中的代码,该计算机程序产品包括:计算机可读存储介质,其可由处理电路读取,并存储用于由处理电路执行的指令,用于执行方法以执行本发明的步骤。
从另一个方面看,本发明提供了一种存储在计算机可读介质上并可被加载到数字计算机的内存中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。
本说明书呈现了这样的解决方案,其允许系统向认证方告知对于使用虚拟TPM的虚拟化系统来说,在下一个可信引导上会预期到什么。
附图说明
现在将参照以下附图中示出的优选实施例,仅通过示例来描述本发明,附图中:
图1是根据现有技术的现有技术可信计算系统的示意部署图,并且,其中可实施本发明的优选实施例;
图2是根据现有技术的现有技术可信计算系统的示意处理图,并且,其中可实施本发明的优选实施例;
图3是根据现有技术的用于认证现有技术可信计算系统的示意处理图,并且,其中可实施本发明的优选实施例;
图4是根据现有技术的用于更新现有技术可信计算系统的示意处理图,并且,其中可实施本发明的优选实施例;
图5是示出实施例更新处理和根据现有技术的现有技术更新处理的等效步骤的比较图,并且其中,可实施本发明的优选实施例;
图6是根据本发明的优选实施例的系统的示意部署图;
图7是根据本发明的优选实施例的更新处理的示意处理图;
图8是根据本发明的优选实施例的新组件加载处理的处理图;
图9是根据本发明的优选实施例的认证处理的处理图;以及
图10是物理实施例的系统的示意部署图。
具体实施方式
图1是现有技术可信系统的简化部署图,该可信系统包括:平台10;可信平台模块20(TPM20)、以及认证系统30。平台10包括:引导处理200(下面通过参照图2描述);更新处理12以及引导组件15.1至15N(在此说明书中的此处和其它处,字母N被用来表示数字,但不是任何特定的数字)。引导组件15包括:引导组件15.1至15N。TPM20包括平台配置寄存器22.1至22N。TPM20被示出为部署得与平台10分离,但其也可为平台10的一部分。平台配置寄存器PCR也被称为寄存器。认证系统30包括认证处理300和认证值34.1至34N。认证系统30被示出为部署得与平台分离。
图2是现有技术引导处理200的简化处理图,其包括一系列步骤202至212,用于如下依次执行多个引导组件:
步骤202用于执行第一引导组件。
步骤204用于测定下一引导组件的识别特性,并将测定存储在寄存器中(例如,22.1)。
步骤206用于执行下一组件。
步骤208用于测定后续的引导组件(如果存在)的识别特性,并将测定存储在后续的寄存器中(例如,22.2)。
步骤210表示引导循环,其对于任何后续的引导组件重复步骤206和208。
步骤212是当没有剩余更多引导组件时处理的结束。
在优选实施例中,管理器(hypervisor)执行初始步骤(现有技术中的等效步骤200、202、204),使得测定和执行在管理器中开始。例如,管理器提供超级调用(call)“H-Measure”,其测定并执行诸如下一引导组件的某个代码。在另一个示例中,平台固件可执行初始步骤,并在管理器中开始后续的引导组件。
图3是现有技术认证处理300的简化处理图,其包括下面描述的一系列逻辑步骤302至308。认证处理在可信平台已引导之后执行。
步骤302用于提取在寄存器中存储的测定。
步骤304用于将测定与认证系统30存储的认证值34.1至34N比较。
步骤306用于指示:1)如果值匹配测定,则通过;或者2)如果在值和测定之间存在不匹配,则失败。
步骤308是处理的结束。现有技术认证处理相信认证值是正确的,并且,在现有技术中,由管理员更新认证值。
图4是现有技术更新处理400的简化处理图,其包括一系列步骤402至406。
步骤402用于确定需要用新版本的组件来更新组件。
步骤404用于通过移除旧的组件并加载新的组件来更新组件。
步骤406是处理的结束。在此处理中,没有组件是引导组件这样的标识(identification),因此,不可能理解到该更新将对认证系统持有的认证值具有影响。
图5示出了现有技术可信系统的结果和优选实施例的可信系统的结果的比较。
完整的现有技术更新和认证包括下面以200、300、400、以及再次300的顺序组合的处理。引导处理200加载引导组件,并且,随之测定每个组件;将测定存储在TPM20中。认证处理300针对所存储的认证值检索并测试测定,并且,因为所述值和测定匹配,所以用信号发出(signal)通过。更新处理400对包括一个或多个引导组件的一个或多个组件执行更新,其中,TPM测定改变。因为没有对认证值的更新、以及认证值和TPM测定不匹配,所以认证处理300的进一步执行指示失败。
优选实施例更新和认证处理包括下面以606、622、700、以及再次622的顺序组合的处理。引导处理606加载引导组件;测定每个引导组件,并将测定存储在TPM中。实施例认证处理622针对所存储的认证值检索并测试测定,并且,因为所述值和测定匹配,所以用信号发出通过。实施例更新处理700对一个或多个引导组件执行更新,并且改变TPM中的测定。在优选实施例中,认证系统被通知已执行了更新。因为认证处理622检查更新组件的来源,所以认证处理622指示“通过”。
在另一个实施例中,用在更新期间建立的测定更新认证值。
图6示出了优选实施例的可信计算系统的示意组件图。可信计算系统包括:平台600、认证系统620和更新注册表(registry)650。
更新注册表650是存储资源和索引,用于保持操作系统和应用的各个组件的最新版本,其用于更新操作系统或应用的实例。在该图中,更新注册表包括更新651.1至650N。针对操作系统实例的组件版本号或日期扫描更新注册表中的组件版本号或日期揭示了哪些组件需要更新。
在操作中,平台600是硬件平台,其具有用于执行和管理虚拟操作系统的管理器604。平台的示例是IBM Power System。在操作中,管理器604包括:引导处理606;更新处理700;更新方612.1至612N;以及虚拟机宿主(hosting)环境。本示例的管理器在宿主环境中创建单个虚拟机605用于单个操作系统614,但是,优选实施例预计可在多于一个虚拟机上更新多于一个操作系统。每个虚拟机具有对应的虚拟TPM。在管理器上执行的每个虚拟机被认证系统信任。通过真实的TPM或当前和可信的签署的更新和其它安全措施,来获取所述信任。
虚拟可信平台模块610包括多个寄存器(PCR)PCR1、2、3...17、18...N。每个PCR可存储测定或值。
更新方612.1至612N包括分离组件的示例集合,其各自与相应引导组件(616.1至616N)相关联,并且各自可用各个更新(651.1至651N)来更新操作系统。例如,更新方612.3可使用更新651.3来更新引导组件616.3,等等,对于引导组件616N,更新方612N和更新651N也是这样。每个更新方包括到对应的更新和引导组件的链接。每个更新方意欲被管理器测定且随后执行。测定被存储在第一协定寄存器(例如,PCR17)中。在执行期间,更新方测定正在安装的新的组件,并更新第二协定寄存器(例如,PCR18)。注意,更新方可能恰好正在进行复制、或忙于创建组件。例如,更新方“bosboot”忙于从很多配置文件和系统数据生成新的操作系统组件映像。
在优选实施例中,更新方被适配于直接向认证系统通知已更新了操作系统。这可能意味着,更新方直接与认证系统进行接触、或在管理器上得到某个公共处理用来进行接触。虚拟OS系统614(例如,IBM AIX*)在被管理器加载时,包括引导组件616.1至616N,其作为引导处理的一部分被加载,以向功能虚拟操作系统提供应用、数据和接口。不是引导处理的一部分的其它操作系统组件未被示出。
引导处理606包括与现有技术引导处理200相同的处理。
认证系统620包括:认证处理622和认证值624.1至624N。认证系统620和管理器604具有协定,根据其,寄存器(PCR1...N)被用来记录更新方的测定、以及改变的组件的签名(也被称为识别特性)。在优选实施例中,这些协定的寄存器被称为第一协定寄存器和第二协定寄存器。例如,在示例中,第一和第二协定寄存器是PCR17和PCR18。
认证系统需要认证TPM中的寄存器。将使用认证协议来传输所有寄存器值,其中,使用数字签名和其它安全机制来保持信任。认证系统可检测协定寄存器(例如,第一和第二协定寄存器PCR17和PCR18)是否被设置、且能够准备用于重新引导和当前可信的寄存器的后续改变(例如PCR1、2和3)。
认证系统将读取第一协定寄存器(例如,PCR17),并确定更新方是可信的更新方。这通过以下步骤来确定:查看用于已知和可信的更新方的测定的主列表;以及查看已通过用于对寄存器的每个改变的元数据而被更新的可信引导事件日志。当认证系统发现第一协定寄存器包含可信值时,其假定第二协定寄存器也包含要在下一次比较在更新中检测的与更新方相关联的引导寄存器时使用的、值得信任的值。
参照图7,管理器更新处理700包括处理逻辑步骤702至710。
步骤702用于通过向更新注册表650扫描更新近的组件,确定引导组件具有可用更新。例如,虚拟OS系统614引导组件616.3包括AIX引导映像的版本1(AIX Boot Image1),但更新注册表650中的更新651.3已通过AIX引导映像的版本2(AIX Boot Image2)被加载。这是优选的,但是,在其它实施例中,可使用不同的机制来确定何时更新。
步骤704用于通过激活所关联的更新方(例如,更新方612.3),来加载新的引导组件,并且,其中,所关联的更新方被适配于更新引导组件;所关联的更新方访问新的引导组件,并在旧的引导组件上、或取代旧的引导组件而安装新的引导组件。上面的描述是引导加载步骤的关键操作,并且此外,下面将关于图8来描述引导加载步骤的更详细的操作。
步骤706用于在新的引导组件已被加载到虚拟操作系统中之后测定新的引导组件,使得新的测定唯一地识别虚拟操作系统中的位置中的新的引导组件。新的测定被添加到可信平台模块中的特定寄存器中。在优选实施例中,认证系统620寻找并理解特定寄存器持有新的测定而不是旧的测定。
步骤708用于向认证系统620通知已更新了引导组件。
步骤710用信号发出更新处理700的结束。
尽管上面作为本发明的简单实施例而描述了加载新的引导组件的步骤704,但本发明的优选实施例还使用进一步处理来增大置信水平。如下面通过参照图8描述的,加载新的引导组件处理704是本发明的优选实施例,并包括处理步骤802至812。
步骤802用于识别与引导组件关联的更新组件。在下面的示例中,称为bosboot的程序被调用(invoke)以用AIX Boot Image2覆写AIX Boot Image1。
步骤804用于将所识别的更新方加载到操作系统中。
步骤806用于测定更新方组件,并将测定添加到第一协定寄存器。在下面的示例中,称为Hypercall的程序测定bosboot,并扩展TPM内的第一协定寄存器(例如PCR17)。
步骤808用于调用更新方以安装更新组件。在下面的示例中,bosboot写入新的引导映像。
步骤810用于测定新的引导组件,并将测定添加到第二协定寄存器。
步骤812是加载新的引导组件处理704的结束。
参照图9,描述了根据优选实施例的认证处理622的逻辑处理步骤902至910。认证处理在可信平台已引导之后执行,但独立于可信平台。
步骤902用于提取在寄存器中存储的测定。
步骤904用于将测定与由认证系统620存储的认证值624.1至624N比较。
步骤906用于在所述值匹配测定的情况下指示通过。
步骤908用于在来自步骤906的任何不匹配的引导测定匹配已知更新方的情况下指示通过。
步骤910用于在步骤908和910之后存在不匹配的引导测定的情况下指示失败。
步骤912用于指示处理的结束。
示例
优选实施例的操作的示例包括IBM Power*系统,其容纳IBM PowerHypervisor(PHYP),其具有单个虚拟AIX系统。AIX系统使用虚拟TPM装置,并且并入可信引导功能。由分立的认证系统监视并认证该系统。当已认证时,下面的PCR测定被返回,其中,PCR1、PCR2、PCR3是TPM中的寄存器:
PCR1=Open-Firmware
PCR2=AIX Boot-Image
PCR3=AIX Trusted Execution Database
认证系统将这些测定视为可信的,并且,在它们经由认证被返回时,将不标记出安全问题。为了允许AIX Boot-Image(AIX引导映像)被修改、且认证系统被告知此更新,还存在下面的特征。
PHYP被修改为使得其具有新的方法(被称为hypercall,且具体地为H_Measure)。H_Measure取得描述要测定并执行的某事物的参数,例如,地址和长度。所得到的测定被置于TPM的特定寄存器中,例如PCR17。特定的引导寄存器不重要,但可为绝对寻址寄存器或间接寻址寄存器。重要的是,认证系统理解查找哪里。PHYP在通过的地址上向AIX返回控制,关键的区别在于,首先使用hyper-call(超级调用)来测定组件,随后,接着执行同一组件。随后执行所测定的。
为了工作,管理器也必须被信任。在现有技术管理器中,IBM PowerSystem获取信任,IBM Power System具有非常严格的更新PHYP代码的方式,并且,只有IBM Power System签署的更新才能够被安装。在本实施例中,IBMPower System具有真实的TPM装置,并且,将PHYP测定到真实TPM中。被称为深度认证(deep-attestation)的技术可被用来经由虚拟AIX系统检索真实的TPM测定。
在说明书中称为更新方的AIX程序的定义的集合被允许改变可信引导的组件。在此示例中,bosboot被定义为能够合法更新AIX引导映像的唯一更新方程序。该技术需要bosboot可被可信,因此,在构造bosboot时,取得并公布bosboot的数字签名。为了使H_Measure能够成功测定bosboot,bosboot应为单个静态的代码片段,其可被加载到连续的存储片段以便发生测定。重要的是,bosboot是可被测定的。如果有其它安全措施来确保不能容易地颠覆非静态程序,则bosboot不必为静态的。
在此示例中,AIX Boot-Image1将被改变为AIX Boot-Image2,其告知认证系统以便避免不必要的安全违反。操作如下:
1、bosboot(更新方)被调用(步骤702),以覆写引导映像。
2、AIX内核将bosboot加载(步骤704)到存储器中,并调用H_Measure。
3、PHYP测定(步骤706)bosboot,并扩展TPM内的PCR17。
4、管理器将执行传递到bosboot,并且,bosboot写入新的引导映像,并通过AIX Boot-Image2的测定扩展PCR18。再次,如同PCR17,使用哪个寄存器并不重要,只要认证系统知道PCR18具有特殊含义即可。
5、认证系统被告知(步骤708)其应当重新认证,不需要交换更多信息。
现在,当认证系统认证该系统时,返回下面的值(步骤902)。
PCR1=Open Firmware
PCR2=AIX Boot-Image1
PCR3=AIX Trusted-Execution Database1
PCR17=bosboot
PCR18=AIX Boot-Image2
认证系统将看到PCR17自从上一认证起已改变,这触发了认证系统中的动作(步骤908)。首先,检查PCR17的值,其看到调用了合法的IBM发布的bosboot,因此,其知道PCR18将为新的AIX引导映像。现在,当所认证的系统完成新的可信引导时,认证系统可看到,经由PCR1报告的新的值来自可信的bosboot,且不需要动作。
实施例
上面描述了使用管理器来管理虚拟机操作环境的优选实施例,其包括其它实施例,其中单个特征可以某种方式背离优选实施例。
以主要方式背离优选实施例的实施例考虑到无虚拟化的实施例,非虚拟实施例如图10所示。此实施例包括:平台1000;认证系统1020;以及更新注册表1050。平台1000以硅方式设计并制造。与优选实施例类似,TPM1010不是关键部分,并且,可使用持有测定和如同认证的事物的某个其它安全装置/存储器。
更新注册表1050是存储资源和索引,用于保持操作系统和应用的各个组件的最新版本,其用于更新操作系统和应用的实例。在该图中,更新注册表包括更新1051.1至1050N。针对操作系统实例的组件版本号或日期扫描更新注册表中的组件版本号或日期揭示了哪些组件需要更新。
认证系统1020包括认证处理1022和认证值1024.1至1024N。除了操作系统是在物理机上运行的真实操作系统的差异之外,认证处理1022和认证值1024.1至1024N类似于图6所示的。
在操作中,平台1000是硬件平台,其包括:引导处理1006;更新处理1700;更新方1012.1至1012N;TPM1010;以及操作系统1014。如同优选实施例那样,TPM1010不是关键部分,并且,可使用持有测定和如同认证的事物的某个其它安全装置/存储器。
在非虚拟实施例中,TPM1010包括特殊寄存器(SR1…SRN),其可被用来保持测定。SR行为如同PCR那样,因为对其的写入真正是与旧值组合且随后使用强哈希算法来进行哈希操作的新值的写入。处理器具有允许这些特殊寄存器(SR)被更新的指令。处理器被修改为具有测定指令。此指令取得用于SR的标识符、存储地址、以及长度。其测定在该地址的数据(并且,直到该长度的所有字节),随后,将测定存储在指定的SR中。处理器将执行转移到该地址。
在非虚拟实施例中,平台1000将需要更新某个代码,并且,存在与所述某个代码相关联的更新代码用于执行更新。所关联的代码被加载到存储器中,随后,使用测定指令来测定并执行所关联的代码。测定被置于第一协定寄存器中。现在,所执行的关联的代码可安装所述某个代码,这有可能正好是将数据写入盘。在写入之前、或在每次写入之前(如果存在某个写入n字节的限制),取得测定并将其写入第二协定寄存器(SR,且这与第二协定寄存器PCR18的更新有关)。
在非虚拟实施例中,平台1000必须向认证系统1020告知已发生了更新。随着优选实施例的认证系统1020认证,这使用加密技术传输SR的值,以维持信任。认证处理1022类似于优选实施例。
对于本领域的技术人员来说将清楚的是,本发明的所述实施例的方法的全部或部分可合适地且有用地在逻辑设备、或多个逻辑设备中实现,所述逻辑设备包括逻辑元件,其被布置为执行方法的步骤,且这样的逻辑元件可包括硬件组件、固件组件、或其组合。
对于本领域的技术人员来说将同样清楚的是,根据本发明的所述实施例的逻辑布置的全部或部分可合适地实现在逻辑设备中,所述逻辑设备包括逻辑元件,用来执行方法的步骤,并且,这样的逻辑元件可包括诸如例如可编程逻辑阵列或专用集成电路中的逻辑门的组件。这样的逻辑布置还可实现在使能元件中,用于使用例如虚拟硬件描述语言在这样的阵列或电路中暂时或永久地建立逻辑结构,可使用固定或可传输载体介质存储并传输所述虚拟硬件描述语言。
将理解,上述方法和布置还可合适地被全部或部分地执行在运行在一个或多个处理器(图中未示出)上的软件中,并且,可以以在任意合适的诸如磁盘或光盘等的数据载体(图中也未示出)上承载的一个或多个计算机程序元件的形式提供软件。用于数据传输的信道同样可包括所有描述的存储介质、以及信号承载介质,如有线或无线信号承载介质。
本发明还可合适地被实现为与计算机系统一起使用的计算机程序产品。这样的实施可包括一系列计算机可读指令,其被固定在诸如计算机可读介质(如磁盘、CD-ROM、ROM、或硬盘)的有形介质上,或可使用调制解调器或其它接口装置在有形介质(包括但不限于光或模拟通信线路)上、或者有形地使用无线技术(包括但不限于微波、红外或其它传输技术)而被传输到计算机系统。一系列计算机可读指令实现前述的功能的全部或部分。
本领域的技术人员将理解,可以多种编程语言来编写这样的计算机可读指令,以用于很多计算机架构或操作系统。此外,可使用任何当前或将来的存储技术(包括但不限于半导体、磁或光)来存储这样的指令,或者,使用当前或将来的任何通信技术(包括但不限于光、红外或微波)来传输这样的指令。考虑到这样的计算机程序产品可被发布(distribute)为可移除介质,其具有伴随的打印或电子文档,例如,通过计算机系统预加载到例如系统ROM或固定盘上、或者从例如因特网或万维网的网络上的服务器或电子公告牌发布的压缩打包后的软件。
在替换方案中,本发明的优选实施例可以部署服务的计算机实施的方法的形式被实现,其包括部署计算机程序代码的步骤,在被部署到计算机基础架构并在其上执行时,计算机程序代码可操作用于使计算机系统执行方法的全部步骤。
在另一替换方案中,本发明的所述实施例可以具有功能数据的数据载体的形式被实现,所述功能数据包括功能计算机数据结构,用来在被加载到计算机系统中并由此在其上操作时,使所述计算机系统执行方法的全部步骤。
本领域的技术人员将清楚,可对前述示例性实施例作出很多改进和修改,而不会背离本发明的范围。
优选实施例的综述
总之,本发明涉及用于更新在可信计算管理器环境中执行的操作系统的方法和设备。具体地,本发明涉及用于更新在管理器环境中执行的操作系统的方法、系统和计算机程序,包括:确定操作系统的组件的新版本;安装新的组件版本;测定组件的识别特性,并使其可用于认证系统;向认证系统通知已将组件更新到新的版本,由此,当认证系统发现新组件的识别特性不匹配预先存储的认证值时,其意识到可能已发生了合法的不匹配。组件的新版本的安装包括:识别与组件的新版本相关联的更新方;测定所识别的更新方的识别特性;加载并安装组件的新版本;以及使更新方的识别测定和组件的新版本可用于认证系统。
注意
*IBM、AIX、Express、ibm.com、Power、Power7和Tivoli是国际商业机器(IBM)公司在美国、其它国家或两者的商标或注册商标。IBM公司拥有的美国商标的完整列表可在www.ibm.com/legal/copytrade.shtml中找到。

Claims (22)

1.一种用于更新执行环境中的代码的方法,包括:
安装新代码;
测定所述新代码的识别特性,并使其可用于认证系统;
向所述认证系统通知已将代码更新到新的版本,由此,当所述认证系统发现所述新代码的识别特性不匹配预先存储的认证值时,意识到可能已发生了合法的不匹配。
2.根据权利要求1所述的方法,其中,所述新代码的安装包括:
识别与所述新代码相关联的更新方;
测定所识别的更新方的识别特性;
安装所述新代码;以及
使所述更新方的识别测定可用于所述认证系统,由此,所述认证系统能够将所述更新方的识别测定与预先存储的认证值匹配,以验证合法更新。
3.根据权利要求1或2所述的方法,其中,所述识别特性被存储在仅可由存储方法和认证系统访问的安全存储器中。
4.根据权利要求1至3中的任一个所述的方法,其中,所述执行环境是管理器,并且,所述代码是用于在所述管理器上的虚拟机中执行的虚拟操作系统。
5.根据权利要求1至4中的任一个所述的方法,其中,寄存器位于可信平台模块中。
6.根据权利要求1至5中的任一个所述的方法,还包括:在执行权利要求1的步骤之前,确定新代码可用以及需要更新。
7.根据权利要求1至6中的任一个所述的方法,其中,所述认证系统在通知之后直接检查新代码的来源。
8.根据权利要求7所述的方法,其中,如果测定不匹配认证值,并且,所述认证系统已检查了对应的代码的来源,那么:用组件的新版本的测定来更新认证值;以及/或者向管理级别通知测定不匹配认证值、以及所述认证系统是否辨识出组件的来源。
9.一种用于更新并认证执行环境中的代码的方法,包括:
安装新代码;
测定所述新代码的识别特性,并使其可用于认证系统;
向所述认证系统通知已将代码更新到新的版本,由此,当所述认证系统发现所述新代码的识别特性不匹配预先存储的认证值时,意识到可能已发生了合法的不匹配。
10.一种用于测试程序的完整性的方法,包括:
提取程序安装处理所存储的代码测定;
通过测试系统所存储的基准测定来测试所述代码测定,并且,如果所述测定不匹配,则所述测定失败;
进一步测试失败的代码测定,并且,如果所述测定不是源自所述测试系统已知的组件,则所述测定再次失败;以及
如果所述代码测定通过测试,则指示通过,并且,如果一个代码测定未通过任一测试,则指示失败。
11.一种用于更新执行环境中的代码的系统,包括:
安装部件,用于安装新代码;
测定部件,用于测定所述新代码的识别特性,并使其可用于认证系统;
通知部件,用于向所述认证系统通知已将代码更新到新的版本,由此,当所述认证系统发现所述新代码的识别特性不匹配预先存储的认证值时,意识到可能已发生了合法的不匹配。
12.根据权利要求11所述的系统,其中,所述新代码的安装包括:
识别部件,用于识别与所述新代码相关联的更新方;
测定部件,用于测定所识别的更新方的识别特性;
安装部件,用于安装所述新代码;以及
部件,用于使所述更新方的识别测定可用于所述认证系统,由此,所述认证系统能够将所述更新方的识别测定与预先存储的认证值匹配,以验证合法更新。
13.根据权利要求11或12所述的系统,其中,所述识别特性被存储在仅可由存储方法和认证系统访问的安全存储器中。
14.根据权利要求11至13中的任一个所述的系统,其中,所述执行环境是管理器,并且,所述代码是用于在所述管理器上的虚拟机中执行的虚拟操作系统。
15.根据权利要求11至14中的任一个所述的系统,其中,寄存器位于可信平台模块中。
16.根据权利要求11至15中的任一个所述的系统,还包括:在执行权利要求11之前,确定新代码可用以及需要更新。
17.根据权利要求11至16中的任一个所述的系统,其中,所述认证系统在通知之后直接检查所述新代码的来源。
18.根据权利要求17所述的系统,其中,如果测定不匹配认证值,并且,所述认证系统已检查了对应的代码的来源,那么执行下列操作中的一个或多个:用组件的新版本的测定来更新认证值;以及/或者向管理级别通知测定不匹配认证值、以及认证系统是否辨识出组件的来源。
19.一种用于更新和认证执行环境中的代码的系统,包括:
安装部件,用于安装新代码;
测定部件,用于测定所述新代码的识别特性,并使其可用于认证系统;
通知部件,用于向所述认证系统通知已将代码更新到新的版本,由此,当所述认证系统发现所述新代码的识别特性不匹配预先存储的认证值时,意识到可能已发生了合法的不匹配。
20.一种用于测试程序的完整性的系统,包括:
提取程序安装处理所存储的代码测定;
测试部件,用于通过测试系统所存储的基准测定来测试所述代码测定,并且,如果所述测定不匹配,则所述测定失败;
另一个测试部件,用于测试失败的代码测定,并且,如果所述测定不是源自所述测试系统已知的组件,则所述测定再次失败;以及
指示部件,用于如果所述代码测定通过测试,则指示通过,并且,如果一个代码测定未通过任一测试,则指示失败。
21.一种计算机程序产品,用于在客户端计算机上创建第一计算机资源,该计算机程序产品包括:
计算机可读存储介质,其可由处理电路读取,并存储用于由处理电路执行的指令,用于执行根据权利要求1至10中的任一个所述的方法。
22.一种存储在计算机可读介质上并可被加载到数字计算机的内存中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行根据权利要求1至10中的任一个所述的方法。
CN201280005976.7A 2011-01-19 2012-01-10 用于更新执行环境中的代码的方法和系统 Active CN103329093B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11151339 2011-01-19
EP11151339.6 2011-01-19
PCT/IB2012/050111 WO2012098478A1 (en) 2011-01-19 2012-01-10 Updating software

Publications (2)

Publication Number Publication Date
CN103329093A true CN103329093A (zh) 2013-09-25
CN103329093B CN103329093B (zh) 2017-09-12

Family

ID=46515210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280005976.7A Active CN103329093B (zh) 2011-01-19 2012-01-10 用于更新执行环境中的代码的方法和系统

Country Status (7)

Country Link
US (4) US9317276B2 (zh)
JP (1) JP5932837B2 (zh)
KR (1) KR20130114672A (zh)
CN (1) CN103329093B (zh)
DE (1) DE112012000512T5 (zh)
GB (1) GB2501433B (zh)
WO (1) WO2012098478A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105830023A (zh) * 2013-12-20 2016-08-03 甲骨文国际公司 用于受约束的计算环境的可执行代码

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2501433B (en) * 2011-01-19 2014-06-04 Ibm Ensuring the integrity of software
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9141802B2 (en) * 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
FR3010553B1 (fr) 2013-09-10 2015-09-04 Sagemcom Broadband Sas Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur
US10389709B2 (en) * 2014-02-24 2019-08-20 Amazon Technologies, Inc. Securing client-specified credentials at cryptographically attested resources
US10049202B1 (en) 2014-03-25 2018-08-14 Amazon Technologies, Inc. Strong authentication using authentication objects
US10050787B1 (en) * 2014-03-25 2018-08-14 Amazon Technologies, Inc. Authentication objects with attestation
KR101647487B1 (ko) * 2014-05-22 2016-08-10 소프트캠프(주) 패치파일 분석시스템과 분석방법
US9264419B1 (en) 2014-06-26 2016-02-16 Amazon Technologies, Inc. Two factor authentication with authentication objects
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9886297B2 (en) * 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US10068092B2 (en) * 2015-01-21 2018-09-04 Microsoft Technology Licensing, Llc Upgrading a secure boot policy on a virtual machine
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
US9667414B1 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10211985B1 (en) 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
CN106155887A (zh) * 2015-03-31 2016-11-23 展讯通信(天津)有限公司 一种自动匹配版本的应用程序测试方法及系统及移动终端
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
US9779248B1 (en) * 2016-03-30 2017-10-03 Microsoft Technology Licensing, Llc Protection of secured boot secrets for operating system reboot
US10803176B2 (en) * 2016-10-21 2020-10-13 Hewlett-Packard Development Company, L.P. Bios security
WO2018092289A1 (ja) * 2016-11-21 2018-05-24 大日本印刷株式会社 情報処理装置
US10783235B1 (en) * 2017-05-04 2020-09-22 Amazon Technologies, Inc. Secure remote access of computing resources
US10339034B2 (en) 2017-06-16 2019-07-02 Google Llc Dynamically generated device test pool for staged rollouts of software applications
CN108536486A (zh) * 2018-04-08 2018-09-14 苏州犀牛网络科技有限公司 Rn小程序的加载方法及装置
EP3598333B1 (en) * 2018-07-16 2023-01-18 Nokia Technologies Oy Electronic device update management
WO2020053469A1 (en) * 2018-09-12 2020-03-19 Nokia Solutions And Networks Oy Method and apparatus for automating software updating of devices
US10984108B2 (en) * 2018-10-05 2021-04-20 International Business Machines Corporation Trusted computing attestation of system validation state
CN109522038A (zh) * 2018-11-22 2019-03-26 凌云天博光电科技股份有限公司 一种cs架构的客户端升级方法及装置
US10915632B2 (en) 2018-11-27 2021-02-09 International Business Machines Corporation Handling of remote attestation and sealing during concurrent update
US11080039B2 (en) 2019-11-25 2021-08-03 Micron Technology, Inc. Resilient software updates in secure storage devices
US10970064B1 (en) 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors
US11204777B1 (en) * 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
US20240036902A1 (en) * 2022-07-26 2024-02-01 Microsoft Technology Licensing, Llc Accumulations of measurements for attestations

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037231A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Proving BIOS trust in a TCPA compliant system
CN1469252A (zh) * 2002-06-21 2004-01-21 �Ҵ���˾ 在数据处理系统中保持固件版本的方法和系统
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
CN1801091A (zh) * 2005-01-07 2006-07-12 微软公司 用可信处理模块安全地引导计算机的系统和方法
US20080027871A1 (en) * 2006-07-31 2008-01-31 Ziosoft, Inc. Update method and update system
EP1980970A2 (en) * 2007-04-13 2008-10-15 Hewlett-Packard Development Company, L.P. Dynamic trust management
CN101542439A (zh) * 2007-07-05 2009-09-23 松下电器产业株式会社 数据处理装置、数据处理方法、数据处理程序、记录介质及集成电路
CN101657792A (zh) * 2007-04-13 2010-02-24 惠普开发有限公司 可信部件更新系统和方法
WO2010127679A1 (en) * 2009-05-04 2010-11-11 Nokia Siemens Networks Oy Mechanism for updating software

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325532A (en) 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US7711775B2 (en) * 2001-10-24 2010-05-04 Groove Networks, Inc. Method and apparatus for managing software component downloads and updates
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7275263B2 (en) 2003-08-11 2007-09-25 Intel Corporation Method and system and authenticating a user of a computer system that has a trusted platform module (TPM)
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
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US8006100B2 (en) * 2004-06-10 2011-08-23 Oracle America, Inc. Enhancing trusted platform module performance
US7631360B2 (en) * 2004-06-12 2009-12-08 Microsoft Corporation Hardware protection
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7590841B2 (en) * 2005-07-19 2009-09-15 Microsoft Corporation Automatic update of computer-readable components to support a trusted environment
WO2008004525A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de traitement d'informations, dispositif d'enregistrement d'informations, système de traitement d'informations, procédé de mise à jour de programme, programme, et circuit intégré
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US9086917B1 (en) * 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8060941B2 (en) * 2006-12-15 2011-11-15 International Business Machines Corporation Method and system to authenticate an application in a computing platform operating in trusted computing group (TCG) domain
US20080235754A1 (en) * 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US9026771B2 (en) 2007-04-27 2015-05-05 Hewlett-Packard Development Company, L.P. Secure computer system update
GB2450869B (en) * 2007-07-09 2012-04-25 Hewlett Packard Development Co Establishing a trust relationship between computing entities
US8555049B2 (en) 2007-10-05 2013-10-08 Panasonic Corporation Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
WO2009097350A1 (en) * 2008-01-29 2009-08-06 Palm, Inc. Secure application signing
WO2009096181A2 (en) * 2008-01-30 2009-08-06 Panasonic Corporation Secure boot with optional components method
US8321931B2 (en) * 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8140835B2 (en) * 2008-05-09 2012-03-20 International Business Machines Corporation Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
US9361089B2 (en) * 2008-07-22 2016-06-07 International Business Machines Corporation Secure patch updates of a virtual machine image in a virtualization data processing system
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
CN102246179A (zh) * 2008-10-10 2011-11-16 松下电器产业株式会社 在安全处理系统的应用空间中使用瞬时pcr来实现信任
US8176336B1 (en) * 2008-12-19 2012-05-08 Emc Corporation Software trusted computing base
JP2010257180A (ja) 2009-04-24 2010-11-11 Nec Access Technica Ltd バージョン管理システム、装置、方法及びプログラム
US8200790B1 (en) * 2009-07-13 2012-06-12 Sprint Communications Company L.P. Dynamically identifying client applications on mobile devices
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8296579B2 (en) * 2009-11-06 2012-10-23 Hewlett-Packard Development Company, L.P. System and method for updating a basic input/output system (BIOS)
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8667263B2 (en) * 2010-02-12 2014-03-04 The Johns Hopkins University System and method for measuring staleness of attestation during booting between a first and second device by generating a first and second time and calculating a difference between the first and second time to measure the staleness
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
KR20170010095A (ko) * 2010-03-05 2017-01-25 인터디지탈 패튼 홀딩스, 인크 장치에 대한 보안을 제공하는 방법 및 장치
US20110238402A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9081989B2 (en) * 2010-03-25 2015-07-14 Virtustream Canada Holdings, Inc. System and method for secure cloud computing
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
WO2012038211A1 (en) * 2010-09-22 2012-03-29 International Business Machines Corporation Attesting use of an interactive component during a boot process
US8869264B2 (en) * 2010-10-01 2014-10-21 International Business Machines Corporation Attesting a component of a system during a boot process
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US20120131334A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Method for Attesting a Plurality of Data Processing Systems
US8677115B2 (en) * 2010-12-09 2014-03-18 Red Hat, Inc. Methods for verifying system integrity
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US9202062B2 (en) * 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
GB2501433B (en) 2011-01-19 2014-06-04 Ibm Ensuring the integrity of software
US20120254624A1 (en) * 2011-03-29 2012-10-04 Microsoft Corporation Three party attestation of untrusted software on a robot
US8875240B2 (en) * 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
AU2012307044B2 (en) * 2011-09-07 2017-02-02 Imagine Communications Corp. System and methods for developing component-based computing applications
US8806579B1 (en) * 2011-10-12 2014-08-12 The Boeing Company Secure partitioning of devices connected to aircraft network data processing systems
US8892858B2 (en) 2011-12-29 2014-11-18 Intel Corporation Methods and apparatus for trusted boot optimization
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US8776180B2 (en) * 2012-05-01 2014-07-08 Taasera, Inc. Systems and methods for using reputation scores in network services and transactions to calculate security risks to computer systems and platforms
GB2513826A (en) * 2012-06-29 2014-11-12 Ibm Trusted boot of a virtual machine
US9244743B1 (en) * 2012-08-01 2016-01-26 Amazon Technologies, Inc. Remotely interacting with a virtualized machine instance
US9176752B1 (en) * 2012-12-04 2015-11-03 Amazon Technologies, Inc. Hardware-based mechanisms for updating computer systems
US9386045B2 (en) * 2012-12-19 2016-07-05 Visa International Service Association Device communication based on device trustworthiness
US10613914B2 (en) * 2013-04-01 2020-04-07 Oracle International Corporation Orchestration service for a distributed computing system
US20150089297A1 (en) * 2013-09-25 2015-03-26 International Business Machines Corporation Using Crowd Experiences for Software Problem Determination and Resolution
US9401954B2 (en) * 2013-11-06 2016-07-26 International Business Machines Corporation Scaling a trusted computing model in a globally distributed cloud environment
JP6364496B2 (ja) * 2014-02-07 2018-07-25 オラクル・インターナショナル・コーポレイション モバイルクラウドサービスアーキテクチャ
US9563545B2 (en) * 2014-05-28 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Autonomous propagation of system updates
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
US9996374B2 (en) * 2015-06-16 2018-06-12 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
US10181034B2 (en) * 2016-02-12 2019-01-15 Sophos Limited Virtual machine security
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
US10552138B2 (en) * 2016-06-12 2020-02-04 Intel Corporation Technologies for secure software update using bundles and merkle signatures
US10185550B2 (en) * 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037231A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Proving BIOS trust in a TCPA compliant system
CN1469252A (zh) * 2002-06-21 2004-01-21 �Ҵ���˾ 在数据处理系统中保持固件版本的方法和系统
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
CN1801091A (zh) * 2005-01-07 2006-07-12 微软公司 用可信处理模块安全地引导计算机的系统和方法
US20080027871A1 (en) * 2006-07-31 2008-01-31 Ziosoft, Inc. Update method and update system
EP1980970A2 (en) * 2007-04-13 2008-10-15 Hewlett-Packard Development Company, L.P. Dynamic trust management
CN101657792A (zh) * 2007-04-13 2010-02-24 惠普开发有限公司 可信部件更新系统和方法
CN101542439A (zh) * 2007-07-05 2009-09-23 松下电器产业株式会社 数据处理装置、数据处理方法、数据处理程序、记录介质及集成电路
WO2010127679A1 (en) * 2009-05-04 2010-11-11 Nokia Siemens Networks Oy Mechanism for updating software

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105830023A (zh) * 2013-12-20 2016-08-03 甲骨文国际公司 用于受约束的计算环境的可执行代码
CN105830023B (zh) * 2013-12-20 2019-12-13 甲骨文国际公司 用于在执行上下文中运行动态代码程序的方法和装置

Also Published As

Publication number Publication date
JP2014503101A (ja) 2014-02-06
US20140026124A1 (en) 2014-01-23
DE112012000512T5 (de) 2013-10-24
US10108413B2 (en) 2018-10-23
US10620936B2 (en) 2020-04-14
KR20130114672A (ko) 2013-10-17
JP5932837B2 (ja) 2016-06-08
GB201313795D0 (en) 2013-09-18
GB2501433A (en) 2013-10-23
CN103329093B (zh) 2017-09-12
WO2012098478A1 (en) 2012-07-26
US10007510B2 (en) 2018-06-26
US9317276B2 (en) 2016-04-19
US20160162285A1 (en) 2016-06-09
US20180246709A1 (en) 2018-08-30
US20160162396A1 (en) 2016-06-09
GB2501433B (en) 2014-06-04

Similar Documents

Publication Publication Date Title
CN103329093A (zh) 更新软件
US9436827B2 (en) Attesting a component of a system during a boot process
US9910743B2 (en) Method, system and device for validating repair files and repairing corrupt software
EP3477524B1 (en) Methods and systems for holistically attesting the trust of heterogeneous compute resources
EP3552098B1 (en) Operating system update management for enrolled devices
US9569620B2 (en) Method for processing UEFI protocols and system therefor
US7788730B2 (en) Secure bytecode instrumentation facility
US8397245B2 (en) Managing loading and unloading of shared kernel extensions in isolated virtual space
CN103124973B (zh) 证明引导过程期间交互式组件的使用
US10592661B2 (en) Package processing
US20220253297A1 (en) Automated deployment of changes to applications on a cloud computing platform
JP2019008376A (ja) ファイル管理装置及びファイル管理方法
CN113946854B (zh) 一种文件访问控制方法、装置及计算机可读存储介质
US11907375B2 (en) System and method for signing and interlocking a boot information file to a host computing system
CN111158771B (zh) 处理方法、装置及计算机设备
US20190339960A1 (en) System and Method to Deploy or Update Operating System Service Capabilities
US20230297682A1 (en) Computing device quarantine action system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant