CN101951316A - 操作系统的受保护的网络引导 - Google Patents
操作系统的受保护的网络引导 Download PDFInfo
- Publication number
- CN101951316A CN101951316A CN2009102584783A CN200910258478A CN101951316A CN 101951316 A CN101951316 A CN 101951316A CN 2009102584783 A CN2009102584783 A CN 2009102584783A CN 200910258478 A CN200910258478 A CN 200910258478A CN 101951316 A CN101951316 A CN 101951316A
- Authority
- CN
- China
- Prior art keywords
- computing device
- encryption key
- client computing
- operating system
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure 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和TPM 260。芯片组220还可以提供其它平台支持硬件,例如:一个或多个直接存储器存取(DMA)控制器、中断控制器和实时时钟。
系统存储器230可以存储处理器210、管理引擎250和/或TPM 260要处理和执行的数据和指令。系统存储器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标准IEEE 1275-1994描述的开放固件接口)。如下文所更详细解释的,引导加载器244可以从OS服务器140请求通过网络110进行流式传送的操作系统142、对其进行解密并开始执行。此外,虽然描绘为BIOS固件242的一部分,但是CRTM 243和/或引导加载器244可以被实现为与BIOS固件242分离,并且可以被存储在客户端120的其它非易失性存储设备中,例如:芯片组220的非易失性存储设备、系统存储器230、管理引擎250、TPM 260、I/O设备270、大容量存储设备280和/或网络接口控制器290。
TPM 260可以包括受保护存储设备261、平台配置寄存器(PCR)265、随机数生成器(RNG)266、密码散列引擎267、加密引擎268和接口269。图2将TPM 260描绘为在管理引擎250的外部。然而,在一些实施例中,管理引擎250和TPM 260可以是同一集成电路和/或组件的一部分。
TPM 260的受保护存储设备261可以包括随机存取存储器和/或只读存储器。只读存储器可以在制造时被填入有存储根密钥(SRK)262和签注密钥(endorsement key,EK)263,并且这种只读存储器可以被封闭,或者以防篡改的方式受到保护。在一个实施例中,存储根密钥262包括非对称密钥对,例如Rivest Shamir,Adleman(RSA)公钥和RSA私钥,其可以用于对存储在TPM 260外部的其它密钥进行加密。随机存取存储器还可以存储身份证明密钥(attestation identity key,AIK)264以及其它加载的密钥和机密信息(secret)。
此外,在TPM 260允许使用存储根密钥262和/或TPM 260的其它密钥之前,TPM 260可以要求接收针对该密钥的正确的认证数据。在一个实施例中,用户可以经由PBA模块241来向TPM 260提供针对存储根密钥262和/或TPM 260的其它密钥的认证数据,从而允许在从OS服务器140接收操作系统142之前使用这些密钥。
PCR 265可以在客户端120的初始化和验证期间存储各种散列值。在一个实施例中,TPM 260包括十六(16)个PCR 265,用于存储基于客户端120所执行的实体(例如,应用程序)的密码散列的平台配置测量值。在一个实施例中,TPM 260不允许对PCR 265直接进行写操作。取而代之的是,TPM 260支持目标PCR 265的扩展操作,其中将新的测量值与目标PCR 265的当前值进行串接,然后经由散列引擎267被散列化。然后,TPM260将产生的散列值存储在目标PCR 265中。
RNG 266可以通过为加密引擎268提供熵(entropy)的源来帮助加密引擎268生成密钥。RNG 266还可以提供能够帮助防止重放攻击的临时值(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来激活TPM 260的各种服务。例如,管理引擎250可以请求TPM 260生成/存储安全密钥、包覆(wrap)/展开(unwrap)密钥、对数据进行封装(seal)/解封(unseal)、对数据进行加密/解密、和/或测量/验证客户端120的组件的完整性。管理引擎250可以独立于处理器210而执行,因此,允许当处理器210保持停机或执行其它指令时,管理引擎250在TPM 260的帮助下执行各种密码处理、测量处理和验证处理。在一个实施例中,管理引擎250可以请求TPM 260测量和验证可执行组件或实体的完整性,并且在TPM 260不能验证该实体的完整性的情况下可以停止或者以其他方式阻止该实体的执行。特别地,TPM260的散列引擎267可以计算软件程序的散列值以获得实体的测量值,并且TPM 260可以验证所计算的散列值对应于该实体的期望的散列值。在一个实施例中,可以通过供应服务器130或一些其它方式来供应期望值并且将其存储在TPM 260的受保护存储设备262中。
网络控制器290可以提供到网络110的接口,和到连接到网络110的计算设备与网络设备(例如,供应服务器130和OS服务器140)的接口。网络控制器290还可以包括管理代理(MA)292,用于执行密码处理和/或执行引导加载器244。此外,管理代理292可以包括接口,所述接口允许系统软件(例如,BIOS软件、预操作系统软件、运行时管理模式软件等)代表该系统软件来执行密码处理。管理代理292可以独立于处理器210的操作而工作。例如,管理代理292可以包括:微处理器、微控制器或其它类型的处理器电路、存储器和接口逻辑。
如上所述,固件设备240可以包括可信模块的核心根(CRTM)243。CRTM 243可以包括能够用作完整性测量的信任起源的代码块。在一个实施例中,CRTM 243可靠地测量其它实体的完整性值,并且在平台的生存期期间保持不变。CRTM 243在固件设备240的其它部分之前执行,从而在将控制转交给BIOS固件242或其部分之前,测量PBA模块241、BIOS固件242或其部分。下文将参照图4来更详细地解释将信任链从CRTM 243扩展到正在运行的操作系统142的过程。然而,为了更好地理解图4的说明,将结合图3来描述测量完整性和扩展信任的过程。
如在图3中所示,完整性测量方法300的实施例可以在框310处从以下操作开始:实体A(例如,BIOS固件242的一部分)测量实体B(例如,BIOS固件242的另一个部分)以获得实体B的测量值或指纹(fingerprint)。特别地,实体A可以通过对实体B执行密码散列(例如,SHA-1散列)来生成实体B的测量值。然后,在框320处,实体A可以将实体B的测量值存储在位于TPM 260外部的存储测量日志(SML)232中。例如,实体A可以将存储测量日志232存储在系统存储器230或大容量存储设备280中。在框330处,实体A可以经由扩展操作将实体B的测量值插入到TPM 260的PCR 265中。在框340处,实体A可以确定实体B是否是可信的。在一个实施例中,如果实体B的测量值未对应于实体B的期望测量值,则实体A可以确定不能验证实体B是可信的。在一个实施例中,实体A可以参考存储在TPM 260外部的清单(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的TPM 260可以生成包括私钥122和公钥144的非对称加密密钥对。TPM260还可以将所生成的密钥对的私钥122封装到客户端120的已验证的测量启动环境(measured launch environment,MLE)中。
已验证的测量启动环境规定了如一个或多个PCR 265的内容所定义的测量平台配置,其已经被验证为是可信的。作为将数据加密密钥122封装到已验证的测量启动环境中的结果,在接收到对已封装的数据加密密钥122进行解封的请求时,只有客户端120的平台配置对应于已验证的测量启动环境,TPM 260才可以对已封装的数据加密密钥122进行解封。PCR 265的内容可以包括PBA模块241、BIOS固件242以及客户端120的其它硬件和/或软件组件的测量值。因此,通过指定TPM 260的PCR 265,该测量启动环境可以识别可信的PBA模块241、BIOS固件242以及客户端120的其它硬件和/或软件组件。如果该测量启动环境、CRTM 243和/或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和TPM 260的帮助下,客户端120可以执行CRTM 243,并创建从CRTM 243到BIOS固件242的信任链。从CRTM 243进行的信任扩展使得对BIOS固件242和已经在CRTM 243与BIOS固件242之间被验证并被执行的任何例程进行测量。特别地,该验证过程使得进行以下操作:测量BIOS固件242和任何中间实体;验证测量值是所期望的测量值;将测量值存储在安全测量日志232中;以及利用获得的测量值扩展TPM 260的一个或多个PCR 265。
假定客户端120能够验证BIOS固件242,那么在时间T1处,BIOS固件242可以验证并执行引导加载器244,由此将信任从BIOS固件242扩展到引导加载器244。再次地,验证过程使得进行以下操作:测量引导加载器244;验证测量值是所期望的测量值;将测量值存储在安全测量日志232中;以及基于该测量值来扩展一个或多个PCR 265。在时间T1处,引导加载器244还可以将客户端120置于受保护虚拟化模式(VMX)。在一个实施例中,引导加载器244可以调用处理器210支持的可信执行技术的GETSECSENTER指令,来将客户端置于受保护虚拟化模式(VMX)。
在进入受保护虚拟化模式之后,在时间T2处,引导加载器244可以请求TPM 260对数据加密密钥122进行解封。如上面所提到的,在密钥供应过程期间,数据加密密钥122被封装到已验证的测量启动环境中。因此,如果PCR 265所存储的测量值未对应于数据加密密钥122被封装到其中的测量启动环境,那么TPM 260将不对数据加密密钥122进行解封。在这种情况下,引导加载器244可以采取特定的保护动作,例如:重置客户端120、使客户端120下电、或者以其它方式停止引导处理。另一方面,如果PCR 265所存储的测量值指示客户端120具有对应于数据加密密钥122被封装到其中的测量启动环境的平台配置,那么TPM 260可以对数据加密密钥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 (20)
1.一种由客户端计算设备引导服务器计算设备提供的操作系统的方法,包括:
接收针对已封装的加密密钥的认证数据,
请求所述客户端计算设备的可信平台模块基于所接收的认证数据来对所述已封装的加密密钥进行解封,
响应于开始所述客户端计算设备的引导处理,经由网络接收已加密的操作系统,
使用响应于请求所述可信平台模块对所述已封装的加密密钥进行解封而获得的已解封的加密密钥,来对经由所述网络接收的已加密的操作系统进行解密,以及
执行已解密的操作系统。
2.根据权利要求1所述的方法,还包括:响应于所述可信平台模块确定未对所述已封装的加密密钥进行解封,中止所述客户端计算设备的引导序列。
3.根据权利要求1所述的方法,还包括:请求所述可信平台模块通过将加密密钥封装到所述客户端计算设备的已验证的测量启动环境中,来创建所述已封装的加密密钥。
4.根据权利要求3所述的方法,还包括:响应于请求所述可信平台模块对所述已封装的加密密钥进行解封,只有在所述客户端计算设备具有与所述加密密钥被封装到其中的已验证的测量启动环境相对应的平台配置时,才对所述已封装的加密密钥进行解封。
5.根据权利要求1所述的方法,还包括:
请求所述可信平台模块通过将非对称加密密钥对的私有非对称加密密钥封装到所述计算设备的已验证的测量启动环境中,来创建所述已封装的加密密钥,以及
响应于请求所述可信平台模块对所述已封装的加密密钥进行解封,只有在所述客户端计算设备具有与所述加密密钥被封装到其中的已验证的测量启动环境相对应的平台配置时,才对所述已封装的加密密钥进行解封,来获得所述私有加密密钥,其中,
对所述已加密的操作系统进行解密包括:使用从所述已解封的加密密钥获得的私有非对称加密密钥来对所述已加密的操作系统进行解密。
6.根据权利要求1所述的方法,还包括:
创建对称加密密钥和非对称加密密钥,
使用所述非对称加密密钥来将所述对称加密密钥封装到已验证的测量启动环境中,来获得所述已封装的加密密钥,以及
响应于请求所述可信平台模块对所述已封装的加密密钥进行解封,只有在所述计算设备具有与所述对称加密密钥被封装到其中的已验证的测量启动环境相对应的平台配置时,才对所述已封装的加密密钥进行解封,来获得所述对称加密密钥,其中
对所述已加密的操作系统进行解密包括:使用从所述已解封的加密密钥获得的对称加密密钥来对所述已加密的操作系统进行解密。
7.一种机器可读介质,包括多个指令,所述指令响应于被执行而使得客户端计算设备执行以下操作:
获得加密密钥,
请求来自服务器计算设备的操作系统,
从所述服务器计算设备接收已加密的操作系统,
使用所述加密密钥来对所述已加密的操作系统进行解密,以及
执行已解密的操作系统。
8.根据权利要求7所述的机器可读介质,其中,所述多个指令还使得所述客户端计算设备执行以下操作:
请求所述客户端计算设备的可信平台模块对所述加密密钥进行解封,以及
响应于所述可信平台模块确定所述客户端计算设备不具有所述加密密钥被封装到其中的平台配置,中止所述客户端计算设备的引导序列。
9.根据权利要求7所述的机器可读介质,其中,所述多个指令还使得所述客户端计算设备执行以下操作:
请求所述客户端计算设备的可信平台模块对机密信息进行解封,所述机密信息已经被封装到所述客户端计算设备的指定平台配置中,以及
基于所述机密信息与所述服务器计算设备进行协商,以获得要用作所述加密密钥的会话密钥。
10.根据权利要求9所述的机器可读介质,其中,所述多个指令还使得所述客户端计算设备执行以下操作:在接收所述已加密的操作系统之前,从所述客户端计算设备的存储器中移除所述机密信息。
11.根据权利要求9所述的机器可读介质,其中,所述多个指令还使得所述客户端计算设备执行以下操作:如果所述可信平台模块未对所述机密信息进行解封,那么中止引导序列。
12.根据权利要求7所述的机器可读介质,其中,所述多个指令还使得所述客户端计算设备执行以下操作:获得针对所述加密密钥的对称加密密钥,所述加密密钥用于对所述已加密的操作系统进行解密。
13.根据权利要求7所述的机器可读介质,其中所述多个指令还使得所述客户端计算设备执行以下操作:获得针对所述加密密钥的非对称加密密钥,所述加密密钥用于对所述已加密的操作系统进行解密。
14.一种用于保护通过网络来引导的操作系统的系统,包括客户端计算设备,所述客户端计算设备包括:
固件设备,其包括一个或多个实体,每一个实体包括一个或多个指令,
可信平台模块,用于存储测量值并且验证要被执行的实体的完整性,以及
处理器,用于执行所述固件设备的一个或多个实体,其中
所述一个或多个实体响应于被执行而使得所述客户端计算设备执行以下操作:获得加密密钥;将对操作系统的请求发送到所述网络;从所述网络接收已加密的操作系统;使用所述加密密钥来对所述已加密的操作系统进行解密;以及执行已解密的操作系统。
15.根据权利要求14所述的系统,其中,所述一个或多个实体包括引导加载器,所述引导加载器响应于被执行而使得所述客户端计算设备执行以下操作:
请求所述可信平台模块对所述加密密钥进行解封,以及
响应于所述可信平台模块确定所述客户端计算设备不具有所述加密密钥被封装到其中的平台配置,中止所述客户端计算设备的引导序列。
16.根据权利要求14所述的系统,还包括服务器计算设备,其中
所述一个或多个实体包括引导加载器,所述引导加载器响应于被执行而使得所述客户端计算设备执行以下操作:请求所述客户端计算设备的可信平台模块对机密信息进行解封,所述机密信息已经被封装到所述客户端计算设备的指定平台配置中;以及基于所述机密信息与所述服务器计算设备进行协商,以获得要用作所述加密密钥的会话密钥,并且
响应于至少基于所述机密信息而认证所述客户端计算设备,所述服务器计算设备向所述客户端计算设备提供所述会话密钥,并且用对应的会话密钥来对所述操作系统进行加密。
17.根据权利要求16所述的系统,其中,所述引导加载器的执行还使得所述客户端计算设备执行以下操作:在接收所述已加密的操作系统之前,从所述客户端计算设备的存储器中移除所述机密信息。
18.根据权利要求17所述的系统,其中,所述引导加载器的执行还使得所述客户端计算设备执行以下操作:如果所述可信平台模块未对所述机密信息进行解封,那么中止引导序列。
19.根据权利要求14所述的系统,还包括服务器计算设备,其用于:存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;以及通过所述网络将所述已加密的操作系统流式传送到所述客户端计算设备。
20.根据权利要求14所述的系统,还包括服务器计算设备,其用于:存储所述操作系统;响应于接收对所述操作系统的请求,获取用于所述客户端计算设备的对应的加密密钥;使用所述对应的加密密钥来对所述操作系统进行加密;通过所述网络将所述已加密的操作系统流式传送到所述客户端计算设备;以及在流式传送所述已加密的操作系统之前,对所述客户端计算设备进行认证。
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 true CN101951316A (zh) | 2011-01-19 |
CN101951316B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108604270A (zh) * | 2016-02-12 | 2018-09-28 | 微软技术许可有限责任公司 | 操作系统的安全供应 |
CN109918919A (zh) * | 2014-06-27 | 2019-06-21 | 英特尔公司 | 认证变量的管理 |
CN110287654A (zh) * | 2013-07-23 | 2019-09-27 | 爱立信股份有限公司 | 使用硬件信任根的媒体客户端装置鉴权 |
CN110663027A (zh) * | 2017-06-16 | 2020-01-07 | 国际商业机器公司 | 使用硬件保护操作系统配置 |
CN113273160A (zh) * | 2018-11-14 | 2021-08-17 | 三星电子株式会社 | 无线通信网络的seal系统中提供服务间通信的seal系统和方法 |
Families Citing this family (43)
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 |
KR20130114672A (ko) | 2011-01-19 | 2013-10-17 | 인터내셔널 비지네스 머신즈 코포레이션 | 소프트웨어를 업데이트하는 장치 및 방법 |
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 |
EP2989547B1 (en) | 2013-04-23 | 2018-03-14 | Hewlett-Packard Development Company, L.P. | Repairing compromised system data in a non-volatile memory |
CN105144185B (zh) | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | 验证控制器代码和系统启动代码 |
WO2014175861A1 (en) | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
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 |
US9348997B2 (en) | 2014-03-13 | 2016-05-24 | Intel Corporation | Symmetric keying and chain of trust |
US9521125B2 (en) | 2014-03-13 | 2016-12-13 | Intel Corporation | Pseudonymous remote attestation utilizing a 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 |
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 |
CN107077568B (zh) * | 2014-11-17 | 2020-08-25 | 英特尔公司 | 对称密钥和信任链 |
US11194823B2 (en) | 2016-05-10 | 2021-12-07 | Aircloak Gmbh | Systems and methods for anonymized statistical database queries using noise elements |
US10262140B2 (en) | 2016-09-29 | 2019-04-16 | Intel Corporation | Methods and apparatus to facilitate blockchain-based boot tracking |
US10102378B2 (en) | 2016-09-29 | 2018-10-16 | Hewlett Packard Enterprise Development Lp | Boot images for units under test |
WO2019180675A1 (en) * | 2018-03-22 | 2019-09-26 | 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 | 阿里巴巴集团控股有限公司 | 密钥和证书分发方法、身份信息处理方法、设备、介质 |
CN110795742B (zh) | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 高速密码运算的度量处理方法、装置、存储介质及处理器 |
CN110795774B (zh) * | 2018-08-02 | 2023-04-11 | 阿里巴巴集团控股有限公司 | 基于可信高速加密卡的度量方法、设备和系统 |
CN110874478B (zh) | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 密钥处理方法及装置、存储介质和处理器 |
WO2020159533A1 (en) | 2019-02-01 | 2020-08-06 | 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 (2)
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 |
US20060161784A1 (en) * | 2005-01-14 | 2006-07-20 | Microsoft Corporation | Systems and methods for updating a secure boot process on a computer with a hardware security module |
Family Cites Families (12)
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 |
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 |
-
2008
- 2008-09-30 US US12/241,259 patent/US20100082960A1/en not_active Abandoned
-
2009
- 2009-09-30 CN CN200910258478.3A patent/CN101951316B/zh not_active Expired - Fee Related
- 2009-09-30 EP EP09252328A patent/EP2169908A1/en not_active Withdrawn
Patent Citations (2)
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 |
US20060161784A1 (en) * | 2005-01-14 | 2006-07-20 | Microsoft Corporation | Systems and methods for updating a secure boot process on a computer with a hardware security module |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287654A (zh) * | 2013-07-23 | 2019-09-27 | 爱立信股份有限公司 | 使用硬件信任根的媒体客户端装置鉴权 |
CN109918919A (zh) * | 2014-06-27 | 2019-06-21 | 英特尔公司 | 认证变量的管理 |
CN108604270A (zh) * | 2016-02-12 | 2018-09-28 | 微软技术许可有限责任公司 | 操作系统的安全供应 |
CN108604270B (zh) * | 2016-02-12 | 2022-03-29 | 微软技术许可有限责任公司 | 操作系统的安全供应 |
US11394548B2 (en) | 2016-02-12 | 2022-07-19 | Microsoft Technology Licensing, Llc | Secure provisioning of operating systems |
CN110663027A (zh) * | 2017-06-16 | 2020-01-07 | 国际商业机器公司 | 使用硬件保护操作系统配置 |
CN113273160A (zh) * | 2018-11-14 | 2021-08-17 | 三星电子株式会社 | 无线通信网络的seal系统中提供服务间通信的seal系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101951316B (zh) | 2014-10-01 |
US20100082960A1 (en) | 2010-04-01 |
EP2169908A1 (en) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101951316B (zh) | 操作系统的受保护的网络引导 | |
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
TWI567579B (zh) | 用於對硬體裝置提供金鑰的方法和設備 | |
US9509502B2 (en) | Symmetric keying and chain of trust | |
US9768951B2 (en) | Symmetric keying and chain of trust | |
EP3205046B1 (en) | Secure shared key sharing systems and methods | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
US7318235B2 (en) | Attestation using both fixed token and portable token | |
CN101441601B (zh) | 一种硬盘ata指令的加密传输的方法及系统 | |
US20040117318A1 (en) | Portable token controlling trusted environment launch | |
JP2008210225A (ja) | セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法 | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
CN107294710B (zh) | 一种vTPM2.0的密钥迁移方法及装置 | |
CN101983375A (zh) | 将密码模块绑定到平台 | |
US10229272B2 (en) | Identifying security boundaries on computing devices | |
JP2013003786A (ja) | 情報処理装置、正当性検証方法、及びプログラム | |
EP3207488A1 (en) | Identifying security boundaries on computing devices | |
JP2011164810A (ja) | 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体 | |
EP3720042B1 (en) | Method and device for determining trust state of tpm, and storage medium | |
EP3221996B1 (en) | Symmetric keying and chain of trust | |
CN110674525A (zh) | 一种电子设备及其文件处理方法 | |
CN106803046A (zh) | 一种基于外部存储的度量日志加密方法 | |
KR101765209B1 (ko) | 안전 부팅 장치 및 방법 | |
CN116167060A (zh) | 可信只读存储器系统及可信基板管理控制器系统 | |
CN115756515A (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 | ||
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 |