CN117378173A - 经由安全处理器计算设备的所有权的转移 - Google Patents

经由安全处理器计算设备的所有权的转移 Download PDF

Info

Publication number
CN117378173A
CN117378173A CN202280036894.2A CN202280036894A CN117378173A CN 117378173 A CN117378173 A CN 117378173A CN 202280036894 A CN202280036894 A CN 202280036894A CN 117378173 A CN117378173 A CN 117378173A
Authority
CN
China
Prior art keywords
fuse
entity
computing device
ownership
firmware
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
CN202280036894.2A
Other languages
English (en)
Inventor
M·N·萨基布
B·D·凯利
L·T·陈
P·D·瓦克斯曼
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117378173A publication Critical patent/CN117378173A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Storage Device Security (AREA)

Abstract

本文中描述的实施例涉及将计算设备的所有权从一个实体转移到另一实体。例如,利用安全处理器来引导计算设备。在引导会话期间,安全处理器加载并执行引导代码,该引导代码确定由当前所有者授权的专用固件是否指示是否要发生所有权的转移。响应于确定专用固件指示要发生所有权的转移,安全处理器加载并且执行专用固件。当执行时,专用固件使安全处理器用新所有者的公钥对熔丝集进行编程。专用固件的执行还使安全处理器使存储在另一熔丝集中的原始所有者的公钥无效。

Description

经由安全处理器计算设备的所有权的转移
背景技术
诸如片上系统(SoC)的计算设备包括引导代码(本文中也称为只读存储器(ROM)代码),该引导代码被配置为将执行转移到由计算设备的所有者签名的经验证的代码中。为此,引导代码需要知道所有者的公钥,以便引导代码能够执行验证。该公钥不应该能够被物理访问计算设备的攻击者改变,否则安全引导功能可能会受到损害。常规技术将公钥保存在耦合到设备的主处理器(或中央处理单元(CPU))的闪存设备中。这不仅增大了CPU的几何结构,而且还使重新编程过程易于攻击,从而为恶意实体利用计算设备自己的公钥对计算设备进行重新编程打开了大门。
发明内容
提供该发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念中的挑选部分。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
本文中描述的方法、系统、装置和计算机可读存储介质涉及将计算设备的所有权从一个实体转移到另一实体。例如,利用安全处理器来引导计算设备。在引导会话期间,安全处理器加载并且执行引导代码,该引导代码确定由当前所有者授权的专用固件是否指示是否要发生所有权的转移。响应于确定专用固件指示要发生所有权的转移,安全处理器加载并且执行专用固件。当执行时,专用固件使安全处理器用新所有者的公钥对熔丝集进行编程。专用固件的执行还使安全处理器将存储在另一熔丝集中的原始所有者的公钥无效。
下面参考附图详细地描述所公开的实施例的另外的特征和优点、以及各种实施例的结构和操作。要注意的是,所公开的实施例不限于本文中描述的具体实施例。本文给出的这些实施例仅用于说明性目的。基于本文中所含的教导内容,附加实施例对于相关领域的技术人员将是清楚的。
附图说明
并入本文中并且构成说明书部分的附图示出了实施例,并且与说明书一起进一步用于解释实施例的原理,并且使相关领域的技术人员能够制造并且使用这些实施例。
图1描绘了根据示例实施例的被配置为将计算设备的所有权从第一实体转移到第二实体的系统的框图。
图2是根据示例实施例的安全处理器的框图。
图3描绘了根据实施例的由计算设备执行的用于将计算设备的所有权从第一实体转移到第二实体的示例方法的流程图。
图4描绘了根据实施例的由计算设备执行的用于确定熔丝阵列的熔丝是否能够被编程的示例方法的流程图。
图5描绘了根据实施例的由计算设备执行的用于基于计算设备的标识符的验证来转移计算设备的所有权的示例方法的流程图。
图6是其中可以实现实施例的示例性用户设备的框图.
图7是可以用于实现各种实施例的示例基于处理器的计算机系统的框图。
当结合附图时,从下面阐述的详细描述中,所公开的实施例的特征和优点将变得更加明显,在附图中,相同的附图标记始终标识对应的元素。在附图中,相同的附图标记通常表示相同的、功能相似的和/或结构相似的元素。元素第一次出现的附图由对应附图标记中最左边的数字表示。
具体实施方式
I.引言
以下详细描述公开了许多示例实施例。本专利申请的范围不限于所公开的实施例,而且还涵盖所公开的实施例的组合、以及对所公开的实施例的修改。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。
许多示例性实施例描述如下。要注意的是,本文中提供的任何章节/小节标题都不旨在是限制性的。贯穿本文档描述实施例,并且任何类型的实施例都可以包括在任何章节/小节下。此外,在任何章节/小节中公开的实施例可以以任何方式与在相同章节/小节和/或不同章节/小节中描述的任何其他实施例组合。
II.示例实现
有很多其中计算设备(例如,片上系统)的所有权要从一个所有者转移到另一个所有者的情况。这方面的一个示例是,最初拥有计算设备的云提供商后来决定将该计算设备租赁或者甚至出售给另一家公司。在这种情况下,当前所有者可能希望能够对设备进行重新编程,以支持使用新所有者的公钥,该公钥用于验证由新所有者签名的代码。如果当前所有者的签名私钥被盗用以及在私钥未被盗用的情况下所有者希望将验证公钥改变为新公钥,则这种所有权转移机制也可能是有用的。
本文中描述的实施例涉及将计算设备的所有权从一个实体转移到另一实体。例如,利用安全处理器来引导计算设备。在引导会话期间,安全处理器加载并且执行引导代码,该引导代码确定由当前所有者授权的专用固件是否指示是否要发生所有权的转移。响应于确定专用固件指示要发生所有权的转移,安全处理器加载并且执行专用固件。当执行时,专用固件使安全处理器利用新所有者的公钥对熔丝集进行编程。专用固件的执行还使安全处理器使存储在另一熔丝集中的原始所有者的公钥无效。
前述技术有利地保护了转移过程免受恶意实体的危害,因为转移过程是经由熔丝实现的,该熔丝在安全处理器进行的引导会话期间仅可用公钥编程。换言之,除了安全处理器之外,它们不能被任何实体访问。此外,前述技术消除了对保持大的闪存设备来存储公钥的需要,这有利地减小了CPU(中央处理单元)的几何形状。
例如,图1描绘了根据示例实施例的被配置为将计算设备的所有权从第一实体转移到第二实体的系统100的框图。如本文所定义的,实体可以包括但不限于个人、公司、组织、企业等。如图1所示,系统100包括片上系统(SoC)102。SoC 102包括多个CPU内核104A至104D和安全处理器106。要注意的是,虽然SoC 102包括四个CPU内核,但是SoC 102可以包括任何数目的CPU内核。CPU内核104A至104D和安全处理器106经由总线互连108通信地耦合,通过该总线互连,CPU内核104A至104D和/或安全处理器106可以在它们之间传输和/或接收数据、控制信号和/或其他信息信号。总线互连108可以经由一个或多个导线、迹线、或其他形式的路由/互连来实现;然而,本文中描述的实施例并不局限于此。CPU内核104A至104D中的每个CPU内核可以被配置为根据特定的指令集架构(ISA)来获取、解码、执行和提交指令并且处理数据,该特定指令集架构诸如但不限于x86指令集。根据实施例,CPU内核104A至104D可以是基于32位或64位复杂指令集计算机(CISC)的处理器内核;但是本文中描述的实施例并不局限于此。安全处理器106和CPU内核104A至104D可以在同一芯片上实现。CPU内核104A至104D中的一个或多个CPU内核被配置为执行其中包括SoC 102的设备的操作系统,而安全处理器106可以不被配置为执行操作系统。因此,安全处理器106与被配置为经由操作系统执行的任何恶意软件安全地隔离开来,因为这样的恶意软件不能在安全处理器106上执行。操作系统的示例包括但不限于由华盛顿州雷蒙德市(Redmond,Washington)的微软公司(Microsoft Corporation)发布的操作系统(OS)、操作系统和其他/>变体等。
安全处理器106可以包括硬件安全模块(或平台),该硬件安全模块(或平台)被配置为管理公钥、执行数字签名的加密和解密功能、和/或执行其他密码功能。根据实施例,安全处理器106便于SoC 102和/或其中包括SoC 102的设备的所有权的转移。这样的设备的示例包括但不限于台式计算机、膝上型计算机、服务器、平板计算机、智能电话等、和/或其中包括的各种组件,包括但不限于硬盘驱动器、固态驱动器、处理器(例如,CPU)、微控制器、图形卡等。
安全处理器106可以包括多个熔丝库,每个熔丝库包括多个熔丝。每个熔丝库可以被配置为存储不同实体的公钥。每个库可以与使存储在对应的熔丝库中的公钥无效的熔丝(本文中称为所有者撤销熔丝)相关联。在任何给定时间,只有单个熔丝库是有效的。因此,在任何给定时间,设备只能由单个实体拥有。在设备的引导会话期间以及在所有权的有效转移过程期间熔丝是可编程的(或可熔断的)。当前所有者(即,第一实体)同意并且通过授权固件来发起所有权转移,该固件被配置为用第二实体的公钥对熔丝库进行编程并且还被配置为熔断与存储第一实体的公钥的熔丝库相关联的熔丝。下面参考图2描述关于所有权的转移过程的附加的细节。
例如,图2是根据示例实施例的安全处理器200的框图。安全处理器200是如上参考图1所描述的安全处理器106的示例。如图2所示,安全处理器200包括安全处理器内核202、存储器204、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214。安全处理器内核202、存储器204、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214经由总线互连208通信地耦合,该总线互连是如上参考图1所描述的总线互连108的示例。总线互连208可以通信地耦合到没有参考图2描述的其他组件,包括但不限于CPU内核104A至104D,如上参考图1所描述。
安全处理器内核202可以是为高性能、强实时和安全关键应用而优化的实时处理器内核。这样的处理器内核的示例包括但不限于由英国剑桥(Cambridge,United Kingdom)的安谋控股公司(ARM Holdings)研发的ARM Cortex-R处理器。根据实施例,安全处理器内核202可以是基于32位或64位精简指令集计算机(RISC)的处理器内核;但本文中描述的实施例并不局限于此。
存储器204存储引导代码216和各种类型的固件。引导代码216包括在引导会话期间(即,当其中包括安全处理器200的设备在上电或复位后启动时)可由安全处理器内核202执行的代码(或指令)。固件的示例包括但不限于基本输入/输出系统(BIOS)固件、UEFI(统一可扩展固件接口)(UEFI)BIOS固件、以及各种设备专用固件,诸如硬盘驱动器固件、固态驱动器固件、视频BIOS固件等。如下所描述,存储器204还可以包括便于在两个实体之间所有权的转移的类型的固件(示为固件218)。这样的固件在本文中被称为所有权转移引导镜像。存储器204的示例包括但不限于非易失性只读存储器设备(例如,闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)。
熔丝阵列214包括多个熔丝库220A、220B、220C和220D。熔丝库220A、220B、220C和220D中的每个熔丝库包括多个一次性可编程熔丝。熔丝可以是具有两种不同状态中的一个状态的电子熔丝(即,电熔丝(eFuse))或反熔丝。电熔丝是计算机芯片中的微型熔丝,其可以由半导体材料(例如,硅)和/或金属迹线制成。电熔丝可以通过电迁移或以另一合适的方式熔断。然而,本文中描述的实施例并不局限于此。可以通过选择性地熔断熔丝库中的熔丝来将数据写入(或编程)到熔丝库中,其中熔断的熔丝可以对应于值“1”,而未熔断的熔丝可以对应于值“0”,反之亦然。熔丝库220A、220B、220C和220D中的每个熔丝库被配置为存储特定实体的公钥。根据实施例,熔丝库220A、220B、220C和220D中的每个熔丝库存储代表公钥的散列。该散列可以包括可以是384位散列值。根据这样的实施例,熔丝库220A、220B、220C和220D中的每个熔丝库包括384个熔丝。然而,要注意的是,该散列可以包括任何数目的位数,包括但不限于128位、256位等,并且熔丝库220A、220B、220C和220D中的每个熔丝库可以包括对应数量的熔丝。在制造之后,特定熔丝库(例如,熔丝库220A)的熔丝可以被编程以存储第一所有者的公钥。如果公钥在安全处理器200的流片时是已知的,也可以将其强编码在存储器204中。这保证了当制造安全处理器200时,在熔断任何熔丝之前,安全处理器拥有默认所有者。
熔丝库220A、220B、220C和220D中的每个熔丝库还与所有者撤销熔丝相关联。例如,熔丝库220A与所有者撤销熔丝222A相关联,熔丝库220B与所有者撤销熔丝222B相关联,熔丝库220C与所有者撤销熔丝222C相关联,并且熔丝库220D与所有者撤销熔丝222D相关联。所有者撤销熔丝222A、222B、222B和222D中的每个所有者撤销熔丝可以用来使存储在其对应的熔丝库中的公钥无效(或撤销存储在其对应的熔丝库中的公钥)。所有者撤销熔丝222A、222B、222B和222D中的每个所有者撤销熔丝最初可以处于未熔断状态。为了撤销公钥,可以熔断对应的撤销熔丝。例如,为了撤销存储在库220A中的公钥,可以熔断所有者撤销熔丝222A。为了撤销存储在库220B中的公钥,可以熔断所有者撤销熔丝222B。为了撤销存储在库220C中的公钥,可以熔断所有者撤销熔丝222C。为了撤销存储在库220D中的公钥,可以熔断所有者撤销熔丝222D。
访问实施逻辑210被配置为允许或拒绝对熔丝阵列214中的熔丝进行编程的能力。例如,当要执行所有权转移时,访问实施逻辑210使熔丝阵列214中的熔丝能够被编程。例如,访问实施逻辑210可以向熔丝控制器212发送第一命令,该第一命令使熔丝控制器212准许对熔丝阵列214中的熔丝进行编程的请求。当确定了不要执行所有权转移时,访问实施逻辑210阻止熔丝阵列214中的熔丝被编程。例如,访问实施逻辑210可以向熔丝控制器212发送第二命令,该第二命令使熔丝控制器212拒绝对熔丝阵列214中的熔丝进行编程的请求。根据实施例,熔丝控制器212和访问实施逻辑210默认阻止熔丝阵列214中的熔丝被编程。根据这样的实施例,不向熔丝控制器212提供第二命令。
为了便于所有权的转移,设备的第一实体(即,当前所有者)可以创作所有权转移引导镜像218。所有权转移引导镜像218包括表示所有权转移引导镜像218是否被配置为执行所有权的转移的标志(即,所有权转移标志)。根据实施例,该标志在所有权转移引导镜像218的报头中。报头还可以包括附加信息,诸如,但不限于,所有权要转移的设备(例如SoC102)的一个或多个标识符的允许列表、与第一实体相关联的公钥和/或与第二实体相关联的公钥。除了被存储在所有权转移引导镜像218的报头中之外和/或代替被存储在所有权转移引导镜像218的报头中,第一实体的公钥可以被存储在存储器204中。所有权转移引导镜像218进一步包括代码,该代码当由安全处理器内核202执行时,使安全处理器内核202用第二实体(未来所有者)的公钥对熔丝库220A至220D中的一个熔丝库进行编程。这些指令还可以使安全处理器内核202熔断与存储第一实体的公钥的熔丝库相关联的所有者撤销熔丝,从而撤销第一实体的公钥。所有权转移引导镜像218也可以用第一实体的私钥加密并且由第一实体的私钥签名。要注意的是,所有权转移引导镜像218的某些部分可以不加密,诸如,但不限于第一实体的公钥和第二实体的公钥。第一实体将所有权转移引导镜像218加载到第一实体希望转移到第二实体的每个设备中。
在要转移的设备的引导会话期间,安全处理器内核202加载并且执行引导代码216。当执行时,引导代码216使安全处理器内核202将所有权转移引导镜像218从存储器204复制到并入在安全处理器内核202内的存储器,诸如,但不限于静态随机存取存储器(SRAM)。然后,引导代码216使安全处理器内核202验证第一实体的公钥(其被包括在所有权转移引导镜像218的报头、和/或存储器204中),以确保所有权转移引导镜像218是由授权实体提供的。为了验证公钥,安全处理器内核202可以向熔丝控制器212发送读取请求。熔丝控制器212读取熔丝库220A、220B、220C和220D中的每个熔丝库,并且将存储在其中的值连同由相关联的所有者拒绝熔丝222A、222B、222C和222D表示的值返回给安全处理器内核202。安全处理器内核202读取从熔丝控制器212返回的值,并且确定这些值中的一个值是否等于与第一实体相关联的公钥。如果在任何熔丝库220A、220B、220C和220D中都没有找到公钥,则安全处理器内核202可以将被包括在所有权转移引导镜像218的报头中的公钥编程到熔丝库220A、220B、220C和220D中的空库中。该空库还应该具有未熔断的相关联所有者撤销熔丝。如果没有找到空插槽,则引导会话和所有权转移失败。
在其中熔丝库220A、220B、220C和220D被配置为存储公钥的散列的实施例中,安全处理器内核202可以将第一实体的公钥提供给加密引擎206。加密引擎206被配置为生成公钥的散列。加密引擎206可以根据加密算法生成散列。加密算法的示例包括但不限于基于高级加密标准(AES)的算法、基于安全散列算法(SHA)的算法、基于公钥算法(PKA)的算法等。加密引擎206将散列返回给安全处理器内核202。
如果发现公钥(或它们的散列)之间的匹配,则安全处理器内核202使用公钥来验证签名并且解密固件。安全处理器内核202然后分析解密的固件的报头,以确定其是否包括所有权转移标志,并且如果是,则确定所有权转移标志是否指示是否要执行所有权的转移。例如,如果所有权的转移标志被设置为值“1”,则其可以指示要执行所有权转移,而值“0”指示不要执行所有权的转移,反之亦然。
响应于确定要执行所有权转移,安全处理器内核202获得在其上加载固件转移引导镜像218的设备(例如,SoC 102)的标识符,并且将该标识符与包括在固件转移引导镜像218的报头中的标识符的允许列表进行比较。在设备是SoC 102的实施例中,标识符可以在制造期间写入SoC 102的非易失性存储器中,并且可以由安全处理器内核202通过查询非易失性存储器来取回。如果所获得的标识符与列表上的标识符中的一个标识符不匹配,则安全处理器内核202中止引导过程,并且所有权的转移失败。如果所获得的标识符与列表上的标识符中的一个标识符相匹配,则安全处理器内核202执行引导代码216的代码,该代码使安全处理器内核202向访问实施逻辑210发送命令。该命令指示访问实施逻辑210要启用熔丝阵列214中的熔丝的编程。响应于接收到该命令,访问实施逻辑210可以向熔丝控制器212发送第一命令,该第一命令使熔丝控制器212准许对熔丝阵列214中的熔丝进行编程的请求。标识符的列表有利地使第一实体能够指定其哪些设备要转移到第二实体。如果没有利用标识符的列表并且只利用第一实体的公钥来用于验证,则与该公钥相关联的任何设备都是可转移到第二实体的。
在访问实施逻辑210启用熔丝阵列214中熔丝的编程之后,安全处理器内核202执行所有权转移引导镜像218。安全处理器内核202执行所有权转移引导镜像218的代码,该代码使安全处理器内核202用第二实体的公钥对熔丝库220A至220D中的一个熔丝库进行编程。例如,代码的执行可以使安全处理器内核202向熔丝控制器212发送程序请求。该命令包括要编程在熔丝阵列214的空熔丝库(例如,包括全零并且其相关联的所有者撤销熔丝不熔断的熔丝库)中的公钥。响应于接收到程序请求,熔丝控制器212确定熔丝阵列214的空熔丝库并对其中的熔丝进行编程,以存储第二实体的公钥。例如,假设原始所有者的公钥存储在熔丝库220A中,并且所有其他熔丝库都是空的,则熔丝控制器212可以对下一空熔丝库(例如,熔丝库220B)中的第二实体的公钥进行编程。熔丝控制器212可以通过熔断熔丝库220B的某些熔丝来对熔丝库220B进行编程,使得熔丝的状态代表第二实体的公钥的值。例如,假设公钥是“0101”并且在熔丝库220B中有四个熔丝。在这个示例中,熔丝控制器212将熔断第一熔丝和第三熔丝,使得这些熔丝代表值‘1’。熔丝控制器212将不会熔断第二熔丝和第四熔丝,使得这些熔丝代表值‘0’。
响应于接收到程序请求和/或对熔丝库220B进行编程,熔丝控制器212也可以熔断所有者撤销熔丝222A,因为它与熔丝库220A相关联,从而撤销第一实体的公钥。
如上所描述,熔丝库220A、220B、220C和220D可以存储所有者的公钥的散列。根据这样的实施例,安全处理器内核202可以向加密引擎206提供第二实体的公钥,该加密引擎生成公钥的散列。加密引擎206将公钥的散列返回给安全处理器内核202,并且安全处理器内核202将公钥的散列包括在发送给熔丝控制器212的程序请求中。
响应于确定所有权的转移没有被执行(例如,没有设置所有权转移标志),安全处理器内核202执行引导代码216的代码,该代码使安全处理器内核202向访问实施逻辑210发送命令,该命令指示访问实施逻辑210要阻止熔丝阵列中的熔丝的编程。响应于接收到这样的命令,访问实施逻辑210可以向熔丝控制器212发送命令,该命令使熔丝控制器212拒绝对熔丝阵列214中的熔丝进行编程的请求。
在安全处理器内核202完成执行所有权的转移引导镜像218(并且编程了便于所有权转移的适当熔丝)之后,安全处理器内核202可以加载并且执行存储在存储器204中的其他类型的固件并且完成引导会话。第一实体然后可以关闭设备并且将设备提供给第二实体(即新所有者)。要注意的是,对于第一实体打算将所有权转移给第二实体的每个设备,执行前述过程。
新所有者授权一种类型的固件,该种类型的固件被配置为确认新所有者是设备被转移到其那里的唯一所有者。这样的固件在本文中被称为所有权转移检查撤销镜像。新所有者将该固件加载到要转移到其那里的每个设备的存储器204中。在引导会话期间,引导代码216将所有权转移检查撤销镜像加载到并入在安全处理器内核202内的存储器(例如,SRAM)中。
当执行时,引导代码216使安全处理器内核202将所有权转移检查撤销镜像从存储器204复制到并入在安全处理器内核202内的存储器,诸如,但不限于静态随机存取存储器(SRAM)。然后,引导代码216使安全处理器内核202验证新所有者的公钥(例如,包括在所有权转移检查撤销镜像的报头中和/或存储在存储器204中)。为了验证公钥,安全处理器内核202可以向熔丝控制器212发送读取请求。熔丝控制器212读取熔丝库220A、220B、220C和220D中的每个熔丝库,并且将存储在其中的值连同由相关联的所有者拒绝熔丝222A、222B、222C和222D表示的值返回给安全处理器内核202。安全处理器内核202读取从熔丝控制器212返回的值,并且确定这些值中的一个值是否等于与第一实体相关联的公钥。如果在任何熔丝库220A、220B、220C和220D中都没有找到公钥,则引导会话和所有权转移失败。
如果发现公钥(或它们的散列)之间的匹配,则所有权转移检查撤销镜像使安全处理器内核202确定任何熔丝库220A、220B、220C和220D中的其他熔丝库否存储非零值(指示它们不是空的并且可能存储另一所有者的公钥)。对于这样的熔丝库,安全处理器内核202确定它们对应的所有者撤销熔丝是否被熔断。如果任何所有者撤销熔丝都未被熔断,则安全处理器内核202向熔丝控制器212提供程序请求,该程序请求指定所有者撤销熔丝222A、222B、222C和222D中的哪个所有者撤销熔丝应该被熔断。例如,如果新所有者的公钥被编程到熔丝库220B中并且熔丝库220A和220C包括非零值,则程序请求可以指定所有者请求熔丝222A和222C要被熔断。响应于接收到程序请求,熔丝控制器212熔断所有者请求熔丝222A和222C,从而撤销存储在熔丝库220A和220C中的公钥。
因此,设备的所有权可以以多种方式从第一实体转移到第二实体。例如,图3描绘了根据实施例的由计算设备执行的用于将计算设备的所有权从第一实体转移到第二实体的示例方法的流程图300。在实施例中,流程图300可以由安全处理器200实现。将继续参考图2的安全处理器200来描述流程图300的方法,但该方法不限于该实现。基于关于流程图300和图2的安全处理器200的讨论,其他结构和操作实施例对于相关领域的技术人员将是清楚的。
如图3所示,流程图300的方法开始于步骤302,其中,在计算设备的引导会话期间,检测计算设备的所有权从第一实体向第二实体的转移的指示。例如,参考图2,引导代码216可以包括代码,该代码当执行时使安全处理器内核202检测计算设备的所有权从第一实体向第二实体的转移的指示。
根据一个或多个实施例,该指示包括固件的报头中的标志,该标志当设置时指示计算设备的所有权从第一实体向第二实体的转移。例如,参考图2,所有权转移引导镜像218包括在其报头中的标志,该标志当设置时指示计算设备的所有权从第一实体向第二实体的转移。
根据一个或多个实施例,该标志用于确定对熔丝阵列214的熔丝进行编程的请求是被准许还是被拒绝。下面参考图4描述了关于这样的技术的附加细节。
根据一个或多个实施例,固件用第一实体的私钥签名。例如,参考图2,所有权转移引导镜像218用第一实体的私钥签名。
在步骤304,响应于检测到计算设备的所有权从第一实体向第二实体的转移的指示,第一熔丝集被编程为存储与第二实体相关联的第一公钥。例如,参考图2,安全处理器代码202执行所有权转移引导镜像218,其使安全处理器代码202向熔丝控制器212提供程序请求。该程序请求可以包括与第二实体(即新所有者)相关联的第一公钥。响应于接收到程序请求,熔丝控制器212对第一熔丝集(例如,熔丝库220B的熔丝)进行编程,以存储第二实体的公钥。
在步骤306,与存储与第一实体相关联的第二公钥的第二熔丝集相关联的熔丝被熔断。熔丝的熔断使第一公钥无效。例如,参考图2,由安全处理器内核202提供的程序请求也可以使熔丝控制器212熔断与第二熔丝集相关联的熔丝,该第二熔丝集存储与第一实体相关联的第二公钥。例如,如果第一实体(即,原始所有者)的公钥存储在熔丝库220A的熔丝中,则熔丝控制器212熔断所有者请求熔丝222A,从而使存储在熔丝库220A中的公钥无效。
图4描绘了根据实施例的由计算设备执行的用于确定熔丝阵列的熔丝是否能够被编程的示例方法的流程图400。在实施例中,流程图400可以由安全处理器200实现。因此,将继续参考图2的安全处理器200来描述流程图400的方法,但该方法不限于该实现。基于关于流程图400和图2的安全处理器200的讨论,其他结构和操作实施例对于相关领域的技术人员将是清楚的。
如图4所示,流程图400的方法开始于步骤402处,其中,确定是否设置了固件报头中的标志。当设置时,该标志指示计算设备的所有权正从第一实体和第二实体转移。如果确定未设置标志,则流程继续到步骤404。否则,流程继续到流程406。例如,参考图2,引导代码216可以包括代码,该代码当执行时使安全处理器内核202确定是否设置了所有权转移引导镜像218中的标志。
在步骤404处,响应于确定没有设置第一标志,阻止第一熔丝集被编程并且阻止与第二熔丝集相关联的熔丝被编程。例如,参考图2,响应于确定所有权转移没有正在被执行(例如,没有设置所有权转移标志),安全处理器内核202可以向访问实施逻辑210发送命令,该命令指示访问实施逻辑210要阻止熔丝阵列214中的熔丝(例如,第一熔丝集(例如,熔丝库220B))的编程并且阻止与熔丝库220A相关联的所有者撤销熔丝222A的编程。响应于接收到这样的命令,访问实施逻辑210可以向熔丝控制器212发送命令,该命令使熔丝控制器212拒绝对熔丝阵列214中的熔丝(例如,熔丝库220B和所有者撤销熔丝222A)进行编程的请求。
在步骤406处,响应于确定设置了标志,使第一熔丝集能够被编程并且使与第二熔丝集相关联的熔丝能够被编程。例如,参考图2,响应于确定所有权转移正在被执行(例如,设置了所有权转移标志),安全处理器内核202可以向访问实施逻辑210发送命令,该命令指示访问实施逻辑210将启用熔丝阵列214中的熔丝(例如,第一熔丝集(例如,熔丝库220B)和与熔丝库220A相关联的所有者撤销熔丝222A)的编程。响应于接收到这样的命令,访问实施逻辑210可以向熔丝控制器212发送命令,该命令使熔丝控制器212允许对熔丝阵列214中的熔丝(例如,熔丝库220B和所有者撤销熔丝222A)进行编程的请求。
根据一个或多个实施例,在发起所有权转移之前,还验证要转移的设备的标识符。这确保了转移过程仅在第一实体打算转移到第二实体的设备上执行。例如,图5描绘了根据实施例的由计算设备执行的用于基于计算设备的标识符的验证来转移计算设备的所有权的示例方法的流程图500。在实施例中,流程图500可以由安全处理器200实现。因此,将继续参考图2的安全处理器200来描述流程图500的方法,但该方法不限于该实现。基于关于流程图500和图2的安全处理器200的讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是清楚的。
如图5所示,流程图500的方法开始于步骤502,其中,确定计算设备的标识符。例如,参考图2,安全处理器内核202获得在其上加载固件转移引导镜像218的设备(例如,SoC102)的标识符。在设备是SoC 102的实施例中,标识符可以在制造期间写入SoC 102的非易失性存储器中,并且可以由安全处理器内核202通过查询非易失性存储器来取回。
在步骤504处,确定标识符是否被包括在标识符的允许列表中。响应于确定标识符未被包括在标识符的允许列表中,流程继续到步骤506。否则,响应于至少检测到计算设备的所有权转移的指示(如图3的步骤302中所描述)以及确定第一标识符被包括在允许列表中,流程继续到步骤508。例如,参考图2,安全处理器内核202将该标识符与包括在固件转移引导镜像218的报头中的标识符的允许列表进行比较。
在步骤506处,引导会话中止。例如,参考图2,安全处理器内核202中止引导会话,并且所有权转移失败。
在步骤508处,第一熔丝集被编程,并且与第二熔丝集相关联的熔丝被熔断。例如,参考图2,安全处理器内核202执行引导代码216的代码,该代码使安全处理器内核202向熔丝控制器212发送程序请求。该程序请求指示第一熔丝集(例如,熔丝库220B)要被编程和/或与第二库熔丝(例如,熔丝库220A)相关联的熔丝(所有者撤销熔丝222A)要被熔断。响应于接收到程序请求,熔丝控制器212用第二实体的公钥对熔丝库220B进行编程,并且熔断所有者撤销熔丝222A以撤销存储在熔丝库220A中的第一实体的公钥。
根据一个或多个实施例,标识符的允许列表被包括在固件的报头中。例如,参考图2,标识符的允许列表被包括在所有权转移引导镜像218的报头中。
III.示例计算机系统实现
上述的系统和方法,包括参考图1至图5的将计算设备的所有权从第一实体向第二实体的转移,可以在硬件、或与软件和/或固件中的一个或两者组合的硬件中实现。例如,引导代码216和所有权转移引导镜像218和/或流程图300、400和500可以各自被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器(例如,安全处理器内核202)中执行并且存储在计算机可读存储介质(例如,存储器204)中。安全处理器106、CPU内核104A至104D、存储器204、安全处理器内核202、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214可以被实现为硬件逻辑/电气电路装置(electricalcircuitry)。在实施例中,安全处理器106、CPU内核104A至104D、存储器204、安全处理器内核202、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214、和/或其中描述的组件中的每个组件、以及流程图300、400和/或500可以在一个或多个SoC(片上系统)(例如,SoC 102)中实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,CPU内核104A至104D)、微控制器、微处理器、数字信号处理器(DSP)、安全处理器106等)、存储器(例如,存储器204)、一个或多个通信接口(例如,总线互连108和208)、和/或其他电路中的一个或多个,并且可以可选地执行接收到的程序代码和/或包括执行功能的嵌入式固件。
图6示出了示例性移动设备600的框图,该移动设备包括各种可选的硬件和软件组件,通常被示为组件602。安全处理器106、CPU内核104A至104D、存储器204、安全处理器内核202、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214、和/或其中描述的组件中的每个组件、以及流程图300、400和/或500的特征/元素中任何数目和组合可以被实现为包括在移动设备实施例中的组件602,以及附加和/或替代的特征/元素,如相关领域技术人员所已知的。要注意的是,组件602中的任一个都可以与组件602中的任何其他通信,但是为了易于图示,没有示出所有的连接。移动设备600可以是本文别处描述或提及的或另外已知的任何各种移动设备(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(PDA)等))并且可以允许通过一个或多个通信网络604(诸如,蜂窝网络或卫星网络)与一个或多个移动设备进行无线双向通信,或者与局域网或广域网进行无线双向通信。
所示的移动设备600可以包括被称为处理器电路610的控制器或处理器(其可以包括CPU内核104A至104N),以用于执行诸如信号编码、图像处理、数据处理、输入/输出处理、功率控制和/或其他功能的任务。处理器电路610是在一个或多个物理硬件电路设备元素和/或集成电路设备(半导体材料芯片或管芯)中实现为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电气电路和/或光学电路。处理器电路610可以执行存储在计算机可读介质中的程序代码,诸如一个或多个应用程序614、操作系统612的程序代码、存储在存储器620(其是存储器204的示例)中的任何程序代码等。操作系统612可以控制组件602的分配和使用,并且支持一个或多个应用程序614(也称为应用程序、“app”等)。应用程序614可以包括常见的移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、web浏览器、消息应用程序)和任何其他计算应用程序(例如,文字处理应用程序、地图应用程序、媒体播放器应用程序)。安全处理器内核202可以通信地耦合到处理器电路610。
如所示,移动设备600可以包括存储器620。存储器620可以包括不可移动存储器622和/或可移动存储器624。不可移动存储器622可以包括RAM、ROM、闪存、硬盘或其他众所周知的存储器存储技术。可移动存储器624可以包括闪存或用户身份模块(SIM)卡,这在GSM通信系统中是已知的,或者其他已知的存储器存储技术,诸如“智能卡”。存储器620可以用于存储用于运行操作系统612和应用程序614的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络发送到一个或多个网络服务器或其他设备和/或从一个或多个网络服务器或其他设备接收的网页、文本、图像、声音文件、视频数据或其他数据集。存储器620可以用于存储用户标识符,诸如国际移动用户标识(IMSI),以及设备标识符,诸如国际移动设备标识符(IMEI)。这样的标识符可以被传输到网络服务器以标识用户和设备。
许多程序可以存储在存储器620中。这些程序包括操作系统612、一个或多个应用程序614、以及其他程序模块和程序数据。这样的应用程序或程序模块的示例可以包括例如用于实现上述系统和方法的计算机程序逻辑(例如,计算机程序代码或指令),包括参考图1至图5描述的实施例。
移动设备600可以支持一个或多个输入设备630,诸如触摸屏632、麦克风634、相机636、物理键盘638和/或轨迹球640,以及一个或多个输出设备650,诸如扬声器652和显示器654。
其他可能的输出设备(未示出)可以包括压电输出设备或其他触觉输出设备。一些设备可以提供多于一种输入/输出功能。例如,触摸屏632和显示器654可以组合在单个输入/输出设备中。输入设备630可以包括自然用户界面(NUI)。
无线调制解调器660可以耦合到天线(未示出),并且可以支持处理器电路610与外部设备之间的双向通信,这在本领域中是众所周知的。调制解调器660被一般性地示出,并且可以包括用于与移动通信网络604和/或其他基于无线电的调制解调器(例如,蓝牙664和/或Wi-Fi 662)通信的蜂窝调制解调器666。蜂窝调制解调器666可以被配置为根据任何合适的通信标准或技术,诸如GSM、3G、4G、5G等,来实现电话呼叫(并且可选地传输数据)。无线调制解调器660中的至少一个通常被配置用于与一个或多个蜂窝网络,诸如用于在单个蜂窝网络内、在多个蜂窝网络之间、或在移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络,进行通信。
移动设备600可以进一步包括至少一个输入/输出端口680、电源682、诸如全球定位系统(GPS)接收器的卫星导航系统接收器684、加速度计686、和/或物理连接器660,该物理连接器可以是USB端口、IEEE 1394(火线)端口、和/或RS-232端口。如本领域技术人员将认识到的,所示组件602不是必需的或包括一切的,因为可以不存在任何组件,并且可以附加存在其他组件。
图7描绘了其中可以实现实施例的计算设备700的示例性实现,包括安全处理器106、CPU内核104A至104D、存储器204、安全处理器内核202、加密引擎206、访问实施逻辑210、熔丝控制器212和熔丝阵列214、和/或其中描述的组件中的每一个、以及流程图300、400和/或500。本文中提供的对计算设备700的描述是为了说明的目的而提供的,并不旨在是限制性的。如相关领域的技术人员所知,实施例可以在其他类型的计算机系统中实现。
如图7所示,计算设备700包括被称为处理器电路702的一个或多个处理器、系统存储器704、以及将包括系统存储器704的各种系统组件耦合到处理器电路702的总线706。处理器电路702是在一个或多个物理硬件电路设备元素和/或集成电路设备(半导体材料芯片或管芯)中实现为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电气电路和/或光学电路。处理器电路702可以执行存储在计算机可读介质中的程序代码,诸如操作系统730、应用程序732、其他程序734等的程序代码。总线706代表若干类型总线结构中的任一种中的一种或多种总线,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或本地总线。系统存储器704包括只读存储器(ROM)708(其是存储器204的示例)和随机存取存储器(RAM)710。基本输入/输出系统712(BIOS)被存储在ROM 708中。CPU内核104A至104D可以被包括在处理器电路702中。安全处理器106可以经由总线706通信地耦合到处理器电路702。
计算设备700还具有以下驱动器中的一个或多个驱动器:用于对硬盘进行读写的硬盘驱动器714、用于对可移动磁盘718进行读写的磁盘驱动器716、以及用于对诸如CDROM、DVD ROM或其他光学介质的可移动光盘722进行读写的光盘驱动器720。硬盘驱动器714、磁盘驱动器716和光盘驱动器720分别通过硬盘驱动器接口724、磁盘驱动器接口726和光盘驱动器接口728连接到总线706。驱动器及其相关联的计算机可读介质为计算机提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储装置。尽管描述了硬盘、可移动磁盘和可移动光盘,但是也可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质。
许多程序模块可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统730、一个或多个应用程序732、其他程序734、和程序数据736。应用程序732或其他程序734可以包括例如用于实现上述系统的计算机程序逻辑(例如,计算机程序代码或指令),包括参考图1-图5描述的实施例。
用户可以通过诸如键盘738和点击设备740的输入设备向计算设备700中输入命令和信息。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、触摸屏和/或触摸垫、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些输入设备和其他输入设备通常通过耦合到总线706的串行端口接口742连接到处理器电路702,但是也可以通过诸如并行端口、游戏端口、或通用串行总线(USB)的其他接口连接。
显示屏744也经由诸如视频适配器746的接口连接到总线706。显示屏744可以在计算设备700的外部,或者并入在计算设备700中。显示屏744可以显示信息,以及作为用于接收用户命令和/或其他信息的用户界面(例如,通过触摸、手指手势、虚拟键盘等)。除了显示屏744之外,计算设备700可以包括其他外围输出设备(未示出),例如扬声器和打印机。
计算设备700通过适配器或网络接口750、调制解调器752、或用于在网络上建立通信的其他装置连接到网络748(例如,互联网)。调制解调器752可以是内置或外置的、可以经由串行端口接口742连接到总线706,如图7所示,或者可以使用包括并行接口的另一种接口类型连接到总线706。
如本文中所用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”用于通常指代物理硬件介质,诸如与硬盘驱动器714相关联的硬盘、可移动磁盘718、可移动光盘722,其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、zip盘、MEM、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图7的系统存储器704)。这样的计算机可读存储介质区别于通信介质并且不与通信介质重叠(不包括通信介质)。通信介质通常体现计算机可读指令、数据结构、程序模块或诸如载波的经调制数据信号中的其他数据。术语“经调制数据信号”意指以编码信号中的信息的方式设置或改变其特性中的一个或多个的信号。作为示例而非限制,通信介质包括无线介质,诸如声学、RF、红外和其他无线介质,以及有线介质。实施例还涉及这样的通信介质。
如上所提到的,计算机程序和模块(包括应用程序732和其他程序734)可以被存储在硬盘、磁盘、光盘、ROM、RAM、或其他硬件存储介质上。这样的计算机程序也可以经由网络接口750、串行端口接口752、或任何其他接口类型而被接收。当由应用程序执行或加载时,这样的计算机程序使计算设备700能够实现本文中讨论的实施例的特征。因此,这样的计算机程序代表计算设备700的控制器。
实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备封装、便携式记忆棒、存储卡、和其他类型的物理存储硬件。
IV.附加的示例性实施例
本文中公开了一种系统。该系统包括:至少一个处理器电路;第一熔丝集,存储与第一实体相关联的第一公钥;第二熔丝集;以及至少一个存储器,存储被配置为由至少一个处理器电路执行的引导代码和固件,引导代码的执行使至少一个处理器电路:在系统的引导会话期间:检测系统的所有权从第一实体向第二实体的转移的指示;以及由至少一个处理器电路执行固件,固件的执行使至少一个处理器电路,使至少一个处理器电路:响应于至少检测到系统的所有权从第一实体向第二实体的转移的指示:对第二熔丝集进行编程以存储与第二实体相关联的第二公钥;以及熔断与第一熔丝集相关联的、使第二公钥无效的熔丝。
在该系统的实施例中,固件利用第一实体的私钥签名。
在该系统的实施例中,指示包括固件的报头中的标志,该标志当设置时指示系统的所有权从第一实体向第二实体的转移。
在该系统的实施例中,由至少一个处理器电路执行引导代码使至少一个处理器电路:确定是否设置了标志;响应于确定未设置标志,阻止第二熔丝集被编程并阻止与第一熔丝集相关联的熔丝被熔断;以及响应于确定设置了标志,使第二熔丝集能够被编程并且使与第一熔丝集相关联的熔丝能够被熔断。
在该系统的实施例中,由至少一个处理器电路执行固件使至少一个处理器电路:确定系统的标识符;确定标识符是否被包括在标识符的允许列表中;响应于至少检测到系统的所有权转移的指示以及确定第一标识符被包括在允许列表中,对第二熔丝集进行编程并熔断与第一熔丝集相关联的熔丝;以及响应于确定第一标识符未被包括在允许列表中,中止引导会话。
在该系统的实施例中,标识符的允许列表被包括在固件的报头中。
在该系统的实施例中,处理电路在与多个中央处理电路内核相同的管芯上实现。
本文中还描述了一种由计算设备实现的方法。该方法包括:在计算设备的引导会话期间:检测计算设备的所有权从第一实体转移到第二实体的转移的指示;以及响应于至少检测到计算设备的所有权从第一实体转移到第二实体的指示:对第一熔丝集进行编程以存储与第二实体相关联的第一公钥;以及熔断与存储与第一实体相关联的第二公钥的第二熔丝集相关联、使第一公钥无效的熔丝。
在该方法的实施例中,指示包括固件的报头中的标志,该标志当设置时指示计算设备的所有权从第一实体向第二实体的转移。
在该方法的实施例中,固件用第一实体的私钥签名。
在该方法的实施例中,该方法进一步包括:确定是否设置了标志;响应于确定未设置标志,阻止第一熔丝集被编程并阻止与第二熔丝集相关联的熔丝被熔断;以及响应于确定设置了标志,使第一熔丝集能够被编程并且使与第二熔丝集相关联的熔丝能够被熔断。
在该方法的实施例中,确定计算设备的标识符;确定标识符是否被包括在标识符的允许列表中;响应于至少检测到计算设备的所有权转移的指示以及确定第一标识符被包括在允许列表中,对第一熔丝集进行编程并熔断与第二熔丝集相关联的熔丝;以及响应于确定第一标识符未被包括在允许列表中,中止引导会话。
在该方法的实施例中,标识符的允许列表被包括在固件的报头中。
在该方法的实施例中,当由计算设备的处理器执行时,计算设备的引导代码执行所述检测,并且当由计算设备执行时,计算设备的固件执行所述编程和熔断。
本文中还描述了一种计算机可读存储介质,其上记录有程序指令,该程序指令当由计算设备的处理器执行时,执行方法。该方法包括:在计算设备的引导会话期间:检测计算设备的所有权从第一实体向第二实体的转移的指示;以及响应于至少检测到计算设备的所有权从第一实体向第二实体的转移的指示:对第一熔丝集进行编程以存储与第二实体相关联的第一公钥;和熔断与存储与第一实体相关联的第二公钥的第二熔丝集相关联的熔丝,这使第一公钥无效。
在该计算机可读存储介质的实施例中,该指示包括固件的报头中的标志,该标志当设置时指示计算设备的所有权从第一实体向第二实体的转移。
在该计算机可读存储介质的实施例中,固件用第一实体的私钥签名。
在该计算机可读存储介质的实施例中,确定是否设置了标志;响应于未设置标志,阻止第一熔丝集被编程并阻止与第二熔丝集相关联的熔丝被熔断;以及响应于确定设置了标志,使第一熔丝集能够被编程并且使与第二熔丝集相关联的熔丝能够被熔断。
在该计算机可读存储介质的实施例中,确定计算设备的标识符;确定标识符是否被包括在标识符的允许列表中;响应于至少检测到计算设备的所有权转移的指示以及确定第一标识符被包括在允许列表中,对第一熔丝集进行编程并且熔断与第二熔丝集相关联的熔丝;以及响应于确定第一标识符未被包括在允许列表中,中止引导会话。
在该计算机可读存储介质的实施例中,标识符的允许列表被包括在固件的报头中。
V.结论
虽然上文已经描述了各种实施例,但是应该理解,它们仅仅是通过示例的方式呈现的,而不是限制性的。对于相关领域的技术人员来说清楚的是,可以在形式和细节上进行各种改变而不脱离实施例的精神和范围。因此,实施例的广度和范围不应受到上述示例性实施例中任一个的限制,而应仅根据所附权利要求及其等同物来定义。

Claims (15)

1.一种系统,包括:
至少一个处理器电路;
第一熔丝集,存储与第一实体相关联的第一公钥;
第二熔丝集;以及
至少一个存储器,存储被配置为由所述至少一个处理器电路执行的引导代码和固件,所述引导代码的所述执行使所述至少一个处理器电路:
在所述系统的引导会话期间:
检测所述系统的所有权从所述第一实体向第二实体的转移的指示;以及
由所述至少一个处理器电路执行所述固件,所述固件的所述执行使所述至少一个处理器电路,使所述至少一个处理器电路:
响应于至少检测到所述系统的所有权从所述第一实体向所述第二实体的所述转移的所述指示:
对所述第二熔丝集进行编程以存储与所述第二实体相关联的第二公钥;以及
熔断与所述第一熔丝集相关联的、使所述第二公钥无效的熔丝。
2.根据权利要求1所述的系统,其中所述固件利用所述第一实体的私钥而被签名。
3.根据权利要求1所述的系统,其中所述指示包括所述固件的报头中的标志,所述标志当被设置时指示所述系统的所述所有权从所述第一实体向所述第二实体的所述转移。
4.根据权利要求3所述的系统,其中由所述至少一个处理器电路对所述引导代码的所述执行使所述至少一个处理器电路:
确定所述标志是否被设置;
响应于所述标志未被设置的确定,阻止所述第二熔丝集被编程并且阻止与所述第一熔丝集相关联的所述熔丝被熔断;以及
响应于所述标志被设置的确定,使所述第二熔丝集能够被编程并且使与所述第一熔丝集相关联的所述熔丝能够被熔断。
5.根据权利要求1所述的系统,其中由所述至少一个处理器电路对所述固件的所述执行使所述至少一个处理器电路:
确定所述系统的标识符;
确定所述标识符是否被包括在标识符的允许列表中;
响应于至少检测到所述系统的所述所有权的所述转移的所述指示以及所述第一标识符被包括在所述允许列表中的确定,
对所述第二熔丝集进行编程,以及
熔断与所述第一熔丝集相关联的所述熔丝;以及
响应于所述第一标识符未被包括在所述允许列表中的确定,中止所述引导会话。
6.根据权利要求5所述的系统,其中标识符的所述允许列表被包括在所述固件的报头中。
7.根据权利要求1所述的系统,其中所述处理电路在与多个中央处理电路内核相同的管芯上被实现。
8.一种由计算设备实现的方法,包括:
在所述计算设备的引导会话期间:
检测所述计算设备的所有权从第一实体向第二实体的转移的指示;以及
响应于至少检测到所述计算设备的所述所有权从所述第一实体向所述第二实体的所述转移的所述指示:
对第一熔丝集进行编程以存储与所述第二实体相关联的第一公钥;以及
熔断与存储与所述第一实体相关联的第二公钥的第二熔丝集相关联、使所述第一公钥无效的熔丝。
9.根据权利要求8所述的方法,其中所述指示包括所述固件的报头中的标志,所述标志当被设置时指示所述计算设备的所述所有权从所述第一实体向所述第二实体的所述转移。
10.根据权利要求9所述的方法,其中所述固件利用所述第一实体的私钥而被签名。
11.根据权利要求9所述的方法,还包括:
确定所述标志是否被设置;
响应于确定所述标志未被设置,阻止所述第一熔丝集被编程并且阻止与所述第二熔丝集相关联的所述熔丝被熔断;以及
响应于确定所述标志被设置,使所述第一熔丝集能够被编程并且使与所述第二熔丝集相关联的所述熔丝能够被熔断。
12.根据权利要求8所述的方法,还包括:
确定所述计算设备的标识符;
确定所述标识符是否被包括在标识符的允许列表中;
响应于至少检测到所述计算设备的所述所有权的所述转移的所述指示以及确定所述第一标识符被包括在所述允许列表中,
对所述第一熔丝集进行编程,以及
熔断与所述第二熔丝集相关联的所述熔丝;以及
响应于确定所述第一标识符未被包括在所述允许列表中,中止所述引导会话。
13.根据权利要求12所述的方法,其中标识符的所述允许列表被包括在所述固件的报头中。
14.根据权利要求8所述的方法,其中所述计算设备的引导代码当由所述计算设备的处理器执行时执行所述检测,并且其中所述计算设备的固件当由所述计算设备执行时执行所述编程和熔断。
15.一种计算机可读存储介质,其上记录有程序指令,所述程序指令当由计算设备的处理器执行时,执行根据权利要求8至14所述的方法中的任一方法。
CN202280036894.2A 2021-05-25 2022-04-29 经由安全处理器计算设备的所有权的转移 Pending CN117378173A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/330,170 2021-05-25
US17/330,170 US11893118B2 (en) 2021-05-25 2021-05-25 Transfer of ownership of a computing device via a security processor
PCT/US2022/026854 WO2022250836A1 (en) 2021-05-25 2022-04-29 Transfer of ownership of a computing device via a security processor

Publications (1)

Publication Number Publication Date
CN117378173A true CN117378173A (zh) 2024-01-09

Family

ID=81748241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280036894.2A Pending CN117378173A (zh) 2021-05-25 2022-04-29 经由安全处理器计算设备的所有权的转移

Country Status (4)

Country Link
US (2) US11893118B2 (zh)
EP (1) EP4348931A1 (zh)
CN (1) CN117378173A (zh)
WO (1) WO2022250836A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230015334A1 (en) * 2021-07-12 2023-01-19 Dell Products, L.P. Deriving dependent symmetric encryption keys based upon a type of secure boot using a security processor
US11977640B2 (en) * 2021-07-12 2024-05-07 Dell Products, L.P. Systems and methods for authenticating the identity of an information handling system
US20230010319A1 (en) * 2021-07-12 2023-01-12 Dell Products, L.P. Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
US11816252B2 (en) * 2021-07-12 2023-11-14 Dell Products L.P. Managing control of a security processor in a supply chain
US11977639B2 (en) * 2021-07-12 2024-05-07 Dell Products, L.P. Indicating a type of secure boot to endpoint devices by a security processor
US20230315919A1 (en) * 2022-03-31 2023-10-05 Fortinet, Inc. Virtual one-time programming (otp) to avoid dead chip during otp device programming
US20230318819A1 (en) * 2022-03-31 2023-10-05 Fortinet, Inc. One-time programming (otp) key revocation from a two-dimensional key storage structure of a system on a chip (soc)
CN117494079B (zh) * 2023-12-25 2024-03-26 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7795899B1 (en) 2009-04-08 2010-09-14 Oracle America, Inc. Enabling on-chip features via efuses
US8924737B2 (en) * 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
US9235710B2 (en) * 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
US9270469B2 (en) * 2014-02-20 2016-02-23 Xilinx, Inc. Authentication using public keys and session keys
US20160364787A1 (en) * 2015-06-09 2016-12-15 Intel Corporation System, apparatus and method for multi-owner transfer of ownership of a device
US9967102B2 (en) * 2015-12-18 2018-05-08 International Business Machines Corporation Managing transfer of device ownership
US10833863B2 (en) * 2016-02-29 2020-11-10 Intel Corporation Device provisioning service
US11803644B2 (en) * 2019-07-23 2023-10-31 SDG Logic Inc. Security hardened processing device
US11573806B2 (en) * 2020-06-11 2023-02-07 Vmware, Inc. Managing persistent enrollment of a user device
US11847136B2 (en) * 2020-09-02 2023-12-19 Sequoia Games, Inc. Systems and methods for distributed entity tracking

Also Published As

Publication number Publication date
WO2022250836A1 (en) 2022-12-01
US11893118B2 (en) 2024-02-06
US20240256674A1 (en) 2024-08-01
US20220382872A1 (en) 2022-12-01
EP4348931A1 (en) 2024-04-10

Similar Documents

Publication Publication Date Title
US11893118B2 (en) Transfer of ownership of a computing device via a security processor
US7313705B2 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US9317450B2 (en) Security protection for memory content of processor main memory
US8478973B2 (en) System and method for providing a secure application fragmentation environment
US9164925B2 (en) Method and apparatus for authorizing host to access portable storage device
US8464047B2 (en) Method and apparatus for authorizing host to access portable storage device
CN108476404A (zh) 安全设备配对
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
US20240211601A1 (en) Firmware policy enforcement via a security processor
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
CN115943610B (zh) 安全签署配置设置
CN109992966B (zh) 存储器子系统、安全客户端装置及其认证方法
US20220382874A1 (en) Secure computation environment
US20090064273A1 (en) Methods and systems for secure data entry and maintenance
US10019577B2 (en) Hardware hardened advanced threat protection
US9894062B2 (en) Object management for external off-host authentication processing systems
CN113807856A (zh) 一种资源转移方法、装置及设备
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN112613011A (zh) U盘系统认证方法、装置、电子设备及存储介质
JP4634924B2 (ja) 認証方法、認証プログラム、認証システムおよびメモリカード
CN110909357B (zh) 一种电子本及其控制方法
KR101264305B1 (ko) 파일 보호 장치, 파일 보호 방법, 및 컴퓨터 판독가능 기록 매체

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