CN110069361B - 用于tpm故障切换的方法和装置 - Google Patents
用于tpm故障切换的方法和装置 Download PDFInfo
- Publication number
- CN110069361B CN110069361B CN201810068740.7A CN201810068740A CN110069361B CN 110069361 B CN110069361 B CN 110069361B CN 201810068740 A CN201810068740 A CN 201810068740A CN 110069361 B CN110069361 B CN 110069361B
- Authority
- CN
- China
- Prior art keywords
- tpm
- computing device
- control module
- detecting
- response
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000004044 response Effects 0.000 claims abstract description 19
- 230000001010 compromised effect Effects 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 6
- 238000002360 preparation method Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 2
- 238000013459 approach Methods 0.000 abstract description 6
- 101000801701 Homo sapiens Tropomyosin alpha-1 chain Proteins 0.000 description 6
- 102100033632 Tropomyosin alpha-1 chain Human genes 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 101000851892 Homo sapiens Tropomyosin beta chain Proteins 0.000 description 3
- 102100036471 Tropomyosin beta chain Human genes 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100537780 Mus musculus Tpm2 gene Proteins 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1428—Reconfiguring to eliminate the error with loss of hardware functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2284—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开的实施例涉及一种用于TPM故障切换的方法和装置。公开了一种在计算设备上执行安全操作的方法。该方法包括以下步骤:检测第一可信平台模块(TPM)是否被损坏;以及响应于检测到第一TPM被损坏,将原本要由第一TPM执行的安全操作转换到第二TPM。还提供了一种用于检测TPM的故障并提供故障切换的计算设备。因此,上述方法解决了在TPM设备被破坏且不可用时必须更换整个主板的问题。
Description
技术领域
本发明涉及计算设备中使用的安全密码处理器,具体涉及这种密码处理器的故障的检测及其故障切换。
背景技术
存储在计算机系统上的信息的安全是主要的关注点。从安装在计算机系统上的安全应用软件到访问信息所需的硬件密钥,已经实现了许多不同的技术来保护这些信息。另一种保护信息的方式被称为来自可信计算组织(TCG)的可信平台模块(TPM)规范。在该规范中,包括可编程微控制器的标准芯片组在制造期间被提供在计算机的电路板上,并被用于存储和保护期望被保护的计算机系统的信息,即实现有效的可信计算特征。在微控制器上运行的安全架构(即功能和应用程序接口(API))可以被称为TPM。TPM可以提供各种特征,包括随机数字生成器、用于安全生成加密密钥的设施以及限制密钥使用的能力,例如用于签名和验证,和/或加密和解密。
然而,传统计算设备中与TPM芯片相关的问题是,TPM芯片被焊接到计算设备的主板,在TPM芯片被破坏的情况下,必须更换整个主板。TPM芯片可能由于固件更新而被破坏,或者由于TPM芯片的内部存储装置磨损而被破坏。由于TPM芯片的破坏所导致的主板更换不仅成本非常高,而且还中断了计算设备的正常操作,特别是对于经常需要7×24运行的服务器而言。
发明内容
因此,在一个方面中,本发明提供了一种在计算设备上执行安全操作的方法。该方法包含以下步骤:检测第一可信平台模块(TPM)是否被损坏;以及响应于检测到第一TPM被损坏,将原本要由第一TPM执行的安全操作转换到第二TPM。
优选地,该转换步骤还包含在不影响存储器映射I/O(MMIO)中的TPM存储器映射的情况下,通过多工器选择第二TPM。
在一个具体的实现中,多工器是计算设备的通用输入/输出(GPIO)电路。
根据优选实施例的变型,转换步骤之后是计算设备的重启。
根据优选实施例的另一个变型,转换步骤还包含TPM准备、TPM版本对齐检查或TPM版本切换。
在一个具体的实现中,检测步骤还包含尝试向第一TPM发送TPM接口规范(TIS)命令并从第一TPM接收响应。
优选地,评估步骤还包含基于从第一TPM接收到的响应来确定损坏程度。
在另一个具体的实现中,检测步骤和评估步骤在计算设备的通电自检(POST)过程期间发生,并且包括执行统一可扩展固件接口(UEFI)的驱动程序执行环境(DXE)代码。
在又一个具体的实现中,检测步骤和评估步骤在计算设备的操作系统被加载有特定的OS驱动程序之后发生,并且涉及高级配置和功率接口(ACPI)。
根据本发明的另一个方面,一种计算设备包括:控制模块;第一可信平台模块(TPM);以及第二TPM。控制模块可操作以检测第一TPM是否被损坏,以及响应于第一TPM被损坏,将原本要由第一TPM执行的安全操作转换到第二TPM。
优选地,控制模块适于检测第一TPM的可用性,评估第一TPM的损坏程度,并将第一TPM的状态标记在主板上的一致性存储装置中。
优选地,计算设备还包含多工器,通过该多工器从第一TPM转换到第二TPM不会影响存储器映射I/O(MMIO)中的TPM存储器映射。
在具体的实现中,多工器是计算设备的通用输入/输出(GPIO)电路。
根据优选实施例的一个变型,从主TPM到备用TPM的转换之后是计算设备的重启。
优选地,该转换还包含通过多工器电路的控制来转换到第二TPM、TPM准备、TPM版本对齐检查或者TPM版本切换。
根据优选实施例的另一个变型,控制模块还适于尝试向第一TPM发送TPM接口规范(TIS)命令并从第一TPM接收响应。
优选地,控制模块还适于基于从第一TPM接收到的响应来确定损坏程度。
在一个具体的实现中,控制模块包含高级配置和功率接口(ACPI)。控制模块适于在计算设备的操作系统被加载有特定的OS驱动程序之后检测第一TPM的可用性并评估第一TPM的损坏程度。
在另一个具体的实现中,控制模块包含统一可扩展固件接口(UEFI)。控制模块适于在计算设备的通电自检(POST)过程期间,检测第一TPM的可用性并评估第一TPM的损坏程度。
附图说明
从结合附图的仅作为示例提供的优选实施例的以下描述中,本发明的前述特征和更多特征将变得显而易见,其中:
图1示出了根据本发明实施例的计算设备的内部结构的框图。
图2是示出检测第一TPM设备的故障并通过转换到第二TPM设备执行故障切换的方法的流程图。
图3是示出如图2所示的确定第一TPM设备是否被破坏的详细步骤的流程图。
图4是示出如图2所示的重启系统并且转换到第二TPM设备的详细步骤的流程图。
在附图中,贯穿本文所描述的若干实施例,相同的附图标记表示相同的部分。
具体实施方式
图1示出了实现本申请的原理的计算设备的实施例。该计算设备可以包括处理器20。处理器20可以包括能够执行软件和/或处理数据信号的任何类型的处理器。处理器20可以经由存储器路径(未示出)被耦合到系统存储器24,以用于指令和数据存储和/或用于存储例如图形命令、数据和纹理。处理器20可以经由被耦合到PCIe互连30的PCIe端口(未示出)而被耦合到一个或多个外围设备38。存储器24可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、或者由处理器20可读的任何其它类型的介质。RAM还可以包括非易失性随机存取存储器(NVRAM)和/或动态随机存取存储器(DRAM)以及静态随机存取存储器(SRAM)。
处理器20可以指代计算设备中的多于一个的处理器,或者指代可以包括多线程、多内核等的一个或多个处理器。本改进不限于计算机系统或数据处理设备系统。本发明的备选实施例可以用于使用统一可扩展固件接口(UEFI)的基本输入/输出系统(BIOS)的任何形式因素的设备(诸如手持设备和嵌入式应用)中。手持设备的一些示例包括蜂窝电话、平板计算机、因特网协议设备、数码相机、个人数字助理(PDA)或者诸如上网本或笔记本电脑的手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或者任何其它系统。
处理器20可以被耦合到系统逻辑芯片26。例如,系统逻辑芯片26作为平台控制器集线器(PCH)在图示的实施例中被示出。在一个实施例中,PCH 26可以例如经由本地I/O互连来提供到一个或多个I/O设备的连接。在实施例中,本地I/O互连可以是高速I/O总线,诸如外围组件互连(PCI)高速总线。PCH 26可以在处理器20与计算设备中的一个或多个其他组件之间引导数据信号或其它信息,并且在处理器20与系统I/O之间桥接数据信号或信息。
一个或多个组件的一些示例可以包括数据存储设备28、一个或多个PCIe端口(未示出)、联网控制器34、USB端口36。在一个实施例中,数据存储设备28可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或者其他大容量存储设备。尽管图1示出了组件的一些示例,但是PCH 26可以提供到其他组件的连接,诸如音频I/O,键盘/鼠标I/O,以及诸如电子集成驱动器(IDE)、局域网(LAN)和其他串行扩展端口的其他集成I/O组件,无线收发器,传统I/O控制器等。
参考图1,诸如闪存34的非易失性存储器可以经由例如低引脚数(LPC)总线而被耦合到PCH 26。BIOS固件32可以驻留在闪存34中,并且启动可以执行来自闪存或固件的指令。尽管图1图示了在闪存34中的BIOS固件32,但是在一些实施例中,BIOS固件32可以被存储在诸如固件集线器等的其它非易失性存储器中。在实施例中,BIOS固件32可以由统一可扩展固件接口(UEFI)固件或操作系统与计算设备的硬件之间的任何其他固件接口来实现。
图1中的计算设备还包含两个可信平台模块(TPM)芯片(即TPM1 21和TPM2 23)以提供基于硬件的认证和篡改检测。TPM1 21和TPM2 23都被焊接—永久地附接—到主板(未示出)。TPM1 21和TPM2 23都被电连接到PCH 26。注意在正常操作期间,TPM1 21和TPM2 23中的仅一个将被激活并被计算设备使用,而另一个将被保留作为备用。
尽管图1图示了计算设备,但是根据本发明的实施例可以用于任何其他硬件和软件架构中,诸如可以用于使用多个处理器核心的平台或者使用处理器或协处理器的平台、使用I/O集线器的平台、或嵌入在处理器内的存储器控制等。
现在转到图2,图2示出了根据本发明实施例的检测安装在计算设备的主板上的第一TPM设备(诸如图1中的TPM1 21)的故障以及恢复第一TPM设备或放弃第一TPM设备并转换到第二TPM设备的方法。这里提到的TPM设备可以包括遵循TPM规范的TPM芯片。该方法从步骤40开始,在步骤40中,计算设备被通电并且执行一系列通电自检(POST)步骤,该POST步骤包括初始化诸如图1中所示的外围设备。POST步骤包括检查和初始化安装在计算设备的主板上的第一TPM设备,诸如图1中所示的TPM1 21。然而,关于计算设备的外围设备将以何种顺序被检查或者第一TPM设备将在其他外围设备之前还是之后被检查,不存在特别的要求。相反,该方法允许在POST阶段的任何阶段检查第一TPM设备,或者如稍后将更详细地解释的那样在操作系统已经被加载有特定的OS驱动程序之后检查第一TPM设备。
在计算设备通电之后,在步骤42中,控制模块检测第一TPM设备并检查其是否被破坏。控制模块例如是如上所述的UEFI模块。图3示出了步骤42的更多细节。第一步骤66是UEFI尝试发出TPM接口规范(TIS)命令以感测第一TPM设备的可用性。TIS是用于访问TPM的众所周知的标准化TPM接口,并且这里由UEFI使用的TIS命令例如是对于计算设备的系统存储器中的、第一TPM设备应当被映射到的特定存储器范围的查询。接下来,在步骤68中,UEFI将尝试从第一TPM设备接收响应于TIS命令的返回值。当然,在该步骤中可能会出现这样的情况,即在第一TPM设备被破坏时或者处于更好情况但暂时发生故障时,没有从第一TPM设备接收到任何响应。UEFI将根据根本没有从TPM设备接收到响应或者接收到响应,来评估从TPM返回值的值。显然,取决于从TPM设备可以接收到多少可能的返回值,可以为TPM设备定义多个程度(甚至超过四个)的损坏。在步骤70中,UEFI将决定第一TPM设备是否存在使其不能正常工作的任何问题。如果没有检测到问题,那么方法转到图2中的步骤44,该步骤中计算设备将继续正常启动。然而,如果确定在第一TPM设备中存在问题,那么随后取决于损坏程度,该方法将从步骤70前往由步骤72、步骤74和步骤76示出的三种途径之一。
在步骤72中表示的途径中,例如当第一TPM设备只是暂时发生故障时,UEFI将简单地恢复第一TPM设备。在第一TPM设备被恢复之后,方法转到计算设备将继续正常启动的图2中的步骤44。在步骤76中表示的途径中,UEFI将冷重启计算设备,并且在使第一TPM设备回到其正常状态的尝试中再次进行POST过程。然后,在步骤76之后该方法流程回到图2中的步骤40。
然而,如果UEFI确定了第一TPM设备通过简单恢复或通过冷重启不能返回到正常状态,那么将采取步骤74中表示的途径。在这种情况下,该方法将前往步骤48以便准备放弃第一TPM设备并转换到第二TPM设备。
回到图2,在步骤48中,UEFI将必须确定计算设备的启动过程的当前阶段。如果系统仍处于POST阶段且OS尚未加载,那么该方法随后转到步骤52以直接执行UEFI驱动程序执行环境(DXE)代码。由于OS尚未控制计算设备,所以在这种情况下可以执行DXE代码。但是,如果该系统不处于POST阶段,那么在步骤50中确定OS已经被加载,并且该方法将前往步骤54。在OS已被加载到系统存储器中的情况下,需要涉及高级配置和电源接口(ACPI),因为UEFI代码不能在OS的存在下直接执行。在步骤54中,ACPI驱动程序被加载有特定的预安装的OS驱动程序。在具体的实现中,该方法前往步骤58以触发SMI中断,以便执行UEFI系统管理模式(SMM)代码。应当注意,如步骤60和步骤62中所示,在步骤52中执行的UEFI DXE代码和在步骤56中执行的UEFI SMM代码执行类似的功能。只是由于系统操作环境中的不同,当OS已经被加载时,SMM代码必须利用ACPI和SMI来执行。
无论是在步骤52中执行UEFI DXE代码还是在步骤56中执行UEFI SMM代码,在步骤60中,UEFI继续把被确定为被破坏且不可用的第一TPM设备在持久性存储装置中标记为“坏的”。该步骤是为了确保故障的第一TPM设备在将来将不会被任何其他应用程序所使用。与此同时,在一致性存储装置中设置标志64以指示需要切换TPM的状态。然后,该方法前往步骤62,步骤62中的详细步骤在图4中被最好地图示出。UEFI可以选择TPM设备被切换的方式。第一种方式是在步骤78中对计算设备进行冷重启,并且在计算设备被重启之后,UEFI随后利用计算设备的通用输入/输出(GPIO)电路来选择第二TPM设备的MMIO解码。GPIO电路在这里用作多工器。注意,对于操作系统或使用TPM的任何其他应用程序而言,MMIO解码总是与Intel架构(IA)x86系统中定义的解码相同,所以物理TPM设备的任何切换对于操作系统和软件应用程序是透明的。GPIO电路用作访问不同的TPM设备的接口,而不需要对现有的操作系统或使用TPM的任何其他应用程序进行任何修改。
备选地,如果UEFI确定不需要冷重启来转换TPM设备,那么系统将不执行步骤78而是执行步骤80,在步骤80中进行实时迁移以将数据从第一TPM设备传送到第二TPM设备。当然,只有当系统仍然可以访问第一TPM设备时才能进行该实时迁移。实时迁移需要UEFI与两个TPM设备的固件进行相互作用。特别地,需要ROM孔机制来防止固件操作期间的数据丢失。
在系统已经从第一TPM设备转换到第二TPM设备之后,然后在步骤84中,将准备(即初始化)第二TPM设备。接下来,在步骤86中,第二TPM设备的版本需要与第一TPM设备的版本对齐。目前有两个版本的TPM规范,即1.2和2.0,并且第一TPM设备可能具有与第二TPM设备不同的版本。这是因为尽管两个TPM设备都被预安装到主板并应当具有相同的TPM版本,但是第一TPM设备在正常使用期间可能已经升级到更高版本。由于直到TPM设备切换的时间之前第二TPM设备从未被使用过,因此第二TPM设备仍然具有默认(较低)版本。确保第二TPM设备的版本与第一TPM设备的版本一致是至关重要的,因为TPM 2.0并不往回兼容TPM 1.2。
如果在步骤88中确定了第二TPM设备的版本需要被切换,那么在步骤90中执行该切换。不论是否执行版本切换,整个TPM故障检测和故障转换过程在步骤92中都要完成。
因此,上述方法解决了当TPM设备被破坏且不可用时必须更换整个主板的问题。传统地,主板只有一个TPM设备。所描述的方法通过引入将TPM转换到备用TPM的诸如GPIO电路的多工器来解决这个问题。因此,如果第一TPM设备被破坏,那么在第二TPM设备可以被投入使用的计算设备中向TPM设备提供冗余。此外,上述方法智能地检测对第一TPM设备的损害程度,并且选择适当的策略以例如通过重启和重试或者切换TPM设备来缓解该问题。
因此,已经充分描述了本发明的示例性实施例。尽管该描述涉及特定实施例,但是对于本领域技术人员而言将清楚的是,可以利用这些具体细节的变型来实践本发明。因此,本发明不应被解释为限于本文阐述的实施例。
尽管已经在附图和前面的描述中详细说明和描述了本发明,但是应当认为这些附图和描述是说明性的而不是限制性的,应当理解,仅仅已经示出和描述了示例性实施例,它们并不以任何方式来限制本发明的范围。应当理解,在此所描述的任何特征可以与任何实施例一起使用。说明性实施例并不排除彼此或者排除本文未记载的其他实施例。因此,本发明还提供了包括一个或多个上述说明性实施例的组合的实施例。如本文阐述的本发明的修改和变型可以在不脱离本发明的精神和范围的情况下做出,因此,仅仅应当施加如所附权利要求所指示的所述限制。
例如,在上述实施例中,第一TPM设备被描述为在正常操作期间由计算设备使用的默认TPM设备,并且第二TPM设备被描述为当第一TPM被破坏且不可恢复时代替第一TPM的功能的备用TPM设备。然而,应当注意,本实施例中的第一TPM设备和第二TPM设备的指定仅仅是为了便于描述的目的,并且“第一”和“第二”并不表示安装在主板上的多个TPM设备中的任何特定TPM设备。例如,在其他形式的描述中,可以交换“第一”和“第二”的指定。
所描述的实施例中使用的用于TPM芯片选择的多工器是计算设备的GPIO电路。然而,技术人员将确定理解的是,可以使用其他类型的电路,诸如FPGA芯片。
Claims (19)
1.一种在计算设备上执行安全操作的方法,所述方法包括:
检测第一可信平台模块(TPM)是否被损坏;
响应于在所述计算设备的通电自检(POST)过程期间检测到所述第一TPM被损坏,执行统一可扩展固件接口(UEFI)的驱动程序执行环境(DXE)代码;或者
响应于在所述计算设备的操作系统(OS)被加载有OS驱动程序之后检测到所述第一TPM被损坏,执行所述UEFI的系统管理模式(SMM)代码;
在主板上的持久性存储装置中,将所述第一TPM标记为损坏状态,以指示所述第一TPM被放弃;以及
将原本要由所述第一TPM执行的安全操作转换到第二TPM执行。
2.根据权利要求1所述的方法,其中所述转换步骤还包括:在不影响存储器映射I/O(MMIO)中的TPM存储器映射的情况下,通过多工器选择所述第二TPM。
3.根据权利要求2所述的方法,其中所述多工器是所述计算设备的通用输入/输出(GPIO)电路。
4.根据权利要求1所述的方法,其中所述转换步骤之后是所述计算设备的重启。
5.根据权利要求1所述的方法,其中所述转换步骤还包括TPM准备、TPM版本对齐检查或者TPM版本切换。
6.根据权利要求1所述的方法,其中所述检测步骤还包括:尝试向所述第一TPM发送TPM接口规范(TIS)命令并且从所述第一TPM接收响应。
7.根据权利要求6所述的方法,其中所述检测步骤还包括:基于从所述第一TPM接收到的所述响应来确定损坏程度。
8.根据权利要求1所述的方法,其中所述检测步骤在所述计算设备的所述POST过程期间发生。
9.根据权利要求1所述的方法,其中所述检测步骤在所述计算设备的所述操作系统被加载有特定的OS驱动程序之后发生;并且涉及ACPI。
10.一种计算设备,包括:
控制模块;
第一可信平台模块(TPM);以及
第二TPM;
其中所述控制模块可操作以:
检测所述第一TPM是否被损坏;
响应于在所述计算设备的通电自检(POST)过程期间检测到所述第一TPM被损坏,执行统一可扩展固件接口(UEFI)的驱动程序执行环境(DXE)代码;或者
响应于在所述计算设备的操作系统(OS)被加载有OS驱动程序之后检测到所述第一TPM被损坏,执行所述UEFI的系统管理模式(SMM)代码;
在主板上的持久性存储装置中,将所述第一TPM标记为损坏状态,以指示所述第一TPM被放弃;以及
将原本要由所述第一TPM执行的安全操作转换到所述第二TPM执行。
11.根据权利要求10所述的计算设备,其中所述控制模块适于:评估所述第一TPM的损坏程度。
12.根据权利要求10所述的计算设备,还包括多工器,通过所述多工器从所述第一TPM切换到所述第二TPM不会影响存储器映射I/O(MMIO)中的TPM存储器映射。
13.根据权利要求12所述的计算设备,其中所述多工器是所述计算设备的通用输入/输出(GPIO)电路。
14.根据权利要求10所述的计算设备,其中从所述第一TPM到所述第二TPM的转换之后是所述计算设备的重启。
15.根据权利要求14所述的计算设备,其中所述转换还包括:通过对所述多工器电路的控制来转换到所述第二TPM、TPM准备、TPM版本对齐检查或者TPM版本切换。
16.根据权利要求11所述的计算设备,其中所述控制模块还适于尝试向所述第一TPM发送TPM接口规范(TIS)命令并且从所述第一TPM接收响应。
17.根据权利要求16所述的计算设备,其中所述控制模块还适于基于从所述第一TPM接收到的所述响应来确定所述损坏程度。
18.根据权利要求11所述的计算设备,其中所述控制模块包括ACPI,所述控制模块适于在所述计算设备的所述操作系统被加载有特定的OS驱动程序之后检测所述第一TPM的可用性。
19.根据权利要求11所述的计算设备,其中所述控制模块包括所述UEFI;所述控制模块适于在所述计算设备的所述POST过程期间检测所述第一TPM的可用性并评估所述第一TPM的所述损坏程度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810068740.7A CN110069361B (zh) | 2018-01-24 | 2018-01-24 | 用于tpm故障切换的方法和装置 |
US16/121,954 US10909247B2 (en) | 2018-01-24 | 2018-09-05 | Computing device having two trusted platform modules |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810068740.7A CN110069361B (zh) | 2018-01-24 | 2018-01-24 | 用于tpm故障切换的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069361A CN110069361A (zh) | 2019-07-30 |
CN110069361B true CN110069361B (zh) | 2023-12-01 |
Family
ID=67300055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810068740.7A Active CN110069361B (zh) | 2018-01-24 | 2018-01-24 | 用于tpm故障切换的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10909247B2 (zh) |
CN (1) | CN110069361B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11405222B2 (en) * | 2018-12-21 | 2022-08-02 | Hewlett Packard Enterprise Development Lp | Methods and systems for enrolling device identifiers (DEVIDs) on redundant hardware |
CN111737700A (zh) * | 2020-06-18 | 2020-10-02 | 全球能源互联网研究院有限公司 | 一种可信芯片固件的融合系统、方法、装置及设备 |
US11816220B2 (en) * | 2020-09-25 | 2023-11-14 | Intel Corporation | Phased boot process to dynamically initialize devices in a verified environment |
EP4057170A1 (de) * | 2021-03-11 | 2022-09-14 | Siemens Aktiengesellschaft | Verfahren zur bestimmung der integrität einer datenverarbeitung, vorrichtung, datenverarbeitungsanlage und anlage |
US12008101B2 (en) | 2021-06-22 | 2024-06-11 | International Business Machines Corporation | Secure enablement of a removable security module on a logic board |
CN113468615B (zh) * | 2021-06-24 | 2023-08-01 | 邦彦技术股份有限公司 | 可信度量方法、可信芯片、逻辑控制器及可信度量系统 |
CN113486353B (zh) * | 2021-06-24 | 2023-08-01 | 邦彦技术股份有限公司 | 可信度量方法、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299311A (zh) * | 2011-12-29 | 2013-09-11 | 英特尔公司 | 用于可信引导优化的方法和设备 |
WO2015112128A1 (en) * | 2014-01-22 | 2015-07-30 | Hewlett Packard Development Company, L.P. | System firmware configuration data |
CN106339301A (zh) * | 2016-08-18 | 2017-01-18 | 浪潮集团有限公司 | 一种获取tpm操作日志的方法 |
CN107292176A (zh) * | 2016-04-05 | 2017-10-24 | 联想企业解决方案(新加坡)有限公司 | 用于访问计算设备的可信平台模块的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026422A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a backup hardware trusted platform module in a hypervisor environment |
US20070174600A1 (en) * | 2005-12-02 | 2007-07-26 | Microsoft Corporation | Interface for communicating physical presence requests |
US7624283B2 (en) * | 2006-02-13 | 2009-11-24 | International Business Machines Corporation | Protocol for trusted platform module recovery through context checkpointing |
US9122893B1 (en) * | 2014-02-24 | 2015-09-01 | International Business Machines Corporation | Trusted platform module switching |
US10601955B2 (en) * | 2017-02-09 | 2020-03-24 | Intel Corporation | Distributed and redundant firmware evaluation |
-
2018
- 2018-01-24 CN CN201810068740.7A patent/CN110069361B/zh active Active
- 2018-09-05 US US16/121,954 patent/US10909247B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299311A (zh) * | 2011-12-29 | 2013-09-11 | 英特尔公司 | 用于可信引导优化的方法和设备 |
WO2015112128A1 (en) * | 2014-01-22 | 2015-07-30 | Hewlett Packard Development Company, L.P. | System firmware configuration data |
CN107292176A (zh) * | 2016-04-05 | 2017-10-24 | 联想企业解决方案(新加坡)有限公司 | 用于访问计算设备的可信平台模块的方法和系统 |
CN106339301A (zh) * | 2016-08-18 | 2017-01-18 | 浪潮集团有限公司 | 一种获取tpm操作日志的方法 |
Also Published As
Publication number | Publication date |
---|---|
US10909247B2 (en) | 2021-02-02 |
CN110069361A (zh) | 2019-07-30 |
US20190228157A1 (en) | 2019-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069361B (zh) | 用于tpm故障切换的方法和装置 | |
US10719400B2 (en) | System and method for self-healing basic input/output system boot image and secure recovery | |
US10853179B2 (en) | Information handling system and method for restoring firmware in one or more regions of a flash memory device | |
JP5540155B2 (ja) | プラットフォーム独立メモリ論理の提供 | |
US9501289B2 (en) | Method of a UEFI firmware and computer system thereof | |
US8601255B2 (en) | Approaches for updating bios | |
CN109791515B (zh) | 用于安全恢复主机系统代码的系统和方法 | |
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
US11604711B2 (en) | Error recovery method and apparatus | |
US20080184023A1 (en) | Computer platform boot block program corruption recovery handling method and system | |
US7290128B2 (en) | Fault resilient boot method for multi-rail processors in a computer system by disabling processor with the failed voltage regulator to control rebooting of the processors | |
US20190004818A1 (en) | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof | |
US11704198B2 (en) | Method and apparatus for providing recovery from a computing device boot up error | |
US20210240831A1 (en) | Systems and methods for integrity verification of secondary firmware while minimizing boot time | |
US7107398B2 (en) | Changing a mode of a storage subsystem in a system | |
US7831858B2 (en) | Extended fault resilience for a platform | |
US11726879B2 (en) | Multiple block error correction in an information handling system | |
US20170262341A1 (en) | Flash memory-hosted local and remote out-of-service platform manageability | |
US20220342751A1 (en) | Detecting and recovering a corrupted non-volatile random-access memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240623 Address after: 23 / F, Lincoln building, 979 King's road, Quarry Bay, Hong Kong, China Patentee after: Lenovo Global Technology International Co.,Ltd. Country or region after: Hong-Kong Address before: Singapore City Patentee before: Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Country or region before: Singapore |