CN101951316B - 操作系统的受保护的网络引导 - Google Patents

操作系统的受保护的网络引导 Download PDF

Info

Publication number
CN101951316B
CN101951316B CN200910258478.3A CN200910258478A CN101951316B CN 101951316 B CN101951316 B CN 101951316B CN 200910258478 A CN200910258478 A CN 200910258478A CN 101951316 B CN101951316 B CN 101951316B
Authority
CN
China
Prior art keywords
operating system
computing device
client computing
encryption key
encrypted
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
CN200910258478.3A
Other languages
English (en)
Other versions
CN101951316A (zh
Inventor
S·格罗布曼
C·克洛茨
N·史密斯
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN101951316A publication Critical patent/CN101951316A/zh
Application granted granted Critical
Publication of CN101951316B publication Critical patent/CN101951316B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

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

Abstract

本文公开了用于保护由服务器计算设备提供并由客户端计算设备引导的操作系统的方法和装置。一种这样的方法包括:请求所述客户端计算设备的可信平台模块对已封装的加密密钥进行解封;以及响应于开始所述客户端计算设备的引导处理,经由网络接收已加密的操作系统。所说明的方法还包括:使用响应于请求所述可信平台模块对所述已封装的加密密钥进行解封而获得的已解封的加密密钥,来对经由所述网络接收的已加密的操作系统进行解密;以及执行已解密的操作系统。

Description

操作系统的受保护的网络引导
背景技术
随着显著的行业推动,操作系统流式传送(streaming)正成为新兴的趋势。在操作系统流式传送中,服务器尽管通过网络将操作系统发送给客户端,但是操作系统是被进行流式传送,以这种方式,客户端可以通过确定首先需要哪些数据来非常快速地开始执行操作系统。流式传送的操作系统的实现的一个益处在于,在本地未存储任何数据,所以当机器断电时,没有数据被持久保存。
以标准平台中的一些早引导部分(例如,引导加载器(boot loader))为目标的安全攻击通常不会影响流式传送的操作系统,这是因为没有驱动器,并且当操作系统镜像的这些部分被存储在服务器上时可以对其进行很好的保护。然而,早引导攻击点可能转移到平台的其它部分并且新的攻击方法可能开始发动攻击,这是因为操作系统能够运行在多个平台上,而这意味着获得对操作系统的访问的恶意远程客户端可能造成威胁。
发明内容
根据本发明的一个方面,提供了一种由客户端计算设备引导服务器计算设备提供的操作系统的方法,包括:请求所述客户端计算设备的可信平台模块对机密信息进行解封,所述机密信息已经被封装到所述客户端计算设备的指定平台配置中,基于所述机密信息与所述服务器计算设备进行协商,以获得要用作加密密钥的会话密钥,请求来自所述服务器计算设备的操作系统,从所述服务器计算设备接收已加密的操作系统,使用所述加密密钥对所述已加密的操作系统进行解密,以及执行已解密的操作系统。
根据本发明的另一个方面,提供了一种由客户端计算设备引导服务器计算设备提供的操作系统的装置,包括:用于请求所述客户端计算设备的可信平台模块对机密信息进行解封的单元,所述机密信息已经被封装到所述客户端计算设备的指定平台配置中,用于基于所述机密信息与所述服务器计算设备进行协商,以获得要用作加密密钥的会话密钥的单元用于请求来自所述服务器计算设备的操作系统的单元,用于从所述服务器计算设备接收已加密的操作系统的单元,用于使用所述加密密钥来对所述已加密的操作系统进行解密的单元,以及用于执行已解密的操作系统的单元。
根据本发明的又一个方面,提供了一种用于保护通过网络来引导的操作系统的系统,包括客户端计算设备,所述客户端计算设备包括:固件设备,其包括一个或多个实体,每一个实体包括一个或多个指令,可信平台模块,用于存储测量值并且验证要被执行的实体的完整性,以及处理器,用于执行所述固件设备的一个或多个实体,其中所述一个或多个实体包括引导加载器,所述引导加载器响应于被执行而使得所述客户端计算设备执行以下操作:请求所述客户端计算设备的可信平台模块对机密信息进行解封,所述机密信息已经被封装到所述客户端计算设备的指定平台配置中;以及基于所述机密信息与服务器计算设备进行协商,以获得要用作加密密钥的会话密钥,并且所述一个或多个实体响应于被执行而使得所述客户端计算设备执行以下操作:将对操作系统的请求发送到所述网络;从所述网络接收已加密的操作系统;使用所述加密密钥来对所述已加密的操作系统进行解密;以及执行已解密的操作系统。
附图说明
在附图中通过示例的方式而非限定的方式来说明本文所描述的发明。为了说明的简单和清楚,图中所说明的部件并非必然按照比例绘制。例如,为了清楚,可以相对于其它部件放大一些部件的尺寸。此外,在适当的情况下,图中重复使用一些参考标记来指示对应的或同类的部件。
图1示出了其中客户端计算设备可以引导服务器计算设备提供的操作系统的网络环境的实施例。
图2示出了图1的客户端计算设备的实施例。
图3示出了用于验证实体的完整性并将信任扩展到所验证的实体的方法的实施例。
图4示出了用于通过网络来引导操作系统的方法的实施例的时间线。
具体实施方式
说明书中提及的“一个实施例”、“实施例”、“示例性实施例”等表示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例并非必然包括该特定的特征、结构或特性。此外,此类用语并非必然指代同一实施例。此外,当结合一实施例来描述特定的特征、结构或特性时,认为无论是否明确描述,本领域技术人员在其知识范围内都可以结合其他实施例来实现这种特征、结构或特性。
图1示出了支持通过网络来受保护地引导操作系统的网络环境100的实施例。如图所示,网络环境100可以包括网络110,其中将一个或多个客户端计算设备或客户端120、供应服务器(provisioning server)130以及具有一个或多个操作系统142和应用程序143的操作系统(OS)服务器140耦合到所述网络110。网络110可以包括一个或多个有线和/或无线网络,其可以包括:路由器、网关、中继器、桥、无线接入点、服务器,和/或协作来将计算设备操作地彼此耦合的其它网络设备。
客户端120可以包括一种或多种形状因子的计算设备,例如:服务器计算设备、台式计算设备、膝上型计算设备、个人数字助理(PDA)和/或其它计算设备。供应服务器130可以将密钥和策略分发给客户端120和OS服务器140。特别地,供应服务器130可以为每一个客户端120提供唯一的数据加密密钥122,并且针对每一个客户端120将相应的数据加密密钥144提供给OS服务器140。
响应于系统引导事件(例如,上电事件、系统重置事件等),客户端120可以向OS服务器140进行认证,并且向OS服务器140请求操作系统以进行引导。响应于该请求,OS服务器140可以使用与发出请求的客户端120相关联的数据加密密钥144来对操作系统142进行加密,并且将已加密的操作系统(EOS)150流式传送到发出请求的客户端120。继而,客户端120可以使用由供应服务器130提供的数据解密密钥122对已加密的操作系统150进行解密,并且可以在对接收到的已加密的操作系统150成功进行解密之后执行操作系统142。
现在参照图2,进一步详细示出客户端120的实施例。如图所示,客户端120可以包括:处理器210、芯片组220、系统存储器230和固件设备240。客户端120还可以包括:管理引擎(ME)250、可信平台模块(TPM)260、I/O设备270、大容量存储设备280和网络接口控制器290。
处理器210可以包括:PentiumTM系列、ItaniumTM系列、XScaleTM系列或CentrinoTM系列的一个或多个IntelTM微处理器。当然,还可以使用其它系列和/或其它制造商的其它处理器。此外,处理器210可以包括一个或多个包含对受保护虚拟化模式的支持的处理核心,所述受保护虚拟化模式例如:Intel公司开发的LaGrande技术(LT)和/或可信执行技术(TrustedeXecution Technology,TXT)所规定的受保护虚拟化模式(VMX)。
芯片组220可以包括用于控制客户端120的一个或多个组件的一个或多个控制器。例如,芯片组220可以包括用于提供处理器210与系统存储器230之间的接口的存储器控制器。在一些实施例中,存储器控制器可以被集成到处理器210中而不是在芯片组220中。芯片组220还可以包括一个或多个大容量存储设备接口控制器,例如并行At附件(ATA)接口控制器、串行ATA接口控制器、和/或小型计算机系统接口(SCSI)控制器IDE,以用于连接大容量存储设备280。芯片组220还可以包括:图形控制器、通用串行总线(USB)控制器、快速外围组件互连(PCI)控制器、音频控制器、键盘控制器等,以控制相应的I/O设备270和客户端120的其它组件,例如管理引擎250和TPM260。芯片组220还可以提供其它平台支持硬件,例如:一个或多个直接存储器存取(DMA)控制器、中断控制器和实时时钟。
系统存储器230可以存储处理器210、管理引擎250和/或TPM260要处理和执行的数据和指令。系统存储器230可以包括各种类型的易失性存储器和/或非易失性存储器。例如,系统存储器230可以包括易失性存储器,诸如:同步动态随机存取存储器(SDRAM)设备、动态随机存取存储器(DRAM)设备、RAMBUS动态随机存取存储器(RDRAM)设备,和/或其它易失性存储器设备。此外,系统存储器230可以包括非易失性存储器设备,例如:闪存设备、只读存储器(ROM)设备、电可擦可编程ROM(EEPROM)设备、电池后备RAM设备,和/或其它非易失性存储器设备。
固件设备240可以包括非易失性存储器设备,例如:闪存设备、只读存储器(ROM)设备、电可擦可编程ROM(EEPROM)设备、电池后备RAM设备,和/或其它非易失性存储器设备。固件设备240还可以存储预引导认证(PBA)模块241和基本输入/输出系统(BIOS)固件242。在一个实施例中,PBA模块241的执行会呈现一用户界面,其中,在从OS服务器140将操作系统142进行流式传送之前,可以经由所述界面输入口令和/或其它认证数据。
BIOS固件242可以包括:可信模块的核心根(CRTM)243和流式传送引导加载器(SBLDR)244。BIOS固件242还可以根据以下项来实现:遗留PC BIOS接口、可扩展固件接口(EFI)(如2006年1月发布的、可从统一EFI论坛获得的EFI规范2.0版所定义的)、或者其他平台接口(例如,IEEE标准IEEE1275-1994描述的开放固件接口)。如下文所更详细解释的,引导加载器244可以从OS服务器140请求通过网络110进行流式传送的操作系统142、对其进行解密并开始执行。此外,虽然描绘为BIOS固件242的一部分,但是CRTM243和/或引导加载器244可以被实现为与BIOS固件242分离,并且可以被存储在客户端120的其它非易失性存储设备中,例如:芯片组220的非易失性存储设备、系统存储器230、管理引擎250、TPM260、I/O设备270、大容量存储设备280和/或网络接口控制器290。
TPM260可以包括受保护存储设备261、平台配置寄存器(PCR)265、随机数生成器(RNG)266、密码散列引擎267、加密引擎268和接口269。图2将TPM260描绘为在管理引擎250的外部。然而,在一些实施例中,管理引擎250和TPM260可以是同一集成电路和/或组件的一部分。
TPM260的受保护存储设备261可以包括随机存取存储器和/或只读存储器。只读存储器可以在制造时被填入有存储根密钥(SRK)262和签注密钥(endorsement key,EK)263,并且这种只读存储器可以被封闭,或者以防篡改的方式受到保护。在一个实施例中,存储根密钥262包括非对称密钥对,例如Rivest Shamir,Adleman(RSA)公钥和RSA私钥,其可以用于对存储在TPM260外部的其它密钥进行加密。随机存取存储器还可以存储身份证明密钥(attestation identity key,AIK)264以及其它加载的密钥和机密信息(secret)。
此外,在TPM260允许使用存储根密钥262和/或TPM260的其它密钥之前,TPM260可以要求接收针对该密钥的正确的认证数据。在一个实施例中,用户可以经由PBA模块241来向TPM260提供针对存储根密钥262和/或TPM260的其它密钥的认证数据,从而允许在从OS服务器140接收操作系统142之前使用这些密钥。
PCR265可以在客户端120的初始化和验证期间存储各种散列值。在一个实施例中,TPM260包括十六(16)个PCR265,用于存储基于客户端120所执行的实体(例如,应用程序)的密码散列的平台配置测量值。在一个实施例中,TPM260不允许对PCR265直接进行写操作。取而代之的是,TPM260支持目标PCR265的扩展操作,其中将新的测量值与目标PCR265的当前值进行串接,然后经由散列引擎267被散列化。然后,TPM260将产生的散列值存储在目标PCR265中。
RNG266可以通过为加密引擎268提供熵(entropy)的源来帮助加密引擎268生成密钥。RNG266还可以提供能够帮助防止重放攻击的临时值(nonce value)。
在一个实施例中,密码散列引擎267可以基于安全散列算法(SHA)散列算法来生成接收到的消息的密码散列值。然而,在其它实施例中,密码散列引擎267可以使用其它或另外的密码散列算法来生成散列值。
在一个实施例中,加密引擎268可以生成对称加密密钥和/或非对称加密密钥对。加密引擎268还可以使用对称加密密钥或非对称加密密钥对的公开加密密钥来对数据进行加密,并且可以使用对称加密密钥或非对称加密密钥对的私有加密密钥来对数据进行解密。在一个实施例中,加密密钥引擎268根据非对称RSA密码算法来生成非对称密钥对,并对数据进行加密/解密。在其它实施例中,加密引擎268可以使用其它非对称密码算法和/或对称密码算法来生成密钥并且对数据进行加密/解密。
大容量存储设备280可以包括:软盘驱动器、硬盘驱动器、光盘驱动器和数字多功能盘(DVD)驱动器,用于存储数据和/或编码指令。在一个实施例中,客户端120并不保持远程存储的操作系统142或应用程序143的持久性本地副本。因此,客户端120可以被实现为没有所描绘的大容量存储设备280。然而,尽管没有在本地保持操作系统142和/或应用程序143的持久性本地副本,但是客户端120仍可以受益于具有大容量存储设备280。例如,客户端120可以将大容量存储设备280作为虚拟存储器来使用,由此有效地增加系统存储器230的存储容量。客户端120还可以将大容量存储设备280作为网络高速缓存来使用,从而在本地保持操作系统142、应用程序143或其部分的被缓存的非持久性副本,以提供对所缓存的指令的更快速的访问。在这种实施例中,客户端120可以实现虚拟存储器和网络高速缓存,从而它们的内容在系统重新启动和/或系统断电期间是不可用的。
管理引擎250可以使用TPM接口269来激活TPM260的各种服务。例如,管理引擎250可以请求TPM260生成/存储安全密钥、包覆(wrap)/展开(unwrap)密钥、对数据进行封装(seal)/解封(unseal)、对数据进行加密/解密、和/或测量/验证客户端120的组件的完整性。管理引擎250可以独立于处理器210而执行,因此,允许当处理器210保持停机或执行其它指令时,管理引擎250在TPM260的帮助下执行各种密码处理、测量处理和验证处理。在一个实施例中,管理引擎250可以请求TPM260测量和验证可执行组件或实体的完整性,并且在TPM260不能验证该实体的完整性的情况下可以停止或者以其他方式阻止该实体的执行。特别地,TPM260的散列引擎267可以计算软件程序的散列值以获得实体的测量值,并且TPM260可以验证所计算的散列值对应于该实体的期望的散列值。在一个实施例中,可以通过供应服务器130或一些其它方式来供应期望值并且将其存储在TPM260的受保护存储设备262中。
网络控制器290可以提供到网络110的接口,和到连接到网络110的计算设备与网络设备(例如,供应服务器130和OS服务器140)的接口。网络控制器290还可以包括管理代理(MA)292,用于执行密码处理和/或执行引导加载器244。此外,管理代理292可以包括接口,所述接口允许系统软件(例如,BIOS软件、预操作系统软件、运行时管理模式软件等)代表该系统软件来执行密码处理。管理代理292可以独立于处理器210的操作而工作。例如,管理代理292可以包括:微处理器、微控制器或其它类型的处理器电路、存储器和接口逻辑。
如上所述,固件设备240可以包括可信模块的核心根(CRTM)243。CRTM243可以包括能够用作完整性测量的信任起源的代码块。在一个实施例中,CRTM243可靠地测量其它实体的完整性值,并且在平台的生存期期间保持不变。CRTM243在固件设备240的其它部分之前执行,从而在将控制转交给BIOS固件242或其部分之前,测量PBA模块241、BIOS固件242或其部分。下文将参照图4来更详细地解释将信任链从CRTM243扩展到正在运行的操作系统142的过程。然而,为了更好地理解图4的说明,将结合图3来描述测量完整性和扩展信任的过程。
如在图3中所示,完整性测量方法300的实施例可以在框310处从以下操作开始:实体A(例如,BIOS固件242的一部分)测量实体B(例如,BIOS固件242的另一个部分)以获得实体B的测量值或指纹(fingerprint)。特别地,实体A可以通过对实体B执行密码散列(例如,SHA-1散列)来生成实体B的测量值。然后,在框320处,实体A可以将实体B的测量值存储在位于TPM260外部的存储测量日志(SML)232中。例如,实体A可以将存储测量日志232存储在系统存储器230或大容量存储设备280中。在框330处,实体A可以经由扩展操作将实体B的测量值插入到TPM260的PCR265中。在框340处,实体A可以确定实体B是否是可信的。在一个实施例中,如果实体B的测量值未对应于实体B的期望测量值,则实体A可以确定不能验证实体B是可信的。在一个实施例中,实体A可以参考存储在TPM260外部的清单(manifest)234来获得实体B的期望值,或者可以简单地将该期望值硬编码在其中。如果实体A确定实体B是可信的,那么在框350处实体A可以将控制转交给实体B。如果实体A不能验证实体B是可信的,那么在框360处实体A可以采取特定的保护动作,例如:使客户端120停机、重置客户端120、将客户端120关机,和/或向客户端120的用户提示客户端120是否应当继续。
然后,实体B可以重复该过程以验证实体C的完整性,并且实体C可以执行该过程以验证实体D的完整性等。在任意时刻,如果一个实体确定控制要被转交到的后续实体的测量值未对应于期望的、可信的或之前已验证的测量值,那么可以断开该信任链。
如上所述,网络环境100允许客户端120以受保护的方式通过网络100来引导操作系统142。现在参照图4,以时间线的形式示出了通过网络100引导操作系统142的方法400的实施例。在密钥供应时间T-1期间,可以将用于对OS服务器140的操作系统142进行加密和解密的加密密钥DEK1、DEK2供应给客户端120和OS服务器140。在一个实施例中,客户端120的TPM260可以生成包括私钥122和公钥144的非对称加密密钥对。TPM260还可以将所生成的密钥对的私钥122封装到客户端120的已验证的测量启动环境(measured launch environment,MLE)中。
已验证的测量启动环境规定了如一个或多个PCR265的内容所定义的测量平台配置,其已经被验证为是可信的。作为将数据加密密钥122封装到已验证的测量启动环境中的结果,在接收到对已封装的数据加密密钥122进行解封的请求时,只有客户端120的平台配置对应于已验证的测量启动环境,TPM260才可以对已封装的数据加密密钥122进行解封。PCR265的内容可以包括PBA模块241、BIOS固件242以及客户端120的其它硬件和/或软件组件的测量值。因此,通过指定TPM260的PCR265,该测量启动环境可以识别可信的PBA模块241、BIOS固件242以及客户端120的其它硬件和/或软件组件。如果该测量启动环境、CRTM243和/或BIOS固件242验证了预引导环境的完整性,那么数据加密密钥122不需要被封装到可以存在于该预引导环境中的每个代码模块内。选择性地将数据加密密钥122封装到客户端120的部分可以使得更容易地从异常情况中恢复,并且可以降低拥有信息技术部门(其每当对数据加密密钥122进行解封失败时,服务于帮助台的呼叫)的总成本。
在密钥供应(T-1)期间,还可以将对应的公钥144提供到OS服务器140。OS服务器140可以存储所接收的数据加密密钥144,以使得当将操作系统142流式传送到客户端120时,可以获取并使用正确的数据加密密钥144。
在一个实施例中,在管理引擎250的帮助下,供应服务器130可以用于将密钥122、144供应给客户端120和OS服务器140。然而,也可以使用其它供应方法。例如,技术人员可以物理地拜访每个客户端120,并且运行BIOS固件242的建立例程,以使得创建密钥122、144并且将密钥144存储在可移动存储设备上。之后,该技术人员可以物理地拜访OS服务器140,并且将密钥144从可移动存储设备传送到OS服务器140。这种供应方法可以允许在客户端120和OS服务器140与网络110断开时仍能供应密钥122、144。
响应于引导事件(例如,系统重置、系统上电等),在时间T0处,客户端120可以开始引导处理并且验证BIOS固件242的完整性。特别地,如上面针对图3的完整性测量方法300所解释的,在管理引擎250和TPM260的帮助下,客户端120可以执行CRTM243,并创建从CRTM243到BIOS固件242的信任链。从CRTM243进行的信任扩展使得对BIOS固件242和已经在CRTM243与BIOS固件242之间被验证并被执行的任何例程进行测量。特别地,该验证过程使得进行以下操作:测量BIOS固件242和任何中间实体;验证测量值是所期望的测量值;将测量值存储在安全测量日志232中;以及利用获得的测量值扩展TPM260的一个或多个PCR265。
假定客户端120能够验证BIOS固件242,那么在时间T1处,BIOS固件242可以验证并执行引导加载器244,由此将信任从BIOS固件242扩展到引导加载器244。再次地,验证过程使得进行以下操作:测量引导加载器244;验证测量值是所期望的测量值;将测量值存储在安全测量日志232中;以及基于该测量值来扩展一个或多个PCR265。在时间T1处,引导加载器244还可以将客户端120置于受保护虚拟化模式(VMX)。在一个实施例中,引导加载器244可以调用处理器210支持的可信执行技术的GETSECSENTER指令,来将客户端置于受保护虚拟化模式(VMX)。
在进入受保护虚拟化模式之后,在时间T2处,引导加载器244可以请求TPM260对数据加密密钥122进行解封。如上面所提到的,在密钥供应过程期间,数据加密密钥122被封装到已验证的测量启动环境中。因此,如果PCR265所存储的测量值未对应于数据加密密钥122被封装到其中的测量启动环境,那么TPM260将不对数据加密密钥122进行解封。在这种情况下,引导加载器244可以采取特定的保护动作,例如:重置客户端120、使客户端120下电、或者以其它方式停止引导处理。另一方面,如果PCR265所存储的测量值指示客户端120具有对应于数据加密密钥122被封装到其中的测量启动环境的平台配置,那么TPM260可以对数据加密密钥122进行解封,并且将已解封的密钥122提供给引导加载器244。
在时间T3处,已验证的引导加载器244可以开始与OS服务器140进行联系,以便获得要执行的操作系统142。为此,引导加载器244可以向OS服务器140认证其自身。响应于成功的认证,OS服务器140可以获取与客户端120相关联的数据加密密钥144,并且可以开始使用与客户端120相关联的数据加密密钥144来将已加密的操作系统数据流式传送到客户端120。在一个实施例中,客户端120可以使用类似于Intel公司于1999年9月20日发布的预引导执行环境(PXE)规范2.1版的网络协议来定位、认证并接收来自OS服务器140的已加密的操作系统142;然而,用于通过网络来引导操作系统的其它网络协议也可以是适合的。
在时间T4处,已验证的引导加载器244可以使用已解封的密钥122对所接收的操作系统142进行解密,并且可以激活操作系统142的执行。即使具有未验证的引导加载器244的恶意客户端120能够向OS服务器140认证其自身并且获取操作系统142,该客户端120将仍然无法执行所接收的操作系统142。这种恶意客户端120或者没有正确的密钥122,或者无法对解密所接收的操作系统142所需的正确的密钥122进行解封。以这种方式,网络环境100提供了额外的保护,其旨在防止这种恶意客户端120获得对OS服务器140的已解密的操作系统142的访问权并执行该已解密的操作系统142。
通过网络来引导操作系统的上述方法400仅是示例性的,并且还可以设想到在本公开和所附权利要求的精神内的其它实施例。例如,受保护的网络引导可以使用对称密钥而不是上面详述的非对称密钥122、144。在这种实施例中,客户端120在密钥供应期间可以生成对称密钥以及非对称密钥对。客户端120可以使用非对称密钥对来将对称密钥封装到客户端120的特定配置中。因此,在这种实施例中,OS服务器140可以使用对称密钥来对操作系统142进行加密,并且在正确的平台配置下成功对密钥解封之后,客户端120使用同一对称密钥来对操作系统142进行解密。
在又一实施例中,取代供应密钥122、144来对操作系统142进行解密/加密的是,可以供应机密信息(例如,数据、加密密钥、签名证书等)并且将其封装到客户端120,以使得仅在客户端120处于指定配置下时,客户端120才可以对该机密信息进行解封。所封装的机密信息可以被客户端120用来在时间T3的认证处理期间从OS服务器140获得对称或非对称会话密钥。特别地,OS服务器140可以至少部分地基于客户端120具有该机密信息来认证客户端120。在这种实施例中,在会话协商期间使用的已封装的机密信息在接收操作系统142之前可以从被存储器230中移除,以进一步保护已封装的机密信息。在这种实施例中,OS服务器140可以基于协商的会话密钥对操作系统142进行加密,并且客户端120可以使用该会话密钥对所接收的操作系统142进行解密。
虽然在附图和上述说明书中详细地示出并描述了本公开,但是这些图示和描述显然应当被认为是示例性的而非限制性的,应当理解,仅示出和描述了说明性的实施例,并且期望保护落入本公开的精神内的所有变化和变型。

Claims (18)

1.一种由客户端计算设备引导服务器计算设备提供的操作系统的方法,包括:
请求所述客户端计算设备的可信平台模块对已经被封装到所述客户端计算设备的指定平台配置中的机密信息进行解封,
基于解封后的机密信息与所述服务器计算设备进行协商,以获得要用作加密密钥的会话密钥,
请求来自所述服务器计算设备的操作系统,
从所述服务器计算设备接收已加密的操作系统,
使用所述加密密钥对所述已加密的操作系统进行解密,以及
执行已解密的操作系统。
2.根据权利要求1所述的方法,还包括:
请求所述客户端计算设备的所述可信平台模块对所述加密密钥进行解封,以及
响应于所述可信平台模块确定所述客户端计算设备不具有所述加密密钥被封装到其中的平台配置,中止所述客户端计算设备的引导序列。
3.根据权利要求1所述的方法,还包括:
在接收所述已加密的操作系统之前,从所述客户端计算设备的存储器中移除所述机密信息。
4.根据权利要求1所述的方法,还包括:
如果所述可信平台模块未对所述机密信息进行解封,那么中止引导序列。
5.根据权利要求1所述的方法,还包括:
获得针对所述加密密钥的对称加密密钥,所述加密密钥用于对所述已加密的操作系统进行解密。
6.根据权利要求1所述的方法,还包括:
获得针对所述加密密钥的非对称加密密钥,所述加密密钥用于对所述已加密的操作系统进行解密。
7.根据权利要求1所述的方法,还包括:
响应于至少基于所述机密信息而认证所述客户端计算设备,所述服务器计算设备向所述客户端计算设备提供所述会话密钥,并且用对应的会话密钥来对所述操作系统进行加密。
8.根据权利要求1所述的方法,还包括:
所述服务器计算设备存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;以及通过网络将所述已加密的操作系统流式传送到所述客户端计算设备。
9.根据权利要求1所述的方法,还包括:
所述服务器计算设备存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;通过网络将所述已加密的操作系统流式传送到所述客户端计算设备;以及在流式传送所述已加密的操作系统之前,对所述客户端计算设备进行认证。
10.一种由客户端计算设备引导服务器计算设备提供的操作系统的装置,包括:
用于请求所述客户端计算设备的可信平台模块对已经被封装到所述客户端计算设备的指定平台配置中的机密信息进行解封的单元,
用于基于解封后的机密信息与所述服务器计算设备进行协商,以获得要用作加密密钥的会话密钥的单元,
用于请求来自所述服务器计算设备的操作系统的单元,
用于从所述服务器计算设备接收已加密的操作系统的单元,
用于使用所述加密密钥来对所述已加密的操作系统进行解密的单元,以及
用于执行已解密的操作系统的单元。
11.根据权利要求10所述的装置,还包括:
用于请求所述客户端计算设备的所述可信平台模块对所述加密密钥进行解封的单元,以及
用于响应于所述可信平台模块确定所述客户端计算设备不具有所述加密密钥被封装到其中的平台配置,中止所述客户端计算设备的引导序列的单元。
12.根据权利要求10所述的装置,还包括:
用于在接收所述已加密的操作系统之前,从所述客户端计算设备的存储器中移除所述机密信息的单元。
13.根据权利要求10所述的装置,还包括:
用于如果所述可信平台模块未对所述机密信息进行解封,那么中止引导序列的单元。
14.根据权利要求10所述的装置,还包括:
用于获得针对所述加密密钥的对称加密密钥的单元,所述加密密钥用于对所述已加密的操作系统进行解密。
15.根据权利要求10所述的装置,还包括:
用于获得针对所述加密密钥的非对称加密密钥的单元,所述加密密钥用于对所述已加密的操作系统进行解密。
16.根据权利要求10所述的装置,还包括:
用于响应于至少基于所述机密信息而认证所述客户端计算设备,所述服务器计算设备向所述客户端计算设备提供所述会话密钥,并且用对应的会话密钥来对所述操作系统进行加密的单元。
17.根据权利要求10所述的装置,还包括:
用于所述服务器计算设备存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;以及通过网络将所述已加密的操作系统流式传送到所述客户端计算设备的单元。
18.根据权利要求10所述的装置,还包括:
用于所述服务器计算设备存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;通过网络将所述已加密的操作系统流式传送到所述客户端计算设备;以及在流式传送所述已加密的操作系统之前,对所述客户端计算设备进行认证的单元。
CN200910258478.3A 2008-09-30 2009-09-30 操作系统的受保护的网络引导 Expired - Fee Related CN101951316B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/241,259 US20100082960A1 (en) 2008-09-30 2008-09-30 Protected network boot of operating system
US12/241,259 2008-09-30

Publications (2)

Publication Number Publication Date
CN101951316A CN101951316A (zh) 2011-01-19
CN101951316B true CN101951316B (zh) 2014-10-01

Family

ID=41503736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910258478.3A Expired - Fee Related CN101951316B (zh) 2008-09-30 2009-09-30 操作系统的受保护的网络引导

Country Status (3)

Country Link
US (1) US20100082960A1 (zh)
EP (1) EP2169908A1 (zh)
CN (1) CN101951316B (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852777B1 (fr) * 2003-03-21 2005-06-10 Gemplus Card Int Procede de protection d'un terminal de telecommunication de type telephone mobile
JP2009276909A (ja) * 2008-05-13 2009-11-26 Buffalo Inc Os起動方法及びプロトコル変換器
US8213618B2 (en) * 2008-12-30 2012-07-03 Intel Corporation Protecting content on client platforms
GB201005479D0 (en) 2010-03-31 2010-05-19 Becrypt Ltd System and method for unattended computer system access
JP5932837B2 (ja) 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
WO2012148422A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Embedded controller to verify crtm
US9183415B2 (en) * 2011-12-01 2015-11-10 Microsoft Technology Licensing, Llc Regulating access using information regarding a host machine of a portable storage drive
US8843650B2 (en) * 2012-01-09 2014-09-23 Fujitsu Limited Trusted network booting system and method
FR2989197B1 (fr) * 2012-04-05 2014-05-02 Toucan System Procede de securisation d'acces a un dispositif informatique
US9191382B1 (en) * 2012-06-14 2015-11-17 Google Inc. User authentication using swappable user authentication services
US9367688B2 (en) * 2012-06-22 2016-06-14 Intel Corporation Providing geographic protection to a system
US20140122857A1 (en) * 2012-10-25 2014-05-01 Lenovo (Singapore) Pte, Ltd. Apparatus, system and method for motherboard personalization
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9990255B2 (en) 2013-04-23 2018-06-05 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
WO2014175861A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
WO2014175867A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
CA2919106C (en) * 2013-07-23 2018-07-17 Ericsson Ab Media client device authentication using hardware root of trust
US9542568B2 (en) * 2013-09-25 2017-01-10 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften E.V. Systems and methods for enforcing third party oversight of data anonymization
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9521125B2 (en) 2014-03-13 2016-12-13 Intel Corporation Pseudonymous remote attestation utilizing a chain-of-trust
US9348997B2 (en) 2014-03-13 2016-05-24 Intel Corporation Symmetric keying and chain of trust
US9509502B2 (en) 2014-03-13 2016-11-29 Intel Corporation Symmetric keying and chain of trust
US20150294119A1 (en) 2014-04-10 2015-10-15 International Business Machines Corporation Booting a multi-node computer system from a primary node dynamically selected based on security setting criteria
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9785801B2 (en) * 2014-06-27 2017-10-10 Intel Corporation Management of authenticated variables
JP2016025616A (ja) * 2014-07-24 2016-02-08 レノボ・シンガポール・プライベート・リミテッド ディスク・ドライブが記憶するデータを保護する方法および携帯式コンピュータ
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9519787B2 (en) * 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
WO2016081404A1 (en) * 2014-11-17 2016-05-26 Intel Corporation Symmetric keying and chain of trust
US10425229B2 (en) * 2016-02-12 2019-09-24 Microsoft Technology Licensing, Llc Secure provisioning of operating systems
US11194823B2 (en) 2016-05-10 2021-12-07 Aircloak Gmbh Systems and methods for anonymized statistical database queries using noise elements
US10102378B2 (en) 2016-09-29 2018-10-16 Hewlett Packard Enterprise Development Lp Boot images for units under test
US10262140B2 (en) 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US11269992B2 (en) 2018-03-22 2022-03-08 Trulyprotect Oy Systems and methods for hypervisor-based protection of code
TWI684887B (zh) * 2018-06-26 2020-02-11 和碩聯合科技股份有限公司 自動驗證方法與系統
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) * 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11252547B2 (en) * 2018-11-14 2022-02-15 Samsung Electronics Co., Ltd. Seal system and method for provisioning inter-services communication in seal system of wireless communication network
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
CN110955542B (zh) * 2019-12-11 2023-03-24 深圳盈佳信联科技有限公司 一种数据集成服务平台
US11704411B2 (en) * 2020-12-10 2023-07-18 Ncr Corporation Operating system encryption system and method
US20220100906A1 (en) * 2021-12-08 2022-03-31 Intel Corporation Software library integrity verification mechanism

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
US20040010543A1 (en) * 2002-07-15 2004-01-15 Steven Grobman Cached resource validation without source server contact during validation
US7210169B2 (en) * 2002-08-20 2007-04-24 Intel Corporation Originator authentication using platform attestation
US20040260927A1 (en) * 2003-06-20 2004-12-23 Grobman Steven L. Remote data storage validation
US20050071668A1 (en) * 2003-09-30 2005-03-31 Yoon Jeonghee M. Method, apparatus and system for monitoring and verifying software during runtime
US7539986B2 (en) * 2004-06-30 2009-05-26 Intel Corporation Method for guest operating system integrity validation
US7818585B2 (en) * 2004-12-22 2010-10-19 Sap Aktiengesellschaft Secure license management
US8028172B2 (en) * 2005-01-14 2011-09-27 Microsoft Corporation Systems and methods for updating a secure boot process on a computer with a hardware security module
US20070050767A1 (en) * 2005-08-31 2007-03-01 Grobman Steven L Method, apparatus and system for a virtual diskless client architecture
US7930728B2 (en) * 2006-01-06 2011-04-19 Intel Corporation Mechanism to support rights management in a pre-operating system environment
US20070239748A1 (en) * 2006-03-29 2007-10-11 Smith Ned M Management of reference data for platform verification
US20080126779A1 (en) * 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US8543799B2 (en) * 2008-05-02 2013-09-24 Microsoft Corporation Client authentication during network boot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data

Also Published As

Publication number Publication date
US20100082960A1 (en) 2010-04-01
EP2169908A1 (en) 2010-03-31
CN101951316A (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101951316B (zh) 操作系统的受保护的网络引导
EP3458999B1 (en) Self-contained cryptographic boot policy validation
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
US9768951B2 (en) Symmetric keying and chain of trust
EP3205046B1 (en) Secure shared key sharing systems and methods
US9509502B2 (en) Symmetric keying and chain of trust
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
JP4912921B2 (ja) セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US7318235B2 (en) Attestation using both fixed token and portable token
US9521125B2 (en) Pseudonymous remote attestation utilizing a chain-of-trust
US9596085B2 (en) Secure battery authentication
US20040117318A1 (en) Portable token controlling trusted environment launch
CN101441601B (zh) 一种硬盘ata指令的加密传输的方法及系统
TW202036347A (zh) 資料儲存、驗證方法及裝置
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
CN101983375A (zh) 将密码模块绑定到平台
US9893882B1 (en) Apparatus, system, and method for detecting device tampering
JP2013003786A (ja) 情報処理装置、正当性検証方法、及びプログラム
EP3221996B1 (en) Symmetric keying and chain of trust
CN115357528B (zh) 固态硬盘的密钥加密方法、密钥解密方法和安全防护系统
KR101765209B1 (ko) 안전 부팅 장치 및 방법
CN115756515A (zh) 容器软件部署权限的校验方法、装置、设备及存储介质
CN111291389A (zh) 一种计算机核心程序全生命周期的保护方法及系统
Cooper et al. e paper title

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141001

Termination date: 20180930

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