CN101251879B - 用于保护数据的方法和装置 - Google Patents

用于保护数据的方法和装置 Download PDF

Info

Publication number
CN101251879B
CN101251879B CN200710307356XA CN200710307356A CN101251879B CN 101251879 B CN101251879 B CN 101251879B CN 200710307356X A CN200710307356X A CN 200710307356XA CN 200710307356 A CN200710307356 A CN 200710307356A CN 101251879 B CN101251879 B CN 101251879B
Authority
CN
China
Prior art keywords
key
processing unit
disposal system
code module
encryption version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200710307356XA
Other languages
English (en)
Other versions
CN101251879A (zh
Inventor
M·J·库玛
S·格隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101251879A publication Critical patent/CN101251879A/zh
Application granted granted Critical
Publication of CN101251879B publication Critical patent/CN101251879B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

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

Abstract

一种扩充的引导代码模块包括在引导过程期间由处理单元执行的指令。该扩充的引导代码模块还包括可由无论处理单元重置与否仍保留在该处理单元内的密钥所解密的密钥的加密版本。在一个实施例中,处理单元可以解密该密钥的加密版本并在随后使用解密的密钥建立与诸如可信平台模块(TPM)的安全处理器之间的受保护的通信通道。也描述并要求保护了其他的实施例。

Description

用于保护数据的方法和装置
发明领域
本公开一般涉及数据处理领域,尤其涉及用于保护数据的方法和相关的装置。
背景技术
处理系统可以包括硬件资源,诸如中央处理单元(CPU)、随机存取存储器(RAM)和非易失性存储器。处理系统还可以包括软件资源,诸如基本输入输出系统(BIOS)、虚拟机监控程序(VMM)、以及在VMM上运行的一个或多个客户机操作系统(OS)。当计算机系统被启动或重置时,它可以载入BIOS,并在随后载入VMM。VMM随后可以创建一个或多个虚拟机,并且这些虚拟机可以引导不同的OS或相同OS的不同示例。
除了RAM和一个或多个CPU之外,处理系统还可以包括安全协处理器,诸如可信平台模块(TPM)。TPM是位于处理系统内的硬件组件,并提供了用于增强处理系统的安全性的各种设备和服务。例如,TPM可以被实现为集成电路(IC)或半导体芯片,并且它可用于保护数据并证明一平台的配置。TPM可以依照包括诸如设计原理、TPM结构和TPM命令等部分的规范,诸如于2003年10月2日发布的Trusted Computing Group(TCG)TPM Specification Version 1.2(可信计算小组(TCG)TPM规范版本1.2)(下称“TPM规范”)来实现。该TPM规范由TCG公布并可从网址www.trustedcomputinqqroup.org/home处获取。
TPM的子组件可以包括执行引擎和安全非易失性(NV)存储器或存储。安全NV存储器用于存储诸如加密密钥之类的敏感信息,而执行引擎则根据由TPM的控制逻辑指定的安全策略来保护这些敏感信息。
一般而言,遵从TCG的TPM基于平台特性提供诸如证明身份和/或平台完整性等安全服务。TPM通常考虑的平台特性包括平台的硬件组件,诸如处理器和芯片组,以及驻留在平台内的软件,诸如固件和OS。TPM还可以支持软件进程的审查和日志记录,平台引导完整性、文件完整性以及软件许可的验证。因此就可认为TPM是针对平台的信任根。
发明内容
本发明提供了一种用于保护数据的方法,所述方法包括:把来自处理系统的非易失性存储器的密钥的加密版本检索入所述处理系统的处理单元;解密所述密钥的所述加密版本;在所述处理单元的受保护部分内存储所述解密的密钥;以及使用所述解密的密钥来在所述处理系统的所述处理单元和安全协处理器之间建立受保护的通信通道。
根据本发明的另一方面,提供了一种用于保护数据的方法,包括:将第一密钥保存至处理系统的安全协处理器,所述第一密钥被用于在所述处理系统的处理单元和安全协处理器之间建立受保护的通信通道;将所述第一密钥发送给远程处理系统;接收来自所述远程处理系统的所述第一密钥的加密版本;以及将代码模块保存至所述处理系统内的引导存储,其中所述代码模块包括用户数据、所述第一密钥的所述加密版本、以及用第二密钥生成的签名。
根据本发明的又一方面,提供了一种处理系统,包括:处理单元;与所述处理单元通信的非易失性存储器;以及与所述处理单元通信的安全协处理器;其中所述处理单元被配置用于:把来自处理系统的非易失性存储器的密钥的加密版本检索入所述处理系统的处理单元;用处理单元密钥解密所述密钥的所述加密版本;在所述处理单元的受保护部分内存储所解密的密钥;以及使用所解密的密钥来在所述处理系统的所述处理单元和安全协处理器之间建立受保护的通信通道。
附图说明
本发明的特征和优点将从所附权利要求书、以下对一个或多个示例实施例的详细描述以及相应的附图中变得显而易见,附图中:
图1是描绘了在其中可以实现本发明一个示例实施例的某些方面的合适数据处理系统的框图;
图2是描绘了涉及图1的数据处理系统的示例性数据处理环境的框图;
图3是根据本发明一个示例实施例的用于向图1的处理系统供给第三方密钥的过程的流程图;
图4是根据本发明一个示例实施例的扩充的鉴别代码模块的框图;以及
图5是根据本发明一个示例实施例的用于在处理单元和安全协处理器之间建立受保护的通信通道的过程的流程图。
具体实施方式
在带有TPM的平台内,可以使用平台测量和加密来将敏感信息或秘密密封至TPM。例如,在带VMM的处理系统中,可以使用VMM和其他平台组件的测量来将秘密密封至TPM。TPM可以避免秘密在随后被泄漏或者从TPM开封,除非VMM和其他平台测量被验证与用于密封的测量匹配。然而,当秘密被开封时,它会在TPM和CPU之间在处理系统内经由通信通道以纯文本(即,未加密)传送。
本发明公开描述了用于在安全协处理器(例如,TPM)和处理单元(例如,CPU)之间以加密格式通信秘密的机制和过程。因此,即使攻击者监听处理系统内的内部总线,攻击者也无法截取纯文本秘密。
描述的机制和过程适于为例如有关数字权限管理(DRM)的高价值内容提供增强的保护。如下将进一步详述的那样,在一个实施例中,在TPM和CPU之间的通信通道上的数据使用每会话密钥来加密。此外,CPU和TPM被预先供给密钥(在此被称为“第三方密钥”或“3PK”),用来鉴别会话结束点并创建每会话密钥。
为了本公开的目的,对于处理单元并对于包括处理单元的处理系统而言,“第一方”是处理器的制造商,而“第三方”是与该处理单元或处理系统相关联的任何其他实体。例如,处理系统的制造商和处理系统的所有者都被认为是“第三方”。
再次参考第三方密钥,CPU的制造商没有必要将3PK载入CPU或TPM。的确,因为TPM与平台相关联,所以若是CPU制造商并未装配平台,那么CPU制造商可能没有机会将3PK载入TPM。相反地,3PK以及将其载入处理系统的过程可以主要由某些其他方控制,诸如处理系统的制造商。例如,如下将进一步详述的那样,当建立处理系统时,原始设备制造商(OEM)可以获取已被扩充成包含要被安装在该处理系统的CPU内的第三方密钥的鉴别码(AC)模块。如下面进一步详述的那样,在扩充的AC模块(AACM)内,3PK可由基于处理单元密钥(PUK)的加密所保护。AACM还可用签名保护。出于本公开的目的,处理单元密钥或PUK是在制造处理器时存储在该处理器内的密钥,并且以非易失性的形式保留在处理器内。例如,处理器可以保留该密钥,而不考虑该处理器的功率循环或重置。
AACM可以被存储在引导存储(例如,通常含有BIOS代码的闪存)内。平台建造者也可在平台制造期间将3PK安装入该平台的TPM。随后,在重置时,CPU可以查找并运行该AACM。因此,AC模块以及已用加密的3PK扩充的类似类型的模块就可被认为是扩充的引导代码模块。在一个实施例中,CPU可以使用固件接口表(FIT)作为用于查找和运行AACM的标准机制。有关FIT的额外信息在日期为2003年12月的Processor Family System Abstraction LayerSpecification
Figure GA20184024200710307356X01D00042
处理器家族系统抽象层规范)中提供,这可以从因特网download.intel.com/design/Itanium/Downloads/2453 5907.pdf获取。当运行时,AACM可以将3PK安装至仅可由特权代码修改的CPU寄存器。于是,一平台可以使用在此描述的方法而将OEM密钥输入BIOS存储器并且在每次导入时将其安全地安装入处理器。
AACM还可以初始化TPM并创建会话密钥,该密钥将由处理器和TPM用来加密在这两个组件之间交换的数据。例如,一旦3PK已经被安装入处理器和TPM,这些密钥又可使用标准加密方案用于生成一个或多个会话密钥。该会话随后可用于保护在处理器和TPM之间的通信。
描述的解决方案允许在CPU和诸如TPM之类的安全处理器之间的安全通信,由此就能反抗哪怕是拥有高级监听硬件和对机器进行物理访问的攻击者,从而确保安全交换。例如,根据本公开的平台可以确保用于保护数据内容的密钥(例如,用于保护运动图像专家组(MPEG)影片的密钥、用于保护信用卡信息数据库的密钥等)免受基于目标内探针(ITP)的攻击。
此外,本公开描述了一种灵活便利的方式来向平台供给密钥以建立受保护通信通道。密钥可由第三方选择并由该第三方安装入平台。3PK密钥无需内建于处理器。处理器制造商因此无需知晓3PK。此外,如果要将处理器返回给制造商,也可以在不危及3PK的安全的情况下重新使用该处理器。如果需要则可以由可信代理改变该3PK,并且3PK可以仅在处理器存在于平台内时被系至该处理器。
图1是描绘了在其中可以实现本发明一个示例实施例的某些方面的合适数据处理系统20的框图。数据处理系统20具有经由一个或多个系统总线24或其他通信路径或介质与各种其他组件通信耦合的各种硬件组件82,诸如中央处理单元(CPU)22。本公开使用术语“总线”来指代共享的通信路径以及点对点路径。CPU 22可以包括两个或多个处理单元,诸如处理单元30和处理单元32。可选地,处理系统可以包括带有一个处理单元的CPU,或者各自具有至少一个处理单元的多个处理器。处理单元可由超线程(HT)技术或由用于同时或大致同时执行多线程的任何其他合适技术来实现为处理核。
正如在此使用的,术语“处理系统”和“数据处理系统”旨在广泛地包含单个机器,或者通信上耦合的共同工作的机器或设备的系统。示例性处理系统包括但不限于:分布式计算系统、超级计算机、高性能计算系统、计算集群、大型计算机、微型计算机、客户机-服务器系统、个人计算机、工作站、服务器、便携式计算机、膝上型计算机、图形输入板、电话机、个人数字助理(PDA)、手持式设备、诸如音频和/或视频设备等娱乐设备、以及用于处理或传输信息的其他设备。
处理系统20可至少部分地通过来自诸如键盘、鼠标等的常规输入设备的输入,和/或通过接收自另一台机器、生物测定反馈、或其他输入源或信号的指示来控制。处理系统20可以利用对一个或多个远程数据处理系统的一个或多个连接,诸如通过网络接口控制器(NIC)40、调制解调器或其他的通信端口或耦合。处理系统可以通过诸如局域网(LAN)、广域网(WAN)、内联网、因特网之类的物理和/或逻辑网络的方式互连。涉及网络的通信可以利用各种有线和/或无线近程或远程载体和协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光学、红外线、电缆、激光等等。有关802.11的协议也被称为无线高保真(WiFi)协议。有关802.16的协议也被称为WiMAX或无线城域网协议,有关这些协议的信息当前可从grouper.ieee.org/groups/802/16/published.html获得。
图2是描绘了涉及图1的处理系统20的一个示例性数据处理环境12的框图。更具体地,数据处理环境12包括作为本地处理系统的处理系统20,以及被称为AACM发生器80的远程处理系统。处理系统20和AACM发生器80可以经由网络90通信。例如,处理系统20可位于OEM装配厂102内,并且当OEM正装配或配置处理系统20时,OEM可以使得处理系统20与AACM发生器80通信以向处理系统20供给该OEM专用的3PK,这在以下将参考图3更为详尽地描述。更具体地,如下所述,OEM可以使得AACM发生器80在初步AC模块中嵌入3PK 72,由此将其转换成该OEM专用的AACM。
再次参考图1,在处理系统20中,处理器22可以通信耦合至一个或多个易失性或非易失性数据存储设备,诸如RAM 26、只读存储器(ROM)42、诸如硬盘驱动器的大容量存储设备36、和/或诸如软盘、光学存储、磁带、闪存、记忆棒、数字视频盘等的其他设备或介质。为了本公开的目的,术语“ROM”通常用于指代诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速ROM、闪存等的非易失性存储器设备。处理器22还可以通信耦合至另外的组件,诸如视频控制器、集成驱动器电子电路(IDE)控制器、小型计算机系统接口(SCSI)控制器、通用串行总线(USB)控制器、输入/输出(I/O)端口、输入设备、诸如显示器之类的输出设备等等。
在图1的实施例中,处理系统20还包括TPM 44。在其它实施例中,也可以使用其他类型的安全协处理器。处理器22、RAM 26、TPM 44和其他组件可以连接至芯片组34。芯片组34可包括用于通信耦合系统组件以及其他逻辑和存储组件的一个或多个桥或集线器。
诸如视频控制器等某些组件例如可以被实现为用来与总线通信的带接口(例如,PCI连接器)的适配器卡。在一个实施例中,一个或多个设备可以被实现为使用诸如可编程或不可编程逻辑器件或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等组件的嵌入式控制器。
本发明在此可以参考诸如指令、函数、过程、数据结构、应用程序、配置设置等的数据来描述。当这些数据被机器访问时,会使该机器通过执行定义抽象数据类型或低级硬件上下文的任务,和/或执行诸如将在以下更为详细地描述的其他操作来响应。该数据可以被存储在易失性和/或非易失性数据存储中。为此公开的目的,术语“程序”覆盖广义范围的软件组件和构造,包括应用程序、驱动程序、过程、例程、方法、模块和子程序。术语“程序”可用于指代一完整编译单位(即,可被独立编译的一组指令)、编译单位的集合或者编译单位的一部分。于是,术语“程序”可用于指代在由处理系统执行时会执行期望的一个或多个操作的任何指令的集合。在处理系统20内的程序可被认为是软件环境84的组件。
例如,当处理系统20导入时,BIOS 50和VMM 52可被载入RAM 26并在软件环境84内执行。BIOS 50例如可以根据日期为2006年1月31日的Version 2.0 ofthe Unified Extensible Firmware Interface Specification(统一可扩展固件接口规范版本2.0)来实现。ROM 42还可以包括诸如扩充的AC模块(AACM)60之类的模块,这在如下将进一步详述。
图3是根据本发明一个示例实施例用于向处理系统20供给3PK的过程的流程图。示出的过程与由OEM管理的装配或配置操作有关,该过程在OEM选择要向其供给3PK的处理系统20之后开始。在框110,OEM选择要供给的3PK。
在框112,OEM准备初步的AC模块。在该示例性的实施例中,OEM为该AC模块使用诸如在日期为2006年9月的LaGrande Technology PreliminaryArchitecture Specification(拉格朗日技术初步架构规范,其后称为“LTPA规范”)描述的格式。该LTPA规范当前可从因特网www.intel.com/technology/security/downloads/LT_spec_0906.pdf获取。
图1的示例性处理系统使用被称为更安全模式扩展(SMX)的功能来提供发射和控制接口。有关SMX的额外信息可从LTPA规范获取。该LTPA规范还描述了如何鉴别并执行AC模块。例如,第11和12页提供了下列解释:
·为支持受保护环境的建立,SMX启用鉴别代码执行模式的能力。这提供了用于将被称为鉴别代码模块(AC模块)的特定代码模块载入处理器的内部RAM(被称为鉴别代码执行区)的能力。该AC模块首先被鉴别并在随后使用抗篡改方法执行。
·鉴别是通过使用在AC模块头内的数字签名来实现的。处理器计算AC模块的散列并使用该结果来使签名有效。使用SMX,处理器将仅初始化处理器状态或在其通过鉴别的情况下执行AC代码模式。因为鉴别代码模块被保持在处理器的内部RAM内,所以该模块的执行能够与外部存储器的内容或外部处理器总线上的活动隔离地进行。
再次回到框112,为了准备初步AC模块,OEM可以将用户代码/数据载入初步AC模块的用户区。在此,初步AC模块用作需要被嵌入扩充的AC模块的OEM内容的格式化输入。处理系统20还可以填充该初步AC模块的其他部分,诸如大小字段。
如框114所示,处理系统20随后连接至AACM发生器80。在此示例性实施例中,处理系统20和AACM发生器80建立用于通信加密数据的安全通道。可以使用任何合适的技术来建立这条安全通道。如框116所示,处理系统20随后可以将信息或请求84发送给AACM发生器80。如图2所示,请求84可以包括初步AC模块以及期望的3PK。在此示例性实施例中,初步AC模块将含有OEM或第三方制造商填充用以指示寻找该AACM的处理器家族的字段。如框120和122所示,AACM发生器80可以从处理系统20接收初步AC模块和3PK,并可以在随后加密3PK。
在图2的实施例中,AACM发生器80由处理器22的制造商管理,并且AACM发生器80使用预定的处理器制造密钥(PMK)71来加密3PK。在图2的实施例中,PMK 71是私钥,并且处理单元30包括作为相应公钥的PUK 70。在另一个实施例中,PMK和PUK可以是相同的密钥(即,它们可以具有相同的值)。
在图1的实施例中,PUK 70可由处理器22的制造商在制造过程中,在将处理器22发送给诸如OEM的买方之前永久性地烧入处理单元30。处理器22的制造商可以把PMK 71保密,以使得没有其他实体能知晓该PMK 71的值。另外,处理器制造商可以安排个别可信实体来管理AACM发生器80。虽然PUK 70可被认为是“公”钥,但是它可以被保密,以使得它的值从不被处理单元30泄漏。
再次回到图3,如框124所示,AACM发生器80随后建立包括加密的3PK(E3PK)72A的AACM 60。更具体地,再回到图2,当建立AACM 60时,AACM发生器80可以将E3PK附至初步AC模块的用户数据,并且更新该模块大小字段。另外,AACM 60可以包括用以保持加密3PK的预定义字段。包括3PK加密版本的AACM也可被称为加密的AC模块。
再次参考图3,如框126所示,AACM发生器80随后将AACM 60发送给处理系统20。在框130,处理系统20可以接收来自AACM发生器80的AACM 60。随后如框132所示,处理系统20可以签名AACM 60。例如,OEM可以选择一个AC模块密钥对,诸如里维斯特-沙米尔-阿德尔曼(Rivest,Shamir,Adelman(RSA))公钥/私钥对,并在随后将来自该对的公钥载入AACM 60的头部。OEM很可能基于用户区的散列或可能是AACM 60的其他部分而使用来自该对的私钥生成用于该AACM 60的RSA签名。OEM随后可以在AACM 60的头部内存储该RSA签名。
于是,OEM(或其他第三方)可以为AC模块选择3PK以及RSA公钥。随后,为了区别这些密钥,RSA公钥被称为主模块密钥,而3PK则被称为辅模块密钥。
如框134所示,处理系统20随后可在ROM 42内存储AACM 60,如图1所示。在图1的实施例中,处理单元30被配置用作自举处理器(BSP),而处理系统20则被配置成将ROM 42用作引导存储(即,非易失性存储,处理单元30在上电或重置时从其获取指令用以初始化并配置处理系统20)。
如框136所示,处理系统20随后将3PK 72保存入TPM 44。例如,处理系统20可以在每次引导期间将3PK 72安全地安装入TPM 44。可选地,OEM可以在处理系统制造期间将3PK 72供给至TPM 44内。
图4是图1的AACM 60的框图,其中示出了模块头部内的RSA公钥76和RSA签名78、头部之后的擦除区、以及擦除区之后的用户区,该用户区在来自初步AC模块的用户代码和用户数据之后还带有附至模块末尾处或附近的加密的3PK72A。另外,AC模块可用独立字段构造,以便可能在该模块的头部内保持一加密的3PK。
于是,OEM或执行系统配置的其他实体可以在ROM 42内安装密钥(例如,E3PK 72A)。此外,因为该密钥本身被加密,所以即使攻击者能够从ROM 42中提取该E3PK 72A,攻击者仍然无法解密并使用E3PK 72A。
图5是根据本发明一个示例实施例用于建立处理单元和TPM之间受保护通信通道的过程的流程图。图1在总线24和芯片组34上使用了粗线以描绘如根据图5过程建立在处理单元30和TPM 44之间的这一安全通道的一个示例。该过程可根据诸如上述的过程,在带有E3PK 72A的AACM 60已被存储在ROM 42之后开始。
更具体地,图5的过程可以响应于处理系统20正被开机或重置而开始,从而引起处理单元30内的微码检查ROM 42内的预定位置以判定ROM 42是否含有AC模块。如果找到了AC模块,处理单元30就可以将AC模块载入处理单元30内受保护的内部RAM。接收该AC模块的受保护的内部RAM也可被称为鉴别代码执行区(ACEA)38。
出于示例的目的,可以假设处理单元30在ROM 42内找到AACM 60。如框220所示,处理单元30随后可以根据以上LTPA规范的摘录判定AACM 60是否可信。例如,处理单元30可以(a)计算AACM 60某些部分的散列,(b)使用RSA公钥76来解密签名78,以及(c)将解密的签名与散列相比较以判定AACM 60是否与OEM最初用相应的RSA私钥的签名相匹配。处理单元30还可以相对于有效公钥的预定列表来验证RSA公钥76。例如,处理单元可以从RSA公钥76中导出散列值,并将该值与处理系统20内受保护存储中的有效散列值列表相比较。如果RSA公钥76验证良好,并且AACM 60的散列与解密的RSA签名匹配,处理单元30就可以推断AACM 60可信。
如果处理单元30无法找出AC模块,或者如果处理单元30找出AC模块但判定其不可信,则如框240所示,处理单元30就把适当的差错消息记入日志。随后如框250所示,处理单元30检查处理系统20内的配置设置以判定处理系统20是否应被允许使用非ACM引导过程。如果非ACM引导被允许,则如框252所示,处理单元30就执行该非ACM引导。如果非ACM引导未被允许,则过程结束而不引导处理系统20。
再次参考框220,如果处理单元30判定AACM 60可信,随后就如框222所示,处理单元30从AACM 60中提取E3PK 72A。处理单元30例如可以在一个或多个处理器寄存器或其他内部存储中临时存储E3PK 72A。
如框224和226所示,处理单元32随后解密E3PK 72A并在处理单元32内的受保护存储中保存该结果(即,3PK 72)。在图1的实施例中,该受保护的存储被实现为一个或多个寄存器,上述存储器(a)仅可由特权代码修改;(b)无法由非特权代码读取、写入或调试;以及(c)无法由ITP访问。在此上下文中,特权代码是可以在处理器外部被携带的代码,但是在其由处理器运行之前要求特定的鉴别,随后在清洁环境中运行于处理器内,以使得特权代码的执行无法被恶意方观察或操纵。在图1的实施例中,处理单元30使用PUK 70来解密E3PK 72A。
如框228所示,处理单元30和TPM 44随后可使用3PK 72来创建用以保护处理单元30和TPM 44之间通信的会话密钥(SK)74。随后如框230所示,处理单元30和TPM 44使用SK 74创建一受保护的通道。该受保护的通道穿过多条系统总线24以及芯片组34的零个或更多的组件。随后如框232所示,TPM 44和处理单元30使用SK 74加密通信。在可选实施例中,可以使用多个会话密钥来保护处理单元30和TPM 44之间的通信。
受保护的通道例如可用于将来自TPM 44的密钥或其他受保护的信息载入处理单元30。同样地,受保护的通道可用于将来自处理单元30的密钥或其他敏感的信息载入TPM 44。受保护的通道由此确保该通道的任何观察者都无法判定通信的内容,从而保护传输中的数据免受修改。此外,用于初始化该通道的过程可以鉴别终点以免于越权存取、免于重放和TPM交换攻击。
鉴于在此描述并示出的原理和示例实施例,应该认识到,可以在不背离上述原理的情况下对所示的实施例的安排和细节做出修改。同样,虽然前述讨论关注了某些特定实施例,但是仍然可以构想其他配置。更具体地,即使在此使用了诸如“在一个实施例中”、“在另一个实施例中”之类的表达,但这些短语意味着一般参考实施例的可能性,而不旨在将本发明限于某些特定的实施例配置。如此处所使用的,这些术语可以参考可并入其他实施例的相同或不同的实施例。
类似地,虽然已关于以特定顺序执行的特定操作描述了示例过程,但是可以对这些过程应用各种修改以导出本发明的多个替换实施例。例如,替换实施例可以包括使用少于全部公开的操作的过程、使用附加操作的过程、使用顺序不同的相同操作的过程以及其中组合、细分或另外改变了在此公开的各个操作的过程。
本发明的替换实施例还包括用于执行本发明的各操作的机器可访问介质编码指令。这些实施例还可被称为程序产品。这些机器可访问介质包括但不限于存储介质,诸如软盘、硬盘、CD-ROM、ROM和RAM;以及由机器或设备制造或形成的部分的其他可检测的装置。指令还可在分布式环境中使用并被本地和/或远程存储以供单或多处理器机器访问。
应该理解,在此描述的硬件和软件组件表示合理自持以便各自都能被充分彼此独立地设计、构造或更新的功能元件。在替换实施例中,许多组件都可被实现为硬件、软件或硬件和软件的组合以提供在此描述并示出的功能。
考虑到能从在此描述的示例实施例中轻易导出的各种有用的变化,该详细描述仅出于示意性的目的,而不应被理解为限制本发明的范围。因此,本发明所要求保护的是落入所附权利要求书的范围和精神内的全部实现以及这些实现的所有等效技术方案。

Claims (14)

1.一种用于保护数据的方法,所述方法包括:
把来自处理系统的非易失性存储器的密钥的加密版本检索入所述处理系统的处理单元,所述密钥用于在所述处理单元与所述处理系统的安全协处理器之间建立受保护的通信通道;
解密所述密钥的所述加密版本;
在所述处理单元的受保护部分内存储所述解密的密钥;以及
使用所述解密的密钥来在所述处理系统的所述处理单元和安全协处理器之间建立受保护的通信通道。
2.如权利要求1所述的方法,其特征在于,包括:
在有关所述处理系统的引导过程期间,检索来自所述非易失性存储器的所述密钥的所述加密版本。
3.如权利要求1所述的方法,其特征在于,所述检索来自非易失性存储器的所述密钥的所述加密版本的操作包括:
在有关所述处理系统的引导过程期间,检索来自所述处理系统的引导存储器的代码模块;以及
从所述代码模块中提取所述密钥。
4.如权利要求1所述的方法,其特征在于,还包括:
还利用存储在所述安全协处理器内的所述解密的密钥的一个示例来在所述处理单元和所述安全协处理器之间建立所述受保护的通信通道。
5.如权利要求1所述的方法,其特征在于,所述在所述处理单元的受保护部分内存储所述解密的密钥的操作包括:
在所述处理单元无法通过监听通信耦合至所述处理单元的处理系统总线来访问的那一部分内存储所述解密的密钥。
6.如权利要求1所述的方法,其特征在于,还包括:
使用处理单元密钥解密所述密钥的所述加密版本。
7.如权利要求6所述的方法,其特征在于:
所述密钥包括第三方密钥;以及
所述处理单元密钥包括无论所述处理单元重置与否仍保留在所述处理单元内的密钥。
8.一种用于保护数据的方法,包括:
将第一密钥保存至处理系统的安全协处理器,所述第一密钥被用于在所述处理系统的处理单元和安全协处理器之间建立受保护的通信通道;
将所述第一密钥发送给远程处理系统;
接收来自所述远程处理系统的所述第一密钥的加密版本;以及
将代码模块保存至所述处理系统内的引导存储,其中所述代码模块包括用户数据、所述第一密钥的所述加密版本、以及用第二密钥生成的签名。
9.如权利要求8所述的方法,其特征在于,还包括:
以初步代码模块将所述代码模块的所述用户数据发送给所述远程处理系统;以及
以所述代码模块接收来自所述远程处理系统的所述第一密钥的所述加密版本。
10.如权利要求8所述的方法,其特征在于:
所述将所述第一密钥发送给远程处理系统的操作包括将所述第一密钥发送给扩充的鉴别代码模块发生器;以及
所述接收来自所述远程处理系统的所述第一密钥的所述加密版本的操作包括接收来自所述鉴别代码模块发生器的鉴别代码模块,其中所述鉴别代码模块包括所述第一密钥的所述加密版本。
11.如权利要求8所述的方法,其特征在于:
用于生成所述代码模块的所述签名的所述第二密钥包括私钥;以及
所述方法包括将对应于所述私钥的公钥载入所述代码模块。
12.一种用于保护数据的处理系统,包括:
处理单元;
与所述处理单元通信的非易失性存储器,所述非易失性存储器存储密钥的加密版本,所述处理单元能用处理单元密钥解密所述密钥的所述加密版本;以及
与所述处理单元通信的安全协处理器,
其中所述安全协处理器通过在所述处理单元与所述安全协处理器之间建立的受保护的通信通道与所述处理单元通信,所述受保护的通信通道通过使用所解密的密钥来建立。
13.如权利要求12所述的处理系统,其特征在于,在所述处理单元的受保护存储无法通过监听通信耦合至所述处理单元的处理系统总线来访问。
14.如权利要求12所述的处理系统,其特征在于:
所述密钥包括第三方密钥。
CN200710307356XA 2006-12-29 2007-12-28 用于保护数据的方法和装置 Expired - Fee Related CN101251879B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/648,472 2006-12-29
US11/648,472 US8364975B2 (en) 2006-12-29 2006-12-29 Methods and apparatus for protecting data

Publications (2)

Publication Number Publication Date
CN101251879A CN101251879A (zh) 2008-08-27
CN101251879B true CN101251879B (zh) 2010-10-13

Family

ID=39247147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710307356XA Expired - Fee Related CN101251879B (zh) 2006-12-29 2007-12-28 用于保护数据的方法和装置

Country Status (3)

Country Link
US (1) US8364975B2 (zh)
EP (1) EP1944712B1 (zh)
CN (1) CN101251879B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065479A (zh) * 2014-07-11 2014-09-24 中国人民公安大学 基于群组的密钥生成方法和系统、密钥分发方法和系统
CN104170312A (zh) * 2011-12-15 2014-11-26 英特尔公司 用于使用硬件安全引擎通过网络进行安全通信的方法和设备
TWI596500B (zh) * 2015-11-02 2017-08-21 上海兆芯集成電路有限公司 具硬盤加密功能的晶片組以及主機控制器

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006006633A1 (de) * 2006-02-10 2007-08-16 Sia Syncrosoft Verfahren zur Verbreitung von Contents
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US9317708B2 (en) * 2008-08-14 2016-04-19 Teleputers, Llc Hardware trust anchors in SP-enabled processors
US20100083002A1 (en) * 2008-09-30 2010-04-01 Liang Cui Method and System for Secure Booting Unified Extensible Firmware Interface Executables
US9805196B2 (en) * 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
US9081963B1 (en) * 2009-02-27 2015-07-14 Marvell Israel (M.I.S.L) Ltd. Protecting against use of unauthorized electronic hardware devices
US9058491B1 (en) * 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9336410B2 (en) 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US9721101B2 (en) * 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US8549585B2 (en) * 2010-06-14 2013-10-01 International Business Machines Corporation Method and apparatus to implement secured, layered logout from a computer system
CN101908115B (zh) * 2010-07-30 2013-09-11 中国船舶重工集团公司第七0九研究所 基于可信平台模块实现软件可信执行的方法
CN102279813B (zh) * 2011-08-12 2014-03-12 无锡城市云计算中心有限公司 一种加密卡内系统的保护方法
TWI559167B (zh) 2011-11-04 2016-11-21 系微股份有限公司 統一可延伸韌體介面(uefi)相容計算裝置和用於在uefi相容計算裝置中管控一安全啓動之方法
US9596082B2 (en) * 2011-12-15 2017-03-14 Intel Corporation Secure debug trace messages for production authenticated code modules
WO2013101085A1 (en) 2011-12-29 2013-07-04 Intel Corporation Secure key storage using physically unclonable functions
US8527139B1 (en) * 2012-08-28 2013-09-03 GM Global Technology Operations LLC Security systems and methods with random and multiple change-response testing
US9090265B2 (en) 2012-08-28 2015-07-28 GM Global Technology Operations LLC Active safety systems of vehicles with graphical microprocessors
US9246678B2 (en) 2013-03-14 2016-01-26 Intel Corporation Secure cloud storage and encryption management system
CN104144411B (zh) * 2013-05-08 2019-09-24 南京中兴新软件有限责任公司 加密、解密终端及应用于终端的加密和解密方法
CN105184190B (zh) * 2015-09-16 2018-09-18 中国南方电网有限责任公司电网技术研究中心 一种嵌入式可信计算开发装置
US10242197B2 (en) * 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection
US10897360B2 (en) * 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using clean room provisioning
US20190007212A1 (en) * 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
CN109873801B (zh) * 2018-12-12 2020-07-24 阿里巴巴集团控股有限公司 在用户和可信计算集群之间建立可信通道的方法、装置、存储介质及计算设备
CN109861980B (zh) * 2018-12-29 2020-08-04 阿里巴巴集团控股有限公司 一种建立可信计算集群的方法、装置、存储介质及计算设备
US11205003B2 (en) 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism
CN113792281A (zh) * 2021-09-29 2021-12-14 龙芯中科(南京)技术有限公司 电子设备、认证方法、存储介质和程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734819A (en) 1994-10-12 1998-03-31 International Business Machines Corporation Method and apparatus for validating system operation
EP1076280A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Communications between modules of a computing apparatus
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6643751B2 (en) * 2000-03-20 2003-11-04 Texas Instruments Incorporated System and method for limited access to system memory
WO2002076127A1 (en) 2001-03-16 2002-09-26 Qualcomm Incorporated Method and apparatus for providing secure processing and data storage for a wireless communication device
US7082200B2 (en) * 2001-09-06 2006-07-25 Microsoft Corporation Establishing secure peer networking in trust webs on open networks using shared secret device key
US7773754B2 (en) * 2002-07-08 2010-08-10 Broadcom Corporation Key management system and method
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
DE10254320A1 (de) 2002-11-21 2004-06-03 Philips Intellectual Property & Standards Gmbh Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Ver-/Entschlüsseln von Daten des nicht-flüchtigen Speichermoduls
US7181016B2 (en) * 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
US7281126B2 (en) * 2003-05-30 2007-10-09 Sun Microsystems, Inc. Method of installing an image on a client over a network securely using a wanboot binary and a kernel to install the image
US8838950B2 (en) 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
JP4239747B2 (ja) * 2003-08-07 2009-03-18 ソニー株式会社 情報処理装置、およびコンテンツ情報管理方法、並びにコンピュータ・プログラム
US20050154889A1 (en) * 2004-01-08 2005-07-14 International Business Machines Corporation Method and system for a flexible lightweight public-key-based mechanism for the GSS protocol
US9268971B2 (en) * 2005-09-21 2016-02-23 Broadcom Corporation Secure processor supporting multiple security functions
US20080034216A1 (en) * 2006-08-03 2008-02-07 Eric Chun Wah Law Mutual authentication and secure channel establishment between two parties using consecutive one-time passwords

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104170312A (zh) * 2011-12-15 2014-11-26 英特尔公司 用于使用硬件安全引擎通过网络进行安全通信的方法和设备
US9887838B2 (en) 2011-12-15 2018-02-06 Intel Corporation Method and device for secure communications over a network using a hardware security engine
CN104065479A (zh) * 2014-07-11 2014-09-24 中国人民公安大学 基于群组的密钥生成方法和系统、密钥分发方法和系统
TWI596500B (zh) * 2015-11-02 2017-08-21 上海兆芯集成電路有限公司 具硬盤加密功能的晶片組以及主機控制器
US10073988B2 (en) 2015-11-02 2018-09-11 Via Alliance Semiconductor Co., Ltd. Chipset and host controller with capability of disk encryption

Also Published As

Publication number Publication date
EP1944712A2 (en) 2008-07-16
EP1944712B1 (en) 2016-02-17
CN101251879A (zh) 2008-08-27
US20080159541A1 (en) 2008-07-03
US8364975B2 (en) 2013-01-29
EP1944712A3 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
CN101251879B (zh) 用于保护数据的方法和装置
CN101221613B (zh) 用于验证处理系统部件的方法和装置
Shepherd et al. Secure and trusted execution: Past, present, and future-a critical review in the context of the internet of things and cyber-physical systems
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
CN100456200C (zh) 多令牌密封和解封
TWI546699B (zh) 使用一處理器以提供可信賴執行環境的技術
CN101154256B (zh) 启动可信共存环境的方法和装置
CN103748594B (zh) 针对arm*trustzonetm实现的基于固件的可信平台模块
CN102081716B (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
US9015454B2 (en) Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys
CN105493097A (zh) 用于远程存储的数据的保护方案
CN102123031A (zh) 硬件认证技术
CN103270518A (zh) 虚拟机验证
WO2006124751A2 (en) Method and apparatus for providing software-based security coprocessors
CN103038745A (zh) 扩展完整性测量
Ling et al. Secure boot, trusted boot and remote attestation for ARM TrustZone-based IoT Nodes
CN109844748A (zh) 托管在虚拟安全环境中的安全服务
EP3494482B1 (en) Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
Nepal et al. A mobile and portable trusted computing platform
WO2013168255A1 (ja) アプリケーションプログラム実行装置
Lee et al. Secure mobile device structure for trust IoT
US11520859B2 (en) Display of protected content using trusted execution environment
Gross et al. Enhancing the Security of FPGA-SoCs via the Usage of ARM TrustZone and a Hybrid-TPM
Park et al. Design and implementation of trusted sensing framework for IoT environment
Futral et al. Fundamental principles of intel® txt

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101013

Termination date: 20191228

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