CN115943610B - 安全签署配置设置 - Google Patents

安全签署配置设置 Download PDF

Info

Publication number
CN115943610B
CN115943610B CN202180044356.3A CN202180044356A CN115943610B CN 115943610 B CN115943610 B CN 115943610B CN 202180044356 A CN202180044356 A CN 202180044356A CN 115943610 B CN115943610 B CN 115943610B
Authority
CN
China
Prior art keywords
computing device
configuration settings
public key
certificate
operating system
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.)
Active
Application number
CN202180044356.3A
Other languages
English (en)
Other versions
CN115943610A (zh
Inventor
X·S·科瓦
N·施勒杰
T·P·门舍
W·本森
J·V·豪克
J·P·德切萨雷
A·G·詹宁斯
J·J·董
R·C·格拉汉姆
J·福捷
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of CN115943610A publication Critical patent/CN115943610A/zh
Application granted granted Critical
Publication of CN115943610B publication Critical patent/CN115943610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

本发明公开了与在引导期间保护计算设备相关的技术。在各种实施方案中,计算设备的安全电路为公钥对生成该公钥对的私钥并且使用该私钥来签署该计算设备的操作***的配置设置。该计算设备的引导加载程序从证书机构接收该公钥对的证书,并启动引导序列以加载该操作***。该引导序列包括该引导加载程序使用包括在该证书中的公钥以及该公钥对来验证所签署的配置设置。在一些实施方案中,该安全电路基于用户的密码对该私钥进行密码保护,该密码能够由该用户用来向该计算设备认证。

Description

安全签署配置设置
背景技术
技术领域
本公开整体涉及计算设备,并且更具体地涉及在引导期间保护计算设备。
相关技术描述
当计算机通电时,它可以执行引导过程以最终加载操作***。作为执行该过程的一部分,计算机可以初始化由操作***使用的各种资源和加载驱动程序。计算机还可以执行各种检查以确定计算机正在按预期操作。这些检查可以包括例如测试存储器、用户接口设备、处理器功能等。由于计算机还可能特别易受安全漏洞的攻击,因此计算机可以执行各种检查以确认例如引导加载程序和操作***在允许进一步执行之前未被篡改。
附图说明
图1是示出被配置为在引导序列期间安全地验证配置设置的计算设备的示例的框图。
图2是示出针对用于签署配置设置的密钥的证书签署请求的部件的生成的示例的框图。
图3是示出用于签署配置设置的过程的示例的通信图。
图4A至图4C是示出用于安全地验证配置设置的方法的示例的流程图。
图5是示出包括在计算设备中的安全区域处理器内的元件的示例的框图。
图6是示出示例性计算设备的一个实施方案的框图。
本公开包括对“一个实施方案”或“实施方案”的标引。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正***作。“被配置为签署操作***的配置设置的安全电路”旨在涵盖例如具有在操作期间执行该功能的电路(例如,专用密码硬件)的集成电路,即使所涉及的集成电路当前并非正被使用(例如,电源未连接到它)。因此,被描述或表述成“被配置为”执行某个任务的实体是指用于实施该任务的物理的事物,诸如设备、电路、存储有可执行程序指令的存储器等等。该短语在本文中不被用于指代无形的事物。因此,“被配置为”结构在本文中不被用于指代软件实体,诸如应用编程接口(API)。
术语“被配置为”并不旨在意指“可配置为”。例如,未经编程的FPGA不会被认为是“被配置为”执行某个特定功能,虽然其可能“能被配置为”执行该功能并且在编程之后可以“被配置为”执行该功能。
所附权利要求书中的表述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素援引35U.S.C.§112(f)。于是,所提交的本申请中没有任何权利要求旨在要被解释为具有装置-加-功能要素。如果申请人在申请过程中想要援引112(f)部分,则其将使用“用于[执行功能]的装置”结构来表述权利要求的要素。
如本文所用,术语“第一”、“第二”等充当其之后的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等),除非有明确指出。例如,安全电路可以导出第一密码密钥和第二密码密钥。术语“第一”不限于由安全电路导出的初始密码密钥。当仅存在一个密钥时,也可以使用术语“第一”。
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。该短语还旨在涵盖A仅基于B来确定的实施方案。如本文所用,短语“基于”因此与短语“至少部分地基于”是同义的。
具体实施方式
操作***可提供可被改变以修改计算设备的行为的各种配置设置。例如,这些设置可涉及设备安全性、网络接口行为、用户账户访问、可访问性功能等。为了便于这些设置的改变,操作***可以提供用户界面(例如,控制面板)或可访问的配置文件,通过它们可以改变这些设置。尽管这些设置的改变可以有利地允许用户使其设备的操作个性化,但是这些设置也呈现潜在的弱点,因为未授权的行动者可能试图以恶意方式修改这些设置。例如,未授权的行动者可能试图禁用设备的各种安全功能,以便进一步损害设备。
本公开描述了其中由计算设备内的安全硬件来安全地签署计算设备的配置设置以防止例如对设置的未授权修改的实施方案。如下文将在各种实施方案中描述的,计算设备内的安全电路生成并维护由安全电路用来签署配置设置的私钥。当启动计算设备的引导序列时,引导加载程序使用对应于私钥的公钥来验证所签署的配置设置。为了确定安全电路正在进行签署,安全电路可以请求由引导加载程序信任的证书机构认证公钥对,以便向签署的配置设置提供进一步的信任标记。在一些实施方案中,用于签署配置设置的私钥由安全电路基于授权用户的密码进行密码保护。因此,如果用户想要改变设置,则用户可以提供密码以便使安全电路能够获得对私钥的访问并签署改变的设置。另一方面,如果用户不能出示密码,则用户可能被禁止改变设置。在一些实施方案中,为了增加进一步的安全性,私有签署密钥的认证可以取决于计算设备联系外部服务器(例如,与设备的制造商相关联)以便确认激活锁尚未被所有者放置在设备上,例如,报告设备已经丢失或被盗。
现在转向图1,描绘了用于验证操作***的配置设置的***10的框图。在例示的实施方案中,***10包括计算设备100和计算设备100外部的证书机构(CA)20。计算设备100可包括中央处理单元(CPU)110、非易失性存储器(NVM)120和安全区域处理器(SEP)130,它们可以经由互连器140连接。NVM 120可包括操作***(OS)122、引导加载程序124和配置设置126。SEP 130可包括密码引擎132。在一些实施方案中,计算设备100可被具体实施为与图示不同。因此,设备100可包括附加部件,诸如下面相对于图6讨论的那些部件。在一些实施方案中,元件122-126可以在不同的存储器中。
在各种实施方案中,OS 122是能够执行以管理计算设备100的各种操作的操作***。因此,OS 122可包括便于与计算设备100的各种硬件资源交接的各种驱动程序。OS 122还可以包括便于设备资源的调度和管理的内核。OS 122还可以包括由设备100中的硬件执行以提供各种服务的各种固件。如上所述,OS 122可读取控制OS 122(或更一般地,计算设备100)的操作的各种配置设置126。这些配置设置126可以对应于任何合适的设置,诸如上述那些设置。例如,在一些实施方案中,配置设置包括启用或禁用由OS 122实现的一个或多个保护***以保护计算设备100的操作的一个或多个安全设置。例如,在一个实施方案中,OS 122可实现用于限制对关键***文件(诸如驻留在OS 122的内核空间中的那些文件)的访问的文件保护***,并且设置126可包括启用或禁用这种保护的设置。尽管在图1中描绘了单个OS 122,但是在一些实施方案中,OS 122可以是多个操作***中的一个操作***,每个操作***具有一组相关的设置126,这些设置可使用本文描述的技术来保护。
在各种实施方案中,引导加载程序124可由CPU 110执行以引导/加载计算设备100的操作***,诸如OS 122。因此,引导加载程序124可执行引导序列,该引导序列包括处理初始化设备100上的硬件,执行一个或多个验证检查、启动OS内核的执行等。在一些实施方案中,引导加载程序124符合统一可扩展固件接口(UEFI)规范。如上所述,在各种实施方案中,引导加载程序124进一步在引导过程期间验证配置设置126,以便例如确保设置126尚未以未授权的方式被更改。如下所述,引导加载程序124可以使用由SEP 130产生的签名127连同包括证书128的公钥来验证配置设置。
在各种实施方案中,SEP 130是被配置为执行计算设备100的密码服务的安全电路。如本文所用,术语“安全电路”是指被配置为执行一个或多个服务并将已认证响应返回至外部请求者的一类电路之一。安全电路返回的结果被认为具有超过仅返回结果而无任何形式认证的电路的信任标记。在一些实施方案中,来自SEP 130的响应是通过诸如提供数字签名或加密数据等密码术的使用来认证。在一些实施方案中,来自SEP 130的响应是通过经由诸如SEP 130与另一方之间的专用总线或下文讨论的邮箱机构等可信通信信道进行通信来认证。例如,在各种实施方案中,SEP 130和NVM 120的NVM控制器经由使用共享密码密钥建立的安全信道进行通信。相比之下,仅在某些接收值上操作并且返回结果的诸如硬件加速器等电路将不被认为是本申请含义内的安全电路。通过认证返回的结果,诸如通过利用能够验证的数字签名进行签署,安全电路因此可提供反欺骗功能。另外,在一些情况下,安全电路可被称为“防篡改的”,其是指防止安全电路的执行一个或多个服务的部分受损的机制的专门术语。
在各种实施方案中,SEP 130被配置为(经由密码引擎132)为签名配置设置126生成具有私钥(示出为签署密钥134)的公钥对,以产生签名127。在一些实施方案中,签署密钥134基于授权用户的密码被密码保护,以限制SEP 130对密钥134的访问,以便防止未授权的行动者在没有用户同意的情况下修改设置126。在一些实施方案中,签署密钥134还由存储在SEP 130中的唯一标识符保护,该唯一标识符唯一地将该计算设备相对于其他计算设备进行标识。例如,可以执行该唯一标识符保护,以防止配置设置126被提供给另一计算设备以供其使用(或者相反地,防止计算设备100使用从另一设备获得的配置设置)。为了提供签署密钥134的另外信任标记,在例示的实施方案中,SEP 130请求可由引导加载程序124信任的CA20认证签署密钥134。如本文所用,术语“认证的密钥”一般是指密钥对的公钥或私钥,已经为该密钥对发布了对应证书诸如证书128。
在各种实施方案中,CA 20发布证书,该证书认证公钥的所有权并且能够用于验证所有者拥有对应私钥。如图所示,SEP 130可以通过针对由SEP 130生成的公钥对向CA 20发布证书签署请求(CSR)136来请求认证签署密钥134。如本文所用,术语“证书签署请求”一般是指对可信机构验证证实公钥对的有效性的信息集合的请求。CSR 136可以包括任何合适的信息。在一些实施方案中,CSR 136包括密钥134的预期使用的标识符(例如,签署设置126)、公钥,以及从对应私钥(即,密钥134)产生的签名。如以下结合图2所描述的,在一些实施方案中,SEP 130进一步使用从在SEP 130的制造(或者更一般地,计算设备100的制造)期间嵌入的标识符导出的可信密钥来签署CSR 136的部件。在一些实施方案中,CSR 136符合诸如由公钥密码术标准(PKCS)#10规范定义的标准格式。基于CSR 136的成功验证,CA 20可以发布证书128。如本文所用,术语“证书”一般是指信息(例如,令牌)的集合,其可以被呈现以确定可信机构已经验证了证实公钥对的有效性的信息。证书128可以包括任何合适的信息。在一些实施方案中,证书128包括CA 20的标识符,在CSR 136中呈现的公钥,证书有效的周期,以及使用由CA 20持有并由引导加载程序124信任的私钥从证书128生成的签名。在一些实施方案中,证书128符合诸如由X.509标准定义的标准格式。
在接收到证书128时,计算设备100可以将证书128与设置126一起存储在NVM 120中。SEP 130然后可以使用认证的签署密钥134来签署设置126。在一些实施方案中,这可包括OS 122从设置126生成散列值,并且使SEP 130用密钥134签署散列值以提供签名127,该签名与设置126和证书128一起存储。当稍后执行OS 122的后续引导时,引导加载程序124可以使用签名127和包括在证书中的公钥(下面结合图2讨论的公钥212)来验证所签署的配置设置126。在一些实施方案中,该验证可以包括从设置126生成另一散列值,并将该散列值与使用公钥从签名127获得的较早的散列值进行比较。如果散列匹配,则引导加载程序124可继续加载OS 122并允许其访问设置126。然而,如果设置126的验证失败,则引导加载程序124可以暂停加载OS 122并经由设备100的用户接口识别该问题。
在各种实施方案中,如果授权用户想要随后更改设置126,则用户可将对应请求连同他或她的密码一起提供给OS 122。然后,OS 122可以做出所请求的改变,并且向SEP 130提供配置设置126的更改版本和密码。SEP130继而可使用密码来获得对签署密钥134的访问,并且然后使用签署密钥134来签署配置设置126的更改版本。在一些实施方案中,在签署配置设置126的更改版本之前,OS 122(或在其他实施方案中,SEP 130)可以生成随机数(nonce),以包含在由SEP 130签署的配置设置126的更改版本中。在这样的实施方案中,引导加载程序124可以跟踪最近签署的随机数,并将其与包括在配置设置126的签署的更改版本中的随机数进行比较,以防止设置126的先前签署版本被再利用。
现在转向图2,描绘了CSR生成200的框图。在例示的实施方案中,引擎132被配置为通过以下方式来促进CSR 136的生成:执行一个或多个密钥导出函数(KDF)210,随后应用数字签名算法(DSA)220来产生签名224和公钥212以包含在CSR 136中。在一些实施方案中,CSR生成200可以与所示不同地实现,如下面将讨论的。
在例示的实施方案中,KDF 210使用唯一标识符(UID)202和密码204来创建包括签署密钥134及其对应公钥212的公钥对。KDF 210可对应于任何合适的密钥导出函数,诸如密码块链接(AES-CBC)模式中的高级加密标准(AES)的应用,密钥散列消息认证码(HMAC),安全散列算法(SHA)等。在各种实施方案中,UID 202是唯一地将计算设备100相对于其他计算设备进行标识的值(或者唯一地将计算设备100内的硬件相对于其他计算设备中的类似硬件进行标识,因此,UID 202可以是KDF 210的硬件种子)。在一些实施方案中,通过在SEP130(或更一般地,设备100)的制造期间烧掉一组熔断器以编码UID 202,将UID 202存储在SEP 130中。在各种实施方案中,密码204是能够由用户用来向计算设备100认证的密码。因此,密码204可以包括用户提供的字母数字字符的序列,其可以经由计算设备100的输入设备(诸如键盘、触摸屏等)来接收。虽然示出了两个输入,但是在一些实施方案中,KDF 210可以采取附加输入诸如初始化向量(IV)、其他硬件标识符、盐、密钥种子等。
由于在例示的实施方案中UID 202和密码204被输入到KDF 210中,因此签署密钥134可被描述为基于UID 202和密码204被密码保护,因为UID 202和密码204被用于导出密钥134。在其他实施方案中,通过使用间接级别,基于UID 202和密码204来密码保护签署密钥134。也就是说,UID 202和密码204可以被输入到KDF中,该KDF产生用于加密签署密钥134并因此保护密钥134的主密钥,尽管在这样的实施方案中签署密钥134和公钥212可以不直接从UID 202和密码204导出。如本文所用,对“可用于解密/加密”某事项的密钥的引用包括利用该密钥来解密/加密或者使用该密钥来导出(或解密)用于解密/加密该事项的一个或多个附加密钥。此外,尽管描绘了单个KDF 210,但在一些实施方案中,可以使用多个嵌套KDF 210。
在例示实施方案中,DSA 220使用CA可信硬件密钥214来签署公钥212以产生能够由CA 20用来验证CSR 136的签名224。在各种实施方案中,CA 20信任硬件密钥214,因为它是例如通过读取在制造时嵌入的硬件标识符来识别计算设备中特定硬件的存在而导出的。例如,制造商可以在SEP 130内烧掉熔断器,以将生成标识符存储到已知具有特定硬件的特定类设备中的每一者中,诸如SEP 130,这可以提高设备的安全性。该硬件标识符可用于导出密钥214,该密钥继而用于签署密钥212以产生签名224。然而,在其他实施方案中,可使用其他形式的可信密钥来产生签名224。在一些实施方案中,DSA 220还可以采取被包括在CSR136中的附加的未描绘的输入,诸如上述的随机数。尽管被描述为DSA,但是也可以采用其他签署算法。
现在转到图3,描绘了配置签署过程300的通信图。在例示的实施方案中,过程300包括计算设备100的用户302、OS 122、SEP 130、一个或多个外部服务器304和CA 20之间的各种交换。如图所示,过程300可以包括包含步骤312-324的激活阶段310,包含步骤332-338的密钥认证阶段330,以及包含步骤352-358的配置签署阶段350。然而,在一些实施方案中,过程300可以与所示不同地实现。因此,可以执行更多(或更少)的步骤。在一些情况下,过程300的执行可以包括仅阶段330和350(或仅阶段350)的执行。
在例示的实施方案中,过程300可以从激活阶段310开始,以便最初设置计算设备100并使设备100能够执行签署密钥134的认证。如将要讨论的,在一些实施方案中,该阶段310可以包括下载可由OS 122使用的可信配置设置的初始集,直到在过程300结束时可以获得签署的配置设置126。在一些实施方案中,还可执行该阶段310以确定设备的所有者是否已请求放置锁以防止设备100的激活—例如,因为所有者向外部服务器304报告设备100丢失或被盗。
如图所示,阶段310可以从步骤312开始,用户发出启动请求以开始过程300。在一些实施方案中,该请求可包括使设备100通电并使引导加载程序124将OS 122引导到恢复模式。在步骤314处,OS 122从服务器***304请求由服务器***304签署的配置设置的初始集。在一些实施方案中,配置设置的该初始集可以是设备100的配置设置的通用集,并且可以由外部服务器304签署,以便向设置提供信任标记。在步骤316处,外部服务器304可通过放置激活锁来检查所有者是否已请求禁用计算设备100。在步骤318处,外部服务器304可以提供配置设置的初始集以供OS 122使用,直到可以从SEP 130获得签署的配置设置126。如果已经为设备100设置了激活锁,则外部服务器304还可以请求向所有者注册的用户凭证,以便移除激活锁。在步骤320处,用户302可以经由设备100向服务器304提供该所有者凭证。在步骤322处,外部服务器304可以执行所有者凭证的验证。响应于所有者凭证的成功验证(或响应于未放置激活锁),服务器304在步骤324处提供指示计算设备100被授权请求认证签署密钥134的证实。
过程300然后可以进行到密钥认证阶段330,在该阶段中,SEP 130获得认证的签署密钥134。如图所示,阶段330可以开始于SEP 130(使用密码引擎132),生成包括公钥212和签署密钥134的公钥对。SEP 130然后可以在334处向CA 20发布CSR 136以及在步骤324处接收的注册证实,该注册证实可以由OS 122提供。响应于CSR 136的成功验证(使用签名224)和注册证实,CA 20在338处发布证书128,该证书可由OS 122存储在具有配置设置126的NVM120中。
然后过程300可以结束于配置签署阶段350,在该阶段中SEP 130签署配置设置126。在例示的实施方案中,阶段350开始于352,用户请求更改设置126。然而,在一些实施方案中,如果例如在用户有任何机会请求更改之前签署设置126的默认集,则可以省略该步骤。在步骤354处,OS 122可以做出所请求的改变,并向SEP 130提供更改的(并且现在是用户个性化的)设置126以便签署。在一些实施方案中,OS 122可以仅提供从设置126生成的散列值;而不是全部提供设置126。在一些实施方案中,步骤354可以包括使用签署密钥134来签署OS 122所使用的其他信息,诸如由计算设备100执行的二进制数,引导链对象,高速缓存信息等。在356处,OS 122还可以提示用户输入密码204,该密码被提供给SEP 130以便获得对签署密钥134的访问。在步骤358处,SEP 130可以使用签署密钥134来签署设置126并产生签名127,该签名被返回给OS 122以便与设置126一起存储在NVM 120中。在后续引导中,引导加载程序124现在可以使用该签名127以及证书128来验证设置126的完整性。
现在转向图4A,其示出了方法400的流程图。方法400是用于安全地验证计算设备(诸如计算设备100)的配置设置的方法的一个实施方案。在许多情况下,方法400的执行可以提高计算设备的整体安全性。
方法400开始于步骤405,计算设备的安全电路(例如,SEP 130)生成公钥对(例如,密钥134和212)。在一些实施方案中,计算设备将用户凭证(例如,在320处的所有者凭证)发送到服务器***,该服务器***能够操作以执行用户凭证的验证以及所有者未请求禁用计算设备的确认。基于验证和确认,计算设备从服务器***接收指示计算设备被授权请求私钥的认证的证实(例如,324处的注册证实),并将该证实和公钥对的证书签署请求(例如,CSR 136)发送到计算设备外部的证书机构(例如,CA20)。在一些实施方案中,安全电路读取在制造时嵌入的硬件标识符(例如,硬件密钥214)以标识计算设备中特定硬件的存在,并使用硬件标识符来签署(例如,经由签名224)证书签署请求。
在步骤410处,安全电路使用公钥对的私钥(例如,签署密钥134)来签署计算设备的操作***(例如,OS 122)的配置设置(例如,配置设置126)。在各种实施方案中,安全电路基于用户的密码(例如,密码204)对私钥进行密码保护,该密码能够由用户用来向计算设备认证。在一些实施方案中,安全电路存储唯一标识符(UID)(例如,UID 202),该唯一标识符唯一地将计算设备相对于其他计算设备进行标识,并且基于安全电路存储的UID来密码保护私钥。在一些实施方案中,配置设置包括启用或禁用由操作***实现的一个或多个保护***以保护计算设备的操作的一个或多个安全设置。在一些实施方案中,操作***是具有存储在存储器中的程序指令的多个操作***中的一个操作***,并且安全电路使用私钥来签署多个操作***中的相应操作***的配置设置。
在步骤415处,计算设备在引导加载程序(例如,引导加载程序124)处从证书机构接收公钥对的证书(例如,证书128)。
在步骤420处,计算设备通过引导加载程序启动引导序列以加载操作***。在各种实施方案中,引导序列包括引导加载程序使用包括在证书中的公钥(例如,公钥212)以及公钥对来验证所签署的配置设置。
在各种实施方案中,方法400还包括计算设备从用户接收更改配置设置的请求(例如,在352处的设置改变),该请求包括密码。响应于该请求,计算设备向安全电路提供配置设置的更改版本和密码。安全电路使用密码来获得对私钥的访问,并使用私钥来签署配置设置的更改版本。在一些实施方案中,响应于更改配置设置的请求,计算设备生成随机数以包含在配置设置的更改版本中,并且使安全电路使用私钥,以通过配置设置的更改版本的签署来签署随机数。在一些实施方案中,在从安全电路获得签署的配置设置之前,计算设备将操作***引导到恢复模式,在该恢复模式下,操作***向服务器***请求由服务器***签署的配置设置的初始集(例如,318处的通用签署设置),并且提供配置设置的初始集以供操作***使用,直到从安全电路获得签署的配置设置。
现在转向图4B,其示出了方法430的流程图。方法430是用于安全地验证计算设备的配置设置并由实现诸如外部CA 20之类的证书机构的服务器***执行的方法的一个实施方案。
方法430开始于步骤435,服务器***接收由计算设备的安全电路生成的公钥对的证书签署请求(例如,CSR 136)。在一些实施方案中,服务器***验证证书签署请求的签名(例如,签名224),该签名是使用在制造时嵌入的硬件标识符(例如,硬件密钥214)生成的,以标识计算设备中特定硬件的存在。在各种实施方案中,在发布证书之前,服务器***验证从计算设备接收的用户凭证(例如,在320处的所有者凭证),并确认计算设备的所有者未请求禁用计算设备。在一些实施方案中,基于验证和确认,服务器***提供指示计算设备被授权请求认证公钥对的证实(例如,324处的注册证实),并且验证证实已被提供有证书签署请求。
在步骤440处,服务器发布公钥对的证书(例如,证书128)。在各种实施方案中,发布包括用计算设备的引导加载程序(例如,引导加载程序124)所信任的私钥来签署证书,引导加载程序能够执行以在引导序列期间使用证书来验证操作***(例如,OS 122)的配置设置(例如,配置设置126),该配置设置由安全电路所生成的公钥对的私钥(例如,认证的签署密钥134)来签署。在一些实施方案中,在配置设置被签署之前,服务器***提供配置设置的初始集(例如,318处的通用签署设置)以供操作***使用,直到从安全电路获得签署的配置设置。
现在转向图4C,其示出了方法460的流程图。方法460是用于安全地验证计算设备(诸如计算设备100)的配置设置的方法的另一个实施方案。
方法460开始于步骤465,向计算设备的安全电路(例如,SEP 130)发送使用私钥(例如,经认证的签署密钥134)来签署计算设备的操作***(例如,OS 122)的配置设置(例如,设置126)的请求。在一些实施方案中,向安全电路提供用户的密码(例如,密码204)以获得对用于签署配置设置的私钥的访问。在一些实施方案中,生成随机数以包含在由安全电路签署的配置设置中。在一些实施方案中,配置设置控制由计算设备实现的一个或多个安全***。
在步骤470处,引导加载程序(例如,引导加载程序124)启动引导序列以加载操作***。在一些实施方案中,引导加载程序将操作***引导到恢复模式,在该模式下,操作***向服务器***请求由服务器***签署的配置设置的初始集,并且使用配置设置的初始集直到从安全电路获得签署的配置设置。
在步骤475处,引导加载程序读取签署的配置设置以及为包括私钥的公钥对发布的证书(例如,证书128)。
在步骤480处,引导加载程序使用包括在证书中的公钥来验证所签署的配置设置。在一些实施方案中,引导加载程序在验证所签署的配置设置时验证随机数的包含。
现在转到图5,示出了SEP 130的框图。在例示的实施方案中,SEP130包括经由互连器580耦接在一起的过滤器510、安全邮箱机构520、处理器530、安全ROM 540、密码引擎132、密钥存储装置560和生物传感器流水线570。在一些实施方案中,SEP 130可包括比图5所示更多(或更少)的部件。如上所述,SEP 130是具有防篡改性的安全电路。如下文所讨论的,SEP 130通过使用过滤器510和安全邮箱520来实现防篡改性。
过滤器510是被配置为严密控制对SEP 130的访问以增大SEP 130相对于计算设备100的其余部分的隔离性,并且因此提高设备100的总体安全性的电路。更具体地,在一个实施方案中,过滤器510可仅在来自CPU110(或耦接到互连器140的其他***设备)的读/写操作寻址到安全邮箱520的情况下才允许这些操作进入SEP 130。其他操作可不从互连器140前进到SEP 130中。甚至更具体地,过滤器510可允许对分配给安全邮箱520的收件箱部分的地址的写操作以及对分配给安全邮箱520的发件箱部分的地址的读操作。过滤器510可阻止/过滤所有其他读/写操作。在一些实施方案中,过滤器510可用错误对其他读/写操作进行响应。在一个实施方案中,过滤器510可接收与过滤后的写操作相关联的写数据,而不将该写数据传递给本地互连器580。在一个实施方案中,过滤器510可提供随机数数据作为用于过滤后的读操作的读数据。随机数数据(例如“无用数据”)通常可以是不与SEP 130内的被寻址资源相关联的数据。过滤器510可提供任何数据作为随机数数据(例如,全零、全一、来自随机数生成器的随机数据、被编程到过滤器510中以作为读数据进行响应的数据、读事务的地址等等)。
在各种实施方案中,过滤器510可以仅过滤传入读/写操作。因此,SEP 130的部件可具有对计算设备100的其他部件(诸如NVM 120)的完全访问权限。因此,过滤器510可不过滤响应于SEP 130所发出的读/写操作而提供的来自互连器140的响应。
在一些实施方案中,安全邮箱520是包括收件箱和发件箱的电路。收件箱和发件箱二者可以是数据的先进先出缓冲器(FIFO)。缓冲器可具有任意尺寸(例如任意数量的条目,其中每个条目能够存储来自读/写操作的数据)。特别地,收件箱可被配置为存储来自源于互连器140的写操作的写数据。发件箱可存储来自源于处理器530的写操作的写数据。(如本文所用,“邮箱机构”是指暂时存储1)安全电路的输入直到其能被该电路检索和/或2)安全电路的输出直到其能被外部电路检索的存储器电路。)
在一些实施方案中,在CPU 110上执行的软件可经由OS 122所支持的应用编程接口(API)请求SEP 130的服务—即,请求者可进行请求SEP130的服务的API调用。这些调用可使对应请求被写到邮箱机构520,其然后被从邮箱520检索并被处理器530分析以确定其是否应对请求提供服务。因此,该API可用于经由邮箱520发送例如密码204、请求504以生成包括密钥134和212的认证密钥对、生物计量数据502等,并且经由邮箱520接收签名127和CSR136。通过以这种方式隔离SEP 130,SEP 130的完整性可得到增强。
SEP处理器530被配置为处理从计算设备100中各种资源接收的命令并且可使用各种安全***设备来实现这些命令。处理器530然后可以执行存储在ROM 540中的指令,诸如认证应用程序542,以执行用户的认证,以便使用SEP的密码服务,诸如使用上文讨论的签署密钥134执行操作。例如,SEP处理器530可执行应用程序542以向生物传感器流水线570提供适当的命令,以便验证由设备100的生物传感器收集的生物计量数据502。在一些实施方案中,由SEP处理器530执行的程序指令由可信机构(例如,设备10的制造商)签署以便确保它们的完整性。
安全ROM 540是被配置为存储用于引导SEP 130的程序指令的存储器。在一些实施方案中,ROM 540可仅对分配给本地互连器580上安全ROM 540的具体地址范围进行响应。地址范围可以是硬连线的,并且处理器530可被硬连线以在引导时从该地址范围进行取操作以便从安全ROM540引导。过滤器510可过滤分配给安全ROM 540的地址范围(如上所述)内的地址,从而阻止从SEP 130外部的部件对安全ROM 540的访问。在一些实施方案中,安全ROM540可包括SEP处理器530在使用期间执行的其他软件。这个软件可包括用于处理收件箱消息和生成发件箱消息等的程序指令。
密码引擎132是被配置为对SEP 130执行密码操作的电路,包括密钥生成以及利用密钥存储装置560中的密钥的加密和解密。密码引擎132可实现任何合适的加密算法,诸如数据加密标准(DES)、高级加密标准(AES)、不对称密码算法(Rivest Shamir Adleman(RSA))等。在一些实施方案中,引擎132还可实现椭圆曲线密码术(ECC)。如上文所讨论的,在各种实施方案中,引擎132负责生成用于产生签名127的签署密钥134。
密钥存储装置560是被配置为存储密码密钥(诸如签署密钥134、硬件密钥214和/或公钥212)的本地存储器(即,内部存储器)。在一些实施方案中,这些密钥可以包括用于在SEP 130和其他元件(诸如NVM 120的NVM控制器和生物传感器)之间建立安全通道的密钥。密钥存储装置560可包括任何类型的存储器,诸如下文相对于图7列出的易失性或非易失性存储器的各种示例。在一些实施方案中,存储装置560还可包括一组熔断器,该组熔断器在SEP 130(或更一般地,设备100)的制造期间被烧掉,以便记录密钥,诸如上文讨论的UID202。
在一个实施方案中,生物传感器流水线570是被配置为将由生物传感器从正被认证的用户捕获的生物计量数据502与授权用户的生物计量数据572进行比较的电路。(在另一实施方案中,可通过诸如认证应用程序542之类的软件来比较数据502和527。)生物计量数据可以是基于用户的身体或行为特点在其他人中唯一地(至少以高准确度)识别用户的数据。在从用户的面部收集数据502的一些实施方案中,流水线570可使用流水线570中包括的神经网络集合来执行比较,每个网络被配置为将在单个帧中捕获的生物计量数据502与被授权用户的在多个帧中捕获的生物计量数据572进行比较。如图所示,流水线570可被配置为从NVM 120读取生物计量数据572,该生物计量数据可在一些实施方案中通过加密进行保护和/或被存储在只能由SEP 130访问的NVM 120的相关联部分中。(在另一实施方案中,SEP 130可内部地存储数据572。)基于生物计量数据502和572的比较,SEP 130可提供认证结果,该认证结果指示认证是成功还是失败。这样的认证结果可用于例如准许使用签署密钥134。
示例性计算机***
现在转到图6,示出了描述可实现计算设备100的功能的计算设备600的示例性实施方案的框图。设备600可对应于任何合适的计算设备,诸如服务器***、个人计算机***、台式计算机、膝上型计算机或笔记本计算机、大型计算机***、平板计算机、手持式计算机、工作站、网络计算机、移动电话、音乐播放器、个人数据助理(PDA)、可穿戴设备、物联网(IoT)设备等。在例示的实施方案中,设备600包括结构体610、处理器复合体620、图形单元630、显示单元640、高速缓存/存储器控制器650、输入/输出(I/O)桥接部660。在一些实施方案中,可将设备600的元件包括在片上***(SOC)内。
结构体610可包括各种互连器、总线、MUX、控制器等,并且可以被配置为促进设备600的各种元件之间的通信。在一些实施方案中,结构体610的各部分可以被配置为实现各种不同的通信协议。在其他实施方案中,结构体610可以实现单个通信协议,并且耦接到结构体610的元件可以在内部从单个通信协议转换为其他通信协议。如本文所用,术语“耦接到”可指示元件之间的一个或多个连接,并且耦接可包括中间元件。例如,在图6中,图形单元630可被描述为通过结构体610和高速缓存/存储器控制器650“耦接到”存储器。相比之下,在图6的例示的实施方案中,图形单元630“直接耦接”到结构体610,因为不存在中间元件。在一些实施方案中,结构体610对应于互连器140。
在例示的实施方案中,处理器复合体620包括总线接口单元(BIU)622、高速缓存624以及核心626A和626B。在各种实施方案中,处理器复合体620可包括各种数量的处理器、处理器核心和/或高速缓存。例如,处理器复合体620可包括1个、2个或4个处理器核心,或任何其他合适的数量。在一个实施方案中,高速缓存624是组关联L2高速缓存。在一些实施方案中,核心626A和/或626B可以包括内部指令和/或数据高速缓存。在一些实施方案中,结构体610、高速缓存624或设备600中的其他地方的一致性单元(未示出)可被配置为维持设备600的各个高速缓存之间的一致性。BIU 622可被配置为管理处理器复合体620与设备600的其他元件之间的通信。诸如核心626之类的处理器核心可被配置为执行特定指令集架构(ISA)的指令,该指令可包括OS 122、引导加载程序124、用户应用程序等的指令。这些指令可被存储在计算机可读介质中,诸如耦接到下面讨论的存储器控制器650的存储器。在一些实施方案中,CPU 110对应于复合体620。
图形单元630可包括一个或多个处理器和/或一个或多个图形处理单元(GPU)。例如,图形单元630可接收面向图形的指令,诸如Metal或/>指令。图形单元630可基于所接收的面向图形的指令执行专用GPU指令或执行其他操作。图形单元630通常可被配置为并行处理大块数据,并且可在帧缓冲器中构建图像以输出到显示器。图形单元630可包括在一个或多个图形处理流水线中的变换、照明、三角形和/或渲染引擎。图形单元630可输出用于显示图像的像素信息。
显示单元640可被配置为从帧缓冲器读取数据并且提供像素值流以用于显示。在一些实施方案中,显示单元640可被配置为显示流水线。另外,显示单元640可被配置为将多个帧混合以产生输出帧。此外,显示单元640可包括用于耦接到用户显示器(例如,触摸屏或外部显示器)的一个或多个接口(例如,或嵌入式显示端口(eDP))。
高速缓存/存储器控制器650可被配置为管理结构体610与一个或多个高速缓存和/或存储器之间的数据传输。例如,可将高速缓存/存储器控制器650耦接到L3高速缓存,继而可将该L3高速缓存耦接到***存储器。在其他实施方案中,可将高速缓存/存储器控制器650直接耦接到存储器。在一些实施方案中,高速缓存/存储器控制器650可包括一个或多个内部高速缓存。耦接到控制器650的存储器可以是任何类型的易失性存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,和/或SDRAM的低功率版本,诸如LPDDR4等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。一个或多个存储器设备可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,设备可以与集成电路在芯片堆叠配置、封装堆叠配置或者多芯片模块配置中安装。耦接到控制器650的存储器可以是任何类型的非易失性存储器,诸如NAND闪存存储器、NOR闪存存储器、纳米RAM(NRAM)、磁阻RAM(MRAM)、相变RAM(PRAM)、赛道存储器、忆阻器存储器等。如上所述,该存储器可存储可由处理器复合体620执行的程序指令,以使设备600执行本文描述的功能。
I/O桥接部660可包括被配置为实现例如通用串行总线(USB)通信、安全性、音频和/或低功率始终接通功能的各种元件。I/O桥接部660还可包括例如接口,诸如脉冲宽度调制(PWM)、通用输入/输出(GPIO)、串行***接口(SPI)和/或内部集成电路(I2C)。可将各种类型的***设备和设备经由I/O桥接部660耦接到设备600。例如,这些设备可包括各种类型的无线通信(例如,Wi-Fi、蓝牙、蜂窝、全球定位***等)、附加存储装置(例如,RAM存储装置、固态存储装置或磁盘存储装置)、用户接口设备(例如,键盘、麦克风、扬声器等)等。
***
尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。上述说明书意在涵盖此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
本公开的范围包括本文(明确或暗示)公开的任意特征或特征的组合或其任意概括,而无论其是否减轻本文解决的任何或所有问题。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可通过任何适当的方式而不是仅通过所附权利要求书中所列举的特定组合来组合来自相应独立权利要求的特征。

Claims (20)

1.一种计算设备,包括:
处理器;
安全电路,所述安全电路被配置为:
生成公钥对;以及
使用所述公钥对的私钥来签署所述计算设备的操作***的配置设置,其中所述配置设置包括一个或多个安全设置,所述一个或多个安全设置启用或禁用由所述操作***实现的一个或多个保护***以保护所述计算设备的操作;以及
存储器,所述存储器具有存储在其中的程序指令,所述程序指令能够由所述处理器执行以使所述计算设备:
在引导加载程序处从证书机构接收所述公钥对的证书;以及
由所述引导加载程序启动引导序列以加载所述操作***,其中所述引导序列包括所述引导加载程序使用包括在所述证书中的公钥以及所述公钥对来验证所签署的配置设置。
2.根据权利要求1所述的计算设备,其中所述安全电路被进一步配置为:
基于用户的密码对所述私钥进行密码保护,其中所述密码能够由所述用户用来向所述计算设备认证。
3.根据权利要求2所述的计算设备,其中所述安全电路被进一步配置为:
存储唯一标识符UID,所述唯一标识符唯一地将所述计算设备相对于其他计算设备进行标识;以及
基于由所述安全电路存储的所述UID来对所述私钥进行密码保护。
4.根据权利要求2所述的计算设备,
其中所述程序指令能够进一步执行以使所述计算设备:
从所述用户接收更改所述配置设置的请求,其中所述请求包括所述密码;以及
响应于所述请求,向所述安全电路提供所述配置设置的更改版本和所述密码;
其中所述安全电路被进一步配置为:
使用所述密码获得对所述私钥的访问;以及
使用所述私钥来签署所述配置设置的所述更改版本。
5.根据权利要求4所述的计算设备,其中所述程序指令能够进一步执行以使所述计算设备:
响应于更改所述配置设置的所述请求:
生成随机数以包含在所述配置设置的所述更改版本中;以及
使所述安全电路使用所述私钥,以通过所述配置设置的所述更改版本的签署来签署所述随机数。
6.根据权利要求1所述的计算设备,其中所述程序指令能够进一步执行以使所述计算设备:
将用户凭证发送到服务器***,所述服务器***能够操作以执行所述用户凭证的验证以及所有者未请求禁用所述计算设备的确认;以及
基于所述验证和所述确认,从所述服务器***接收指示所述计算设备被授权请求认证所述私钥的证实;以及
将所述证实和对所述公钥对的证书签署请求发送到所述计算设备外部的证书机构。
7.根据权利要求6所述的计算设备,其中所述安全电路被进一步配置为:
读取在制造时嵌入的硬件标识符以标识所述计算设备中特定硬件的存在;以及
使用所述硬件标识符签署所述证书签署请求。
8.根据权利要求1所述的计算设备,其中所述程序指令能够进一步执行以使所述计算设备:
在从所述安全电路获得所签署的配置设置之前,将所述操作***引导到恢复模式,在所述恢复模式下,所述操作***向服务器***请求由所述服务器***签署的配置设置的初始集;以及
提供所述配置设置的初始集以供所述操作***使用,直到从所述安全电路获得所签署的配置设置。
9.根据权利要求1所述的计算设备,其中所述操作***是具有存储在所述存储器中的程序指令的多个操作***中的一个操作***;并且
其中所述安全电路被配置为:
使用所述私钥来签署所述多个操作***中的相应操作***的配置设置。
10.一种方法,包括:
由实现证书机构的服务器***接收对由计算设备的安全电路生成的公钥对的证书签署请求;以及
由所述服务器***为所述公钥对发布证书,其中所述发布包括利用由所述计算设备的引导加载程序信任的私钥来签署所述证书,其中所述引导加载程序是能够执行的以在引导序列期间使用所述证书来验证由所述安全电路生成的所述公钥对的私钥签署的操作***的配置设置,其中所述配置设置包括一个或多个安全设置,所述一个或多个安全设置启用或禁用由所述操作***实现的一个或多个保护***以保护所述计算设备的操作。
11.根据权利要求10所述的方法,还包括:
由所述服务器***验证所述证书签署请求的签名,其中所述签名是使用制造时嵌入的硬件标识符而被生成的,以标识所述计算设备中特定硬件的存在。
12.根据权利要求10所述的方法,还包括:
在发布所述证书之前:
由所述服务器***验证从所述计算设备接收的用户凭证;以及
由所述服务器***确认所述计算设备的所有者尚未请求禁用所述计算设备。
13.根据权利要求12所述的方法,还包括:
基于所述验证和所述确认,所述服务器***提供指示所述计算设备被授权请求认证所述公钥对的证实;以及
由所述服务器***验证所述证实已与所述证书签署请求一起被提供。
14.根据权利要求10所述的方法,还包括:
在所述配置设置被签署之前,由所述服务器***提供配置设置的初始集以供所述操作***使用,直到从所述安全电路获得所签署的所述配置设置。
15.一种具有存储在其中的程序指令的非暂态计算机可读介质,所述程序指令能够由计算设备执行以使所述计算设备执行包括以下项的操作:
向所述计算设备的安全电路发送使用私钥来签署所述计算设备的操作***的配置设置的请求,其中所述配置设置控制由所述计算设备实现的一个或多个安全***;
由引导加载程序启动引导序列以加载所述操作***,其中所述引导序列包括:
由所述引导加载程序读取所签署的配置设置以及为包括所述私钥的公钥对发布的证书;以及
由所述引导加载程序使用包括在所述证书中的公钥来验证所签署的配置设置。
16.根据权利要求15所述的计算机可读介质,其中所述操作还包括:
向所述安全电路提供用户的密码,以获得对用于签署所述配置设置的所述私钥的访问。
17.根据权利要求15所述的计算机可读介质,其中所述操作还包括:
生成随机数以包含在由所述安全电路签署的所述配置设置中;以及
所述引导加载程序在验证所签署的配置设置时验证所述随机数的包含。
18.根据权利要求15所述的计算机可读介质,其中所述操作还包括:
由所述引导加载程序将所述操作***引导到恢复模式,在所述恢复模式下,所述操作***向服务器***请求由所述服务器***签署的配置设置的初始集;以及
使用所述配置设置的初始集,直到从所述安全电路获得所签署的配置设置。
19.一种装置,包括:
处理器;
安全电路,所述安全电路被配置为:
生成公钥对;以及
使用所述公钥对的私钥来签署所述装置的操作***的配置设置;以及
存储器,所述存储器具有存储在其中的程序指令,所述程序指令能够由所述处理器执行以使所述装置:
在引导加载程序处从证书机构接收所述公钥对的证书;
由所述引导加载程序启动引导序列以加载所述操作***,其中所述引导序列包括所述引导加载程序使用包括在所述证书中的公钥以及所述公钥对来验证所签署的配置设置;
基于用户的密码对所述私钥进行密码保护,其中所述密码能够由所述用户用来向所述装置认证;
从所述用户接收更改所述配置设置的请求,其中所述请求包括所述密码;以及
响应于所述请求,向所述安全电路提供所述配置设置的更改版本和所述密码;
其中所述安全电路被进一步配置为:
使用所述密码获得对所述私钥的访问;以及
使用所述私钥来签署所述配置设置的所述更改版本。
20.一种装置,包括:
处理器;
安全电路,所述安全电路被配置为:
生成公钥对;以及
使用所述公钥对的私钥来签署所述装置的操作***的配置设置;以及
存储器,所述存储器具有存储在其中的程序指令,所述程序指令能够由所述处理器执行以使所述装置:
将用户凭证发送到服务器***,所述服务器***能够操作以执行所述用户凭证的验证以及所有者未请求禁用所述装置的确认;以及
基于所述验证和所述确认,从所述服务器***接收指示所述装置被授权请求认证所述私钥的证实;
将所述证实和对所述公钥对的证书签署请求发送到所述装置外部的证书机构;
在引导加载程序处从所述证书机构接收所述公钥对的证书;以及
由所述引导加载程序启动引导序列以加载所述操作***,其中所述引导序列包括所述引导加载程序使用包括在所述证书中的公钥以及所述公钥对来验证所签署的配置设置。
CN202180044356.3A 2020-06-22 2021-06-18 安全签署配置设置 Active CN115943610B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063042050P 2020-06-22 2020-06-22
US63/042,050 2020-06-22
US17/092,030 2020-11-06
US17/092,030 US11822664B2 (en) 2020-06-22 2020-11-06 Securely signing configuration settings
PCT/US2021/038039 WO2021262545A1 (en) 2020-06-22 2021-06-18 Securely signing configuration settings

Publications (2)

Publication Number Publication Date
CN115943610A CN115943610A (zh) 2023-04-07
CN115943610B true CN115943610B (zh) 2024-02-13

Family

ID=79023572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180044356.3A Active CN115943610B (zh) 2020-06-22 2021-06-18 安全签署配置设置

Country Status (6)

Country Link
US (1) US11822664B2 (zh)
EP (1) EP4168913B1 (zh)
JP (1) JP7406013B2 (zh)
KR (1) KR102660863B1 (zh)
CN (1) CN115943610B (zh)
WO (1) WO2021262545A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
US11809876B2 (en) * 2021-04-29 2023-11-07 Dell Products L.P. Trusted platform module protection for non-volatile memory express (NVMe) recovery
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
US11748485B2 (en) * 2021-07-29 2023-09-05 Dell Products L.P. System and method for booting using HSM integrated chain of trust certificates
US20230130121A1 (en) * 2021-10-27 2023-04-27 Salesforce.Com, Inc. Protecting Application Private Keys Using MPC Techniques

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110168552A (zh) * 2017-01-12 2019-08-23 谷歌有限责任公司 经验证的引导和密钥轮转
CN111149106A (zh) * 2017-08-11 2020-05-12 华为技术有限公司 使用多个设备证书进行密钥认证的设备和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
JP4612399B2 (ja) * 2004-11-11 2011-01-12 日本電信電話株式会社 共同利用パソコンシステムの環境復元方法および共同利用パソコン
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
JP5305473B2 (ja) * 2010-11-26 2013-10-02 Necインフロンティア株式会社 エラーコード出力装置及びエラーコード出力方法
JP5879527B2 (ja) * 2011-05-25 2016-03-08 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US10484172B2 (en) * 2015-06-05 2019-11-19 Apple Inc. Secure circuit for encryption key generation
US10536271B1 (en) 2016-01-10 2020-01-14 Apple Inc. Silicon key attestation
EP3291504B1 (en) * 2016-08-30 2020-03-11 Wacom Co., Ltd. Authentication and secure transmission of data between signature devices and host computers using transport layer security
JP2018117185A (ja) * 2017-01-16 2018-07-26 キヤノン株式会社 情報処理装置、情報処理方法
US10417429B2 (en) 2017-06-02 2019-09-17 Apple Inc. Method and apparatus for boot variable protection
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10505920B2 (en) * 2017-11-30 2019-12-10 Mocana Corporation System and method of device identification for enrollment and registration of a connected endpoint device, and blockchain service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110168552A (zh) * 2017-01-12 2019-08-23 谷歌有限责任公司 经验证的引导和密钥轮转
CN111149106A (zh) * 2017-08-11 2020-05-12 华为技术有限公司 使用多个设备证书进行密钥认证的设备和方法

Also Published As

Publication number Publication date
JP7406013B2 (ja) 2023-12-26
CN115943610A (zh) 2023-04-07
EP4168913B1 (en) 2024-02-28
KR102660863B1 (ko) 2024-04-29
KR20230016195A (ko) 2023-02-01
WO2021262545A1 (en) 2021-12-30
EP4168913A1 (en) 2023-04-26
US11822664B2 (en) 2023-11-21
US20210397716A1 (en) 2021-12-23
JP2023530730A (ja) 2023-07-19

Similar Documents

Publication Publication Date Title
CN115943610B (zh) 安全签署配置设置
US7986786B2 (en) Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
US9043615B2 (en) Method and apparatus for a trust processor
CN112262546B (zh) 用于数据处理加速器的密钥分配和交换的方法和***
US7028149B2 (en) System and method for resetting a platform configuration register
CN112236972B (zh) 用于导出会话密钥以确保主机***和数据处理加速器之间的信息交换信道的方法和***
KR101904303B1 (ko) 보안 소프트웨어 인증 및 검증
US11790119B2 (en) Application integrity attestation
CN108476404A (zh) 安全设备配对
US20090282254A1 (en) Trusted mobile platform architecture
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
KR20090109589A (ko) 프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
US20190325140A1 (en) Binding of TPM and Root Device
CN112352220B (zh) 保护由数据处理加速器处理的数据的方法和***
CN112236772B (zh) 用于管理数据处理加速器的内存的方法和***
CN112262545B (zh) 主机***与数据处理加速器之间的证明协议
US12008087B2 (en) Secure reduced power mode
CN116089967B (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
GR01 Patent grant
GR01 Patent grant