CN108292340A - 在运行时间期间向安全数据存储设备安全地写入数据 - Google Patents

在运行时间期间向安全数据存储设备安全地写入数据 Download PDF

Info

Publication number
CN108292340A
CN108292340A CN201680066861.7A CN201680066861A CN108292340A CN 108292340 A CN108292340 A CN 108292340A CN 201680066861 A CN201680066861 A CN 201680066861A CN 108292340 A CN108292340 A CN 108292340A
Authority
CN
China
Prior art keywords
message
secure data
core
api
storage device
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.)
Pending
Application number
CN201680066861.7A
Other languages
English (en)
Inventor
D·M·巴罗
S·H·朴
C·H·斯图尔特
B·安巴扎根
S·B·马卡克
R·A·小布拉姆利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN108292340A publication Critical patent/CN108292340A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

计算机系统包括独立计算核;以及隔离的安全数据存储设备,用于存储数据,并且仅可被独立计算核访问。独立计算核在计算机系统的运行时间期间响应于接收到经验证的消息而打开应用程序接口(API),所述经验证的消息包含要向安全数据存储设备写入的安全数据。

Description

在运行时间期间向安全数据存储设备安全地写入数据
背景技术
特别地经由互联网对计算机系统的非法攻击在频率和复杂性方面都在增加。这样的攻击的发起人可能试图访问用于身份盗窃的数据、以不间断的方式模仿合法服务、中断或拒绝服务、或者简单地任意损坏数据或硬件。
附图说明
随附各图图示了本文描述的原理的各种实现并且是本说明书的一部分。所图示的实现仅仅是示例,并且不限制权利要求书的范围。
图1是与所公开的实现一致的具有在运行时间期间可用于安全数据存储设备的应用程序接口(API)的示例独立计算核的图示。
图2是与所公开的实现一致的包括独立计算核的示例计算机系统的图示,所述独立计算核具有针对安全数据存储设备的数个应用程序接口(API)。
图3是与所公开的实现一致的使用具有针对安全数据存储设备的应用程序接口(API)的独立计算核以便在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。
图4是与所公开的实现一致的用于在运行时间期间向安全数据存储设备写入数据的示例消息的图示。
图5是示出了与所公开的实现一致的建立主机的BIOS与独立计算核之间的共享秘密以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。
图6是示出了与所公开的实现一致的准备从主机的BIOS去往独立计算核的消息以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。
图7是示出了与所公开的实现一致的验证从主机的BIOS去往独立计算核的消息以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。
图8是与所公开的实现一致的具有指令的非暂时性计算机可读介质的图示,所述指令在由独立计算核执行时使控制器处理来自主机的BIOS的消息以用于在运行时间期间向安全数据存储设备写入数据。
贯穿附图,相同的参考数字指定相似但是未必相同的元件。
具体实施方式
如以上所指出,特别地经由互联网对计算机系统的非法攻击在频率和复杂性方面都在增加。这样的攻击的发起人可能试图访问用于身份盗窃的数据、以不间断的方式模仿合法服务、中断或拒绝服务、或者简单地任意损坏数据或硬件。
用于这样的攻击的一个特定点是计算机系统的基本输入输出系统(BIOS)。这是允许计算机系统在运行操作系统(0S)之前启动起来的固件。大多数用户软件然后在OS的平台上运行。BIOS存储在专用存储器(典型地,串行外围接口(SPI)闪存)中,并且是在计算机系统开启时由中央处理单元(CPU)执行的第一个代码。如果BIOS被成功地破坏或者改变,那么问题的根源可能非常难以找出和校正,同时攻击者当时可能已经成功地使计算机系统的安全性和控制的许多方面受损。此外,BIOS代码典型地在比甚至大多数特权OS代码更高的特权级别下执行。因而,破坏BIOS的攻击对于攻击者可能是非常有价值的。
BIOS的安全性通过分离的看门狗系统而改善。对于该看门狗系统,在计算机系统的系统板上提供专用芯片或集成电路。这可以例如是独立计算核(EC)或超级输入/输出(SIO)芯片。为了便于引用,本文描述的看门狗系统的所有可能实现将被全体地称为“独立计算核”。
在开启或系统唤醒时,或者每当需要BIOS时,独立计算核将以加密方式验证BIOS是正确的,意味着BIOS尚未遭到任何恶意攻击、数据降级或其它故障的破坏或者改变。如果独立计算核标识与BIOS有关的任何问题,那么独立计算核可以使用BIOS的分离的安全备份副本来自动地修复BIOS。BIOS的安全副本和其它安全数据可以存储在串行外围接口(SPI)芯片上,所述串行外围接口(SPI)芯片经电气隔离以便仅可被独立计算核访问。经电气隔离以便仅可被独立计算核访问的这样的数据存储将在本文中和权利要求中称为“安全存储”或“安全存储器”。不可被独立计算核排他性地访问的数据存储位置将被称为“较不安全”的存储。
BIOS的备份副本和其它安全数据在安全存储中由独立计算核使用受信应用程序接口(API)来访问。该API包括API标志,所述API标志可以被设置为“关闭”或“打开”值。当该标志被设置为“关闭”时,通过对应API访问的数据不能更改,并且不能向安全存储位置写入。
作为安全预防措施,用于让API保护数据的任何这样的API标志可以由BIOS在系统启动期间设置为“关闭”。运行时间是指在启动起来之后的随后时间,诸如当操作系统在执行时。在启动起来并进入到运行时间期间受信API标志被设置为“关闭”的情况下,在运行时间期间不能向仅能被独立计算核访问的任何安全存储写入安全数据。
然而,BIOS可能需要在运行时间期间接收前往安全存储位置的输入。如果例如需要记录对BIOS的备份副本的更新或者需要存储或更新其它安全数据,那么这就可能发生。在情况如此的情况下,BIOS将临时地将更新数据保存到较不安全的位置,诸如,非易失性随机存取存储器(NVRAM)。BIOS然后将重启系统以便打开用于受信API的标志。一旦受信API打开,可以使用独立计算核将要保护的数据写入到安全存储,所述独立计算核具有对该安全存储位置的排他性访问权。一旦写入安全数据,受信API再次在系统运行时间之前关闭。该过程然后在需要向安全存储写入数据的下一次重复。
由于将较不安全的存储(诸如NVRAM)用作用于安全数据的临时数据存储位置,所以该方案产生潜在脆弱性。获悉用于安全数据的恰当格式的攻击者可能在某些情况之下成功地攻击NVRAM或者其它临时数据存储以便更改等待被转移至由独立计算核排他性管理的安全存储的安全数据。这继而可以引起对安全存储中的数据的错误或恶意改变。对较不安全的存储(诸如NVRAM)的这样的攻击要比尝试打败受信API以便更直接地访问安全存储简单得多。
相应地,为了避免在较不安全的存储位置中临时存储安全数据的需要,本说明书描述了一种用于允许在运行时间期间向由独立计算核排他性访问的安全存储位置的通信的安全机制。作为结果,在等待重启以及受信API打开的同时,这样的安全数据不需要保持在较不安全的位置(诸如NVRAM)中,在那里它更易受攻击。
如本文中以及以下权利要求书中使用,术语“独立计算核”用于指代包括处理器的芯片、集成电路或者任何其它设备,所述处理器是与(多个)主系统处理器分离的实体,用以控制对安全数据存储的排他性访问并且在启动对应的计算机系统时使用BIOS固件之前验证BIOS固件。独立计算核可以例如是分离的独立计算核或者计算机系统的系统板上的超级输入/输出(SIO)芯片。
如本文中以及以下权利要求书中使用,术语“安全数据存储设备”、“安全存储”或“安全存储器”将是指经电气隔离以便仅可由独立计算核访问的数据存储设备或者这样的设备上的位置。不可由独立计算核排他性访问的其它数据存储设备和位置将被称为“较不安全”的存储。
在一个示例中,本说明书描述了一种计算机系统,包括独立计算核;以及仅可由独立计算核访问的、用于存储数据的隔离的安全数据存储设备。独立计算核响应于接收到经验证的消息而在计算机系统的运行时间期间打开应用程序接口(API),所述经验证的消息包含要向安全数据存储设备写入的安全数据。
在另一个示例中,本说明书描述了一种方法,包括在计算机系统的运行时间期间响应于接收到经验证的消息而利用独立计算核打开应用程序接口(API),所述经验证的消息包含要向安全数据存储设备写入的安全数据;以及通过API向安全数据存储设备写入安全数据。
在又一个示例中,本说明书描述了一种包含指令的非暂时性计算机可读介质,所述指令在由计算机系统的独立计算核执行时使独立计算核:在接收到消息时,验证该消息;响应于消息的验证,在计算机系统的运行时间期间,打开应用程序接口(API);以及在验证之后通过API向安全数据存储设备写入来自消息的安全数据,所述安全数据存储设备在逻辑上仅可被独立计算核访问。
在以下描述中,出于解释的目的,阐述具体细节以便提供对本公开的透彻理解。然而,对本领域技术人员将清楚明白的是,与本公开一致的示例可以在没有这些具体细节的情况下实践。在说明书中对“实现”、“示例”或类似语言的引用意味着结合该实现或示例描述的特定特征、结构或特性包括在该至少一个实现中,而未必包括在其它实现中。短语“在一个实现中”或者类似短语在说明书中各种地方的各种实例未必全部是指相同的实现。
图1是与所公开的实现一致的具有在运行时间期间可用于安全数据存储设备的应用程序接口(API)的示例独立计算核的图示。如图1中所示,系统(100)包括独立计算核(102)。如上文所述,该独立计算核(102)可以提供在主机计算机系统的系统板上,并且可以用于增加计算机系统的安全性。具体地,计算机系统(100)包括安全数据存储设备(104),在所述安全数据存储设备(104)上存储安全数据,所述安全数据的完整性防护主机计算机系统的操作并且保护系统的用户的数据和身份。例如,该安全数据可以包括用于主机计算机系统的BIOS固件的备份副本(116)。
为了确保安全数据存储设备(104)上的数据的安全性,除了独立计算核(102)之外,安全数据存储设备(104)可以与主机计算机系统的其它组件电气隔离。作为结果,独立计算核(102)具有对安全数据存储设备上的数据的排他性访问权。如将在下文描述,提出了一种机制以便允许独立计算核(102)甚至在计算机系统(100)的运行时间期间接收并且验证要向安全数据存储设备(104)写入的数据。
由独立计算核(102)控制的应用程序接口(API)由独立计算核使用以便访问安全数据存储设备(104)上的数据。如将在下文进一步描述,每一个这样的API包括可以被设置为打开或关闭状态的标志。在关闭状态下,API不准许对安全数据存储设备上的对应数据的写入访问。
如本文中以及随附权利要求书中使用,打开或者关闭API是指将API标志的状态改变为打开或者关闭以便准许或者阻止对安全数据存储设备上的对应数据的写入访问。
图2是与所公开的实现一致的包括独立计算核的示例计算机系统的图示,所述独立计算核具有针对安全数据存储设备的数个应用程序接口(API)。如图2中所示,计算机系统(200)包括具有支持存储器单元的中央处理单元(CPU)(110)。这些可以包括主存储器设备(118),诸如,硬驱动或固态驱动,连同随机存取存储器(RAM)和非易失性NVRAM(122)。如图2中所示,主存储器设备(118)存储操作系统(O/S)(120)。
在开启期间,CPU将执行来自BIOS存储(112)的BIOS固件(114)。因而,与CPU(110)相关联地示出BIOS(130)的实例化版本。在运行时间,O/S将由CPU(110)从存储器(118)实例化。因而,也与CPU(110)相关联地示出O/S(132)的实例化版本。
总线(140)提供CPU(110)、存储设备(112、118和122)与独立计算核(102)之间的通信。如上文所述,安全数据存储设备(104)与其它系统(200)组件电气隔离,并且仅可被独立计算核(102)访问。如同样在上文所提及,安全数据存储设备(104)可以包含备份BIOS映像(116),独立计算核(102)可以在启动之前利用所述备份BIOS映像(116)修复或者替换BIOS存储(112)中的BIOS映像(114)。
如同样之前在上文所述,独立计算核(102)控制应用程序接口(API)(106),所述应用程序接口(API)(106)用于控制对安全数据存储设备(104)上存储的数据的写入访问。该API包括标志(108),所述标志(108)可以被设置为关闭或打开状态,如上文所述。如同样在图2中所示,可以存在数个API(106-1-106-N)。每一个API(106)可以提供对安全数据存储设备上的特定数据或位置的访问。因而,通过给对应API(106)加上打开标志而同时其它API仍然标志为关闭,可以使得仅特定数据能被访问。
最后,如图2中所示,在运行时间期间,可以在CPU(110)处准备消息(150),所述消息(150)包括需要存储在安全数据设备(104)中的安全数据。将该消息(150)发送给独立计算核(102)。该消息可以通过数个信道来发送,包括将消息(150)存储在可被CPU(110)和独立计算核(102)二者访问的存储器单元中,所述存储器单元诸如NVRAM(122)。
图3是与所公开的实现一致的使用具有针对安全数据存储设备的应用程序接口(API)的独立计算核以便在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。如图3中所示,方法包括在计算机系统的运行时间期间响应于接收到经验证的消息而利用独立计算核打开(302)应用程序接口(API),所述经验证的消息包含要写入到安全数据存储设备的安全数据;以及通过API将安全数据写入(304)到安全数据存储设备。
图4是与所公开的实现一致的用于在运行时间期间向安全数据存储设备写入数据的示例消息的图示。如图4中所示,消息(400)包括至少七个字段。
第一字段是密钥散列消息认证代码(HMAC)(402)。HMAC是特定构造,用于计算消息认证代码(MAC),牵涉到与秘密加密密钥组合的加密散列函数。在该情况下,摘要(digest)是使用在BIOS(130,图2)与独立计算核(102,图2)之间共享的共享秘密作为散列密钥的消息(400)的某些其它字段的散列。具体地,摘要(402)是来自消息(400)中的所有其它字段的值的散列。将所有字段并入在摘要(402)中,因为这样做允许让每一个字段都被HMAC验证。
用于创建HMAC(402)的散列算法是任意的,并且可以是使用加密密钥的任何散列算法。使用什么散列算法的记录保持在散列算法标识符字段(410)中。
例如,HMAC摘要字段(402)本身可以被设置为64字节长,它长到足以接受除了SHA-3 SHAKE 128和SHAKE 256之外的任何SHA-2或SHA-3 HMAC摘要长度。因而,HMAC摘要考虑到了在生成摘要(402)时使用任何经认可的散列算法的灵活性。不需要追踪实际HMAC的长度,因为所有被支持的摘要的长度基于特定散列算法是固定的。
第二字段是消息标识值(404)。这是标识每一个单独的消息的唯一数字。使用不安全的数据信道发送的每一个有效输入消息将包含消息标识值,所述消息标识值确切地匹配由独立计算核预期的当前消息标识值。一旦已经使用消息标识值,该标识值就增加1。由于每一个消息包含唯一的消息标识值,所以该字段阻碍通过不安全信道的重放攻击。
当系统每一次启动时,在关闭受信API之前,当前消息标识值由BIOS(130,图2)从独立计算核(102,图2)检索,所述受信API保护该数据以过渡至运行时间。BIOS然后存储当前消息标识值,例如,存储在系统管理RAM(SMRAM)中或者受信平台模块(TPM)层级中,这取决于系统的能力和配置。
在此之后,在运行时间期间,在发送/接收到每一个安全消息(400)之后,独立计算核和BIOS分离地增加消息标识值。由于二者在相同的消息标识值处开始,所以消息标识值的独立增加帮助确保每一个消息(400)的真实性。由于消息标识值在每一次启动之后再次同步,所以消息标识值同步性的任何非预期缺失可以在系统重启时恢复。这允许让系统从非预期错误恢复,同时仍然维持总体消息传递系统的安全性和完整性。
第三字段(406)是共享秘密标识符。该标识符(406)是标识用于HMAC的特定共享秘密的序数。该标识符在其中BIOS与独立计算核共享多个秘密的情况下提供帮助。甚至在受信API被设置为关闭时,可以准许知晓共享秘密的实体向由所述受信API控制的字段写入数据。
第四字段(408)是数据位置。该值充当用于总体消息的子命令,由此允许BIOS向独立计算核告知是什么种类的数据包含在消息中。独立计算核因而可以基于数据位置字段向安全数据存储设备(104,图2)中的适当位置写入数据。
第五字段(410)是散列算法标识符。每一个被支持的散列算法,诸如,SHA-2算法和SHA-3算法,对应于该字段中的唯一值。因而,任何散列算法可以被指定以供在使用该字段(410)生成HMAC(402)中使用。
第六字段(412)是消息长度。这允许在运行时间从BIOS向独立计算核安全地发送任意长度的消息。在一些实现中,将消息长度上限设置在某一任意值处以便防止拒绝服务攻击尝试向独立计算核发送非常大的消息。
第七字段(414)是实际消息内容。消息长度(412)可以指定以字节计的该内容(414)的长度。消息内容可以是要保持在安全数据存储设备(104,图2)中的没有约束的任何数据。消息(400)的发送方(可假定是BIOS(130,图2))应当确保消息内容(414)对于所指定的数据位置(408)有意义。
除了验证HMAC(402)的完整性之外,独立计算核可以或者可以不验证所述消息的值,所述HMAC(402)封装消息(400)的数据。附加验证可以特定于特定的消息或应用。
图5是示出了与所公开的实现一致的建立主机的BIOS与独立计算核之间的共享秘密以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。如图5中所示,BIOS(103,图2)将生成(502)随机数字。BIOS可以使用TPM来生成该数字,或者它可以使用系统固件或硬件来生成该随机数字。在这些情况中的任一个下,BIOS保证随机数字在加密方式上是秘密的,这意味着随机数字具有与其相关联的足够熵,使得它是用于加密操作的可靠随机数字。
BIOS然后向独立计算核(102,图2)请求(504)当前消息标识值。如上文所述,独立计算核然后将提供它的用于当前消息标识的值。将该值与BIOS的当前消息标识相比较(506)。如果在消息标识值之间有任何差异,那么就纠正它(510)。
BIOS然后将随机数字发送(508)给独立计算核。然后将随机数字用作在BIOS与独立计算核之间共享的共享秘密。如上文所述,如果需要的话,可以分配一个序数,该序数在BIOS与独立计算核之间共享的其它秘密之中标识该随机数字。在一些实现中,独立计算核可以生成随机数字,并且将该数字提供给BIOS,而不是反过来。在这样的实现中,BIOS是独立计算核已经知晓的并且由独立计算核存储的随机数字的接收方。当BIOS是接收方时,它将该随机数字存储在SMRAM中,正如当BIOS是随机数字的发送方时一样。
独立计算核然后将共享秘密存储(512)在安全数据存储设备(104,图2)中。独立计算核然后关闭(514)特定于共享秘密的API。该API可以被链接以用于访问安全数据存储设备(104,图2)中的共享秘密和消息标识值二者。作为结果,针对消息标识值而对独立计算核的任何随后请求(其可能是攻击的部分)由于该API的关闭而被忽略。
图6是示出了与所公开的实现一致的准备从主机的BIOS去往独立计算核的消息以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。如图6中所示,BIOS(130,图2)使用以上在图4的示例中描述的格式来建立消息。
首先,BIOS添加(602)当前消息标识值。然后,如果存在与独立计算核共享的多个秘密的话,那么BIOS添加(604)共享秘密标识符。BIOS然后添加(606)散列算法标识符以便指定要使用可用散列算法中的哪一个。
BIOS然后利用消息特定值来指定(608)数据位置、消息长度和消息内容字段。BIOS然后还增加(610)它的消息标识值并且准备(612)消息的数据的HMAC。BIOS然后将HMAC添加(614)至消息并且传送(616)消息。
图7是示出了与所公开的实现一致的验证从主机的BIOS去往独立计算核的消息以用于在运行时间期间向安全数据存储设备写入数据的示例方法的流程图。如图7中所示,当由独立计算核(102,图2)接收到(702)消息时,控制器可以通过检查(704)消息长度字段而开始。如上文所述,这可以快速地标识意图作为对独立计算核的拒绝服务攻击的过度大的消息。如果消息长度超出所允许的最大值(确定706),那么就丢弃消息(716)。
如果消息的长度是可接受的,那么独立计算核接下来检查(708)散列算法标识符字段和共享秘密标识符字段。独立计算核然后访问所指示的散列算法和共享秘密。
独立计算核然后准备(710)其自身的、消息的数据的HMAC。在各种示例中,HMAC可以是来自消息的所有或者仅所选的字段的HMAC。
独立计算核然后确定(712)这种所准备的HMAC是否与包含在消息的HMAC字段(402,图4)中的HMAC匹配。如果否,那么所述消息就没有通过验证并且被丢弃(716)。然而,如果HMAC匹配,那么所述消息就通过了验证并且被处理(718)。当该操作成功时,该操作就证实独立计算核信任消息发送方(在该情况下,发送方是BIOS)。如果该操作失败,那么独立计算核假定消息来自于攻击者并且不允许进一步的消息处理。一旦将发送方验证为受信发送方(因为该过程成功),独立计算核就处理消息。这将包括将消息的消息内容存储在安全数据存储设备中由消息的数据位置字段(408,图4)指定的位置处。
独立计算核然后将增加(720)它的消息标识值。作为结果,独立计算核的消息标识值应当继续匹配BIOS的消息标识值,因为如上文所述,作为生成消息的过程的部分,BIOS增加它的消息标识值。要指出,消息标识符中的任何非一致性将由独立计算核解读为攻击。因而,在其中消息标识符与预期值不匹配的任何情况下,独立计算核都丢弃该消息。
图8是与所公开的实现一致的具有指令的非暂时性计算机可读介质的图示,所述指令在由独立计算核执行时使控制器处理来自主机的BIOS的消息以用于在运行时间期间向安全数据存储设备写入数据。如图8中所示,非暂时性计算机可读介质(800)包括指令,所述指令在由计算机系统的独立计算核执行时使独立计算核:在接收到消息时,验证(802)消息;响应于消息的验证,在计算机系统的运行时间期间打开(804)应用程序接口(API);以及在验证之后通过API向逻辑上仅可被独立计算核访问的安全数据存储设备写入(80)来自消息的安全数据。
此处应当指出,非暂时性计算机可读介质不排除被视为非暂时性计算机可读媒介的易失性存储器设备,诸如RAM。
已经介绍了前面的描述,仅仅用于说明和描述所描述的原理的示例。该描述不意图是穷举性的或者将这些原理限于所公开的任何精确形式。许多修改和变形鉴于以上教导是可能的。

Claims (15)

1.一种计算机系统,包括:
独立计算核;以及
隔离的安全数据存储设备,用于存储数据,并且仅可被独立计算核访问;
独立计算核在计算机系统的运行时间期间响应于接收到经验证的消息而打开应用程序接口(API),所述经验证的消息包含要向安全数据存储设备写入的安全数据。
2.如权利要求1所述的计算机系统,还包括API的标志,独立计算核将标志选择性地设置为打开或关闭状态,其中向安全数据存储设备写入安全数据仅能在标志为打开状态时发生。
3.如权利要求1所述的计算机系统,还包括由独立计算核可操作的多个API,每一个API提供对安全数据存储设备的不同位置的排他性访问。
4.如权利要求1所述的计算机系统,独立计算核还使用共享秘密、消息标识值和密钥散列消息认证代码(HMAC)中的全部来验证所接收的消息,所接收的消息包含要向安全数据存储设备写入的数据。
5.如权利要求1所述的计算机系统,独立计算核还在计算机系统的运行时间期间通过API向安全数据存储设备写入来自经验证的消息的数据。
6.一种方法,包括:
在计算机系统的运行时间期间,响应于接收到经验证的消息而利用独立计算核打开应用程序接口(API),所述经验证的消息包含要写入到安全数据存储设备的安全数据;以及
通过API向安全数据存储设备写入安全数据。
7.如权利要求6所述的方法,还包括在打开API和写入数据之前验证所接收的消息。
8.如权利要求7所述的方法,其中在打开API之前验证所接收的消息包括检查所接收的消息的消息长度是否超出所允许的最大值。
9.如权利要求7所述的方法,其中在打开API之前验证所接收的消息包括:
使用所标识的散列算法和共享秘密而准备所接收的消息中的数据的密钥散列认证代码(HMAC);以及
将所述HMAC与包含在所接收的消息中的HMAC相比较。
10.如权利要求9所述的方法,其中准备HMAC包括对消息标识值、数据位置值、散列算法标识、消息长度值、以及来自所接收的消息的消息字段的内容中的全部散列化。
11.如权利要求6所述的方法,还包括响应于来自经验证的消息的安全数据向安全数据存储设备的写入而增加消息标识值。
12.如权利要求9所述的方法,还包括通过以下建立共享秘密:
向主机计算机系统的基本输入输出系统(BIOS)传送当前消息标识值;以及作为响应,
接收随机数字以用作共享秘密。
13.如权利要求12所述的方法,还包括:
将共享秘密存储在安全数据存储设备的指定位置中;以及
关闭排他性地提供对该指定位置的写入访问的应用编程接口(API)。
14.一种包含指令的非暂时性计算机可读介质,所述指令在由计算机系统的独立计算核执行时使独立计算核:
在接收到消息时,验证消息;
响应于消息的验证,在计算机系统的运行时间期间,打开应用程序接口(API);以及
在验证之后通过API向逻辑上仅可被独立计算核访问的安全数据存储设备写入来自消息的安全数据。
15.如权利要求14所述的非暂时性计算机可读介质,还包括通过以下验证消息的指令:
使用所标识的散列算法和共享秘密来准备消息中的数据的密钥散列消息认证代码(HMAC);以及
将所述HMAC与包含在消息中的HMAC相比较。
CN201680066861.7A 2016-02-19 2016-02-19 在运行时间期间向安全数据存储设备安全地写入数据 Pending CN108292340A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/018727 WO2017142559A1 (en) 2016-02-19 2016-02-19 Securely writing data to a secure data storage device during runtime

Publications (1)

Publication Number Publication Date
CN108292340A true CN108292340A (zh) 2018-07-17

Family

ID=59626208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680066861.7A Pending CN108292340A (zh) 2016-02-19 2016-02-19 在运行时间期间向安全数据存储设备安全地写入数据

Country Status (4)

Country Link
US (1) US11537757B2 (zh)
EP (1) EP3356987B1 (zh)
CN (1) CN108292340A (zh)
WO (1) WO2017142559A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308410A (zh) * 2018-10-16 2019-02-05 翟红鹰 获取区块链数据的方法、系统及计算机可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3518136A1 (en) * 2018-01-25 2019-07-31 Vestel Elektronik Sanayi ve Ticaret A.S. A circuit arrangement and method of operating a circuit arrangement
US10970369B2 (en) * 2018-12-14 2021-04-06 Rockwell Automation Technologies, Inc. Rapid file authentication on automation devices
US11386219B2 (en) * 2020-08-24 2022-07-12 Raytheon Company Detection of an unauthorized modification to storage and restoration of the storage

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283660A1 (en) * 2000-09-28 2005-12-22 Mckeen Francis X Mechanism to handle events in a machine with isolated execution
US20060015749A1 (en) * 2000-06-30 2006-01-19 Millind Mittal Method and apparatus for secure execution using a secure memory partition
US20060212694A1 (en) * 2005-03-16 2006-09-21 Fujitsu Limited Method of updating firmware in computer server systems
CN101281577A (zh) * 2008-05-16 2008-10-08 北京工业大学 一种对bios进行保护的可信计算系统及其应用方法
US20080288762A1 (en) * 2004-05-08 2008-11-20 Lechong Chen Firmware Interface Runtime Environment Protection Field
CN101651538A (zh) * 2009-09-04 2010-02-17 瑞达信息安全产业股份有限公司 一种基于可信密码模块的数据安全传输方法
US20110125980A1 (en) * 2005-10-12 2011-05-26 Jeffrey Brunet Data Backup System Including a Data Protection Component
US20140004825A1 (en) * 2012-06-29 2014-01-02 Gyan Prakash Mobile platform software update with secure authentication
US20150134974A1 (en) * 2013-11-13 2015-05-14 Via Technologies, Inc. Apparatus and method for securing bios in a trusted computing system
US20150220319A1 (en) * 2012-08-27 2015-08-06 Giesecke & Devrient Gmbh Method and System for Updating a Firmware of a Security Module
US20150355911A1 (en) * 2014-06-10 2015-12-10 Cisco Technology, Inc. Mechanism for obviating the need for host-side basic input/output system (bios) or boot serial peripheral interface (spi) device(s)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
CN1296854C (zh) 2001-06-29 2007-01-24 安全系统有限公司 用于计算机的安全系统和方法
US7237121B2 (en) 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
JP2006344113A (ja) * 2005-06-10 2006-12-21 Matsushita Electric Ind Co Ltd 情報処理装置のセキュリティ装置およびセキュリティ方法
US8127135B2 (en) 2006-09-28 2012-02-28 Hewlett-Packard Development Company, L.P. Changing of shared encryption key
US8122180B2 (en) 2008-02-13 2012-02-21 Sandisk Technologies Inc. Methods and systems for reconfiguring data memory of embedded controller managed flash memory devices
US9405707B2 (en) 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
US9152428B2 (en) 2012-09-28 2015-10-06 Intel Corporation Alternative boot path support for utilizing non-volatile memory devices
US9038130B2 (en) 2013-05-14 2015-05-19 Dell Products, L.P. Sensor aware security policies with embedded controller hardened enforcement
US10257192B2 (en) 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015749A1 (en) * 2000-06-30 2006-01-19 Millind Mittal Method and apparatus for secure execution using a secure memory partition
US20050283660A1 (en) * 2000-09-28 2005-12-22 Mckeen Francis X Mechanism to handle events in a machine with isolated execution
US20080288762A1 (en) * 2004-05-08 2008-11-20 Lechong Chen Firmware Interface Runtime Environment Protection Field
US20060212694A1 (en) * 2005-03-16 2006-09-21 Fujitsu Limited Method of updating firmware in computer server systems
US20110125980A1 (en) * 2005-10-12 2011-05-26 Jeffrey Brunet Data Backup System Including a Data Protection Component
CN101281577A (zh) * 2008-05-16 2008-10-08 北京工业大学 一种对bios进行保护的可信计算系统及其应用方法
CN101651538A (zh) * 2009-09-04 2010-02-17 瑞达信息安全产业股份有限公司 一种基于可信密码模块的数据安全传输方法
US20140004825A1 (en) * 2012-06-29 2014-01-02 Gyan Prakash Mobile platform software update with secure authentication
US20150220319A1 (en) * 2012-08-27 2015-08-06 Giesecke & Devrient Gmbh Method and System for Updating a Firmware of a Security Module
US20150134974A1 (en) * 2013-11-13 2015-05-14 Via Technologies, Inc. Apparatus and method for securing bios in a trusted computing system
US20150355911A1 (en) * 2014-06-10 2015-12-10 Cisco Technology, Inc. Mechanism for obviating the need for host-side basic input/output system (bios) or boot serial peripheral interface (spi) device(s)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡越明: "《计算机系统结构》", 31 October 2007 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308410A (zh) * 2018-10-16 2019-02-05 翟红鹰 获取区块链数据的方法、系统及计算机可读存储介质

Also Published As

Publication number Publication date
WO2017142559A1 (en) 2017-08-24
EP3356987A4 (en) 2019-03-20
US11537757B2 (en) 2022-12-27
US20180373900A1 (en) 2018-12-27
EP3356987B1 (en) 2021-02-17
EP3356987A1 (en) 2018-08-08

Similar Documents

Publication Publication Date Title
US10719606B2 (en) Security processor for an embedded system
US20190253417A1 (en) Hardware device and authenticating method thereof
TWI436236B (zh) 安全更新現場可升級單元之方法與系統
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
JP4774049B2 (ja) セキュアなプラットフォーム間およびプラットフォーム内通信のための方法およびプログラム
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
WO2020192406A1 (zh) 数据存储、验证方法及装置
KR20190063264A (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US20070101156A1 (en) Methods and systems for associating an embedded security chip with a computer
JP2016025616A (ja) ディスク・ドライブが記憶するデータを保護する方法および携帯式コンピュータ
TW200405963A (en) Sleep protection
KR102395258B1 (ko) 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치
CN108292340A (zh) 在运行时间期间向安全数据存储设备安全地写入数据
CN113626803A (zh) 一种bmc固件的保护方法、系统、装置及可读存储介质
Götzfried et al. Mutual authentication and trust bootstrapping towards secure disk encryption
CN114329496A (zh) 操作系统的可信启动方法和电子设备
WO2017135942A1 (en) Heartbeat signal verification
CN104361298A (zh) 信息安全保密的方法和装置
WO2017138799A1 (ko) 하드웨어 디바이스 및 그 인증 방법
CN107317925B (zh) 移动终端
CN102833296A (zh) 用于构建安全的计算环境的方法和设备
CN112020718A (zh) 电子装置的完整性检查
CN105357670B (zh) 一种路由器
CN115879087A (zh) 一种面向电力终端的安全可信启动方法及系统

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180717

RJ01 Rejection of invention patent application after publication