CN1831774A - 用于减小固件的存储需求并提供固件的安全更新和存储区域的系统和方法 - Google Patents
用于减小固件的存储需求并提供固件的安全更新和存储区域的系统和方法 Download PDFInfo
- Publication number
- CN1831774A CN1831774A CNA2006100711812A CN200610071181A CN1831774A CN 1831774 A CN1831774 A CN 1831774A CN A2006100711812 A CNA2006100711812 A CN A2006100711812A CN 200610071181 A CN200610071181 A CN 200610071181A CN 1831774 A CN1831774 A CN 1831774A
- Authority
- CN
- China
- Prior art keywords
- rom
- firmware
- virtual
- modules
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Abstract
讨论了一种使增加数量的固件对于计算机预启动可用的机制。为了增加对预启动可用的固件数量,设计决定在建立过程期间哪些固件的段需要放置在ROM部分以及哪些固件的段可以放置在其它地方。远离ROM存储的固件的段称作“虚拟ROM模块”。虚拟ROM模块的每一个被指定一个产生的唯一标识符,使用算法如MD5或SHA-1为每个模块构造“消息摘要”。在ROM映像的软件建立中,为每个虚拟ROM模块创建的消息摘要—唯一标识符对用作对虚拟模块的逻辑指示器。另外,把搜索路径变量设置到非易失性存储器的ROM映像中。该搜索路径为搜寻虚拟ROM模块提供一个或多个位置,并可以在随后时间点被更新。本发明也允许安全存储和固件的更新。
Description
技术领域
一般来说,本发明的说明性实施例涉及在PC上执行POST的固件、包括BIOS固件,更具体地说,涉及减小固件的存储需求、安全地存储固件并以安全方式更新固件。
相关申请
本发明要求2005年2月2日提交的美国申请号为60/649486标题为“Systemand Method for reducing Merory Requirements of Firmware and Providing SecureUpdates and Storage Areas for Firmware”的美国临时申请的权益和优先权。
背景技术
近年来,对PC预启动所利用的大量固件代码的需求增大。固件是已经写入到只读存储器(ROM)模块的软件,该模块包括但不局限于ROM、PROM、EPROM、EEPROM和闪存。对固件需求增加的一个原因是在启动PC和准备载入操作系统(OS)时需要通过固件(BIOS或架构)(这里使用的术语“架构”指Intel公司(Santa Clara,California)的“EFI平台创新架构”,并在下面将进一步讨论)进行操作的复杂度增加。需求增加的另一原因是在操作系统装载前创建在预启动环境中运行的额外增值特征在产业中存在相当大的利益。
不幸的是,存在许多与使用固件的传统方法相关的问题。由于产业中存在将PC的硬件成本降低的强刺激的事实,在ROM或闪存部件上可利用的存储的增加已不能完全满足对预启动可利用的更大量固件代码增加的需求。另外,增加固件代码的需求也需要与其它软件环境通信的安全装置、包括因特网上的服务器和在操作系统装载后运行的代码。并且,虽然存在用于安全内容预启动的解决方法,但是这些现有的解决方法依赖于在本地硬盘上可用的专用分区,或者依赖于能够存储和隐藏密钥的单独的安全芯片。对于以安全方式更新在闪存部件存储的固件的任务,也引起了广泛的关注。由于不能顺利完成更新会导致计算机变得不能工作,所以更新存储在闪存部件上的固件的现有方法包括对计算机的未来可操作性的风险。允许这样的更新也会产生小的安全隐患,因为闪存固件经常会完全访问计算机的内部。
发明内容
本发明的示例实施例提供了一种用于使更多数量固件对于计算机预启动可用的机制。为了增加预启动可用的固件数量,在建立过程期间设计决定固件的哪些段需要设置在ROM部分并且固件的哪些段可以位于其它地方。远离ROM存储的固件段称为“虚拟ROM模块”。为每个虚拟ROM模块指定一个产生的唯一标识符,使用算法如MD5或SHA-1为每个模块创建“消息摘要”。消息摘要唯一地代表虚拟模块,使得如果虚拟模块改变时,消息摘要也改变。在ROM映像(image)的软件创建中,为每个虚拟ROM模块创建的消息摘要-唯一标识符对用作虚拟模块的逻辑指示器(pointer)。另外,把搜索路径变量设置到非易失性存储中的ROM映像中。该搜索路径提供寻找虚拟ROM模块的一个或多个位置,并可以在后面的时间点被更新。
在制造过程期间把实际ROM映像(包含指向虚拟模块的逻辑指示器)设置到PC上的ROM或闪存部分。当实际ROM映像要执行虚拟ROM模块时,它检索与虚拟ROM模块相关的唯一标识符,并使用搜索路径变量和唯一标识符定位虚拟ROM模块的副本。它可以从本地磁盘、从CD ROM或任何其他存储媒介装载模块,以及通过网络下载模块。一旦已经装载了模块,它在模块上运行相同的消息摘要算法,并在执行前确认该模块没有改变。
本发明的示例实施例也允许以安全方式更新固件。在实际ROM中使用两个附加属性以涉及虚拟ROM模块。这两个附加属性是版本属性和对能验证更新的单独模块的参考。这个单独模块可以或不可以并入实际ROM中-它可以是用于另一虚拟ROM模块的唯一标识符。更新过程更新与第一虚拟ROM模块相关的消息摘要和与第一虚拟ROM模块相关的版本属性。该更新过程也产生了相应文件的新副本(其可以位于本地磁盘),当以对应于上述过程的方式“散列”相应文件时(“散列”在这种情况下意思是对文件运行消息摘要算法中其中一个)会“匹配”新消息摘要。
在下载更新模块后,验证模块检验进行更新是可接受的。通过已知用于验证经过因特网传播的内容的多个已知机制的其中之一如公-私密钥对来验证经过因特网传播的内容,以便使用SHA-1算法加密或解密由内容制成的消息摘要。可以使用多个更新验证模块,每一个更新验证模块是指由不同的固件供应商提供的固件,每一个该供应商可以采用不同的确认配置。即使在不同的固件供应商使用相同的固件机制的情况下,每个供应商可以使用他们自己的用于标记内容的公-私密钥对。
本发明的示例实施例也提供个人计算机的安全存储的创建和访问安全存储。为了安全存储,ROM或闪存部件的区域需要被做成对预启动不运行的随后代码要么只读要么完全不可读。本发明使ROM或闪存部件的区域只读(称作“不可写入”)和完全不可读(指“不可读”)。为了检测存储器上的改动需要不可写入,而为了能够对私钥加密需要“不可读”。
创建和访问安全存储区域的过程在实际ROM中存储“虚拟ROM”模块参考或指示器,该参考或指示器包括待检索的模块的唯一标识符,实际ROM包含用于整个机器的产生的唯一标识符。在检索虚拟ROM模块时,同时使用模块标识符和机器标识符。一旦检索到虚拟ROM模块,使用存储在虚拟ROM模块参考中的消息摘要验证模块。如果需要,在此之后,使用存储在实际ROM别处的密钥来对虚拟ROM模块解密。
预启动码在存储器中对虚拟ROM模块(其实质上是安全存储单元)更新。在完成这些更新的时间点,虚拟ROM模块被写回到其被检索的位置。如果需要,通过第一次使用密钥对模块加密、产生虚拟ROM模块的新消息摘要、并使用模块标识符和机器标识符将新模块写回到其存储位置,写出涉及颠倒上述步骤。同样,在实际ROM中的虚拟ROM模块参考必须被更新以反映新的消息摘要值。随后,在实际ROM中的虚拟ROM模块参考和用于PC的机器标识符是不可写入的。另外,如果该存储被加密,并且使用密钥,则包含密钥的实际ROM区是不可读的。
在本发明的一个方面,用于减小存储在电子装置中的固件的存储要求的方法包括划分固件映像以创建多个虚拟ROM模块的步骤。多个虚拟ROM模块存储在位于电子装置上的ROM映像外部的至少一个位置处。该方法还包括在固件建立时设置在ROM映像中的对于多个虚拟ROM模块的每一个的参考。每个参考包括用于相关虚拟ROM模块的消息摘要和唯一标识符。该方法也在预启动期间使用与多个虚拟ROM模块中所选择的一个相关的参考中的唯一标识符来检索多个虚拟ROM模块中所选择的一个。该方法在预启动期间使用在与多个虚拟ROM模块中所选择的一个相关的参考中的消息摘要进一步验证从多个虚拟ROM模块中所选择的一个。
在本发明的另一方面,用于减小存储在电子装置中的固件的存储要求的系统包括在建立过程中创建的多个虚拟固件映像模块。该多个虚拟ROM模块存储在位于电子装置上的固件ROM映像外部的至少一个位置上。该系统也包括固件ROM映像。该固件ROM映像包括对于多个虚拟ROM模块每一个的参考,每一个参考包括相关虚拟ROM模块的消息摘要和唯一标识符。该唯一标识符用于在预启动期间检索参考的映像模块,该消息摘要用于在执行检索的映像模块之前验证映像模块的真实性。
在本发明的一个方面,用于减小存储在电子装置中的固件的存储需求的方法包括划分固件映像以创建虚拟ROM模块的步骤,该虚拟ROM模块存储在位于电子装置的ROM映像外部的位置。该方法也包括在固件建立时设置在ROM映像中的对于虚拟ROM模块的参考。该参考包括用于虚拟ROM模块的消息摘要和唯一标识符。另外,该方法也在预启动期间使用与虚拟ROM模块相关的参考中的唯一标识符来检索虚拟ROM模块。在预启动期间使用在与虚拟ROM模块相关的参考中的消息摘要验证虚拟ROM模块的真实性。
附图说明
本发明在所附权利要求书中提出了其特殊性。结合附图参考下列描述,将会更好地理解上述本发明的优点和本发明的更多优点,附图中:
图1示出VROM模块和产生的消息摘要和GUID之间的关系;
图2示出在创建实际ROM映像时VROM逻辑指示器的使用;
图3示出分布过程的视图,其中实际ROM映像存储在ROM部件中,并且虚拟ROM模块可以存储在磁盘上或因特网上;
图4是建立过程的流程图;
图5示出检索过程的视图,其中使用虚拟ROM“指示器”检索未驻留在实际ROM部件中的虚拟ROM模块;
图6是检索过程的流程图;
图7示出在建立过程期间为每个VROM模块产生的附加信息、版本号和对更新有效器的参考;
图8示出存储在ROM映像中的更新有效器和“修改”的VROM指示器;
图9示出用于更新有效器的公-私密钥的产生;
图10示出产生“密钥”的流程图,该“密钥”与使用公-私密钥对的私钥的模块更新相关联;
图11示出更新的VROM模块的检索和确认;
图12示出用于更新的检索的流程图,包括对验证密钥的流程图的参考;
图13示出用于密钥的验证的流程图;
图14示出用于创建固件的安全存储区的组件的分解(breakdown);
图15示出对安全存储区加密和将安全存储区保存到第二存储位置(在这种情况下,硬盘)。
图16示出第一次和随后写入安全存储的流程图;和
图17示出第一次和随后读取安全存储的流程图。
具体实施方式
本发明的说明性实施例增加了可用于计算机预启动的固件数量,提供了对固件的安全更新机制,并提供了用于创建和访问安全存储区的方法。为了更清楚的解释,下面依次分别讨论本发明的每一方面。这里描述的本发明的示例实施例涉及到API的英特尔EFI平台创新架构(“架构”)。转换成非架构解决方案之上的实施例对于本领域的技术人员来说是显而易见的。另外,虽然该讨论集中于PC,但也认为包括存储在非易失性存储部件上的预编程固件映像的其它非PC计算装置落入本发明的范围内。
在详细讨论本发明之前,讨论由本发明使用的BIOS和架构组件将是有帮助的。英特尔EFI平台创新架构(“架构”)是BIOS的功能性和能力的完全再实现。BIOS通常在Intel X86计算机上以16位实模式操作,架构能够运行在32位或64位存储模式中,且不会被限制到特定的平台体系结构。同样,BIOS通常几乎完全以汇编码编写,架构几乎完全以C编程语言编写。
架构提供EFI(“可扩展固件接口”)的实现,EFI是完全从固件的细节和实现提取的接口规范,该固件从装载和运行操作系统的软件来启动系统。EFI被定义为完全不“透明”的接口,以使得可以在现有BIOS之上以及从暂存区创建EFI的实现、如架构创建。“不透明”在这里表示接口的访问者或客户对基础实现的内部不可见。访问者唯一的访问是通过接口本身。
EFI引入了一组标准机制,即预启动组件用于相互交换,这也由架构使用,并且与本发明的不同实施例有关。部件之间的交互定义为“协议”,“协议”均为不透明的C语言API。协议由“驱动程序”执行,驱动程序是能够分别载入存储器并被执行的单独组件。每个协议都具有C语言源代码“名称”和其自身唯一的标识符(这被实现为“GUID”或全球唯一标识符),该标识符用于在执行时间将它与其它协议区分开。当驱动程序装载到存储器中时,它向EFI环境描述它所支持的一组协议。EFI环境留意在存储数据库中的这些协议,让其它预启动代码搜索这些协议并访问它们,并在已经“输出”这些协议的驱动程序中找到代码并执行代码,无需知道特定驱动程序中协议的基础实现。
组件之间交互的不透明风格应当为那些精通COM或CORBA的人熟悉。特别是,在COM中也使用唯一标识符(GUID)来“查找”组件的接口。如同COM和CORBA一样,EFI被设计成“可扩展的”。可以定义新的协议,并且可以创建新的现有协议的实现。在任一情况下,这些扩展以均匀方式适应基础环境。
驱动程序的概念对于那些精通当代操作系统的人是熟知的,其中许多不同类型的硬件需要以统一的方式由软件支持。在这些操作系统驱动环境中,对于不同类别的硬件装置定义了通用API。这些通用API隐藏了基础硬件差异的细节,而实现相同API的不同驱动程序负责处理硬件变化。
除了由EFI定义的预启动组件之间的交互的标准机制,本发明说明性实施例支持仅在架构中定义的某些扩展。架构引入“固件卷(Firmware Volume)”的概念,这是为直接在ROM部件中的存储特别定义的平面文件系统。固件卷定义了与该文件系统交互的一组协议。在架构中,所有存储在ROM映像中的文件存储在固件卷中。由此在建立架构的过程期间产生固件卷。
在架构固件卷说明书中定义的扩展协议其中之一是“GUIDed SectionExtraction Protocol”。该协议以这样的方式被定义,即厂商能够利用新定义的“段(section)”(这是文件的部分)扩展固件卷,这些段的表示是完全不透明的。该扩展发生的方式是固件卷中的文件的段头部包含GUID,由固件卷代码使用GUID来定位实现“GUIDed Section Extraction Protocol”的驱动程序。通过协议调用该驱动程序,并且随着文件从固件卷中被提取并放置在存储器中,传送不透明表示(opaqe representation)。可能传送的例子包括不透明表示的解密或对不透明表示检查数字签名。
虽然这里包含的许多例子提到架构环境,但应当理解本发明也可以利用更多传统的BIOS组件通过对架构描述进行调整来实现,该调整对于本领域的技术人员来说是显而易见的。
本发明的示例实施例在建立过程期间使用嵌入到ROM映像中的唯一标识符和消息摘要的组合,以安全识别未存储在ROM中的固件模块。其它传统解决方法提供主要对隐藏或安全的磁盘分区增加在预启动中可访问的固件的安全方法,但这些其它解决方法不要求在建立ROM映像的时候存在固件。SHA-1或其它类似消息摘要算法的使用使得很难创建产生相同消息摘要的不同模块。由于消息摘要嵌入在ROM映像中,改变消息摘要本身需要更新ROM部件。一旦消息摘要已经嵌入到ROM映像中,存在多种现有方法检测或防止ROM映像的篡改,例如使闪存部件区域只读的TPM硬件和标记,这在本发明的范围之外但是对本领域的技术人员来说是公知的。因为消息摘要嵌入在ROM映像中,如果ROM映像是安全的并且不能被篡改,那么虚拟ROM模块实际上也是安全的并且不能被秘密地改变。递归方法也是可能的,因为虚拟ROM模块本身能包含指向存储在别处的其它虚拟ROM模块的“虚拟ROM指示器”。本发明的安全性对于所有虚拟ROM模块是可传递的,因此对于可用于安全预启动环境的固件数量几乎没有限制,只要所有的固件能在建立过程中可用即可。
为每个虚拟ROM模块使用唯一标识符也为虚拟ROM模块提供了单独的位置。每个虚拟ROM模块可以存储在多个位置中-在磁盘上、在CD-ROM上、在局域网上或在因特网上。因为消息摘要算法提供了验证模块的安全方法,所以位置本身或者将模块从存储位置其中之一传输到PC上的存储器的机制都不要求是安全的。
为计算机预启动提供附加固件的第一步骤是设计决定什么应该包括在实际ROM映像中并且什么应该从实际ROM映像中省去。从实际ROM映像中省去的信息被打包成一个或多个分开可访问的虚拟ROM模块。处于性能原因,沿其最通用路径启动PC所需的软件经常留在实际ROM中。然而,不常使用的其它软件例如设置UI、对其它语言的支持、不常用的启动选项、恢复或重新刷新固件以及许多可能的预启动应用和实用程序可以设置在实际ROM外部的虚拟ROM模块中。
虚拟ROM模块可以是架构“固件卷”,固件卷是组成包括许多文件的平面文件系统的单独的软件包。这些包括的文件的每一个可以是架构中支持的任一类型的文件。架构固件卷的优点是存在支持访问嵌入文件的架构固件(驱动程序)。然而,虚拟ROM模块可以是任何其它类型的文件,包括数据和可执行代码。如上所述,设计决定可以产生虚拟ROM模块的多级嵌套。换句话说,一些虚拟ROM模块可以包含指向其它虚拟ROM模块的虚拟ROM指示器。
对于每个这样的虚拟ROM模块,产生包括SHA-1消息摘要和128位GUID(全球唯一标识符)的虚拟ROM指示器。该消息摘要和GUID可以使用任何已知算法产生。产生的GUID广泛地用于架构中,但也同样用于计算的其它方面。GUID和SHA-1消息摘要产生了具有极低复制概率的值。图1描述了VROM模块和产生的消息摘要和GUID之间的相应关系。对于第一VROM模块2,包括GUID 4和消息摘要6的第一VROM逻辑指示器20与第一VROM模块相关联,并在第一VROM模块的基础上产生。对于第二VROM模块12,产生包括GUID 14和消息摘要16的分开的唯一VROM逻辑指示器22。
在为虚拟ROM模块产生GUID和消息摘要之后,根据标准ROM代码和虚拟ROM指示器建立实际ROM映像。在图2中示出该建立过程。指向第一VROM模块2的第一VROM逻辑指示器20包括产生的与第一VROM模块相关的GUID 4和消息摘要6。指向第二VROM模块12的第二VROM逻辑指示器包括产生的与第二VROM模块相关的GUID14和消息摘要16。第一VROM逻辑指示器20和第二VROM逻辑指示器22以及规则ROM代码24一起用于建立ROM映像30。加入到ROM映像30的其它ROM代码24是设计者觉得最适合位于实际直接访问的ROM部件上的ROM代码。
从ROM映像30存储和检索虚拟ROM指示器20和22的规范依赖于具体实施例。在基于架构的一个实施例中,另一固件卷(其在ROM映像中)包含各种类型的“文件”。这些文件的每一个构建有多个段,其中每个段涉及文件的一些特殊属性。由于在固件卷中每个这样的文件都是由GUID唯一标识的,这个GUID可以是与用于检索虚拟ROM模块的标识符相同的标识符,并且该虚拟ROM模块变成架构卷中的一个“文件”。可使用“Guided Section ExtractionProtocol”实现另一这样的段。该段包含识别进行提取所需的驱动程序的GUID和验证内容的SHA-1消息摘要(已经包括作为文件的标识符的GUID)。另外,其它表示也可以在架构中或作为现有BIOS的一部分被构建,只要提供GUID和SHA-1消息摘要。
图3示出如何将实际ROM映像放入ROM中,并示出如何在别处分布虚拟ROM模块。将包括第一VROM指示器20、第二VROM指示器22和其它ROM代码24的ROM映像30放入ROM部件40、如闪存。第一VROM指示器指向的实际第一VROM模块2可位于与ROM部件40相同的电子装置上的硬磁盘42中。第二VROM指示器指向的第二VROM模块12可以存储在可通过因特网44或其它类型网络访问的位置46上。本领域技术人员可以理解,将VROM模块分布到其它存储位置也是可能的,这也在本发明的范围之内。应当注意,分布事件不一定都同时发生。虽然实际ROM映像对于启动PC是必需的,但虚拟ROM模块仅以一些其它方式在某些其它时间点可用。也不需要用于虚拟ROM模块的单个分布机制。每个这样的虚拟ROM模块可采用各种不同方式分布。
分布机制的一个例子可适用于升级计算机中的硬盘。在固件建立期间,首先使将驱动内容从一个硬盘拷贝到另一硬盘的固件可用。然而固件没有构成实际ROM的一部分,但是指向它的实际ROM指示器存储在实际ROM映象中。在磁盘升级的时候,这可能是许多年以后,相应的虚拟ROM模块在必须用来执行更新的CDROM上是可用的。由于文件先前已经“包括”在建立过程中,因而它们能够被相信并从CD-ROM运行。可选择地,拷贝软件的硬盘驱动程序可以从因特网下载,并以同样的方式验证。在建立PC的磁盘映像期间,其它分布机制可以是合适的。磁盘映像可以包括虚拟ROM模块能被拷贝到的非安全磁盘分区。
图4是接着本发明示例实施例在建立ROM映像的步骤期间使用虚拟ROM模块的步骤顺序的流程图。建立在步骤50开始,确定是否存在更多虚拟ROM模块(步骤51)。如果存在虚拟ROM模块,则产生GUID并指定给虚拟ROM模块(步骤52)。然后产生用于虚拟ROM模块的消息摘要、如SHA-1消息摘要(步骤54)。然后根据GUID-消息摘要对构造虚拟ROM逻辑指示器(步骤56)。重复该步骤直到确定没有更多的虚拟ROM模块(步骤51)。然后组合包括虚拟ROM逻辑指示器和规则ROM代码的ROM映像(步骤58),并且建立过程结束(步骤60)。
一旦分布了虚拟ROM模块,它们可以被检索到PC的存储器或ROM部件40所位于的其它电子装置中。图5示出检索过程的视图。ROM映像30装载到PC存储器70中。在ROM映像30中的VROM逻辑指示器20和22指出存储在硬盘42和存储位置46中的第一和第二VROM模块2和12的存在和身份。如下面进一步描述的,该第一和第二VROM模块2和12然后被检索并被装载到存储器70中。可能存在检索特定VROM模块的各种原因,包括执行知道需要装载特定虚拟ROM模块的一些其它固件,或与一些接口交互的使用者想要一些不在实际ROM中的固件被执行。
在基于架构的实施例中,其中虚拟ROM指示器作为段存储在固件卷中,检索VROM模块的决定实现为将“文件”“装载到存储器”的决定,该“文件”指段。在这个实施例中,支持“Guided Section Extraction Protocol”的如前所述的架构驱动程序实现图6中的流程图的方法。应当理解,虽然该描述指的是试图检索虚拟ROM模块作为“检索驱动程序”的固件,但该固件不可以作为非架构实施例中的驱动程序来实现。
检索驱动程序能够使用存储在非易失性存储器中的变量,该变量描述了“到哪里找”驱动程序的搜索路径。通常在操作系统中使用搜索路径以提供能在存储器中找到、装载和执行的称为可执行程序的方法。虽然存在能够支持这种搜索的多种实现机制,但根据本发明的搜索路径的使用是类似的。在架构实施例中,变量作为可被用户或一些其它软件在任何时候更新的EFI NVRAM变量存储在ROM部件。
检索驱动程序依次迭代通过搜索路径元素。该搜索路径表示搜索虚拟ROM模块的“优选顺序”。对于在搜索路径中的每一个这种元素,该驱动程序试图检索使用那个元素的虚拟ROM模块。每个元素可以编码为“URI模板”,其中,作为在浏览器和因特网中广泛使用的通用资源标识符(或通用资源定位器)不完全地指定相应文件的位置。该不完全的指定可以仅是利用与虚拟ROM模块相关的GUID填充的变量。一旦填充了,这种“完全的”URI可以指在本地磁盘分区上的一些目录中的文件、能够使用超文本传输协议(HTTP)或一些其它公知协议在因特网上检索到的文件。同样,在架构中,URI中的每个“方案”的检索机制(识别“file:”“Http:”“ftp:”等的部分)本身可以交给理解特定协议的不同架构驱动程序。
具有任何特定元素的检索可能不会找到相应的虚拟ROM模块,在这种情况下企图检索搜索路径中的下一元素。如果检索企图成功,则虚拟ROM模块被装载到存储器中。在这种情况下,通过运行与构建过程期间使用的算法相同的消息摘要算法对虚拟ROM模块的消息摘要进行确认。如果虚拟ROM模块的消息摘要匹配,则虚拟ROM模块是可用的。然而,如果消息摘要不匹配,则检索进行到搜索路径的下一元素。
在确认消息摘要后,作出虚拟ROM模块是否可以“更接近于”实际ROM的决定。“更近”的定义可以是在留出用于高速缓存虚拟ROM模块的本地磁盘驱动器上的标准位置。如果存在这样的位置,并且该位置在搜索路径中比虚拟ROM模块刚被检索的位置指定的更早,则在该虚拟ROM模块被访问前将其从存储器写到这个位置。
图6是接着本发明示例实施例检索虚拟ROM模块的步骤顺序的流程图。检索步骤在80开始,确定在搜索路径中是否存在更多元素(步骤81)。如果在搜索路径中存在附加元素(步骤81),则从搜索路径中选出下一位置(步骤82)。然后使用虚拟ROM模块的GUID试图将虚拟ROM模块检索到存储器中(步骤84)。如果检索成功,则产生用于虚拟ROM模块的SHA-1消息摘要(步骤86)并将其与存储的虚拟ROM模块比较(步骤88)。如果消息摘要匹配(步骤89),则作出虚拟ROM模块是否可以被高速缓存地更近的决定(如上所述)(步骤91)。如果虚拟ROM模块可以被高速缓存地更近(步骤91),则它在搜索路径中就会被高速缓存地更近(步骤92)。然后将虚拟ROM模块装载到它可以被访问的存储器中并且检索步骤结束(步骤96)。
本发明的示例实施例也可用于提供用于安全地对固件提供更新的机制。修改上述产生唯一标识符和消息摘要的步骤包括产生两个新的属性-版本号和用于更新验证过程的唯一标识符。例如,在架构实施例中,架构卷“文件”可以包含版本号的段-具有可选提供文本串的单调增长数值。同样,架构“GuidedSection Extraction Protocol”包含涉及支持段提取的驱动程序示例的GUID。换句话说,可使用对下载和确认虚拟ROM模块的内容负责的分离驱动程序。该驱动程序可以调用一组嵌套的驱动程序。
图7示出需要为每个虚拟ROM模块封装的附加属性。VROM模块用于产生VROM指示器110。VROM指示器110包括GUID 112和SHA-1消息摘要114。另外,VROM指示器110也包括版本号116和唯一识别更新验证过程的更新验证标识符118。图8示出用于模块的相应虚拟ROM指示器110是怎样与“更新验证器”代码120以及实际ROM130的其它部分一起封装到实际ROM映像140中的。应当注意,并不要求“更新验证器”模块120存储在实际ROM 140中一它可以作为附加虚拟ROM模块存储。同样,可以在架构中实现作为在Guided section Extraction协议驱动程序上的变量的更新验证代码(然而,在架构实现中,至少一组Guided Section Extraction协议驱动程序必须存储在实际ROM中。
在一个实施例中,使用PGP类解决方法用于确认。(PGP或“优良保密协议”是一组用于数字签名和/或对电子邮件消息进行加密的算法,这对于本领域技术人员来说是公知)。这个过程在图9中示出。在固件建立时,对于特定的“更新验证器”模块,通过密钥产生过程150产生公私数字密钥对。用于该过程的算法可以是任何标准算法不对称密钥算法、例如RSA。利用更新验证器模块160存储公钥152,固件厂商将私钥154存储在其自己的单独位置170中。下面讨论用于更新验证的附加备选安全机理。
图1O的流程图示出在为一个或多个虚拟ROM模块产生更新时私钥的使用。为了利用本发明示例实施例产生更新,在更新准备好的时候200,厂商使用其私钥以产生更新“模块密钥”。厂商代码对新模块(新模块可包括版本号)运行例如SHA-1的算法(步骤202),然后使用公-私密钥的私钥将所得的消息摘要加密(步骤204)。成功产生导致由私钥标记的加密的更新模块密钥206。本领域技术人员可以知道类似的加密机制可以在其它实现中使用。
一旦产生更新,则更新可以被检索、验证然后被“修补”到虚拟ROM模块中。检索步骤需要版本检查。特定虚拟ROM模块的先前版本可以已经被下载并在“本地高速缓存”中可用。使用许多公知机制中的一种来确定何时以及如何检查较新的版本。该机制留给更新验证器来实现。例如,更新验证器可以周期地进行较新版本的验证。可选地,特定位置可“预留”用于更新,并总是被检查。这些更新可以由操作系统运行的代码来提供。在没有较新版本存在的情况下,进行上述在图6中描述的过程。不考虑检查更新的机制,如果检测到新版本,则它必须被验证。这个验证过程从根本上不同于上述用于原始虚拟ROM模块的验证过程,因为更新的虚拟ROM模块在建立虚拟ROM的初期是不可用的。
在本发明的一个实现中,与更新相关的“模块密钥”如图11和12中所述的那样被验证。使用公-私密钥的公钥将“模块密钥”解密,并利用更新验证器存储。然后模块本身被散列,比较两个结果是否相等。
图11提供了该步骤的一个可能实现的综述,其中已经装载到PC存储器200中的ROM映像210中的虚拟ROM指示器220逻辑地指向更新的虚拟ROM模块250。该更新的VROM模块250可以存储在可通过因特网255访问的厂商位置260中。更新的VROM模块260被下载到PC存储器200中并由更新验证器230使用公钥235验证,然后存储在本地硬盘270上。如前所述,虚拟ROM指示器的“修补”需要虚拟ROM指示器本身能够在这个过程期间被更新。出于安全的原因,更新过程也需要未授权方在处理中不能更新虚拟ROM指示器。而且,如上所述,如果原始虚拟ROM建立过程是安全的,并且存在用于防止后来未授权方更新ROM的一些机制,那么这个更新过程是非常安全的,因为为了进行更新仅执行授权的代码。一旦验证过程成功,更新验证器230更新存储在实际ROM映像210中的虚拟ROM指示器220,以使得它与新模块版本250一致,然后可选地在本地磁盘270上高速缓存更新的模块。更新涉及改变利用虚拟ROM指示器220存储的版本号和SHA-1消息摘要。
图12的流程图进一步示出更新过程。更新检索过程从280开始,确定是否存在未搜索的更新位置(步骤281)。如果存在未搜索的更新位置(步骤281),则选择搜索路径中的下一位置(步骤282)并使用更新模块GUID试图把较新的模块检索到存储器中(步骤284)。如果新版本存在(步骤285),则使用参考图10所述的模块密钥验证过程来验证模块(步骤288)。如果不存在VROM模块的新版本,则随后是标准检索处理(步骤286)。在存在较新的模块的情况下,试图验证(步骤289)。在验证成功的情况下,如上所述确定新模块是否可以被高速缓存地“更近”(步骤291)。如果新模块能够被高速缓存地更近,则它在搜索路径中被高速缓存地更近(步骤292)。不管高速管缓存,验证器过程更新VROM指示器以反映更新的模块(步骤294),然后访问存储器中的更新的模块(步骤296),在该点检索过程结束298。
图13中概括了接着本发明示例实施例用于验证与更新模块相关的模块密钥的步骤顺序。模块密钥验证过程从300开始,产生关于新模块的SHA-1消息摘要(步骤302)。本领域技术人员知道,在不脱离本发明范围的情况下,不同的实现可以使用用于这里讨论的加密和解密过程的不同消息摘要算法。然后使用公-私密钥的公钥将该模块密钥解密(步骤304)。比较这两个消息摘要以确认它们是否相等(步骤305)。如果比较显示是相等的消息摘要,那么验证306为成功的306。如果比较没有显示相同的消息摘要,那么验证就是失败的308。
如上面提到的,备选确认技术也可用作更新过程的一部分。只要未授权的读取不能访问ROM的一部分,则对称私钥可用于更新验证。下面将讨论这样作的技术。对于该技术,在建立过程中产生公共密钥,并由ROM以及厂商以加密形式存储。可以使用相同的对称密钥对更新“密钥”进行加密和解密。可选择地,可以利用可信任的服务器创建使用TLS或SSL的通信的安全隧道来下载更新。该验证以通信发生在可信任方为基础,而不是以利用更新本身传输的消息摘要为基础。
本发明的示例实施例也可用于创建和访问用于固件的安全存储。通过保持隐藏在ROM映像内的秘密密钥用于加密或签名,建立没有位于ROM映像中的安全存储块。可采用与上述任何虚拟ROM模块被访问和引用的方式相同的方式访问和引用安全存储,但如果存储区是在除本地磁盘之外的其它地方时,需要附加的唯一机器标识符。
在架构环境中,单个固件卷可用于保护、加密的存储,所述存储用于希望使用该存储的所有固件代码。固件卷的使用意味着从非ROM位置读取作为单个单位的存储,并作为单个单位写回非ROM位置。使用多个固件卷的其它解决方法也立即变得清楚了。这些附加固件卷可以要么由实际ROM访问,要么由第一固件卷以如上所述的递归方式访问。同样,每个这样的固件卷可以具有识别它是否被加密或不能写入的标记。
本发明的示例实施例可以在建立过程期间预留存储。在虚拟ROM的建立过程期间,特定文件被标记成需要加密的存储。这些文件的每一个担当由固件代码的特定块最终使用的一些加密存储区的占位符。建立过程将所有这些占位符结合到固件卷中,使用SHA-1算法产生用于固件卷的消息摘要,并在用于ROM部件的主固件卷中存储对这个固件卷的参考(或虚拟ROM指示器)。如前所述,这个虚拟ROM指示器包含用于参考的(加密存储)固件卷的唯一标识符和指示访问驱动器以检索固件卷的GUID。另外,它包含两个标记,一个示出它应当在运行时间被加密,第二个示出它还没有被加密。
用于实际ROM的建立过程也预留用于两个附加变量的空间:机器标识符和加密密钥。用于机器标识符的空间设置在标记为在预启动期间不可写入的固件卷中,而用于加密密钥的空间放置在标记为在预启动期间不可读取的固件卷中(将在下面详细描述该不可读取和不可写入)。随后,预启动代码可以决定检索第一次包含加密存储的固件卷。在考虑虚拟ROM指示器时,预启动代码确定访问的文件被标记为要加密,但是还没有被加密。在这种情况下,预启动代码使用上述相同机制检索文件的第一版本。由于还没有使用存储,因而在建立时间构造的相应固件卷的通用例子对于预启动代码的所有运行例子都是可用的。如上所述,将固件卷像前面一样装载到存储器中并以与其它固件卷相同的方式使固件卷对于预启动代码可访问。然而,提供访问该固件卷的驱动程序也留意“脏(dirty)”标记(指出它应当写回到持久存储媒介)以及虚拟ROM指示器的位置,因为后者需要被更新。在该固件卷中的文件的任何更新会导致设置脏标记。
图14示出一旦安全存储区(即实施安全存储区的固件卷)第一次被读取并且已经产生了机器ID和加密密钥,存储器320是如何分解的。存储区320包括ROM映像330和安全存储区340。该ROM映像包括可更新区域332和防止被更新的(写保护的)区域334。防止被更新的区域334保存安全存储VROM指示器335和用于唯一机器ID 336的存储区。该安全存储VROM指示器包括用于VROM模块的GUID、消息摘要337和加密标志333。该ROM映像也具有包括用于加密密钥339的存储区的防止被读取的(读保护的)区域338。
在一些时间点(虽然对固件卷的每次写入并不是必要的),预启动代码决定把修改后的固件卷写入到一些存储媒介。写入决定由前面段中描述的脏标记来驱动。预启动代码检测到还没有产生加密密钥和机器标识符。它产生机器标识符和加密密钥并将它们保存在实际ROM中它们各自的存储位置。可以使用任何用于产生唯一值的适当机制以产生这些标识符。一个解决方法是对两者都使用GUID。
在产生标识符之后,本发明的示例实施例然后在虚拟ROM指示器中检测应当被加密但还没有被加密的固件卷。它使用加密密钥对固件卷加密并对结果产生SHA-1消息摘要。对本发明的目的来说,可以使用任何适当的加密算法,包括Blowfi sh、DES/3DES、IDEA等。
在对固件卷加密并对结果产生消息摘要后,预启动代码然后必须确定在哪写入加密的固件卷。用于加密的固件卷的一个位置是在本地磁盘驱动器350上的一个目录,如图15中所示。然而,加密的固件卷340可以选择性地被存储在本地网络服务器上、在万维网或在其它可访问的位置。使用机器识别码336和识别固件卷文件的GUID 331的组合以把文件写入唯一位置。此时,预启动代码更新在实际ROM中的虚拟ROM指示器335,表明固件卷340已经被加密了,并反映新产生的消息摘要337。
图16的流程图中示出写入安全存储的过程。写入安全存储的过程从400开始,确定是否设置了脏标记(步骤401),该标记表示固件卷应当被写回到持久媒介。如果没有设定脏标记,则该过程结束420。如果设置了脏标记,确定VROM指示器335中是否设置了加密标记333(步骤403)。如果设置了加密标记(步骤403),则使用加密密钥对安全存储区域进行加密(步骤408)。如果没有设置加密标记(步骤403),则产生并存储机器ID(步骤404),以及产生并存储加密密钥(步骤406)。然后使用加密密钥对安全存储加密(步骤408)。
在对安全存储加密(步骤408)之后,对加密的安全存储产生消息摘要(步骤410)。然后使用机器ID 336和存储GUID 331将该加密的存储写入到第二存储(步骤412)。在写入安全存储(步骤412)之后,利用新消息摘要和加密的标记更新VROM指示器(步骤414),并且写入过程结束420。
图17的流程图示出本发明的示例实施例支持检索加密固件卷的预启动代码。读取安全存储过程从440开始,预启动代码确定VROM指示器中是否设置了加密标记(步骤441)。如果预启动代码根据虚拟ROM指示器335中的标记检测出已经对固件340加密(步骤441),则它利用机器标识符336和GUID 331的组合检索和读取固件卷(步骤444)。如果VROM指示器中没有设置加密标记,则预启动代码使用存储GUID从其它位置读取未加密的安全存储初始值(步骤442)。一旦读取了固件卷(步骤442或步骤444),对安全存储产生消息摘要(步骤446)。将产生的消息摘要与VROM指示器中的消息摘要进行比较和验证(步骤447)。如果不匹配,则安全存储读取失败(步骤448)。如果验证成功,则预启动代码对固件卷解密(步骤450),并使得它在存储器320中可用,读取过程结束460。如上所述,保持脏标记以确定是否对固件卷340作了修改。除了加密密钥和机器标识符不需要被重新创建之外,修改后的固件卷以与初始写入相同的方式被第二次或连续重复地写出存储。
在预启动处理中的某一点,本发明的示例实施例锁定了实际ROM的多个部分以防止进一步的篡改或访问。用于该目的的精确机制取决于硬件。该描述集中在该锁定发生时的特定时间点。该时间点可以是与修改后的固件卷通过被写入存储被冲刷(flush out)同时或之后。
不可读存储的一个EFI兼容时间点是在“退出启动服务”期间,这是O.S.装载程序通知EFI环境将要进行装载操作系统的时间点。而这是非常易于实现的(可以在退出启动服务期间通知驱动程序),这里的风险在于O.S.装载程序代码的信任级。如果O.S.装载程序代码作为固件建立过程的一部分以与其它虚拟ROM模块相同的方式一样是可用的,那么该解决方法是非常安全的。另一方面,如果以其它方式、例如使用逻辑启动协议访问O.S.装载程序代码,则认为不可读实际ROM存储的最佳时间点只是在启动选项之前。在架构技术中这被称作在“DXE”(驱动运行环境)和“BDS”(启动装置选择)之间的转变。本发明的示例实施例也允许预启动阶段产生数据,并以安全方式使数据对其它环境可用。两个文件在固件映像的建立过程期间保存在两个单独的安全存储固件卷中。第一文件专供公-私密钥的公钥之用,并保存在不可写的安全存储固件卷中。第二文件专供公-私密钥的私钥之用,并保存在不可读的安全存储固件卷中。
在预启动时,产生用于特定平台的唯一公-私密钥,并将其存储在各自的安全存储固件卷中。用于这个的算法可以是任何标准算法对称密钥算法例如RSA。随后,通过对内容运行消息摘要算法,并使用公-私密钥的私钥对该内容加密,预启动固件标记创建的用于递送到其它环境的内容。内容和所得加密的消息摘要都可以存储在任何存储位置。当另一环境接收预启动内容时,公-私密钥的公钥存储在不可写的存储器中,但可以被读取。使用该公钥对内容附带的消息摘要解密,然后把这个结果与重新应用到内容的相同消息摘要算法的输出结果进行核对。这个过程确保内容没有被修改。由于其它环境不可访问公-私密钥的私钥,私钥实际上是不可能以公-密钥的公钥用于解密和验证内容的方式产生或标记其它内容。
当然在不偏离本发明范围的情况下,可以进行一定的变化,在上面说明书中包含的或附图中示出的内容仅作为解释,并不拘泥于字面。本领域技术人员将会清楚,在附图中描述的步骤顺序和结构在不偏离本发明范围的情况下可以进行修改,并且这里包含的说明仅仅是本发明多个可能描述中的单个例子。
Claims (45)
1、一种用于减少存储在电子装置中的固件的存储需求的方法,包括:
划分固件映像以创建多个虚拟ROM模块,所述多个虚拟ROM模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
包括在固件建立时设置在所述ROM映像中的对于所述多个虚拟ROM模块的每一个的参考,每一个参考包括用于相关虚拟ROM模块的消息摘要和唯一标识符;
在预启动期间使用与所述多个虚拟ROM模块中所选择的一个相关的所述参考中的所述唯一标识符来检索所述多个虚拟ROM模块中所选择的一个,以及
在预启动期间使用与所述多个虚拟ROM模块中所选择的一个相关的所述参考中的所述消息摘要来验证所述多个虚拟ROM模块中所选择的一个。
2、如权利要求1所述的方法,进一步包括:
把搜索变量设置到ROM映像中,所述搜索变量指示从中可能检索所述多个虚拟ROM模块其中之一的至少一个位置。
3、如权利要求2所述的方法,进一步包括:
使用设置在所述ROM映像中的所述搜索变量检索所述多个虚拟ROM模块其中之一。
4、如权利要求1所述的方法,其中所述ROM映像存储在ROM(只读存储器)、PROM(可编程ROM)、EPROM(可擦除PROM)、EEPROM(电可擦除PROM)和闪存的组中的其中一个中。
5、如权利要求1所述的方法,进一步包括:
在多于一个位置中存储所述多个虚拟ROM模块。
6、如权利要求5所述的方法,其中所述多个虚拟ROM模块中的至少一个存储在通过网络可访问的位置中。
7、如权利要求1所述的方法,其中所述多个虚拟ROM模块中的至少一个是EFI架构固件卷。
8、如权利要求1所述的方法,其中存储在所述ROM映像中的至少一个固件文件存储在EFI固件卷中。
9、一种用于减少存储在电子装置中的固件的存储需求的方法,包括:
划分固件映像以创建虚拟ROM模块,所述虚拟ROM模块存储在位于所述电子装置的ROM映像外部的位置中;
包括在固件建立时设置在所述ROM映像中的对于所述虚拟ROM模块的参考,所述参考包括用于所述虚拟ROM模块的消息摘要和唯一标识符;
在预启动期间使用与所述虚拟ROM模块相关的所述参考中的所述唯一标识符来检索所述虚拟ROM模块,以及
在预启动期间使用与所述虚拟ROM模块相关的所述参考中的所述消息摘要验证所述虚拟ROM模块的真实性。
10、一种用于减小存储在电子装置中的固件的存储需求的系统,包括:
在建立过程中创建的多个虚拟固件映像模块,所述多个虚拟ROM模块存储在位于所述电子装置的固件ROM映像外部的至少一个位置中;和
固件ROM映像,所述固件ROM映像包括对于所述多个虚拟ROM模块的每一个的参考,每一个参考包括用于相关的虚拟ROM模块的消息摘要和唯一标识符,所述唯一标识符用于在预启动期间检索所参考的映像模块,所述消息摘要用于在执行所检索的映像模块之前验证所述映像模块的真实性。
11、如权利要求10所述的系统,其中所述ROM映像存储在ROM(只读存储器)、PROM(可编程ROM)、EPROM(可擦除PROM)、EEPROM(电可擦除PROM)和闪存的组中的其中一个中。
12、如权利要求10所述的系统,其中所述多个虚拟ROM模块的至少一个是EFI架构固件卷。
13、如权利要求10所述的方法,其中存储在所述ROM映像中的至少一个固件存储在EFI固件卷中。
14、一种保存用于减小在电子装置中的固件的存储需求的计算机可执行指令的媒介,所述指令包括:
划分固件映像以创建多个虚拟ROM模块的指令,所述多个虚拟ROM模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
包括在固件建立时设置在所述ROM映像中的对于所述多个虚拟ROM模块的每一个的参考的指令,每一个参考包括用于相关虚拟ROM模块的消息摘要和唯一标识符;在预启动期间使用与所述多个虚拟ROM模块中所选择的一个相关的所述参考中的所述唯一标识符来检索所述多个虚拟ROM模块中所选择的一个的指令,以及
在预启动期间使用与所述多个虚拟ROM模块中所选择的一个相关的所述参考中的所述消息摘要来验证所述多个虚拟ROM模块中所选择的一个的指令。
15、一种安全地更新电子装置中的固件的方法,包括:
划分固件映像以创建多个虚拟映像模块,所述多个虚拟映像模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
提供用于在预启动期间验证更新的虚拟映像模块的更新验证过程,所述更新验证过程由唯一标识符识别并包括解密处理;
包括在固件建立时设置在所述ROM映像中的对于所述多个虚拟映像模块的每一个的参考,每一个参考包括用于相关的虚拟映像模块的版本标识符、消息摘要和唯一标识符,在所述ROM映像中固件的建立也包括对所述更新验证过程的参考;
提供包括版本标识符的更新的虚拟映像模块;和
在预启动期间使用由所述ROM映像中的参考识别的所述更新验证过程来验证所述更新的虚拟映像模块。
16、如权利要求15所述的方法,进一步包括:
利用所述更新的虚拟映像模块代替在所述ROM映像中参考的所述多个虚拟映像模块中的一个。
17、如权利要求15所述的方法,进一步包括:
产生用于所述更新的虚拟映像模块的消息摘要;
通过加密处理对所述更新的虚拟映像模块的消息摘要进行加密,所述加密处理需要包含在所述更新验证过程中的解密处理来对所加密的消息摘要进行解密。
18、如权利要求17所述的方法,进一步包括:
使用包含在所述更新验证过程中的所述解密处理对所加密的消息摘要进行解密,所述解密作为所述更新的虚拟映像模块的验证的一部分执行。
19、如权利要求18所述的方法,进一步包括:
将所加密的消息摘要的解密与所述更新验证过程产生的新消息摘要比较以验证所述更新的虚拟映像模块。
20、如权利要求15所述的方法,进一步包括:
为所述更新的虚拟映像模块产生消息摘要;
用私钥对所述消息摘要进行加密;和
利用与所述私钥相关的公钥对所加密的消息摘要进行解密,由所述更新验证过程使用所述公钥。
21、如权利要求15所述的方法,其中所述更新验证过程将所述多个虚拟映像模块的其中之一的版本标识符与所述更新的虚拟映像模块的版本标识符比较以将所述更新的虚拟映像模块识别为新模块。
22、如权利要求15所述的方法,其中所述更新验证过程作为所述ROM映像的一部分被存储。
23、如权利要求15所述的方法,其中所述更新验证过程作为所述多个虚拟映像模块的其中之一存储。
24、如权利要求15所述的方法,其中所述更新的虚拟映像模块是EFI架构固件卷。
25、如权利要求15所述的方法,进一步包括:
为所述更新的虚拟映像模块产生消息摘要;
通过对称密钥对所述消息摘要进行加密;和
利用所述对称密钥对所加密的消息摘要进行解密,所述对称密钥由所述更新验证过程使用。
26、一种安全地更新电子装置中的固件的方法,包括:
划分固件映像以创建虚拟映像模块,所述虚拟映像模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
提供用于在预启动期间验证更新的虚拟映像模块的更新验证过程,所述更新验证过程由唯一标识符识别并包括解密处理;
包括在固件建立时设置在所述ROM映像中的对于所述多个虚拟映像模块的参考,所述参考包括用于相关的虚拟映像模块的版本标识符、消息摘要和唯一标识符,在所述ROM映像中固件的建立也包括对所述更新验证过程的参考;
提供包括版本标识符的更新的虚拟映像模块;和
在预启动期间使用由所述ROM映像中的所述参考识别的所述更新验证过程来验证所述更新的虚拟映像模块。
27、一种安全地更新电子装置中的固件的方法,包括:
划分固件映像以创建多个虚拟映像模块,所述多个虚拟映像模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
提供用于在预启动期间验证更新的虚拟映像模块的更新验证过程,所述更新验证过程由唯一标识符识别并包括解密处理;
包括在固件建立时设置在所述ROM映像中的对于所述多个虚拟映像模块的每一个的参考,在所述ROM映像中固件的建立也包括对所述更新验证过程的参考;
在可信任服务器上提供更新的虚拟映象模块;
使用所述ROM映象中的所述参考所识别的所述更新验证过程在所述电子装置和所述可信任服务器之间产生安全通道;以及
使用所述通道下载已识别的更新虚拟映像模块到所述电子装置中,该下载的虚拟映像代替在所述ROM映像中参考的所述多个虚拟映像模块中的一个。
28、一种安全地更新在电子器件中固件的系统,包括:
在建立过程中创建的多个虚拟固件映像模块,所述多个虚拟ROM模块存储在位于电子装置的固件ROM映像外部的至少一个位置中;
包括在验证更新的虚拟模块时使用的解密处理的更新验证过程;和
固件ROM映像,所述固件ROM映像包括对所述更新验证过程的参考和对于所述多个虚拟ROM模块的每一个的参考,每一个参考包括用于相关的虚拟ROM模块的版本标识符、消息摘要和唯一标识符,所述唯一标识符用于在预启动期间检索所参考的虚拟映像模块,所述消息摘要用于在执行所检索的映像模块之前验证所述虚拟映像模块的真实性。
29、如权利要求28所述的系统,其中所述更新的虚拟映像模块是EFI架构固件卷。
30、一种保存用于安全地更新电子装置中的固件的计算机可执行指令的媒介,该指令包括:
划分固件映像以创建多个虚拟映像模块的指令,所述多个虚拟映像模块存储在位于所述电子装置的ROM映像外部的至少一个位置中;
提供用于在预启动期间验证更新的虚拟映像模块的更新验证过程的指令,所述更新验证过程由唯一标识符识别并包括解密程序;
包括在固件建立时设置在所述ROM映像中的对所述多个虚拟映像模块的每一个的参考的指令,每一个参考包括用于相关虚拟映像模块的版本标识符、消息摘要和唯一标识符,在所述ROM映像中固件的建立也包括对所述更新验证过程的参考;
用于提供包括版本标识符的更新的虚拟映像模块的指令;和
在预启动期间使用由所述ROM映像中的所述参考识别的所述更新验证过程来验证所述更新的虚拟映像模块的指令。
31、一种用于提供装载操作系统前从ROM执行的计算装置的固件的安全存储的方法,包括:
提供保存固件的指定安全存储容器,所述固件在装载所述计算装置的所述操作系统之前执行;
使用安全存储加密密钥对所述指定安全存储容器进行加密;
包括在固件建立时设置在ROM映像中的对所加密的存储容器的参考;
使用至少一个唯一标识符将所加密的安全存储容器写入所述ROM外部的第二存储;
在装载所述计算装置的所述操作系统之前使用所述ROM映像中的所述参考检索所加密的安全存储容器。
32、如权利要求31所述的方法,进一步包括:
对所加密的指定安全存储容器产生消息摘要;和
在所述参考中包括所述消息摘要和至少一个唯一标识符。
33、如权利要求32所述的方法,进一步包括:
对所检索的加密安全存储容器产生新消息摘要;
通过比较消息摘要来识别所述新消息摘要和所述参考中的消息摘要之间的匹配;和
使用所述安全存储加密密钥对所述安全存储容器进行解密。
34、如权利要求31所述的方法,其中所述安全存储加密密钥存储在所述ROM映像的一部分中,在装载所述计算装置的所述操作系统之前所述ROM映像被装载到不可读存储单元。
35、如权利要求31所述的方法,其中所述至少一个唯一标识符包括用于所述计算装置的唯一机器标识符。
36、如权利要求35所述的方法,其中所述唯一机器标识符存储在所述ROM映像的一部分中,在装载所述计算装置的所述操作系统之前所述ROM映像被装载到不可写存储单元。
37、如权利要求31所述的方法,进一步包括:
通过网络访问所述第二存储。
38、如权利要求31所述的方法,其中所述指定安全存储容器是EFI架构固件卷。
39、如权利要求31所述的方法,进一步包括:
提供第二指定安全存储容器;
产生唯一公-私密钥对;
在所述指定安全存储容器中存储所述唯一公-私密钥对的公钥,在所述第二指定安全存储容器中存储所述唯一公-私密钥对的私钥,存储公钥的所述指定安全存储容器被装载到标为不可写的存储器中,所述第二指定安全存储容器被装载到标为不可读的存储器中;
利用预启动固件来标记创建用于递送到其它环境的内容,所述标记包括利用所述唯一公-私密钥对的所述私钥对内容的加密,所述内容在标记后递送;和
使用所述公-私密钥对的所述公钥对所标记的内容进行解密。
40、如权利要求39所述的方法,其中所述标记过程在利用所述私钥标记所述内容之前对所述内容运行消息摘要。
41、如权利要求39所述的方法,其中在利用所述公-私密钥的所述公钥对所述内容解密之前重新产生消息摘要以便验证所标记的内容。
42、一种用于提供从ROM执行预启动的计算装置的固件的安全存储的方法,包括
固件ROM映像,所述固件ROM映像包括对至少一个加密的指定安全存储容器的参考,所述加密的指定安全存储容器保存装载所述操作系统前要执行的固件,对所述至少一个加密的指定安全存储容器的参考包括用于所述加密的指定安全存储容器的消息摘要,使用所述消息摘要以便在执行所述加密的指定安全存储容器中的固件之前验证所述加密的指定安全存储容器的真实性;
指定的安全存储容器,所述指定的安全存储容器由安全存储加密密钥加密并存储在与所述ROM分开的第二存储中;和
安全存储加密密钥,用于最初对所述指定的安全存储容器加密并在从所述第二存储检索后对所述指定的安全存储容器进行解密,在装载所述操作系统之前所述安全存储容器位于标记为不可读的所述ROM映像的一部分中。
43、如权利要求42所述的系统,其中所述固件ROM映像最初存储在ROM(只读存储器)、PROM(可编程ROM)、EPROM(可擦除PROM)、EEPROM(电可擦除PROM)和闪存的组中的其中之一中。
44、如权利要求42所述的系统,其中所述固件ROM映像包括对第二指定的加密安全存储区的第二参考。
45、一种保存计算机可执行指令的媒介,所述指令提供装载操作系统前从ROM执行的计算装置的固件的安全存储,所述指令包括:
提供保存固件的指定安全存储容器的指令,所述固件在装载所述计算装置的所述操作系统之前执行;
使用安全存储加密密钥对所述指定安全存储容器进行加密的指令;
包括在固件建立时设置在ROM映像中的对所加密的存储容器的参考的指令;
使用至少一个唯一标识符将所加密的安全存储容器写入所述ROM外部的第二存储的指令;
在装载所述计算装置的所述操作系统之前使用所述ROM映像中的所述参考检索所加密的安全存储容器的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64948605P | 2005-02-02 | 2005-02-02 | |
US60/649486 | 2005-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1831774A true CN1831774A (zh) | 2006-09-13 |
CN100576173C CN100576173C (zh) | 2009-12-30 |
Family
ID=36979188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610071181A Active CN100576173C (zh) | 2005-02-02 | 2006-02-05 | 减小存储需求并提供固件安全更新和存储区的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (6) | US8181020B2 (zh) |
JP (2) | JP5437550B2 (zh) |
CN (1) | CN100576173C (zh) |
TW (2) | TWI444826B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009117896A1 (zh) * | 2008-03-25 | 2009-10-01 | 中兴通讯股份有限公司 | 基于ota的固件下载方法、预处理方法、完整性验证方法 |
CN102591669A (zh) * | 2011-01-06 | 2012-07-18 | 南京百敖软件股份有限公司 | 模块化计算机固件及其实现方法 |
CN105793816A (zh) * | 2013-12-27 | 2016-07-20 | 英特尔公司 | 硅初始化的受控定制 |
CN108228209A (zh) * | 2016-12-21 | 2018-06-29 | 广达电脑股份有限公司 | 自动更新服务器系统的元件的固件的系统、方法和介质 |
US10013387B2 (en) | 2015-06-11 | 2018-07-03 | Cisco Technology, Inc. | Method or apparatus for flexible firmware image management in microserver |
CN110046503A (zh) * | 2017-12-01 | 2019-07-23 | 意法半导体公司 | 安全固件提供和设备绑定机制 |
CN110363011A (zh) * | 2019-07-19 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 用于验证基于uefi的bios的安全性的方法和设备 |
Families Citing this family (192)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316361B2 (en) * | 2003-01-09 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner |
US9489496B2 (en) * | 2004-11-12 | 2016-11-08 | Apple Inc. | Secure software updates |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
US20070136609A1 (en) * | 2005-12-13 | 2007-06-14 | Rudelic John C | Methods and apparatus for providing a secure channel associated with a flash device |
US7818740B2 (en) * | 2006-05-05 | 2010-10-19 | Microsoft Corporation | Techniques to perform gradual upgrades |
EP2030119A4 (en) * | 2006-06-19 | 2009-07-22 | Samsung Electronics Co Ltd | INFORMATION UPDATE SYSTEM AND METHOD FOR AN OTA DEVICE |
US7765373B1 (en) * | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7590835B1 (en) | 2006-06-30 | 2009-09-15 | American Megatrends, Inc. | Dynamically updating a computer system firmware image |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
US7797696B1 (en) | 2006-06-30 | 2010-09-14 | American Megatrends, Inc. | Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure |
KR101426710B1 (ko) * | 2006-07-14 | 2014-09-23 | 삼성전자주식회사 | 휴대단말기의 버전정보 갱신 장치 및 방법 |
GB0623933D0 (en) * | 2006-11-29 | 2007-01-10 | Ibm | Apparatus and method for synchronizing controller firmware download |
US9974653B2 (en) | 2006-12-05 | 2018-05-22 | Valtech Cardio, Ltd. | Implantation of repair devices in the heart |
US8254568B2 (en) | 2007-01-07 | 2012-08-28 | Apple Inc. | Secure booting a computing device |
US8291480B2 (en) * | 2007-01-07 | 2012-10-16 | Apple Inc. | Trusting an unverified code image in a computing device |
US8239688B2 (en) | 2007-01-07 | 2012-08-07 | Apple Inc. | Securely recovering a computing device |
JP4903071B2 (ja) | 2007-03-15 | 2012-03-21 | 株式会社リコー | 情報処理装置、ソフトウェア更新方法及び画像処理装置 |
US8560823B1 (en) * | 2007-04-24 | 2013-10-15 | Marvell International Ltd. | Trusted modular firmware update using digital certificate |
US8448193B2 (en) * | 2007-04-27 | 2013-05-21 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
US7987349B2 (en) * | 2007-06-29 | 2011-07-26 | Intel Corporation | Encryption acceleration |
US8516136B2 (en) * | 2007-07-09 | 2013-08-20 | Alcatel Lucent | Web-based over-the-air provisioning and activation of mobile terminals |
US8117596B2 (en) * | 2007-07-11 | 2012-02-14 | Trend Micro Incorporated | Method and system for version independent software release management |
US7836309B2 (en) * | 2007-07-20 | 2010-11-16 | Microsoft Corporation | Generic extensible pre-operating system cryptographic infrastructure |
TWI344288B (en) * | 2007-07-23 | 2011-06-21 | Arcadyan Technology Corp | Embedded system with web-based user interface, firmware structure thereof, and method for providing information thereof |
US8230412B2 (en) * | 2007-08-31 | 2012-07-24 | Apple Inc. | Compatible trust in a computing device |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US10997531B2 (en) | 2007-09-11 | 2021-05-04 | Ciambella Ltd. | System, method and graphical user interface for workflow generation, deployment and/or execution |
US8068614B2 (en) * | 2007-09-28 | 2011-11-29 | Intel Corporation | Methods and apparatus for batch bound authentication |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US9158896B2 (en) | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US7865468B2 (en) * | 2008-02-29 | 2011-01-04 | International Business Machines Corporation | Prefetching remote files on local disk space |
US8631397B2 (en) | 2008-03-31 | 2014-01-14 | Microsoft Corporation | Virtualized application image patching |
US8347348B2 (en) * | 2008-03-31 | 2013-01-01 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for pre-boot policy modification |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8150039B2 (en) | 2008-04-15 | 2012-04-03 | Apple Inc. | Single security model in booting a computing device |
US8364983B2 (en) | 2008-05-08 | 2013-01-29 | Microsoft Corporation | Corralling virtual machines with encryption keys |
US8555048B2 (en) * | 2008-05-17 | 2013-10-08 | Hewlett-Packard Development Company, L.P. | Computer system for booting a system image by associating incomplete identifiers to complete identifiers via querying storage locations according to priority level where the querying is self adjusting |
US8321654B2 (en) * | 2008-05-20 | 2012-11-27 | Alcatel Lucent | Methods for initial bootstrap during activation and initial configuration of user terminals in network |
US8335931B2 (en) * | 2008-06-20 | 2012-12-18 | Imation Corp. | Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments |
ATE540371T1 (de) * | 2008-06-23 | 2012-01-15 | St Ericsson Sa | Elektronische vorrichtung und verfahren zur software- oder firmwareaktualisierung einer elektronischen vorrichtung |
US20090327750A1 (en) * | 2008-06-29 | 2009-12-31 | Tse-Hong Wu | Security system for code dump protection and method thereof |
US9069965B2 (en) * | 2008-08-26 | 2015-06-30 | Dell Products L.P. | System and method for secure information handling system flash memory access |
US8479015B2 (en) * | 2008-10-17 | 2013-07-02 | Oracle International Corporation | Virtual image management |
US20100131694A1 (en) * | 2008-11-26 | 2010-05-27 | Kelly Scott G | Secure Boot ROM Emulation |
US8756667B2 (en) * | 2008-12-22 | 2014-06-17 | Lenovo (Singapore) Pte. Ltd. | Management of hardware passwords |
US8407700B2 (en) * | 2009-03-03 | 2013-03-26 | Symantec Corporation | Methods and systems for merging virtualization sublayers |
US8176307B2 (en) | 2009-04-13 | 2012-05-08 | Broadcom Corporation | Method and system for post-build modification of firmware binaries to support different hardware configurations |
US20100278445A1 (en) * | 2009-04-30 | 2010-11-04 | Timothy Kindberg | Generating data using a data encoding symbol |
US9968452B2 (en) | 2009-05-04 | 2018-05-15 | Valtech Cardio, Ltd. | Annuloplasty ring delivery cathethers |
US8321655B2 (en) * | 2009-06-13 | 2012-11-27 | Phoenix Technologies Ltd. | Execution parallelism in extensible firmware interface compliant systems |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
US9565207B1 (en) | 2009-09-04 | 2017-02-07 | Amazon Technologies, Inc. | Firmware updates from an external channel |
US8214653B1 (en) | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US10177934B1 (en) | 2009-09-04 | 2019-01-08 | Amazon Technologies, Inc. | Firmware updates inaccessible to guests |
US8887144B1 (en) | 2009-09-04 | 2014-11-11 | Amazon Technologies, Inc. | Firmware updates during limited time period |
US8971538B1 (en) | 2009-09-08 | 2015-03-03 | Amazon Technologies, Inc. | Firmware validation from an external channel |
US8601170B1 (en) | 2009-09-08 | 2013-12-03 | Amazon Technologies, Inc. | Managing firmware update attempts |
US8102881B1 (en) | 2009-09-08 | 2012-01-24 | Amazon Technologies, Inc. | Streamlined guest networking in a virtualized environment |
US8959611B1 (en) | 2009-09-09 | 2015-02-17 | Amazon Technologies, Inc. | Secure packet management for bare metal access |
US8640220B1 (en) | 2009-09-09 | 2014-01-28 | Amazon Technologies, Inc. | Co-operative secure packet management |
US8300641B1 (en) | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
US9292277B2 (en) | 2009-12-18 | 2016-03-22 | Hewlett-Packard Development Company, L.P. | Methods and devices for updating firmware of a component using a firmware update application |
JP5564956B2 (ja) * | 2010-01-15 | 2014-08-06 | 富士通株式会社 | 情報処理装置及び情報処理装置のファームウェア更新方法 |
US8825920B2 (en) * | 2010-01-20 | 2014-09-02 | Spansion Llc | Field upgradable firmware for electronic devices |
EP2550621A4 (en) | 2010-03-25 | 2015-09-16 | Virtustream Canada Holdings Inc | SYSTEM AND METHOD FOR SAFE CLOUD COMPUTING |
KR20110108071A (ko) * | 2010-03-26 | 2011-10-05 | 삼성전자주식회사 | 펌웨어 다운로드 시스템 |
US9465601B2 (en) | 2010-04-20 | 2016-10-11 | International Business Machines Corporation | Pluggable activation engine extensions via virtual disks |
US9721101B2 (en) * | 2013-06-24 | 2017-08-01 | Red Hat, Inc. | System wide root of trust chaining via signed applications |
US9118666B2 (en) | 2010-06-30 | 2015-08-25 | Google Inc. | Computing device integrity verification |
US8700895B1 (en) * | 2010-06-30 | 2014-04-15 | Google Inc. | System and method for operating a computing device in a secure mode |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
CN103620567A (zh) * | 2011-06-07 | 2014-03-05 | Lsi公司 | 主机看到的设备固件更新效果的管理 |
US8706955B2 (en) * | 2011-07-01 | 2014-04-22 | Apple Inc. | Booting a memory device from a host |
US8943564B2 (en) * | 2011-07-21 | 2015-01-27 | International Business Machines Corporation | Virtual computer and service |
US8924737B2 (en) | 2011-08-25 | 2014-12-30 | Microsoft Corporation | Digital signing authority dependent platform secret |
US9584497B2 (en) * | 2011-08-26 | 2017-02-28 | Hewlett Packard Enterprise Development Lp | Managing access to a network |
CN103164351B (zh) * | 2011-12-16 | 2016-04-27 | 宏碁股份有限公司 | 数据存取方法 |
US9037779B2 (en) * | 2011-12-19 | 2015-05-19 | Sandisk Technologies Inc. | Systems and methods for performing variable flash wear leveling |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
EP2660721A1 (en) * | 2012-05-03 | 2013-11-06 | Gemalto SA | Method of loading an application in a secure device |
US9235404B2 (en) | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
US8972973B2 (en) * | 2012-06-27 | 2015-03-03 | Microsoft Technology Licensing, Llc | Firmware update discovery and distribution |
US9110761B2 (en) | 2012-06-27 | 2015-08-18 | Microsoft Technology Licensing, Llc | Resource data structures for firmware updates |
US8898654B2 (en) * | 2012-08-29 | 2014-11-25 | Microsoft Corporation | Secure firmware updates |
US9390278B2 (en) | 2012-09-14 | 2016-07-12 | Freescale Semiconductor, Inc. | Systems and methods for code protection in non-volatile memory systems |
US9519786B1 (en) * | 2012-10-05 | 2016-12-13 | Google Inc. | Firmware integrity ensurance and update |
US9128798B2 (en) * | 2012-10-17 | 2015-09-08 | Movimento Group | Module updating device |
US9344762B2 (en) * | 2012-10-18 | 2016-05-17 | Broadcom Corporation | Integration of untrusted applications and frameworks with a secure operating system environment |
GB2507497B (en) | 2012-10-30 | 2015-01-14 | Barclays Bank Plc | Device and method for secure memory access |
GB2507596B (en) | 2012-10-30 | 2014-09-17 | Barclays Bank Plc | Secure computing device and method |
US9015694B2 (en) | 2012-10-31 | 2015-04-21 | Aruba Networks, Inc | Cloud-based firmware distribution service |
EP2920751A1 (en) * | 2012-11-19 | 2015-09-23 | Barclays Bank PLC | Secure computing device and method |
CN103279700A (zh) * | 2013-06-08 | 2013-09-04 | 北京时代奥视数码技术有限公司 | 液晶监视器的固件版本验证方法和液晶监视器 |
KR102243793B1 (ko) | 2013-06-18 | 2021-04-26 | 시암벨라 리미티드 | 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치 |
US9032423B2 (en) | 2013-06-21 | 2015-05-12 | Microsoft Technology Licensing, Llc | Dependency based configuration package activation |
US9830136B2 (en) | 2013-07-12 | 2017-11-28 | Ciambella Ltd. | Method and apparatus for firmware virtualization |
TWI493463B (zh) * | 2013-10-30 | 2015-07-21 | Insyde Software Corp | Electronic device, universal extension firmware interface Basic input and output system firmware update method, recording media and computer program products |
KR101861724B1 (ko) | 2013-10-31 | 2018-05-29 | 인텔 코포레이션 | 사전 부팅 펌웨어 갱신을 위한 선택적인 전력 관리 |
KR101780909B1 (ko) * | 2013-11-06 | 2017-09-21 | 미쓰비시덴키 가부시키가이샤 | 소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체 |
US10095868B2 (en) | 2013-11-13 | 2018-10-09 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9547767B2 (en) | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9367689B2 (en) * | 2013-11-13 | 2016-06-14 | Via Technologies, Inc. | Apparatus and method for securing BIOS in a trusted computing system |
US10055588B2 (en) | 2013-11-13 | 2018-08-21 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US9779243B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US9507942B2 (en) | 2013-11-13 | 2016-11-29 | Via Technologies, Inc. | Secure BIOS mechanism in a trusted computing system |
US9767288B2 (en) | 2013-11-13 | 2017-09-19 | Via Technologies, Inc. | JTAG-based secure BIOS mechanism in a trusted computing system |
US10049217B2 (en) | 2013-11-13 | 2018-08-14 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9779242B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US9798880B2 (en) | 2013-11-13 | 2017-10-24 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
FR3013863B1 (fr) * | 2013-11-25 | 2017-02-24 | Maxim Integrated Products | Systemes et procedes de mise en oeuvre de microcontroleurs securises |
US9842210B2 (en) * | 2014-01-16 | 2017-12-12 | Raytheon Company | Universal extensible firmware interface module identification and analysis |
JP2015170036A (ja) * | 2014-03-05 | 2015-09-28 | 株式会社東芝 | Icカード、icカードの制御方法、及び処理装置 |
WO2015172352A1 (en) | 2014-05-15 | 2015-11-19 | Seagate Technology Llc | Storage device tampering detection |
CN106663154B (zh) | 2014-07-22 | 2020-05-08 | 惠普发展公司,有限责任合伙企业 | 授权bios策略改变用于存储 |
US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
EP3007094B1 (en) * | 2014-10-08 | 2021-05-05 | Nintendo Co., Ltd. | Boot program, information processing apparatus, information processing system, information processing method, semiconductor apparatus, and program |
US9489542B2 (en) | 2014-11-12 | 2016-11-08 | Seagate Technology Llc | Split-key arrangement in a multi-device storage enclosure |
TW201619866A (zh) * | 2014-11-20 | 2016-06-01 | 萬國商業機器公司 | 客製化資訊設備的方法 |
TWI507893B (zh) * | 2014-12-09 | 2015-11-11 | Inventec Corp | 儲存擴充裝置自動識別系統及儲存擴充裝置自動識別配置方法 |
US10154023B1 (en) * | 2014-12-18 | 2018-12-11 | EMC IP Holding Company LLC | Method and system for secure instantiation of an operation system within the cloud |
US10101987B2 (en) * | 2015-03-11 | 2018-10-16 | Echelon Corporation | Method and system of processing an image upgrade |
CN104731674B (zh) * | 2015-02-02 | 2020-09-01 | 北京忆恒创源科技有限公司 | 使用mlc nvm存储电子系统固件的方法与设备 |
US10146942B2 (en) * | 2015-02-24 | 2018-12-04 | Dell Products, Lp | Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor |
US20160256269A1 (en) | 2015-03-05 | 2016-09-08 | Mitralign, Inc. | Devices for treating paravalvular leakage and methods use thereof |
US20160378686A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Memory encryption exclusion method and apparatus |
US9965270B2 (en) * | 2015-07-01 | 2018-05-08 | Quanta Computer Inc. | Updating computer firmware |
US10467015B2 (en) * | 2015-09-08 | 2019-11-05 | Dell Products, Lp | Method for out of band device configuration deployment and system therefor |
WO2017048291A1 (en) * | 2015-09-18 | 2017-03-23 | Hewlett Packard Enterprise Development Lp | Firmware update packages |
EP3394743B1 (en) | 2015-12-21 | 2023-07-12 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
WO2017117370A2 (en) | 2015-12-30 | 2017-07-06 | Mitralign, Inc. | System and method for reducing tricuspid regurgitation |
US20180081666A1 (en) * | 2016-03-11 | 2018-03-22 | Oleksii Surdu | Reliable and Secure Firmware Update for Internet of Things (IoT) Devices |
FR3050555B1 (fr) * | 2016-04-21 | 2019-09-27 | Thales | Procede de traitement d'un fichier de mise a jour d'un equipement avionique d'un aeronef, produit programme d'ordinateur, dispositif electronique de traitement et systeme de traitement associes |
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 |
US10503931B2 (en) * | 2016-05-09 | 2019-12-10 | Arris Enterprises Llc | Method and apparatus for dynamic executable verification |
US11087249B2 (en) | 2016-05-24 | 2021-08-10 | Ciambella Ltd. | Method and apparatus for triggering execution of a workflow over a network |
US10309792B2 (en) | 2016-06-14 | 2019-06-04 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US11092446B2 (en) | 2016-06-14 | 2021-08-17 | Motional Ad Llc | Route planning for an autonomous vehicle |
US10126136B2 (en) | 2016-06-14 | 2018-11-13 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US10829116B2 (en) | 2016-07-01 | 2020-11-10 | nuTonomy Inc. | Affecting functions of a vehicle based on function-related information about its environment |
GB201611910D0 (en) | 2016-07-08 | 2016-08-24 | Valtech Cardio Ltd | Adjustable annuloplasty device with alternating peaks and troughs |
US10798780B2 (en) | 2016-08-22 | 2020-10-06 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
JP6585019B2 (ja) * | 2016-09-13 | 2019-10-02 | 株式会社東芝 | ネットワーク監視装置、ネットワークシステムおよびプログラム |
US10331129B2 (en) | 2016-10-20 | 2019-06-25 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10681513B2 (en) | 2016-10-20 | 2020-06-09 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10857994B2 (en) | 2016-10-20 | 2020-12-08 | Motional Ad Llc | Identifying a stopping place for an autonomous vehicle |
US10473470B2 (en) | 2016-10-20 | 2019-11-12 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10416991B2 (en) * | 2016-12-14 | 2019-09-17 | Microsoft Technology Licensing, Llc | Secure IoT device update |
US10715526B2 (en) | 2016-12-14 | 2020-07-14 | Microsoft Technology Licensing, Llc | Multiple cores with hierarchy of trust |
US10402273B2 (en) | 2016-12-14 | 2019-09-03 | Microsoft Technology Licensing, Llc | IoT device update failure recovery |
CN106775716B (zh) * | 2016-12-15 | 2020-04-17 | 中国科学院沈阳自动化研究所 | 一种基于度量机制的可信plc启动方法 |
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
EP3596593A4 (en) | 2017-03-14 | 2021-01-27 | Ciambella Ltd. | METHOD AND APPARATUS DESIGNED TO AUTOMATICALLY GENERATE AND INCORPORATE CODE IN DEVELOPMENT ENVIRONMENTS |
US10936299B2 (en) * | 2017-04-28 | 2021-03-02 | Dell Products, L.P. | Automated intra-system persistent memory updates |
CN107179928A (zh) * | 2017-05-12 | 2017-09-19 | 深圳市四海众联网络科技有限公司 | 一种通信设备自动升级的方法 |
TWI667590B (zh) * | 2017-06-01 | 2019-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及韌體加密及更新方法 |
US10346157B2 (en) * | 2017-07-31 | 2019-07-09 | Qualcomm Incorporated | Patch infrastructure for ROM firmware |
US20190102321A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Techniques to provide access protection to shared virtual memory |
TWI647610B (zh) * | 2017-11-14 | 2019-01-11 | 慧榮科技股份有限公司 | 認證韌體資料之資料儲存裝置與資料儲存方法 |
CN108572842A (zh) * | 2017-12-30 | 2018-09-25 | 天津清源电动车辆有限责任公司 | 一种电动汽车远程监控系统的自更新方法 |
US11238181B2 (en) | 2018-02-14 | 2022-02-01 | Roku, Inc. | Production console authorization permissions |
US10592271B1 (en) * | 2018-03-05 | 2020-03-17 | Cavium, Llc | Methods and systems for tracking a virtual memory of a virtual machine |
CN108494866A (zh) * | 2018-03-30 | 2018-09-04 | 北京小米移动软件有限公司 | 信息处理方法及服务器、终端设备 |
KR20210041540A (ko) * | 2018-05-28 | 2021-04-15 | 로얄 뱅크 오브 캐나다 | 보안 전자 트랜잭션 플랫폼을 위한 시스템 및 방법 |
CN108777803A (zh) * | 2018-06-05 | 2018-11-09 | 四川师范大学 | 广电云平台视频流处理方法、装置、设备及介质 |
CN109214168B (zh) * | 2018-08-27 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 固件升级方法及装置 |
CN109446815B (zh) * | 2018-09-30 | 2020-12-25 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
US10726133B1 (en) * | 2019-02-04 | 2020-07-28 | Dell Products L.P. | Securely loading UEFI images at runtime |
US10990411B2 (en) * | 2019-03-25 | 2021-04-27 | Dell Products L.P. | System and method to install firmware volumes from NVMe boot partition |
TWI791244B (zh) * | 2019-04-07 | 2023-02-01 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
US10789062B1 (en) * | 2019-04-18 | 2020-09-29 | Dell Products, L.P. | System and method for dynamic data deduplication for firmware updates |
US11579893B2 (en) * | 2019-04-18 | 2023-02-14 | Dell Products L.P. | Systems and methods for separate storage and use of system BIOS components |
US11169818B2 (en) * | 2019-04-25 | 2021-11-09 | Dell Products L.P. | Systems and methods for dynamically locating and accessing operating system (OS) file system data from a pre-boot environment |
TWI693600B (zh) * | 2019-05-08 | 2020-05-11 | 慧榮科技股份有限公司 | 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 |
CN110297726B (zh) * | 2019-07-03 | 2023-08-25 | 上海兆芯集成电路股份有限公司 | 具有串行存在检测数据的计算机系统及内存模块控制方法 |
DE102019209887A1 (de) * | 2019-07-04 | 2021-01-07 | BSH Hausgeräte GmbH | System und Verfahren zur Speicherung eines zu schützenden Datensatzes |
KR20210046418A (ko) * | 2019-10-18 | 2021-04-28 | 삼성전자주식회사 | 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법 |
US10997297B1 (en) * | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
US11061666B1 (en) * | 2020-01-07 | 2021-07-13 | International Business Machines Corporation | Distributing computing tasks to individual computer systems |
US20210232384A1 (en) * | 2020-01-24 | 2021-07-29 | Insyde Software Corp. | System and Method for Runtime Capsule Firmware Update with Low-Latency Software SMIs |
US11392391B2 (en) * | 2020-02-03 | 2022-07-19 | Dell Products L.P. | Selectively updating a bios image |
US20230049419A1 (en) * | 2020-02-12 | 2023-02-16 | Hewlett-Packard Development Company, L.P. | Component access to rom-stored firmware code over firmware controller exposed virtual rom link |
US20210349708A1 (en) * | 2020-05-05 | 2021-11-11 | Caterpillar Inc. | System and method involving multiple software targets packaged into one file |
JP7330157B2 (ja) | 2020-09-18 | 2023-08-21 | 株式会社東芝 | 情報処理装置および更新処理方法 |
US20220300276A1 (en) * | 2021-03-18 | 2022-09-22 | Quanta Computer Inc. | Modular firmware composition |
US20230315595A1 (en) * | 2022-03-30 | 2023-10-05 | Dell Products L.P. | Enriched pre-extensible firmware interface initialization graphics |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878256A (en) * | 1991-10-16 | 1999-03-02 | International Business Machine Corp. | Method and apparatus for providing updated firmware in a data processing system |
US5623604A (en) * | 1992-11-18 | 1997-04-22 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral |
US5835760A (en) * | 1995-10-13 | 1998-11-10 | Texas Instruments Incorporated | Method and arrangement for providing BIOS to a host computer |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US5835594A (en) * | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978912A (en) * | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
US20010056540A1 (en) * | 1997-09-16 | 2001-12-27 | Timothy Ober | Secure memory area |
US6052803A (en) * | 1997-09-26 | 2000-04-18 | 3Com Corporation | Key-based technique for assuring and maintaining integrity of firmware stored in both volatile and non-volatile memory |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6009520A (en) * | 1997-12-10 | 1999-12-28 | Phoenix Technologies, Ltd | Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM |
US7689532B1 (en) * | 2000-07-20 | 2010-03-30 | Digimarc Corporation | Using embedded data with file sharing |
US6269446B1 (en) * | 1998-06-26 | 2001-07-31 | Canon Kabushiki Kaisha | Authenticating images from digital cameras |
JP2000227856A (ja) * | 1999-02-08 | 2000-08-15 | Fuji Xerox Co Ltd | メモリ制御システム |
US6571335B1 (en) * | 1999-04-01 | 2003-05-27 | Intel Corporation | System and method for authentication of off-chip processor firmware code |
US6618810B1 (en) * | 1999-05-27 | 2003-09-09 | Dell Usa, L.P. | Bios based method to disable and re-enable computers |
US7231513B1 (en) * | 1999-12-17 | 2007-06-12 | Intel Corporation | Dynamically linked basic input/output system |
US6581159B1 (en) * | 1999-12-23 | 2003-06-17 | Intel Corporation | Secure method of updating bios by using a simply authenticated external module to further validate new firmware code |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6976163B1 (en) * | 2000-07-12 | 2005-12-13 | International Business Machines Corporation | Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein |
EP1316171A4 (en) * | 2000-08-04 | 2006-05-03 | First Data Corp | PERSONNEL AND CONTOUR DIGITAL SIGNATURE SYSTEM |
US6633976B1 (en) * | 2000-08-10 | 2003-10-14 | Phoenix Technologies Ltd. | Method of storing BIOS modules and transferring them to memory for execution |
US7000249B2 (en) * | 2001-05-18 | 2006-02-14 | 02Micro | Pre-boot authentication system |
US7028184B2 (en) * | 2001-01-17 | 2006-04-11 | International Business Machines Corporation | Technique for digitally notarizing a collection of data streams |
US6718464B2 (en) * | 2001-01-23 | 2004-04-06 | International Business Machines Corporation | Method and system for customizing a client computer system configuration for a current user using BIOS settings downloaded from a server |
JP2002297410A (ja) * | 2001-03-30 | 2002-10-11 | Minolta Co Ltd | データ通信プログラム、データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体、データ通信装置およびデータ通信方法 |
US7213052B2 (en) * | 2001-03-31 | 2007-05-01 | Minolta Co., Ltd. | Data communication apparatus capable of rewriting firmware |
US20020147918A1 (en) * | 2001-04-05 | 2002-10-10 | Osthoff Harro R. | System and method for securing information in memory |
US6966837B1 (en) * | 2001-05-10 | 2005-11-22 | Best Robert M | Linked portable and video game systems |
JP2002351668A (ja) * | 2001-05-28 | 2002-12-06 | Nec Corp | コンピュータシステム、コンピュータの起動方法、及びコンピュータ起動プログラム |
US7103641B2 (en) * | 2001-06-18 | 2006-09-05 | Intel Corporation | Method and apparatus for distributing computer platform firmware across a network |
GB0116568D0 (en) * | 2001-07-06 | 2001-08-29 | Ncipher Corp Ltd | Firmware validation |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
US7103529B2 (en) * | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7181510B2 (en) * | 2002-01-04 | 2007-02-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating a secure embedded I/O processor for a remote server management controller |
US6725178B2 (en) * | 2002-01-15 | 2004-04-20 | International Business Machines Corporation | Use of hidden partitions in a storage device for storing BIOS extension files |
US7454603B2 (en) | 2002-02-11 | 2008-11-18 | Intel Corporation | Method and system for linking firmware modules in a pre-memory execution environment |
US7321969B2 (en) * | 2002-04-26 | 2008-01-22 | Entrust Limited | Secure instant messaging system using instant messaging group policy certificates |
US6907522B2 (en) * | 2002-06-07 | 2005-06-14 | Microsoft Corporation | Use of hashing in a secure boot loader |
US6920566B2 (en) * | 2002-07-12 | 2005-07-19 | Phoenix Technologies Ltd. | Secure system firmware by disabling read access to firmware ROM |
US7036007B2 (en) | 2002-09-09 | 2006-04-25 | Intel Corporation | Firmware architecture supporting safe updates and multiple processor types |
US7730325B2 (en) * | 2002-09-13 | 2010-06-01 | Bally Gaming, Inc. | Verification system and method |
US7246266B2 (en) * | 2002-11-21 | 2007-07-17 | Chris Sneed | Method and apparatus for firmware restoration in modems |
US7047448B2 (en) * | 2002-11-21 | 2006-05-16 | Bitfone Corporation | Software self-repair toolkit for electronic devices |
US7974416B2 (en) * | 2002-11-27 | 2011-07-05 | Intel Corporation | Providing a secure execution mode in a pre-boot environment |
US20040123093A1 (en) * | 2002-12-20 | 2004-06-24 | Rothman Michael A. | Method and apparatus for loading BIOS and option ROM's from alternate locations |
US8245055B2 (en) * | 2002-12-31 | 2012-08-14 | Intel Corporation | Method for firmware control invocation from power management |
US7240361B2 (en) * | 2003-01-31 | 2007-07-03 | Qwest Communications International Inc. | Systems and methods for controlled transmittance in a telecommunication system |
US7395420B2 (en) * | 2003-02-12 | 2008-07-01 | Intel Corporation | Using protected/hidden region of a magnetic media under firmware control |
US7337309B2 (en) * | 2003-03-24 | 2008-02-26 | Intel Corporation | Secure online BIOS update schemes |
TWI227443B (en) | 2003-04-16 | 2005-02-01 | Insyde Software Corp | A resource compatible system for EFI (extensible firm interface) and BIOS (basic input/output system) |
US20040230963A1 (en) * | 2003-05-12 | 2004-11-18 | Rothman Michael A. | Method for updating firmware in an operating system agnostic manner |
US7143279B2 (en) * | 2003-05-29 | 2006-11-28 | Intel Corporation | Dynamic BIOS execution and concurrent update for a blade server |
US20050021968A1 (en) * | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US7380136B2 (en) * | 2003-06-25 | 2008-05-27 | Intel Corp. | Methods and apparatus for secure collection and display of user interface information in a pre-boot environment |
US7299503B2 (en) * | 2003-06-26 | 2007-11-20 | International Business Machines Corporation | Apparatus and method for location specific authentication using powerline networking |
US7469346B2 (en) * | 2003-06-27 | 2008-12-23 | Disney Enterprises, Inc. | Dual virtual machine architecture for media devices |
US7328340B2 (en) * | 2003-06-27 | 2008-02-05 | Intel Corporation | Methods and apparatus to provide secure firmware storage and service access |
KR101081729B1 (ko) * | 2003-07-07 | 2011-11-08 | 로비 솔루션스 코포레이션 | 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 |
US20050091496A1 (en) * | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for distributed key management in a secure boot environment |
US7017040B2 (en) * | 2003-12-04 | 2006-03-21 | Intel Corporation | BIOS update file |
TW200519744A (en) * | 2003-12-05 | 2005-06-16 | Tatung Co Ltd | Method for firmware update |
US7424603B2 (en) * | 2003-12-18 | 2008-09-09 | Intel Corporation | Method and apparatus to store initialization and configuration information |
US7207039B2 (en) * | 2003-12-24 | 2007-04-17 | Intel Corporation | Secure booting and provisioning |
US7457945B2 (en) * | 2004-03-23 | 2008-11-25 | Dell Products L.P. | System and method for providing a secure firmware update to a device in a computer system |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US7364087B2 (en) * | 2004-06-24 | 2008-04-29 | Intel Corporation | Virtual firmware smart card |
US7406591B2 (en) * | 2004-06-29 | 2008-07-29 | Intel Corporation | Booting from a remote BIOS image |
US20060005046A1 (en) * | 2004-06-30 | 2006-01-05 | Seagate Technology Llc | Secure firmware update procedure for programmable security devices |
US7406520B2 (en) * | 2004-07-30 | 2008-07-29 | Sap Aktiengesellschaft | Identifying interfaces related to a service |
US7730326B2 (en) * | 2004-11-12 | 2010-06-01 | Apple Inc. | Method and system for updating firmware stored in non-volatile memory |
US7577832B2 (en) * | 2004-12-14 | 2009-08-18 | Hewlett-Packard Development Company, L.P. | Apparatus and method for booting a system |
US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
US7770003B2 (en) * | 2004-12-29 | 2010-08-03 | Intel Corporation | Updating firmware securely over a network |
US7502946B2 (en) * | 2005-01-20 | 2009-03-10 | Panasonic Corporation | Using hardware to secure areas of long term storage in CE devices |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
US8898477B2 (en) * | 2007-11-12 | 2014-11-25 | Gemalto Inc. | System and method for secure firmware update of a secure token having a flash memory controller and a smart card |
US9235404B2 (en) * | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
-
2006
- 2006-02-01 US US11/344,856 patent/US8181020B2/en active Active
- 2006-02-01 US US11/344,779 patent/US7603562B2/en active Active
- 2006-02-01 US US11/344,855 patent/US7774596B2/en active Active
- 2006-02-02 JP JP2006025172A patent/JP5437550B2/ja active Active
- 2006-02-03 TW TW100145532A patent/TWI444826B/zh active
- 2006-02-03 TW TW095103787A patent/TWI363964B/zh active
- 2006-02-05 CN CN200610071181A patent/CN100576173C/zh active Active
-
2009
- 2009-09-02 US US12/552,670 patent/US8468331B2/en active Active
-
2012
- 2012-04-18 US US13/450,314 patent/US8645717B2/en active Active
- 2012-08-21 JP JP2012182646A patent/JP5403771B2/ja active Active
-
2014
- 2014-01-23 US US14/162,517 patent/US9235403B2/en active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009117896A1 (zh) * | 2008-03-25 | 2009-10-01 | 中兴通讯股份有限公司 | 基于ota的固件下载方法、预处理方法、完整性验证方法 |
CN102591669A (zh) * | 2011-01-06 | 2012-07-18 | 南京百敖软件股份有限公司 | 模块化计算机固件及其实现方法 |
CN102591669B (zh) * | 2011-01-06 | 2015-01-28 | 南京百敖软件有限公司 | 模块化计算机固件及其实现方法 |
CN105793816A (zh) * | 2013-12-27 | 2016-07-20 | 英特尔公司 | 硅初始化的受控定制 |
US10310865B2 (en) | 2013-12-27 | 2019-06-04 | Intel Corporation | Controlled customization of silicon initialization |
US10013387B2 (en) | 2015-06-11 | 2018-07-03 | Cisco Technology, Inc. | Method or apparatus for flexible firmware image management in microserver |
US10719475B2 (en) | 2015-06-11 | 2020-07-21 | Cisco Technology, Inc. | Method or apparatus for flexible firmware image management in microserver |
CN108228209A (zh) * | 2016-12-21 | 2018-06-29 | 广达电脑股份有限公司 | 自动更新服务器系统的元件的固件的系统、方法和介质 |
CN110046503A (zh) * | 2017-12-01 | 2019-07-23 | 意法半导体公司 | 安全固件提供和设备绑定机制 |
CN110363011A (zh) * | 2019-07-19 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 用于验证基于uefi的bios的安全性的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2013012217A (ja) | 2013-01-17 |
US9235403B2 (en) | 2016-01-12 |
US20060174109A1 (en) | 2006-08-03 |
US8181020B2 (en) | 2012-05-15 |
TW200638200A (en) | 2006-11-01 |
TW201224752A (en) | 2012-06-16 |
CN100576173C (zh) | 2009-12-30 |
US8645717B2 (en) | 2014-02-04 |
US7603562B2 (en) | 2009-10-13 |
US20090327738A1 (en) | 2009-12-31 |
US20140136856A1 (en) | 2014-05-15 |
US8468331B2 (en) | 2013-06-18 |
TWI363964B (en) | 2012-05-11 |
TWI444826B (zh) | 2014-07-11 |
US20060174055A1 (en) | 2006-08-03 |
JP5403771B2 (ja) | 2014-01-29 |
JP5437550B2 (ja) | 2014-03-12 |
US20120221866A1 (en) | 2012-08-30 |
US20060174240A1 (en) | 2006-08-03 |
JP2006216048A (ja) | 2006-08-17 |
US7774596B2 (en) | 2010-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100576173C (zh) | 减小存储需求并提供固件安全更新和存储区的系统和方法 | |
US8200961B2 (en) | Securing a flash memory block in a secure device system and method | |
CN1201248C (zh) | 共享名 | |
US7594257B2 (en) | Data security for digital data storage | |
AU2006205315B2 (en) | Method and portable storage device for allocating secure area in insecure area | |
EP2294529B1 (en) | Electronic device and method of software or firmware updating of an electronic device | |
CN1148645C (zh) | 执行加密程序的装置 | |
KR100678927B1 (ko) | 비보안 영역에 보안 영역을 할당하는 방법 및 이를제공하는 휴대용 저장 장치 | |
EP2337262A1 (en) | Information processing device, method, program, and integrated circuit | |
CN1647443A (zh) | 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作 | |
EP2080311A2 (en) | Secure device authentication system and method | |
US20100185873A1 (en) | System and method for file processing and file processing program | |
US20070101416A1 (en) | Security method and system and computer-readable medium storing computer program for executing the security method | |
CN1866225A (zh) | 一种移动存储设备的映射方法 | |
JP4723187B2 (ja) | メモリ内の符号化データの更新管理 | |
WO2024030240A1 (en) | Utilization of detached pointers with microshard data fragmentation |
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 |