CN104221027A - 硬件和软件关联和认证 - Google Patents

硬件和软件关联和认证 Download PDF

Info

Publication number
CN104221027A
CN104221027A CN201380015295.3A CN201380015295A CN104221027A CN 104221027 A CN104221027 A CN 104221027A CN 201380015295 A CN201380015295 A CN 201380015295A CN 104221027 A CN104221027 A CN 104221027A
Authority
CN
China
Prior art keywords
key
security code
code
devices according
safe
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
CN201380015295.3A
Other languages
English (en)
Inventor
R·E·凯斯勒
M·R·赫塞恩
E·F·罗宾斯
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.)
Cavium LLC
Original Assignee
Cavium LLC
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 Cavium LLC filed Critical Cavium LLC
Publication of CN104221027A publication Critical patent/CN104221027A/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/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

Landscapes

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

Abstract

通过在启动时间时从外部存储器加载安全代码并且使用认证密钥对程序代码进行认证来完成硬件和软件的认证和关联。当认证了该安全代码后,可以获得对全硬件和软件功能性的访问。然而,如果安全代码的认证失败,则执行向硬件和软件资源提供受限功能性的不安全代码。

Description

硬件和软件关联和认证
相关申请的交叉引用
本申请是2012年3月22日(22.03.2012)提交的美国SN13/427,148的继续申请并要求保护其优先权,该申请的整体教导通过引用结合于此。
技术领域
背景技术
装置克隆和未经授权的产品生产会对公司的收入和品牌资产造成损失。此类克隆活动影响原始设备制造商(OEM)的研究和开发,从而以更低的成本提供相似和具有竞争力的产品。自然,这给OEM的利润和品牌资产造成重大损失。例如,依赖盗取的硬件设计和克隆系统的非品牌系统(其通常构建质量较低)可以用于以减低的成本与OEM进行竞争。此类克隆系统的制造商还经常从原始产品复制软件并以非常低的成本提供完整的系统(例如,非品牌服务器和路由器)。
除了利润损失以外,未经授权的产品生产会引起OEM的商业模式的中断。例如,黑客可以改变现有系统的功能性,从而运转和执行使OEM的商业模式中断的非预期功能。进一步地,承包商会过度构建OEM的订单以外的设备并且用同一品牌但更低的价格销售未经授权的设备,并且没有给OEM带来收入。
可信计算组织(TCG)是一个包括组件供应商、软件开发商、系统供应商以及网络和基础设施公司的行业组织,该组织开发和支持用于跨多个平台类型的可信计算的开放行业规范。TCG定义了存储密钥、密码和数字证书的微控制器的可信平台模块(TPM)规范。通过安全TCG子系统保护安全工艺(如数字签名和密钥交换)。如果启动顺序不是和预期的一样,则会拒绝对平台中的数据和秘密的访问。由此使如安全电子邮件、安全网络访问和本地数据保护等关键应用和能力更加安全得多。TPM不能够控制被执行的软件。TCG子系统通过存储和报告运行时间之前的配置信息可以仅充当更高级服务和应用的‘从属(slave)’。其他应用确定用此信息来完成什么。TCG构建块从不可以控制系统或报告正在运行的应用的状态。
发明内容
本发明的示例实施例中的一种方法和相应的装置通过在启动时间时从一个外部存储器加载一个安全代码以及使用一个与设备相关联的认证密钥对该安全代码进行认证并且在该安全代码的认证失败的情况下执行一个不安全代码来认证该安全代码并使其与该设备相关联。
在某些实施例中,该外部存储器可以是不安全存储器、可重编程闪速存储器、或只读存储器(ROM)中的至少一个。
在某些实施例中,该安全代码可以存储在该设备的一个内部存储器中。可以使用来自一个ROM的多个指令存储该安全代码。在认证了该安全代码的情况下,可以执行该安全代码。在某些实施例中,在认证了该安全代码的情况下,可以执行来自该内部存储器的该安全代码。在某些实施例中,在认证了该安全代码的情况下,可以进一步认证该安全代码的执行触发的多个程序。
在某些实施例中,可以使用来自一个ROM的多个指令将该安全代码复制到一个安全内部可写存储器中。该安全内部可写存储器可以是一个高速缓冲存储器的一个分区,并且可以被安排成用于执行该安全代码。在某些实施例中,该安全代码可以是未加密的。
在某些实施例中,一个高速缓冲存储器可以被分区成包括该内部存储器。该内部存储器可以位于该高速缓冲存储器内的一个地址处并且具有一个动态可变的容量。
在某些实施例中,可以使用该安全代码从该外部存储器加载与该设备相关联的多个安全密钥。这些安全密钥可以包括装置认证密钥、冗余装置认证密钥、芯片加密密钥、图像认证密钥、存储器保护密钥、以及安全存储密钥中的至少一项。这些安全密钥可以是未加密的或加密的。可以使用该安全代码对这些安全密钥进行认证。在某些实施例中,该安全代码可以用于确定对这些安全密钥的更新是否可用。在某些实施例中,可以使用一个更新代码对这些安全密钥进行更新。在某些实施例中,可以使用该安全代码将这些安全密钥与一个秘密密钥进行比较,并且在该比较失败的情况下,发出一个出错指示。
在某些实施例中,一个安全最早启动代码认证器是该认证密钥和该安全代码的一个函数,该认证密钥是一个与该设备相关联的主认证密钥(MAK)的一个函数。该认证密钥可以是加密的。在某些实施例中,可以从该安全内部可写存储器执行该安全最早启动代码。在某些实施例中,可以对该认证密钥进行认证,并且在该认证失败的情况下,可以根据一个合适的出错指示执行该不安全代码。
在某些实施例中,在该安全代码的认证失败的情况下,可以生成一个出错信号。
在某些实施例中,可以执行来自该内部存储器和该外部存储器中的至少一个的该不安全代码。该不安全代码可以包括受限功能性。在某些实施例中,具有受限功能性可以包括具有对该设备的结构的受限访问。在某些实施例中,具有受限功能性可以包括具有对该设备上存储的软件的受限访问。某些实施例可以在一段预先确定的时期中提供该受限功能性。该不安全代码可以是未加密的并且是可改变的。
在某些实施例中,将该认证密钥确定为该设备相关联的一个主认证密钥(MAK)的一个函数。在某些实施例中,该认证密钥可以是一个高级加密标准(AES)密钥。在某些实施例中,该安全代码包括一个认证器。该认证器可以是该认证密钥的一个函数。
在某些实施例中,该设备可以是网络处理器、通用处理器片上系统、以及主板中的至少一项。
附图说明
根据本发明的示例性实施例的以下更具体的说明,上述内容将是明显的,如在这些附图中展示的,其中贯穿这些不同的视图的相同的参照字符是指相同的部分。这些图不一定是按比例绘制,而是着重展示本发明的实施例。
图1展示了根据本发明的实施例的安全软件和硬件关联(SSHA)电路的框图。
图2展示了安全密钥的高级框图。
图3为可以用某些实施例执行的程序的流程图。
具体实施方式
以下是对本发明的示例性实施例的说明。
图1展示了可以与本发明的实施例一起使用的安全软件和硬件关联(SSHA)电路100的示例实施例的框图。该SSHA支持两种能力:
·原始设备制造商(OEM)硬件将仅运行OEM软件;以及
·OEM软件将仅在OEM硬件上运行。
如所示,SSHA电路100包括一个耦合到具有内部存储器220的处理器100上的外部存储器210。外部存储器210可以是不安全存储器、可重编程闪速存储器、或只读存储器(ROM)。外部存储器210可以包括安全存储器270、不安全存储器280、或受保护存储器290。
内部存储器220可以是片上指令存储器,如只读存储器(ROM)。内部存储器220经常保持有安全软件和硬件关联功能的实现所需的功能。内部存储器220中所保持的信息可以是加密的或未加密的。然而,不管加密与否,由于内部存储器220在芯片上,其完全安全并且被保护免受芯片外对手影响。
在启动时间时,内部存储器220中所存储的指令从外部存储器210加载安全最早启动代码273-C。安全最早启动代码273-C可以是启动代码或应用软件。通过安全最早启动代码认证器273-A使用认证密钥(未示出)对安全最早启动代码273-C进行认证。安全最早启动代码认证器237-A使用安全最早启动代码273-C的功能和主AES密钥(MAK)340。例如,认证密钥可以是将MAK 340当作AES密钥使用的AES-CBC MAC(消息认证代码)。MAK 340对每个处理器100而言是唯一的,并且,如安全最早启动认证器273-A对每个处理器100而言也是唯一的。
安全存储器270是外部存储器210中的最安全的区域并且除了用于稍后启动阶段的密钥和用于对这些密钥进行更新的代码以外还存储了最早启动代码。MAK 340通常用于保护安全存储器270和保护安全存储器270中所存储的代码的执行。在一个实施例中,稍后启动阶段不使用MAK。受保护存储器290存储稍后启动阶段和用户代码。受保护存储器290通常由安全密钥保护。不安全存储器280存储在许多实施例中不受任何密钥保护的代码。
在某些实施例中,可以通过内部存储器220使用从外部安全存储器270检索认证器273-A并使用MAK 340对处理器100的安全最早启动代码273-C进行认证的代码认证单元(CAU)201来对安全最早启动代码273-C进行认证。CAU 201可以是可编程逻辑。
一旦被认证,安全最早启动代码273-C可以存储在设备的内部存储器220内。然而,如果安全最早启动代码273-C的认证失败,则内部存储器指令根据合适的出错指示执行来自外部存储器210的不安全存储器280部分的不安全代码281。不安全代码281一般以受限特权来执行。
安全存储器270进一步包括对用于认证、加密、以及完整性的信息和密钥进行认证的安全密钥认证器271-A(下文中通常称为安全密钥271-C)。安全密钥认证器271-A还可以存储用于执行认证操作的认证参数320(稍后参照图2示出)。
安全存储器270可以进一步包括安全密钥更新代码认证器272-A。安全密钥更新代码认证器272-A可以用于对用于更新安全密钥271-C的信息(下文中通常称为安全密钥更新代码272-C)进行认证。安全密钥更新代码272-C还可以更新安全密钥更新代码272-C和/或安全最早启动代码273-C。安全密钥更新代码272-C可以通过使用从外部存储器210获得的信息进一步确定何时以及如何执行对安全密钥的更新。在某些实施例中,可以使用MAK 340(稍后参照图2进行描述)或通过其他认证密钥对更新代码认证器进行认证。
安全密钥更新代码272-C通常以完全特权运行并且可以访问MAK。如此,必须对安全密钥更新代码272-C进行认证并且还可以对其进行加密。一旦被认证,安全密钥更新代码272-C可以被授予其完全特权。然而,如果没有被认证(即,如果存在错误和/或认证失败),则可以根据合适的出错指示执行来自不安全存储器281的不安全代码281。在此类实例中,不安全代码281可以用受限特权运行和/或运行一段有限时期。
外部存储器210的受保护存储器290部分可以包括用于对受保护初始启动(PIB)代码291-C进行认证的(PIB)代码认证器291-A。安全最早启动代码273-C和/或安全密钥更新代码272-C可以用于对安全密钥271-C进行认证。正常地在成功认证安全代码以后执行(PIB)代码291-C。
在某些实施例中,(PIB)代码291-C初始地用尽处理器100的安全内部可写存储器230区段。(PIB)代码291-C具有受限功能性并且需要后续启动阶段来启动处理器100。关于后续启动阶段(稍后启动阶段代码292-C)的信息可以存储在受保护存储器290内并且使用稍后启动阶段代码认证器292-A来认证。进一步地,在某些实施例中,可以通过处理器100的动态随机存取存储器(DRAM,未示出)部分来认证后续启动阶段。
在某些实施例中,存储在处理器100内的ROMEN启动字段在启动时用于确定处理器100是否应执行SSHA启动。在一个实施例中,ROMEN启动字段是一个位或其他布尔表示。当执行安全软件和硬件关联时,ROMEN启动字段被设置成1、或“被设置”,其访问内部存储器220。换言之,当ROMEN启动字段被设置成1时,使能处理器的SSHA启动。在所有其他情况下,ROMEN启动字段被设置成零,或者“未被设置”。当ROMEN启动字段被设置成零时,处理器100通过访问外部存储器210来启动。在启动以使能对内部存储器220的访问之前通过硬件设置ROMEN启动字段。当ROMEN启动字段被设置成1时,在处理器100充分发挥功能并且发起在此描述的安全软件和硬件关联程序之前,内部存储器220运行。确切地,在处理器100的标准启动位置内的物理地址处使能内部存储器220,并且当设置ROMEN启动字段(即,设置成1)时,处理器100执行内部存储器220中所包括的指令。
在某些实施例中,该受保护存储器可以包括可以用于执行进一步认证和硬件-软件关联的一般用户代码293-C。在一个实施例中,一般用户代码293-C包括不只一条代码。一般用户代码认证器293-A可以用于对一般用户代码293-C进行认证。在一个实施例中,一般用户代码认证器293-A包括不只一个认证器。然而,在许多实施例中,一般用户代码293-C用于执行用户的任务。
内部存储器220中所存储的指令通常为在启动时间时执行的第一指令。这些内部存储器指令的主要功能是一旦安全最早启动代码273-C被认证就对其进行存储、加载和/或执行。然而,在加载和执行安全最早启动代码273-C之前,这些内部存储器指令创建保持安全最早启动代码273-C的片上安全内部可写存储器230。可以通过对高速缓冲存储器(未示出)进行分区来创建片上安全内部可写存储器230,从而使得片上安全内部可写存储器230位于该高速缓冲存储器内的一个地址处并且具有动态可变的容量。在某些实施例中,片上安全内部可写存储器230可以位于2级高速缓冲存储器(未示出)内。
片上安全内部可写存储器230可以用于执行早期启动功能,包括在处理器初始化之前保持和执行安全最早启动代码273-C。片上安全内部可写存储器230位于芯片上,并且如此,是安全的并且被保护免受外部对手影响。除了保持和执行安全最早启动代码273-C以外,片上安全内部可写存储器230可以用于使用安全最早启动代码273-C从外部存储器210加载安全密钥271-C。
在某些实施例中,片上安全内部可写存储器230可以用于存储认证密钥。如之前指出的,由于片上安全内部可写存储器230在芯片上,防护其免受外部对手影响。相应地,片上安全内部可写存储器230可以用于安全地存储认证密钥245。认证密钥245可以用加密或未加密格式存储在片上安全内部可写存储器230上。
图2展示了安全密钥271-C的高级框图。安全密钥271-C存储用于认证、加密、和完整性330的信息和密钥。安全密钥271-C还可以存储用于执行认证操作的认证参数320。
可以使用用于存储安全密钥271-C的不同加密钥模式301或选项。例如,可以使用将安全密钥271-C存储在SSHA使能的装置(未示出,例如,硅装置)内的直接加密钥模式。在一个优选实施例中,可以使用间接加密钥模式。间接加密钥模式可以将安全密钥271-C作为二值图像的一部分来存储。在某些实施例中,安全密钥271-C可以存储在SSHA使能的装置(例如,附接到SSHA使能的装置上的闪存装置)外部。
在某些实施例中,安全密钥271-C可以存储在安全内部可写存储器230内。鉴于安全内部可写存储器230是安全的,可以用或者未加密或者加密的格式存储安全密钥271-C及其加密钥模式301。在某些实施例中,安全密钥271-C可以存储在外部存储器210的安全存储器270部分内。
可以通过每个SSHA使能的装置的唯一高级加密标准(AES)密钥来对安全密钥271-C的内容进行加密。例如,唯一AES 256位密钥(如MAK 340)可以用于对安全密钥271-C进行加密。因此,MAK340通常不存储在安全密钥271-C内。
在某些实施例中,通过硬件生成MAK 340(图1)。MAK 340可以是密值和芯片ID 362的一个函数。芯片ID 362可以是可读的,但该密值不可以被软件读取。
在某些实施例中,在SSHA使能的装置的制造过程中可以选择MAK 340(图1)加密钥模式并将其安装在SSHA使能的装置内。未披露MAK 340(图1)并且任何人不可对其进行访问。在某些实施例中,MAK 340(图1)可以被设计成使得其不能被读出或被改变。进一步地,MAK 340(图1)可以针对任何具有根据本发明的实施例的密码关联机构的给定装置保持相同并且可以用作在安全密钥271-C与该装置之间建立关系的基础。
在某些实施例中,可以使用其他安全密钥认证加密钥模式。此类安全密钥认证加密钥模式的示例包括:装置认证密钥350(DAK)、冗余装置认证密钥355(RDAK)、芯片加密密钥365(CEK)、图像认证密钥345(IAK)、存储器保护密钥360(MPK)、以及安全存储密钥(未示出)。
DAK 350是用于建立装置的所有权的公共密钥。DAK 350可以用于认证安全密钥271-C写和/或更新消息。通过认证写和/或更新消息,DAK 350对安全密钥271-C中所存储的密钥进行控制。在某些实施例中,相应的私有密钥(未示出)可以与DAK 350相关联。装置所有人(即,OEM)拥有与DAK 350相对应的私有密钥。
在某些实施例中,可以使用冗余装置认证密钥(RDAK)355。DAK 355是用于建立装置的所有权的冗余公共密钥。RDAK 355用于认证安全密钥271-C写/更新消息。通过认证安全密钥271-C写/更新消息,RDAK 355对安全密钥271-C中所存储的密钥进行认证和控制。在某些实施例中,相应的私有密钥(未示出)可以与RDAK 355相关联。装置所有人(即,OEM)拥有与RDAK 355相对应的私有密钥。
在某些实施例中,可以通过DAK 350或RDAK 355私有密钥所有者使用安全密钥271-C更新机构更新RDAK 355。RDAK 355实现方式是可选的并且对于在此描述的密码关联机构的完整功能性而言是不需要的。
CEK 365可以是任何对称加密密钥。CEK 365与任何具有根据本发明的实施例的密码关联机构的给定装置相关联。CEK 365是安全密钥271-C的一部分并且用于保护二值图像,其是供应商软件。CEK365在每装置基础上可以是唯一的,或其对于一组装置或属于OEM的所有装置而言可以是相同的。
进一步地,可以通过接收提供新对称CEK 365的相关联对称OEM私有密钥所签名的请求在安全连接上改变CEK 365。此外,可以通过DAK 350或RDAK 355私有密钥的所有者使用安全密钥271-C更新机构更新CEK 365。可以使用安全密钥271-C访问机构在DAK 350或RDAK 355公共密钥加密容器中读取CEK。
IAK 345可以包括用于对可以在相应的SSHA使能的装置上运行的二值图像进行认证的一个或多个公共密钥。
在某些实施例中,IAK 345可以存储在用于在程序代码图像认证过程中参考密钥的索引表内。
在某些实施例中,可以通过DAK 350或RDAK 355私有密钥的所有者使用安全密钥271-C更新机构更新IAK 345。在某些实施例中,可以使用安全密钥271-C访问机构在DAK 350或RDAK 355公共密钥加密容器中读取IAK 345。
在某些实施例中,MPK 360(其是一个高级加密标准(AES)基础密钥)可以用于保护主存储器的内容并且是安全密钥271-C的一部分。在某些实施例中,处理器100的DRAM(未示出)可以可选地被分区成多个完全安全且受保护的区域,并且SSHA使能的处理器的DRAM控制器可以被安排成包括用于加密/解密和加扰/解扰的内置逻辑。可以使用存储器加密密钥(MEK)362对完全安全的区域中所存储的数据进行加密或解密。在某些实施例中,可以使用存储器加扰密钥(MSK)364对存储到存储器的受保护区域的数据进行加扰或解扰。可以从MPK 360导出MSK 364和MEK 362。
在某些实施例中,安全代码还可以用于对安全密钥进行认证。该安全代码可以用于确定对这些安全密钥的更新是否可用。在某些实施例中,更新代码可以用于对安全密钥进行更新。更新代码可以通过使用从外部存储器210(图1所示)获得的信息来确定何时以及如何执行对安全密钥的更新。在某些实施例中,可以具有与更新代码相关联的认证器。可以通过MAK 340或通过其他认证密钥对更新代码认证器进行认证。
更新代码通常以完全特权运行并且可以访问主认证密钥。如此,必须对更新代码进行认证并且还可以对其进行加密。在某些实施例中,为了确保安全执行,更新代码用尽安全内部可写存储器230(图1所示)。一旦被认证,更新代码可以被授予其完全特权。然而,如果没有被认证(即,如果存在错误和/或认证失败),则安全代码反而可以根据合适的出错指示执行不安全代码。如之前所指出的,不安全代码可以用受限特权运行和/或运行一段有限时期。
在某些实施例中,在执行防止未经授权的程序代码获得对系统的访问之前,使在处理器100(图1)中执行的所有程序代码有效并且对其进行认证。在某些实施例中,可以对某个客户代码加密以防止可能的对手复制该代码。
进一步地,在某些实施例中,可以使用认证密钥认证对安全密钥271-C的更新。在某些实施例中,认证密钥可以包括该认证密钥(参照图2所描述的)。该认证密钥可以是加密的或未加密的。在某些实施例中,可以执行来自安全内部可写存储器230(图1)的认证密钥以确保其安全。
本发明的实施例防止OEM软件在除了OEM硬件以外的任何事物上运行。然而,鉴于对安全密钥271-C中的某些密钥和认证密钥的访问,对手会可能在处理器100(图1)上运行安全代码或安全密钥271-C的旧版本。为了防止这样做,本发明的某些实施例限制仅通过外部代码访问处理器而只允许最终OEM访问安全代码和安全密钥271-C。
在某些实施例中,为了防止对手使用安全密钥271-C和安全最早启动代码273-C的更旧的版本,可以使用秘密密钥(未示出)。安全最早启动代码273-C可以将该秘密密钥与安全密钥271-C字段进行比较,并且如果这些字段不匹配则认为其失败。为了保证仅OEM可以访问安全密钥271-C,秘密密钥值保持远离除了OEM以外的所有处理器100(图1)用户。
如之前指出的,如果安全最早启动代码273-C的认证失败,则安全内部可写存储器230指令根据合适的出错指示执行不安全代码281。如果对安全密钥的更新的认证失败,则还可以执行不安全代码281。还可以在其他情况下执行不安全代码281。例如,不安全代码281可以用于提供对处理器100资源的受限访问。例如,不安全代码可以用于向不可以访问安全最早启动代码273-C或安全密钥271-C的用户提供受限使用/测试。
在某些实施例中,如果安全最早启动代码273-C的认证失败,则在使系统不支持仅受限调试模式之后,不安全代码281可以断言通用输入/输出(GPIO)标志并停止或跳至特定位置。
不安全代码281通常以受限特权运行并且具有对软件和系统结构的受限访问。不安全代码281可以是未加密的并且未认证的。在某些实施例中,对手可以自由修改不安全代码281。尽管不安全代码281可以初始地用尽外部存储器210的安全内部可写存储器230部分,但在某些实施例中,不安全代码281可以用尽不安全存储器280(图1)。进一步地,如果高级功能需要,在某些实施例中,不安全代码281可以执行进一步的芯片初始化。
本发明的实施例提供了限制MAK 340的使用、和减少对安全密钥的访问、以及保护系统免受对手的硬件、软件、和系统结构解决方案。对MAK 340访问的限制是关键的,因为一旦对手获得对MAK340的访问,其会可能对安全密钥271-C进行解码并获得对所有代码的访问。
为了限制对MAK的访问,本发明的实施例使用一种可以禁用访问MAK(下文中称为“DIS_MAK”)的功能。如果DIS_MAK字段为零,则可以访问MAK。然而,当设置DIS_MAK字段时,则该硬件防止对MAK 340的任何访问。该硬件还可以防止DIS_MAK字段归零。
如以上指出的,在处理器100(图1)充分发挥功能之前,在早期启动时进行内部存储器220(图2)、安全代码、以及更新代码的认证。早期启动之外,由于存在对手软件正在运行的可能性,通过设置DIS_MAK字段来禁用对MAK的访问。进一步地,当执行其他处理步骤时,如不安全代码或客户特定代码的执行,该硬件不允许使用或访问MAK 340并且DIS_MAK字段保持设置。此外,某些实施例允许DIS_MAK字段在安全密钥271-C和安全密钥更新代码272-C的认证过程中保持设置。
某些实施例可以包括用于限制对处理器100(图1)的访问的附加功能性。例如,某些实施例可以使用一种用于对外部代码可用的处理器100(图1)功能性进行限制的功能(下文中称为“CHIPKILL”)。重要的是限制外部代码访问,因为外部代码执行可以指示对手未经授权使用处理器100(图1)。在某些实施例中,CHIPKILL功能性可以包括限制处理器100的正在使用的处理器内核的数量。在某些实施例中,在一段预先确定的时期后,CHIPKILL功能性可以防止访问处理器100(图1)。在某些实施例中,CHIPKILL功能性可以被扩展至禁用处理器100(图1)的某些输入/输出特征。进一步地,某些实施例可以防止禁用CHIPKILL功能性。
在某些实施例中,当设置CHIPKILL字段时,除了一个内核以外的所有处理器内核可选地保持复位。当CHIPKILL字段从0过渡到1后,该硬件发起CHIPKILL计时器。当计时器到期时,如果CHIPKILL字段仍然设置,则该硬件内在地迫使指令断言将芯片保持复位,直到下一个芯片复位。
CHIPKILL计时器可以被设置成任何预先确定的时期。例如,在一个实施例中,CHIPKILL计时器可以默认为大致20秒。仅可以由芯片复位停止CHIPKILL计时器。在某些实施例中,由对时间量进行控制的CHIPKILL[计时器(TIMER)]字段选择CHIPKILL计时器间隔,CHIPKILL字段保持设置并且可以大到一天或更大。
在某些实施例中,可以对DRAM内容进行加扰。这是为了防止芯片对手以仅仅监控处理器100的DRAM中进行的读/写来访问受保护的代码和数据。
该示例实施例的大多数认证和验证功能可以存储在外部存储器210上和从其中执行,在该存储器中存储是更成本有效的。如此,内部存储器220不需要是大的并且可以具有受限功能性。
图3为可以用某些实施例执行的程序的流程图400。在启动时间时,来自内部存储器的指令可以用于准备安全内部可写存储器410。该安全内部可写存储器位于物理地址处并且具有一个比处理器100(图1)的高速缓冲存储器的容量更小的容量。将安全代码从外部存储器加载到安全内部可写存储器内420并对其进行认证430。如果安全代码认证440,则执行445安全代码。如果安全代码没有认证450,在包括用于限制对处理器100(图1)的访问的功能性的实施例中,某些功能性可以用于限制对处理器的访问455。然后,执行来自不安全存储器460的不安全代码。可以执行来自不安全存储器、可重编程闪速存储器、或只读存储器(ROM)的不安全代码。
虽然通过参考本发明的示例实施例已经具体地示出和描述了本发明,但本领域普通技术人员将会理解在不脱离由所附权利要求书限定的本发明范围的情况下可在形式和细节中做出不同的改变。

Claims (66)

1.一种用于认证安全代码并使其与设备相关联的方法,所述方法包括:
在启动时间时从外部存储器加载所述安全代码;以及
使用与所述设备相关联的认证密钥对所述安全代码进行认证,并且在所述安全代码的认证失败的情况下,执行不安全代码。
2.根据权利要求1所述的方法,其中,所述外部存储器是不安全存储器、可重编程闪速存储器、或只读存储器(ROM)中的至少一个。
3.根据权利要求1所述的方法,进一步包括将所述安全代码存储在所述设备的内部存储器中。
4.根据权利要求3所述的方法,进一步包括将高速缓冲存储器分区成包括所述内部存储器,所述内部存储器位于所述高速缓冲存储器内的地址处并且具有动态可变的容量。
5.根据权利要求4所述的方法,进一步包括执行来自所述内部存储器和所述外部存储器中的至少一个的所述不安全代码。
6.根据权利要求4所述的方法,进一步包括在认证了所述安全代码的情况下执行来自所述内部存储器的所述安全代码。
7.根据权利要求6所述的方法,进一步包括在认证了所述安全代码的情况下继续认证由所述安全代码的执行触发的程序。
8.根据权利要求3所述的方法,进一步包括使用来自所述设备的所述内部存储器的指令存储所述安全代码。
9.根据权利要求1所述的方法,进一步包括在认证了所述安全代码的情况下执行所述安全代码。
10.根据权利要求9所述的方法,进一步包括使用来自只读存储器(ROM)的指令来将所述安全代码复制到安全内部可写存储器内,所述安全内部存储器是高速缓冲存储器的分区,并且执行来自所述安全内部可写存储器的所述安全代码。
11.根据权利要求10所述的方法,进一步包括使用所述安全代码从所述外部存储器加载与所述设备相关联的安全密钥。
12.根据权利要求11所述的方法,其中所述安全密钥包括装置认证密钥、冗余装置认证密钥、芯片加密密钥、图像认证密钥、存储器保护密钥、以及安全存储密钥中的至少一项。
13.根据权利要求11所述的方法,其中对所述安全密钥进行加密。
14.根据权利要求11所述的方法,进一步包括使用所述安全代码对所述安全密钥进行认证。
15.根据权利要求11所述的方法,进一步包括使用所述安全代码确定对所述安全密钥的更新是否可用。
16.根据权利要求15所述的方法,进一步包括使用更新代码对所述安全密钥进行更新。
17.根据权利要求11所述的方法,其中安全代码认证器是所述认证密钥和所述安全代码的函数,所述认证密钥是与所述设备相关联的主认证密钥(MAK)的函数。
18.根据权利要求17所述的方法,其中对所述认证密钥进行加密。
19.根据权利要求17所述的方法,进一步包括执行来自所述安全内部可写存储器的所述安全最早启动代码。
20.根据权利要求17所述的方法,进一步认证所述认证密钥,并且在所述认证失败的情况下,根据合适的出错指示执行所述不安全代码。
21.根据权利要求11所述的方法,进一步包括使用所述安全代码将所述安全密钥与秘密密钥进行比较,并且在所述比较失败的情况下,发出出错指示。
22.根据权利要求1所述的方法,进一步包括在所述安全代码的认证失败的情况下生成出错信号。
23.根据权利要求1所述的方法,其中所述不安全代码包括受限功能性。
24.根据权利要求23所述的方法,其中具有受限功能性包括具有对所述设备的结构的受限访问。
25.根据权利要求23所述的方法,其中具有受限功能性包括具有对所述设备上所存储的软件的受限访问。
26.根据权利要求23所述的方法,其中所述不安全代码未加密并且是可改变的。
27.根据权利要求23所述的方法,进一步包括在预先确定的时期中提供所述受限功能性。
28.根据权利要求1所述的方法,进一步包括将所述认证密钥确定为所述设备相关联的主认证密钥(MAK)的函数。
29.根据权利要求1所述的方法,其中所述安全代码包括认证器,所述认证器是所述认证密钥的函数。
30.根据权利要求1所述的方法,其中所述认证密钥是高级加密标准(AES)密钥。
31.根据权利要求1所述的方法,其中所述设备是网络处理器、通用处理器片上系统、以及主板中的至少一项。
32.根据权利要求1所述的方法,其中所述安全代码未加密。
33.根据权利要求1所述的方法,进一步包括使用认证密钥对与所述设备相关联的安全密钥进行更新。
34.一种用于认证安全代码并使其与设备相关联的装置,所述装置包括:
加载器,在启动时间时从外部存储器加载所述安全代码;以及
认证器,使用与所述设备相关联的认证密钥对所述安全代码进行认证,并且在所述安全代码的认证失败的情况下,执行不安全代码。
35.根据权利要求34所述的装置,其中所述外部存储器是不安全存储器、可重编程闪速存储器、或只读存储器(ROM)中的至少一个。
36.根据权利要求34所述的装置,其中所述设备进一步包括被配置成用于存储所述安全代码的内部存储器。
37.根据权利要求36所述的装置,其中高速缓冲存储器被分区成包括所述内部存储器,所述内部存储器被安排成位于所述高速缓冲存储器内的地址处并且包括动态可变的容量。
38.根据权利要求37所述的装置,其中执行来自所述内部存储器和所述外部存储器中的至少一个的所述不安全代码。
39.根据权利要求37所述的装置,其中在认证了所述安全代码的情况下,执行来自所述内部存储器的所述安全代码。
40.根据权利要求39所述的装置,其中在认证了所述安全代码的情况下,继续认证由所述安全代码的执行触发的程序。
41.根据权利要求36所述的装置,其中使用来自只读存储器(ROM)的指令存储所述安全代码。
42.根据权利要求34所述的装置,其中在认证了所述安全代码的情况下,执行所述安全代码。
43.根据权利要求42所述的装置,其中使用来自只读存储器(ROM)的指令来将所述安全代码复制到安全内部可写存储器内,所述安全内部可写存储器是高速缓冲存储器的分区,并且其中执行来自所述安全内部可写存储器的所述安全代码。
44.根据权利要求43所述的装置,其中使用所述安全代码从所述外部存储器加载与所述设备相关联的安全密钥。
45.根据权利要求44所述的装置,其中所述安全密钥包括装置认证密钥、冗余装置认证密钥、芯片加密密钥、图像认证密钥、存储器保护密钥、以及安全存储密钥中的至少一项。
46.根据权利要求44所述的装置,其中对所述安全密钥进行加密。
47.根据权利要求44所述的装置,其中使用所述安全代码认证所述安全密钥。
48.根据权利要求44所述的方法,进一步包括更新器,所述更新器使用所述安全代码确定对所述安全密钥的更新是否可用。
49.根据权利要求48所述的装置,其中所述更新器使用更新代码对所述安全密钥进行更新。
50.根据权利要求48所述的装置,其中安全代码认证器是所述认证密钥和所述安全代码的函数,所述认证密钥是与所述设备相关联的主认证密钥(MAK)的函数。
51.根据权利要求50所述的装置,其中对所述认证密钥进行加密。
52.根据权利要求50所述的装置,其中执行来自所述安全内部可写存储器的所述安全最早启动代码。
53.根据权利要求50所述的装置,其中在所述认证失败的情况下,所述认证器根据合适的出错指示执行所述不安全代码。
54.根据权利要求44所述的装置,进一步包括比较器,所述比较器使用所述安全代码将所述安全密钥与秘密密钥进行比较,并且在所述比较失败的情况下,发出出错指示。
55.根据权利要求34所述的装置,其中在所述安全代码的认证失败的情况下生成出错信号。
56.根据权利要求34所述的装置,其中所述不安全代码包括受限功能性。
57.根据权利要求56所述的装置,其中所述不安全代码具有对所述设备的结构的受限访问。
58.根据权利要求56所述的装置,其中所述不安全代码具有对所述设备上所存储的软件的受限访问。
59.根据权利要求56所述的装置,其中所述不安全代码未加密并且是可改变的。
60.根据权利要求56所述的装置,在预先确定的时期中提供所述受限功能性。
61.根据权利要求34所述的装置,其中将所述认证密钥确定为所述设备相关联的主认证密钥(MAK)的函数。
62.根据权利要求34所述的装置,其中所述安全代码包括认证器,所述认证器是所述认证密钥的函数。
63.根据权利要求34所述的装置,其中所述认证密钥是高级加密标准(AES)密钥。
64.根据权利要求34所述的装置,其中所述设备是网络处理器、通用处理器片上系统、以及主板中的至少一项。
65.根据权利要求34所述的装置,其中所述安全代码未加密。
66.根据权利要求34所述的装置,其中使用认证密钥对与所述设备相关联的安全密钥进行更新。
CN201380015295.3A 2012-03-22 2013-03-20 硬件和软件关联和认证 Pending CN104221027A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/427,148 US20130254906A1 (en) 2012-03-22 2012-03-22 Hardware and Software Association and Authentication
US13/427,148 2012-03-22
PCT/US2013/033098 WO2013142574A1 (en) 2012-03-22 2013-03-20 Hardware and software association and authentication

Publications (1)

Publication Number Publication Date
CN104221027A true CN104221027A (zh) 2014-12-17

Family

ID=48096223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380015295.3A Pending CN104221027A (zh) 2012-03-22 2013-03-20 硬件和软件关联和认证

Country Status (4)

Country Link
US (1) US20130254906A1 (zh)
CN (1) CN104221027A (zh)
HK (1) HK1205298A1 (zh)
WO (1) WO2013142574A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573528A (zh) * 2014-12-31 2015-04-29 湖南国科微电子有限公司 一种防拷贝Soc启动方法及芯片
CN104835537A (zh) * 2015-05-13 2015-08-12 福州瑞芯微电子有限公司 Soc芯片自适应启动方法及装置
CN107220547A (zh) * 2016-03-21 2017-09-29 展讯通信(上海)有限公司 终端设备及其启动方法
CN108021392A (zh) * 2016-11-01 2018-05-11 中芯国际集成电路制造(上海)有限公司 处理器及其操作执行方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843764B2 (en) 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US20140006795A1 (en) * 2012-06-29 2014-01-02 Apple Inc. Continual Authorization for Secured Functions
US9959539B2 (en) 2012-06-29 2018-05-01 Apple Inc. Continual authorization for secured functions
US9832189B2 (en) 2012-06-29 2017-11-28 Apple Inc. Automatic association of authentication credentials with biometrics
US9819676B2 (en) 2012-06-29 2017-11-14 Apple Inc. Biometric capture for unauthorized user identification
US10212158B2 (en) 2012-06-29 2019-02-19 Apple Inc. Automatic association of authentication credentials with biometrics
US10331866B2 (en) 2013-09-06 2019-06-25 Apple Inc. User verification for changing a setting of an electronic device
US20150073998A1 (en) 2013-09-09 2015-03-12 Apple Inc. Use of a Biometric Image in Online Commerce
US9390246B2 (en) * 2013-09-25 2016-07-12 Intel Corporation Creating secure original equipment manufacturer (OEM) identification
US20150220931A1 (en) 2014-01-31 2015-08-06 Apple Inc. Use of a Biometric Image for Authorization
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
US10303880B2 (en) * 2014-07-24 2019-05-28 Nuvoton Technology Corporation Security device having indirect access to external non-volatile memory
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US10311236B2 (en) * 2016-11-22 2019-06-04 Advanced Micro Devices, Inc. Secure system memory training
US10592697B1 (en) * 2017-12-12 2020-03-17 John Almeida Virus immune computer system and method
US10984107B2 (en) * 2018-04-24 2021-04-20 Mellanox Technologies, Ltd. Secure boot
US11194913B2 (en) * 2019-03-12 2021-12-07 International Business Machines Corporation Unsecure to secure transition of mutable core root of trust
US11429751B2 (en) 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
US11436315B2 (en) 2019-08-15 2022-09-06 Nuvoton Technology Corporation Forced self authentication
US11520940B2 (en) 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal
US11741232B2 (en) 2021-02-01 2023-08-29 Mellanox Technologies, Ltd. Secure in-service firmware update

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
CN1596523A (zh) * 2001-10-01 2005-03-16 吉恩基公司 通过生成短期加密密钥进行数字认证、加密和签名的系统、便携式装置和方法
CN1906599A (zh) * 2004-05-03 2007-01-31 捷讯研究有限公司 用于应用认证的系统和方法
CN1957309A (zh) * 2004-05-27 2007-05-02 皇家飞利浦电子股份有限公司 应用认证
US20090217054A1 (en) * 2008-02-25 2009-08-27 Cavium Networks, Inc. Secure software and hardware association technique
CN102103673A (zh) * 2009-12-16 2011-06-22 英特尔公司 在隐藏执行环境中提供完整性验证和证明
CN102375948A (zh) * 2010-08-10 2012-03-14 富士通株式会社 安全模块和信息处理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128732A (en) * 1997-12-15 2000-10-03 Compaq Computer Corporation Implementing universal serial bus support with a minimum of system RAM
AU1651901A (en) * 1999-12-14 2001-06-25 Sony Corporation Registering device and method, information processing device and method, providing device and method, and program storage medium
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20040181692A1 (en) * 2003-01-13 2004-09-16 Johanna Wild Method and apparatus for providing network service information to a mobile station by a wireless local area network
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8234506B2 (en) * 2006-10-08 2012-07-31 International Business Machines Corporation Switching between unsecure system software and secure system software
US8996867B2 (en) * 2008-02-28 2015-03-31 At&T Intellectual Property I, L.P. Method and device for end-user verification of an electronic transaction
US8332931B1 (en) * 2008-09-04 2012-12-11 Marvell International Ltd. Processing commands according to authorization
US20100153667A1 (en) * 2008-12-15 2010-06-17 Sony Ericsson Mobile Communications Ab Method, computer program and electronic device
US8621619B2 (en) * 2009-12-03 2013-12-31 Google Inc. Dynamic code insertion for static analysis based sandboxes
US8949929B2 (en) * 2011-08-10 2015-02-03 Qualcomm Incorporated Method and apparatus for providing a secure virtual environment on a mobile device
WO2013101034A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Software modification for partial secure memory processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
CN1596523A (zh) * 2001-10-01 2005-03-16 吉恩基公司 通过生成短期加密密钥进行数字认证、加密和签名的系统、便携式装置和方法
CN1906599A (zh) * 2004-05-03 2007-01-31 捷讯研究有限公司 用于应用认证的系统和方法
CN1957309A (zh) * 2004-05-27 2007-05-02 皇家飞利浦电子股份有限公司 应用认证
US20090217054A1 (en) * 2008-02-25 2009-08-27 Cavium Networks, Inc. Secure software and hardware association technique
CN102103673A (zh) * 2009-12-16 2011-06-22 英特尔公司 在隐藏执行环境中提供完整性验证和证明
CN102375948A (zh) * 2010-08-10 2012-03-14 富士通株式会社 安全模块和信息处理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573528A (zh) * 2014-12-31 2015-04-29 湖南国科微电子有限公司 一种防拷贝Soc启动方法及芯片
CN104835537A (zh) * 2015-05-13 2015-08-12 福州瑞芯微电子有限公司 Soc芯片自适应启动方法及装置
CN104835537B (zh) * 2015-05-13 2017-12-19 福州瑞芯微电子股份有限公司 Soc芯片自适应启动方法及装置
CN107220547A (zh) * 2016-03-21 2017-09-29 展讯通信(上海)有限公司 终端设备及其启动方法
CN108021392A (zh) * 2016-11-01 2018-05-11 中芯国际集成电路制造(上海)有限公司 处理器及其操作执行方法

Also Published As

Publication number Publication date
WO2013142574A1 (en) 2013-09-26
HK1205298A1 (zh) 2015-12-11
US20130254906A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
CN104221027A (zh) 硬件和软件关联和认证
CN1801091B (zh) 用可信处理模块安全地引导计算机的系统和方法
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
US9602282B2 (en) Secure software and hardware association technique
US10318765B2 (en) Protecting critical data structures in an embedded hypervisor system
CN109840430B (zh) Plc的安全处理单元及其总线仲裁方法
US8341404B2 (en) System and method for intelligence based security
CN101488170B (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
US8478973B2 (en) System and method for providing a secure application fragmentation environment
EP2706478B1 (en) Protecting secure software in a multi-security-CPU system
US11354417B2 (en) Enhanced secure boot
CN106462708A (zh) 认证变量的管理
CN101523399A (zh) 基于用户认证修改完整性度量的方法和系统
TWI745629B (zh) 電腦系統以及初始化電腦系統的方法
KR20190009755A (ko) 전자 장치의 불법 복제 및 불법 행위 방지에 하드웨어 기반 보안 격리 영역의 사용
CN110737897A (zh) 基于可信卡的启动度量的方法和系统
US11755741B2 (en) Trusted boot-loader authentication
CN110334532B (zh) 文件的加密、解密处理方法及加解密系统
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
CN113849819B (zh) 命令行指令的处理方法、装置、计算机设备和存储介质
CN113454624A (zh) 网络凭据的存储
WO2021002871A1 (en) Modifications to firmware functionality
CN103119553A (zh) 平台固件铠装技术

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1205298

Country of ref document: HK

WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141217

WD01 Invention patent application deemed withdrawn after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1205298

Country of ref document: HK