CN114065176A - 安全运算装置、安全运算方法、验证器及装置验证方法 - Google Patents
安全运算装置、安全运算方法、验证器及装置验证方法 Download PDFInfo
- Publication number
- CN114065176A CN114065176A CN202110636360.0A CN202110636360A CN114065176A CN 114065176 A CN114065176 A CN 114065176A CN 202110636360 A CN202110636360 A CN 202110636360A CN 114065176 A CN114065176 A CN 114065176A
- Authority
- CN
- China
- Prior art keywords
- key
- layer
- random number
- given
- verifier
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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 challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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/3265—Cryptographic 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 chains, trees or paths; Hierarchical trust model
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Electrotherapy Devices (AREA)
Abstract
一种安全运算装置、安全运算方法、验证器及装置验证方法,该装置包括网络接口、存储器和处理器。网络接口被配置以经由通信网络与验证器通信。存储器被配置以储存多层可变程序码,其中各层可由各别的测量值来识别。处理器被配置以在一给定开机周期内产生一个仅与该开机周期关联的随机数,自验证器接收一挑战以认证一给定层,基于(i)安全地储存于装置中的唯一装置密钥、(ii)该给定层由另一层测量的测量值、以及(iii)对给定开机周期产生的随机数,计算一认证金钥,通过使用认证金钥对挑战签章以对该挑战计算一回应,并传送该回应至该验证器以验证该给定层,减轻零时差攻击危害。
Description
技术领域
本说明书描述的实施例,总体而言关于安全运算,特别关于运行分层式软件的装置的认证(attestation)。
背景技术
在各种安全运算环境中,运算装置必须向被称为“验证器”(verifier)的实体证明(prove)或认证(attest)其状态及身份。运算装置的认证方法为本发明所属技术领域所已知。例如,信赖运算组织(Trusted Computing Group,TCP)定义了装置识别组合引擎(Device Identifier Composition Engine,DICE),并开发了基于DICE的装置认证架构。基于DICE的装置认证架构可采用对称金钥或非对称金钥加密。基于DICE的规范可参见例如本说明书引用的某些参考文献。
DICE的硬件要求可参见2018年3月22日,Hardware Requirements for a DeviceIdentifier Composition Engine,Family“2.0”Level 00,Revision 78等文献。
基于DICE并使用非对称金钥加密的认证架构,可参见2018年3月5日,ImplicitIdentity Based Device Attestation,Version 1.0,Revision 0.93等文献。
基于DICE并使用对称金钥加密的认证架构,可参见2020年1月7日,SymmetricIdentity Based Device Attestation,Version 1.0,Revision 0.95等文献。
DICE层级架构可参见2020年3月19日,DICE Layering Architecture,Version1.0,Revision 0.19等文献。
DICE凭证总则可参见2020年3月10日,DICE Certificate Profiles,Version1.0,Revision 0.01等文献。
发明内容
一个包括网络接口、存储器与处理器的装置。网络接口被配置以经由通信网络与验证器通信。存储器被配置以储存多层可变程序码,其中上述各层可由各别的测量值来识别。处理器被配置以在一个开机周期中,产生一个仅关联于该开机周期的随机数(nonce),接收来自验证器的一次挑战以认证给定的一层可变(mutable)程序码,从(i)安全地储存于装置中的唯一装置密钥(Unique Device Secret,UDS)、(ii)该给定层由另一层测量的测量值、以及(iii)对该给定开机周期产生的随机数(nonce),推导认证金钥(attestation key)以计算认证,通过用上述认证金钥对该挑战进行签章来计算对该挑战的回应,并传送该回应至验证器以验证(verify)该给定层。
在某些实施例中,处理器被设置以依据随机数计算认证金钥,使得处理器在给定开机周期前用来认证的认证金钥,在给定开机周期中变得无效而无法认证。在其他实施例中,处理器被配置以将认证金钥设定为与处理器在给定开机周期前用来认证的认证金钥不同,即使该给定层与在该给定层之前执行的各层可变程序码于该给定开机周期中仍保持完整。在另等其他实施例中,认证金钥包括依据随机数决定的对称金钥,且处理器被配置以通过使用该对称金钥,对至少该挑战进行签章来计算回应,并传送该回应与该随机数至验证器。
在一实施例中,认证金钥包括依据随机数决定的非对称金钥,且处理器被配置以通过使用该非对称金钥的私有金钥,对该挑战进行签章来计算回应,并传送该回应至验证器,但不传送该随机数。在另一实施例中,处理器被配置以对每一层产生个别的非对称金钥,包括认证金钥,每一非对称金钥皆包括个别的私有金钥和公开金钥(certified publickey),以产生一个凭证链(chain of certificates),在一个给定层中的凭证,会验明(certify)随后的一层产生的公开金钥,并使用该给定层产生的私有金钥进行签章,并传送该凭证链至验证器,以使用该认证金钥的已验明公开金钥进行验证。在又一实施例中,凭证链包括由随机数独立产生的凭证,该凭证可证明装置由特定制造商所制造。
在某些实施例中,处理器被配置以在先于上述给定层执行的信任层(trustedlayer)中产生随机数,在信任层中基于该随机数计算密钥,并依据该密钥计算认证金钥。在其他实施例中,处理器被配置以预先定义的顺序执行多层程序码,并仅在选定的一层已被验证器成功验证后,才根据上述预先定义的顺序从选定的一层前进到随后的一层。在另等实施例中,处理器被配置以根据上述随机数计算认证金钥,以减轻零时差攻击(zero-dayattack)的危害。
本说明书亦根据于此叙述的一个实施例,提供一种方法,包括在经由通信网络与验证器通信的装置中,储存多层可变程序码至该装置的存储器,其中上述各层可由各别的测量值来识别。对于一个给定的开机周期,产生一个仅关联于该开机周期的随机数。给定的一层可变程序码会接收来自验证器的一次认证挑战。从(i)安全地储存于装置中的唯一装置密钥(UDS)、(ii)该给定层由另一层测量的测量值、以及(iii)对该给定开机周期产生的随机数,推导认证金钥以计算认证。通过用上述认证金钥对该挑战进行签章,来计算对该挑战的回应。该回应被传送至验证器以验证该给定层。
本说明书亦根据于此叙述的一个实施例,提供一种验证器,包括网络接口与处理器。网络接口被配置以经由通信网络与装置通信,其中该装置包括多层可变程序码,并产生一个仅关联于某一给定开机周期的随机数。处理器被设置以传送一次挑战至该装置,以验证给定的一层可变程序码,自该装置接收由该装置为回应上述挑战而产生的回应信息,其中上述回应信息依据与该给定开机周期关联的随机码产生,并使用上述回应信息验证上述给定的一层可变程序码。
在某些实施例中,上述回应信息包括至少包括由依据随机数决定的认证金钥进行签章的挑战,且处理器被配置以于传送挑战之前,安全地在验证器的存储器中储存装置信息,其中该装置信息搭配随机数即足以复原认证金钥,自该装置接收随机数,使用上述装置信息与随机数复原认证金钥,并使用复原的认证金钥验证给定的一层可变程序码。在其他实施例中,上述回应信息包括(i)使用非对称认证金钥的私有金钥进行签章的挑战的数字签章,以及(ii)与上述给定层关联的公开金钥的凭证,且处理器被配置以验证已在凭证中验明的公开金钥,其中该凭证使用与上述公开金钥匹配的私有金钥进行签章,随后使用已验证的公开金钥验证数字签章。
本说明书亦根据于此叙述的一个实施例,提供一种验证装置的方法,包括在经由通信网络与装置通信的伺服器中,其中该装置包括多层可变程序码,并产生一个仅关联于某一给定开机周期的随机数,传送一次挑战至该装置,以验证给定的一层可变程序码。为回应挑战而由该装置产生的回应信息从该装置被接收,其中该回应信息依据与该给定开机周期关联的随机码产生。使用上述回应信息,上述给定的一层可变程序码被验证。
上述及其他实施例,于阅读下列详述,并搭配附随的图式一同阅读后,将可达到更完整的理解。其中,该等图式为:
附图说明
图1为一方块图,根据本说明书叙述的一个实施例,图示一种支援安全装置认证的运算系统;
图2为一图表,根据本说明书叙述的一个实施例,图示一种使用于对称金钥认证的装置分层架构;
图3为流程图,根据本说明书叙述的实施例,图示使用对称金钥加密的装置认证及验证方法;
图4为一图表,根据本说明书叙述的一个实施例,图示一种使用于非对称金钥认证的装置分层架构;
图5为流程图,根据本说明书叙述的实施例,图示使用非对称金钥加密的装置认证及验证方法。
【符号说明】
20:运算系统
24、100、300:运算装置(例如物联网)
28、102、302:管理伺服器
32:通信网络
40:处理器
44:存储器
48:ROM
52:PCIe
54:网络接口
56:认证函数
58:开机程序码(DICE层)
60:可变软件层
62、124、324:唯一装置密钥(UDS)
66:CDI
70:密码引擎
72、132、160:随机数产生器
74:随机数
76:主机处理器
80:存储器
84:网络接口
86、104、304:验证器
88:装置数据库
90:政策
106、306:密钥链生成
108、308:认证
112:DICE
114、314:L0
116、318:Ln
120、320:单向函数
128A、328A:M0
128B、328B:M1
136A、136B:固件安全描述符
140、340、344:金钥推导函数
144:SKn
148、354:签章
200、400:装置开机
204:产生与当前开机周期关联的随机数Na,并传送Na至验证器
212:依据Na产生对称认证金钥SKn
216:自验证器接收挑战C,以认证Ln
220:通过使用SKn签章C计算回应R,并传送R至验证器
228、428:重新开机?
250:对每一装置储存其装置信息于数据库中,以重制该装置的相同认证金钥
装置信息包括:唯一装置密钥、层级结构、各层测量值
254:自装置接收Na
258:传送挑战C至装置,以认证Ln层
262:自装置接收回应R
266:基于储存的装置信息与Na,重制SKn的复本SKn’
270:使用R与复原的SKn’,验证Ln及之前各层
310:凭证
316:L1
328C:M2
342:ECA0、ECA1
350:制造商凭证授权机构
404:产生与当前开机周期关联的随机数Na
408:在各层产生非对称金钥与对应公开金钥的凭证
412:自验证器接收挑战Nv
420:通过使用AKn的私有金钥PRn签章Nv,计算回应数字签章DS(AKn依据Na决定)
424:传送数字签章DS与凭证至验证器
458:传送挑战Nv至装置,以验证Ln层
462:自装置接收数字签章DS与凭证
466:验证凭证,包括验明PKn的凭证
470:使用已验证的PKn验证DS,以验证Ln及之前各层
具体实施方式
[概论]
本说明书叙述的实施例,提供改良的装置认证方法与系统,包括开机事件后认证金钥的修改。
在云端或其他运算环境,例如物联网(Internet of Things,IoT)网络中,运算装置运行包括多层程序码的软件。各层程序码有时可能被修改(例如修正错误)或下载更新的版本。由于可变程序码易受黑客攻击,因此其安全要求可能需要验证该运算装置的身分与软件状态。
在某些实施例中,由外部验证器使用挑战-回应协定(challenge-responseprotocol)验证上述运算装置(例如一个给定的程序码层)。验证器传送挑战至该装置,而该装置会传回认证回应至该验证器,以便验证该运算装置的身分和完整性。上述装置通常通过对挑战使用合适的加密操作来计算回应,例如使用秘密认证金钥产生数字签章。
在以下叙述及权利要求中,“认证”(attestation)一词乃指由一个被请求进行认证的装置执行,以认证(attest)该装置的动作;而“验证”(verification)一词则指由外部验证器执行,以触发上述装置进行认证(attestation)、并验证(verify)该装置状态的动作。一个同时包含验证器与回应验证器认证请求的装置的架构,在本说明书中称为“认证架构”(attestation scheme)。
在某些实施例中,认证金钥是由程序码层产生的密钥推导而来,依该装置的身分及上述程序码层的测量值而定。一个给定程序码层的测量值,可能包括对底层程序码或固件使用安全的杂凑函数(hash function)所得的结果。若有未经准许的人修改一个或多个程序码层而无对应认证金钥的存取权,则验证将失败。
在某些种类的攻击中,装置密钥可能泄漏,并由未经准许的攻击者用来进行认证,以冒充该装置。在侦测到密钥泄漏时,装置拥有者可能下载更新软件或固件版本至该装置,以对付泄漏来源。然而,修复泄漏并更新大量现场装置可能花费相对较长的时间,在这些时间中攻击者可能造成大量伤害。
应注意,攻击可能成功执行,因在装置重开机后、更新前,该装置会产生相同的认证金钥,而此一认证金钥已为攻击者所知。此种攻击的一个范例,有时被称为“零时差攻击”(zero-day attack)。
在揭露的实施例中,上述装置在每次开机事件后会产生不同的认证金钥。其将导致重开机前的认证金钥值在重开机后变得无效而无法认证。此一机制可加强认证-验证架构的安全性,以防止各种攻击,包括零时差攻击。
考虑一个包括网络接口、存储器和处理器的装置。网络接口使此装置可经由通信网络与验证器进行通信。存储器储存多层可变程序码,其中上述各层可由各别的测量值来识别。处理器对于一个给定的开机周期,产生一个仅关联于该开机周期的随机数。处理器自验证器接收挑战,以认证给定的一层可变程序码,并计算认证金钥,从(i)安全地储存于装置中的唯一装置密钥(UDS)、(ii)该给定层由另一层测量的测量值、以及(iii)对该给定开机周期产生的随机数,推导认证金钥。处理器通过用上述认证金钥对该挑战进行签章来计算对该挑战的回应,并传送该回应至验证器以验证该给定层的身分与完整性。在以下叙述及权利要求中,“从某一给定因素推导认证金钥”一语,代表若修改此因素,则认证金钥亦随之修改。然而,认证金钥可能是从该因素直接或间接推导而来。
在揭露的实施例中,处理器沿各层产生密钥链,从一个受信任的硬件层开始,该层被称为装置识别组合引擎(DICE)层。根据以上引用的DICE标准,上述DICE层安全地储存一个唯一装置密钥(UDS)。此一UDS为包含上述DICE层和其他层的信任链的信任根(root oftrust,RoT)。
在开机时,处理器无条件执行上述DICE层,该DICE层对第一可变层进行测量。基于上述UDS及该测量值,该DICE层对第一可变层产生一密钥,称为复合装置标识符(CompoundDevice Identification,CDI)。以类似方式,每一可变层皆根据上一层产生的密钥及对下一层的测量值,对下一层产生一密钥。处理器从一给定层由前一层产生的密钥,对该层推导认证金钥。
在某些实施例中,处理器根据随机数计算认证金钥,使得处理器在给定开机周期前用来认证的认证金钥,在给定开机周期中变得无效而无法认证。处理器将认证金钥设定为与处理器在给定开机周期前用来认证的认证金钥不同,即使该给定层与在该给定层之前执行的各层可变程序码于该给定开机周期中仍保持完整。
在一个实施例中,上述认证金钥包括依据随机数决定的对称金钥,且处理器通过使用该对称金钥,对至少该挑战进行签章来计算回应,并传送该回应与该随机数至验证器。
在另一实施例中,上述认证金钥包括依据随机数决定的非对称金钥配对,且处理器通过使用该非对称金钥配对的私有金钥,对该挑战进行签章来计算回应,并传送该回应至验证器,但不传送该随机数。此时,处理器对每一层产生个别的非对称金钥,包括认证金钥,每一非对称金钥配对皆包括个别的私有金钥和公开金钥。处理器产生一个凭证链,其中在一个给定层中的凭证,会验明随后的一层产生的公开金钥,并使用该给定层产生的私有金钥进行签章。处理器传送该凭证链至验证器,以使用该认证金钥的已验明公开金钥进行验证。
在一个实施例中,上述凭证链包括一个由随机数独立产生的凭证,该凭证可证明装置由特定制造商所制造。此一凭证可开始上述凭证链,且该凭证可由外部的凭证授权机构(certification authority)制作。
在某些实施例中,处理器在先于该给定层(被验证的一层)执行的信任层中产生随机数,在该信任层中基于该随机数计算密钥,并依据该密钥计算认证金钥。
处理器通常以预先定义的顺序执行各层程序码。在一个实施例中,处理器依照上述给定顺序执行每一层,并认证最后一层。在另一实施例中,处理器在选定的一层已被验证器成功验证后,才根据上述预先定义的顺序从选定的一层前进到随后的一层。
在本说明书提供的技术中,描述一种认证架构,其中的装置会产生一个随机的、与开机周期关联的随机数,并间接地根据上述随机数计算认证金钥。在此架构中,在前一次开机周期中使用的认证金钥,在下一次开机时即变为无效而无法认证。本说明书提供的此一认证架构使装置得以减轻攻击(例如零时差攻击)的危害。本说明书揭露的此一认证架构适用于对称认证金钥与非对称认证金钥。
[系统描述]
图1为一方块图,根据本说明书叙述的一个实施例,图示一种支援安全装置认证的运算系统20。
运算系统20包括多个运算装置24,由管理伺服器28经由通信网络32控制。通信网络32可包括任何合适的封包网络,使用任何合适的通信协定运作,例如以太网络(Ethernet),或网际网络协定(Internet Protocol,IP)网络,例如网际网络(Internet)。通信网络32可包括区域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、无线网络,或数种封包网络的组合。
运算系统20可用于验证低成本装置,例如物联网(IoT)装置(24)等。此外,其他种类的运算装置,例如伺服器,亦可使用本说明书提供的认证与验证技术。
运算装置24(为简洁起见,亦仅称“装置”)包括处理器40,经由汇流排52,例如高速外设组件互联标准(Peripheral Component Interconnect Express,PCIe)汇流排,或任何其他合适的汇流排,耦接至可重复写入存储器44及唯读存储器(ROM)48。运算装置24经由网络接口54,例如网络接口控制器(network interface controller,NIC),存取通信网络32。
处理器40通常运行一个或多个应用程序。此等应用程序可与其他装置或伺服器经由通信网络32互动,而此等互动可能使装置易受安全性攻击。在各种任务中,处理器40运行认证函数56以证明其状态与身分,如下述。应注意,为清晰起见,认证函数56在图中被描绘为由处理器执行。然而,认证函数的程序码通常储存于存储器44(或任何其他处理器可存取的合适存储器,未图示)之中。
ROM 48储存开机程序码58,此一开机程序码于重置(reset)或电源开启时由处理器40无条件执行。存储器44储存多个软件层60,此等软件层可在需要时进行修改,例如修正功能错误或解决安全性漏洞。在图1的范例中,前三层60标记为L0,L1及L2。开机程序码58亦被称为“DICE层”。此一DICE层为不可变且具高度安全性,因此被认定为一信任层。
每一层可安全地与后一层或前一层交换秘密信息,因而建构了一个由上述DICE层开始的信任链。例如,在某些实施例中,(例如从L0…Ln各层)对UDS的存取在上述DICE层传递控制信号至第0层前是被阻挡的。一般而言,每一层Li在传递控制信号至下一层Li+1之前,会防止对其密钥Si及其他秘密信息的存取。防止存取可能以阻挡存取或从存储器中抹除Li层的秘密信息等方式实施。
在以下叙述中,若提及某一层进行某些操作,则意指处理器40通过执行该层中的程序码进行该任务。
一次开机程序始自处理器40执行开机程序码58,接着依序执行软件层60,直到底层作业系统与应用程序开始运行为止。此等依序执行的软件层形成一个信任链,其中各个信任层提供密钥予下一层。一个受信任的软件层可被信任拥有某些属性。例如,一个信任层可被信任持有由上一信任层产生的密钥。
运算装置24包括唯一装置密钥(UDS)62,作为认证的信任根。在某些实施例中,UDS62为不可变且可被安全地嵌入于硬件中。例如,上述UDS可用一次性可程序化(one timeprogrammable,OTP)存储器或物理不可复制函数(physical unclonable function,PUF)实施。或者,上述UDF亦可烧录于ROM 48中。又或者,任何其他合适的安全嵌入UDS 62于硬件中的方法亦可使用,例如使用OTP、PUF与ROM中部分或全部的组合。
上述UDS被推定为仅可由上述DICE层存取。在装置开机时,该DICE层从UDS 62产生一个密钥,此一密钥在TCG规格中被称为复合装置标识符(CDI)66。该DICE层以安全的方式提供该CDI至第L0层。
运算装置24包括一密码引擎70,支援各种密码操作,例如加密、解密、杂凑、签章的产生及验证、产生随机数等。在某些实施例中,密码引擎70代替处理器40进行装置认证所需的密码计算。
密码引擎70包括一个随机数产生器(random number generator,RNG)72,产生一个随机或伪随机的密码随机数(cryptographic nonce)74,供处理器40用于验证。如下所述,密码随机数74会内隐地修改认证金钥,使得开机事件前的认证金钥值在开机事件后变得无效而无法认证。
密码随机数74包括一个随机或伪随机数,并拥有足够的位元数,以确保重复的随机数值几乎不产生。在揭露的认证架构中,密码随机数74与一个开机周期关联而产生(例如每个开机周期一次),如下所述。
管理伺服器28包括主机处理器76及存储器80。管理伺服器28使用网络接口84经由通信网络32与运算装置24通信。在某些实施例中,存储器80储存该管理伺服器控制下的运算装置24的数据库(database,DB)88,以及政策90。存储器80可包括例如随机存取存储器(random access memory)、非挥发性存储器(nonvolatile memory)或其他任何合适的储存设备种类。管理伺服器28可与运算装置24进行各种目的的通信,例如软件服务开通(software provisioning)、向运算装置24传送指令以进行相关任务、以及从该等装置接收报告。管理伺服器28使用验证程序86验证运算装置24的身分及状态;其中,为了简洁起见,验证程序86于本说明书中亦简称为“验证器”。该验证器(以及运算装置24)可实施合适的挑战-回应方法,如下所述。
政策90向主机处理器76指明用于装置24的安全政策。一个给定的政策可指明进行装置验证的时程表、各装置中哪些层需要验证、装置验证失败时应采取何种行动、经认可的固件版本等。
图1所示运算系统20、运算装置24及管理伺服器28的设定仅为范例设定,仅为明确阐述概念而描绘。在其他实施例中,任何其他合适的运算系统、运算装置及管理伺服器皆可使用。对理解揭露的技术非必要的元件,为清晰明确起见,于图中皆被略去。
在各种实施例中,运算系统20的不同元件(例如运算装置24)可用任何合适硬件实施,例如使用一个或多个离散元件、一个或多个特定应用集成电路(Application SpecificIntegrated Circuit,ASIC)及/或一个或多个现场可程序化逻辑门阵列(FieldProgrammable Gate Array,FPGA)。某些电脑系统元件可用软件实施,或使用软件与硬件元件的组合。
在某些实施例中,处理器40与主机处理器76各包括一个通用可程序化处理器,此等通用可程序化处理器被以软件程序化,以执行本说明书中叙述的功能。上述软件可经由网络以电子形式下载至相关处理器,及/或储存于非暂态有形媒体中,例如磁盘、光盘或电子存储器。
[使用对称金钥密码的认证架构]
图2为一图表,根据本说明书叙述的一个实施例,图示一种使用于对称金钥认证的装置分层架构。
在图2中,使用运行验证器104的管理伺服器102验证运算装置100。运算装置100、管理伺服器102及验证器104可用于实施图1中的运算装置24、管理伺服器28及验证程序86。
装置100运行多个程序码层,为简洁起见亦以“层”称之。第一层以“DICE层”112表示,此层一般包括不可变程序码。运行可变程序码的其他各层以L0…Ln表示。在图2中,为清晰起见,仅显示L0层114及Ln层116。上述DICE层作为信任层根,且一般在装置开机时无条件执行。L0…Ln各层一般以一预先定义的顺序(例如依次逐个)于DICE层之后执行。由运算装置100实施的各种任务,包括L0…Ln各层及认证任务,是由处理器40执行。
装置100包括密钥链生成(secret chain generation,SCG)106模块,以及认证模块108。SCG 106中的各层产生一个密钥序列,以S0…Sn表示。DICE层产生用于L0层的第一密钥S0,L0层产生用于L1层的第一密钥S1,以此类推。在本范例中,认证模块108耦接于最后一层Ln。基于上述信任链,此情况下的认证涵盖了DICE层及各可变层L0…Ln。或者,认证模块108亦可耦接于从L0…Ln-1中选取的一个中间层Li,此时认证将涵盖DICE层及L0…Li各层。
在图2中,DICE层及L0…Ln-1各层包括一个单向函数(one-way function,OWF)120,该OWF产生一密钥供对应的下一层L1…Ln使用。具体而言,DICE层112的OWF产生密钥S0供L0使用、L0的OWF产生密钥S1供L1使用,以此类推。
L0…Ln各层可由对应的测量值(128)M0…Mn识别。一层的测量值可包括例如对该层程序码进行计算的密码杂凑函数(cryptographic hash function)、软件映像(softwareimage)、数据及/或固件,或上述各项二者以上的组合。在某些实施例中,由一给定层Li产生的密钥Si+1是基于该给定层对下一层进行测量所得的测量值Mi+1以及由前一层Li-1产生的密钥Si而产生。在某些实施例中,使用以上架构,每一层皆可被推定为可信任或先前已验证为可信任的一层测量。
OWF 120应具备难以进行逆运算的特性,使得从该OWF的输出密钥Si+1及输入测量值Mi+1推导输入密钥Si成为不切实际的行为。在一个范例实施例中,OWF 120包括一个密码学上安全的杂凑函数。OWF 120的范例函数包括但不限于信息鉴别码(MessageAuthentication Code,MAC)、杂凑信息鉴别码(Hashed-based MAC,HMAC)、密码信息鉴别码(Cipher-based MAC,CMAC)及第三代安全杂凑演算法(SHA-3)函数Keccak信息鉴别码(Keccak MAC,KMAC)。
在本说明书揭露的某些实施例中,是以HMAC作为OWF 120的范例;此一方法在1997年2月请求意见稿(Request for Comments,RFC)2104,标题为HMAC:Keyed-Hashing forMessage Authentication等文献中已有说明。
为了产生密钥S0,DICE层会产生一个L0层的测量值128A。DICE层并无上一层,而是包括一个安全地嵌入的唯一装置密钥(UDS)124。UDS仅为DICE层及验证器所知。依据实施方式的不同,UDS亦可能为装置制造商所知。在一个实施例中,DICE层使用HMAC函数通过计算
S0=HMAC(M0,UDS)
产生密钥S0,其中UDS作为HMAC金钥。在TCG使用的术语中,上述DICE层产生的密钥S0亦称为复合装置标识符(CDI)。
为了产生密钥S1,L0层会产生一个L1层的测量值128B(以M1表示),并从DICE层接收密钥S0。在本范例中,L0层包括一个在装置开机后产生一随机数(以Na表示)的随机数产生器(RNG)132。在某些实施例中,L0层的OWF接收(i)L1层的测量值M1、(ii)DICE层的密钥S0、以及(iii)使用RNG 132产生的随机数Na作为输入。L0层的OWF通过计算:
S1=HMAC([M1|Na],S0)
产生密钥S1,其中S0包括HMAC金钥,而串接数据[M1|Na]为该HMAC函数的数据输入。在其他层中,密钥Si+1可由:
Si+1=HMAC([Mi+1],Si)
计算而得。
在图2的范例中,随机数Na是L0层OWF的输入,此一随机数Na通常以一最小程序码实施,此一最小程序码被预期不发生错误(bug)而不需要(或者仅需要偶尔)更新,因此L0被视为一个可信任层。然而,通常随机数Na可能亦是L1…Ln等其他各层中任何被视为可信任层的OWF的输入。
在某些实施例中,L0…Ln之中的一层或多层各包括一个固件安全描述符(FirmwareSecurity Descriptor,FSD)136。FSD包括一层中自有或自行运算的自我测量值。例如,在图2中,L0层包括FSD 136A,而Ln层包括FSD 136B。在L0…Ln-1各层中,FSD可能并入OWF的密钥计算。例如,在图2的L0层中,FSD 136A被提供给L0层的OWF。此时,OWF以:
S1=HMAC([M1|FSD|Na],S0)
计算S1。此时密钥S1依据L0和L1两者测量而得的测量值M1决定。
在图2的范例中,最后一层(Ln 116)使用认证模块108进行装置认证协定。此一认证协定通常由装置端执行,通过(i)自验证器104接收一挑战、(ii)使用认证金钥签章该挑战,以产生一回应、以及(iii)传送该回应至验证器以进行验证,如本说明书所述。
Ln层使用一金钥推导函数(key derivation function,KDF)140,自密钥Sn产生一个对称金钥144(以SKn表示)供认证之用。数个使用伪随机函数的金钥推导函数族,在LilyChen,2009年10月,NIST special publication 800-108,标题为Recommendation for KeyDerivation Using Pseudorandom Functions(Revised)等文献中已有叙述。认证模块108接收一个由验证器产生的挑战,以C表示(通常C包括一个随机或伪随机数),以及一个由RNG160回应上述挑战而产生的装置随机数,以Nd表示。认证模块108通过使用SKn 144签章[C|Nd]产生一回应,以R表示。
验证器从装置接收回应R,亦接收Na和Nd,并通过使用与SKn相同的金钥值签章[C|Nd],在其内部计算R’。在某些实施例中,该验证器基于UDS及测量值Mi,使用与该装置在其内部计算其SKn相同的架构、OWF和KDF函数,以计算SKn。当R等于R’时,该装置即被成功验证。在装置开机后,随机数Na产生,此一随机数间接导致认证金钥SKn的值相较于其开机前的值有所改变。此一结果导致成功撷取开机前SKn值的攻击者无法于开机后将其用于认证。
图3为流程图,根据本说明书叙述的实施例,图示使用对称金钥加密的装置认证及验证方法。
上述认证架构可由图1中的装置24及验证器86执行。装置24被推定实施图2中描绘的层级架构。进行上述认证协定时,装置与验证器可经由例如通信网络32互相通信。
图3(装置部分)的方法始自开机步骤200,装置24的处理器40开始一个开机周期。进行开机时,处理器40开始执行DICE层112。在随机数产生步骤204中,该处理器(例如使用RNG 132)产生仅与当前开机周期关联的随机数Na,并传送Na至该验证器。或者,该处理器亦可安全地穿越L1…Ln之中至少数层传送该随机数Na,并将该Na由非L0的一层(例如Ln)传送至该验证器。在一个实施例中,该处理器将该随机数Na与下文将叙述的步骤220中的回应一同传送。
在金钥产生步骤212中,上述处理器在Ln层中产生一个对称认证金钥,以SKn表示。例如,该处理器通过对Ln层的密钥Sn使用函数OWF 120,以产生SKn。该认证金钥SKn经由始自某一层的密钥链(其中Na是该层OWF的输入值)而依据随机数Na决定。
在挑战接收步骤216中,上述处理器自上述验证器接收一挑战C,以验证最后一层Ln。或者,该处理器亦可能接收一挑战,以验证L0…Ln-1中的另一层。
在回应计算步骤220中,上述处理器回应上述挑战,通过使用上述认证金钥SKn签章该挑战C(例如使用签章函数148),以产生一回应(以R表示)。例如,该处理器以:
R=MAC(C,SKn)
计算回应。在某些实施例中,该处理器对C产生一装置随机数Nd(例如使用RNG160),并以:
R=MAC([C|Nd],SKn)
计算回应。将随机数Nd并入回应R,可有助于克服试图通过传送多个选定的挑战值至该装置以猜测SKn的攻击。更进一步地,在步骤220中,处理器40传送上述回应R至上述验证器。如上所述,在某些实施例中,该处理器在步骤220中传送回应R与随机数Na至该验证器。
在开机询问步骤228中,上述处理器检查重新开机是否必要或正在发生,若否,则回到步骤216以在同一开机周期内接收下一个挑战,以验证同一层或另一层。否则,该处理器回到步骤200以开始下一个开机周期,并重新产生与前一开机周期中使用的Na数值不同的随机数Na。
在图3的实施例中,上述处理器在一个开机周期中产生SKn一次。在其他实施例中,该处理器可在接收一挑战C时回应产生SKn。在此一实施例中,图3的步骤212可在步骤216后、步骤220前执行。
图3(验证器部分)的方法一般与图3(装置部分)的方法平行进行。图3的方法始自储存步骤250,主机处理器76储存装置信息在验证器的数据库(例如数据库88)中。该装置信息可用于复原该装置在对一给定挑战产生回应时使用的对称认证金钥SKn。为此,该主机处理器对每一装置储存装置信息,至少包括该装置DICE层的UDS(62)、该装置使用的层级设定、以及与各层关联的测量值。该验证器使用上述装置信息(以及一随机数Na)以在其内部计算与获许可的装置计算的SKn值相同的SKn值,如下所述。
在随机数接收步骤254中,上述验证器接收一随机数Na,此一随机数Na由该装置产生,与当前开机周期关联。一般而言,该装置在每一开机周期提供Na予该验证器一次。或者,该装置亦可能在同一开机周期中多次产生Na,并向该验证器回报每一个更新的Na。在某些实施例中,该验证器并非在步骤254中接收上述Na,而是在下文将叙述的步骤262中将Na与回应一同接收。
在挑战传送步骤258中,上述验证器产生一挑战C以验证该装置的Ln层,并传送该挑战至该装置。该验证器通常产生一个随机或伪随机数作为该挑战。该验证器每次皆发出一个不同挑战,使得对前一次回应的知悉并无用处。使用不同挑战对于例如减低重放攻击(replay attack)的危害十分有用。该验证器可在任何合适时间产生并传送该挑战,例如回应该装置的请求、由管理员的请求控制、或定期进行。
在回应接收步骤262中,上述验证器自该装置接收一个对应于先前在步骤258中传送的挑战C的回应R。在金钥复原步骤266中,该验证器使用步骤250中储存的装置信息与步骤254中接收的随机数Na,在其内部重制一个对称认证金钥SKn的复本SKn’。
在验证步骤270中,上述验证器使用上述回应R与上述复原的认证金钥SKn’验证该装置的Ln层。由于该装置中的信任链,因此通过验证Ln层,即可同时验证DICE层及L0…Ln-1各层。如上所述,由于认证金钥SKn依据随机数Na决定,因此攻击者即使取得该认证金钥SKn,亦将于重新开机后认证失败,因Na的值已改变。
在步骤270后,上述验证器回到步骤250、254或258。具体而言,该验证器于该装置更新后(例如更新软件或固件版本)回到步骤250。或者,该验证器在该装置开机后回到步骤254,以接收与当前开机周期关联的Na。又或者,该验证器回到步骤258以传送下一个不同的挑战至该装置。
[使用非对称金钥密码的认证架构]
图4为一图表,根据本说明书叙述的一个实施例,图示一种使用于非对称金钥认证的装置分层架构。
在图4中,使用运行验证器304的管理伺服器302验证运算装置300。运算装置300、管理伺服器302及验证器304可用于实施图1中的运算装置24、管理伺服器28及验证程序86。
与图1的装置100相似,装置300运行多层程序码,包括一个“DICE层”312,以及可变程序码层L0…Ln。在图4中,为清晰起见,仅显示L0 314、L1 316及Ln 318等层。在一个实施例中,上述DICE层作为信任层根,并在装置开机时无条件执行。L0…Ln各层以预先定义的顺序(例如依次逐个)在DICE层后执行。装置300中的层级和秘密金钥生成架构,总体而言与上文所述装置100中的架构相似。
装置300包括密钥链生成(Secret Chain Generation,SCG)模块306、认证模块308以及凭证模块310。与图2中的SCG 106相似,SCG 306使用OWF 320产生一个密钥序列S0…Sn。DICE层的OWF基于UDS324及L0的测量值M0(328A)产生用于L0层的密钥S0。L0层的OWF产生用于L1层的密钥S1,以此类推。一给定层Li的OWF根据层级顺序,基于前一层Li-1产生的密钥Si和后一层的测量值Mi+1产生密钥Si+1。
在本范例中,认证模块308与最后一层Ln耦接,使该装置认证DICE层与各可变层L0…Ln。或者,认证模块308亦可与一个中间层L0…Ln-1耦接,以认证该中间层及其以下各层。
在本范例中,(与上文所述装置100相似)L0层包括在装置开机后产生一个随机数Na的随机数产生器(RNG)332。在某些实施例中,L0层的OWF接收(i)L1层的测量值M1(328B)、(ii)来自DICE层的密钥S0、以及(iii)使用RNG 332产生的随机数Na作为输入。L0层的OWF通过计算例如:
S1=HMAC([M1|Na],S0)
产生密钥S1供L1使用,其中S0包括HMAC金钥,而串接数据[M1|Na]为该HMAC函数的数据输入。在其他层中,密钥Si+1可由:
Si+1=HMAC([Mi+1],Si)
计算而得。
凭证模块310产生一个凭证链CERT0…CERTn,分别对应L0…Ln各层。验明凭证的过程包含使用产生于对应各层L0…Ln的非对称金钥AK0…AKn。在Li层中,处理器40通过对密钥Si使用合适的金钥推导函数(KDF)340,推导一个非对称金钥AKi。KDF 340可与上文所述KDF140为相同(或相似)函数。每一个非对称金钥AKi包括一个公开金钥PKi和一个对应的私有金钥PRi。在本范例中,L0…Ln-1各层皆包括一个嵌入凭证授权(Embedded CertificateAuthorization,ECA)342。L0层的ECA0产生凭证CERT1,L1层的ECA1产生凭证CERT2,以此类推。
在图2的范例中,Li层的ECAi接收同层Li产生的私有金钥PRi和等于预期将产生于下一层Li+1的非对称金钥AKi+1的PKi+1的公开金钥PKi+1’(在Li产生)。在某些实施例中,ECAi通过使用私有金钥PRi签章公开金钥PKi+1,以产生凭证CERTi+1。因此凭证CERTi+1可提供其已被Li层的私有金钥PRi签章的证明。应注意,CERTi+1亦经由密钥Si、Li层的KDF、AKi及ECAi,隐含了对由Li-1层测量的测量值Mi的凭证。
在某些实施例中,装置300使用提供凭证CERT0至该装置L0层的外部凭证授权机构(Certification Authority,CA)350,对L0层的公开金钥PK0进行凭证。CERT0又称“装置ID”,对PK0进行凭证。当制造商委任CA 350为该装置的凭证授权机构时,CERT0可证明该装置系由该制造商制造。此外,CERT0亦可由原始设备制造商(Original Equipment Manufacturer,OEM)提供予该装置。在其他实施例中,L0层可使用任何合适的自我凭证方法对PK0进行凭证。在一个实施例中,在该装置的Li层中,AKi-1的公开金钥PKi-1可用于使凭证CERTi的签章生效。
认证模块308接收Ln层的密钥Sn,并使用KDF 340自密钥Sn产生一个非对称金钥AKn,其私有金钥PRn用于验证。认证模块308自验证器304接收一挑战Nv,并通过使用私有金钥PRn对挑战Nv采用签章函数354,产生一个数字签章回应DS。适合实施函数354以进行签章(以及在验证器中进行验证)的签章产生与验证的范例方法,在2013年7月,联邦信息处理标准公开文件(FIPS PUB)186-4,Digital Signature Standard(DSS)等文献中已有说明。认证模块308更接收沿L0…Ln各层积聚的凭证链CERT0…CERTn。验证器在此一认证架构中所占的部分,将于下文详述。
图5为流程图,根据本说明书叙述的实施例,图示使用非对称金钥加密的装置认证及验证方法。
此一认证架构可由图1中的装置24与验证器86执行。装置24被推定实施图4描绘的层级架构。进行此认证协定时,该装置与该验证器可经由例如通信网络32互相通信。
图5(装置部分)的方法始自装置24的处理器40在开机步骤400开始一个开机周期。进行开机时,处理器40开始执行DICE层312。在随机数产生步骤404中,该处理器产生(例如使用RNG 332)一个仅与当前开机周期关联的随机数Na。或者,该处理器亦可(例如安全地)穿越L1…Ln中至少数层传送随机数Na,并将该Na由非L0的一层(例如Ln)传送至验证器。
在凭证步骤408中,处理器根据预先定义的顺序(例如依次逐个)执行L0…Ln各层,并在各层Li中基于在Li-1产生的密钥Si产生非对称金钥AKi。处理器更在Li中(使用ECAi)产生一个验明Li+1层中AKi+1的公开金钥PKi+1、并由AKi的私有金钥PRi签章的凭证。
在挑战接收步骤412中,处理器自验证器接收一挑战Nv。在回应计算步骤420中,处理器回应上述挑战,通过使用非对称金钥AKn的私有金钥PRn对挑战Nv进行签章(例如使用签章函数354),计算数字签章DS。
在回应传输步骤424中,处理器经由通信网络32传送回应DS及凭证CERT0…CERTn至验证器。
在开机询问步骤428中,处理器检查重新开机是否必要或正在发生,若否,则回到步骤412以从验证器接收下一个挑战。否则,处理器回到步骤40以开始下一个开机周期,并产生一个与前一次开机周期使用的Na数值不同的随机数Na。
图5(验证器部分)的方法一般与图5(装置部分)的方法平行进行。图5的方法始自验证器86在挑战传送步骤458中产生并传送一个挑战Nv至装置24,以验证Ln及其以下各层。验证器可在任何合适时间产生并传送该挑战,例如回应装置的服务请求、管理员请求、或定期进行。
在回应接收步骤462中,主机从该装置接收一个对应步骤458中传送的挑战Nv的数字签章DS。验证操作主要包括两个阶段:(i)验证凭证,以及(ii)验证数字签章回应,如本文所述。
在凭证验证步骤466中,主机验证由该装置在步骤424中传送的CERT0…CERTn。该验证器被推定持有制造商CA 350的根凭证(Root Certificate),或者该验证器可经由CERT0凭证中的授权信息存取(Authority Information Access,AIA)栏位存取根凭证。该验证器使用上述根凭证验证CERT0。该验证器更使用由CERT0进行凭证的公开金钥PK0(装置ID)验证CERT1,以此类推,直到验证对PKn进行凭证的CERTn为止。在结束凭证验证后,PKn即可被认定为可信任的。
在数字签章验证步骤470中,验证器使用PKn验证DS回应。步骤470中的DS验证函数与装置端使用的签章生成函数354匹配。此一验证阶段验证DICE层及L0…Ln各层的身分及状态。
在步骤470后,依需要,该方法回到步骤458以传送下一个不同挑战Nv至该装置。
在某些实施例中,在一次装置开机事件后,验证器会等待装置进行步骤400、404和408以及指示验证器该装置已准备好接收下一挑战。
上述各实施例乃为范例,其他合适之实施例亦可使用。例如,尽管在上述实施例中,信任链使用DICE层作为信任根,然而在其他实施例中,其他种类的元素亦可作为信任根使用。
尽管本说明书描述的实施例主要针对连接至无线网络或陆上网络(landnetwork)的装置认证架构,然而本说明书描述的方法与系统亦可使用于其他用途,例如装置与验证器间以合适的汇流排(bus)连接(例如在一主机板上)或以缆线连接(例如在车辆中)的情况。
应注意,上述各实施例乃作为范例援用,而以下权利要求并不限定于以上明示的内容。反之,其范围包括上述各特征的组合与子组合,以及本发明所属领域技术人员于阅读上述内容后可知悉、且未揭露于先前技术的变化与改良。本发明申请中并入参照的文件,除该等并入文件中的词汇定义与本说明书明示或暗示的定义有冲突之处外,应视为本发明申请整体的一部分,而于冲突的处应仅采取本说明书中所使用的定义。
Claims (26)
1.一种安全运算装置,其特征在于,包括:
一网络接口,被配置以经由一通信网络与一验证器通信;
一存储器,被配置以储存多层可变程序码,上述各层可由各别的测量值来识别;以及
一处理器,被配置以:
在一给定开机周期中,产生一个仅与所述给定开机周期关联的随机数;
自所述验证器接收一挑战,以认证所述可变程序码的一给定层;
根据(i)储存于所述安全运算装置中的唯一装置密钥、(ii)由另一层对所述给定层测量而得的测量值、以及(iii)为所述给定开机周期而产生的随机数进行推导,以计算一第一认证金钥;
使用所述第一认证金钥对所述挑战进行签章,以计算对应所述挑战的一回应;以及
传送所述回应至所述验证器,以验证所述给定层。
2.根据权利要求1所述的安全运算装置,其特征在于,所述处理器被配置以依据所述随机数计算所述第一认证金钥,使在所述给定开机周期前由所述处理器用于认证的第二认证金钥,在所述给定开机周期中变得无效而无法认证。
3.根据权利要求2所述的安全运算装置,其特征在于,所述处理器被配置以设定所述第一认证金钥为不同于在所述给定开机周期前由所述处理器用于认证的第二认证金钥,即使所述给定层及在所述给定层之前执行的各层的所述可变程序码在所述给定开机周期中仍保持完整。
4.根据权利要求1所述的安全运算装置,其特征在于,所述第一认证金钥包括一依据所述随机数决定的对称金钥,且其中所述处理器被配置以通过使用所述对称金钥对至少所述挑战进行签章以计算所述回应,并传送所述回应及所述随机数至所述验证器。
5.根据权利要求1所述的安全运算装置,其特征在于,所述第一认证金钥包括一依据所述随机数决定的非对称金钥,且其中所述处理器被配置以通过使用所述非对称金钥的一个私有金钥对所述挑战进行签章以计算所述回应,并传送所述回应至所述验证器,但不传送所述随机数。
6.根据权利要求5所述的安全运算装置,其特征在于,所述处理器被配置以对每一层各产生所述非对称金钥,所述第一认证金钥包含所述非对称金钥,每一所述非对称金钥包括私有金钥及公开金钥,以产生一个凭证链,其中在所述给定层中的凭证用以对下一层产生的所述公开金钥进行凭证,并所述给定层中的所述凭证系由所述给定层中产生的私有金钥签章,并传送所述凭证链至所述验证器,以使用所述第一认证金钥的已凭证公开金钥进行验证。
7.根据权利要求6所述的安全运算装置,其特征在于,所述凭证链包括一由所述随机数独立产生的凭证,所述凭证用以证明所述安全运算装置由一特定制造商制造。
8.根据权利要求1所述的安全运算装置,其特征在于,所述处理器被配置以在一在所述给定层之前执行的信任层中产生所述随机数,基于所述随机数在所述信任层中计算一密钥,并依据所述密钥计算所述第一认证金钥。
9.根据权利要求1所述的安全运算装置,其特征在于,所述处理器被配置以一预先定义的顺序执行所述多层程序码,并仅在一选定层已成功由所述验证器验证后,方依所述预先定义的顺序自所述选定层前进至下一层。
10.根据权利要求1所述的安全运算装置,其特征在于,所述处理器被配置以依据所述随机数计算所述第一认证金钥,以减低零时差攻击的危害。
11.一种安全运算方法,其特征在于,包括:
在一个经由一通信网络与一验证器通信的装置中,
在所述装置的一存储器中储存多层可变程序码,上述各层可由各别的测量值来识别;
在一给定开机周期中,产生一个仅与所述给定开机周期关联的随机数;
自所述验证器接收一挑战,以认证所述可变程序码的一给定层;
根据(i)一个储存于所述装置中的唯一装置密钥、(ii)由另一层对所述给定层测量而得的测量值、以及(iii)为所述给定开机周期而产生的随机数进行推导,以计算一第一认证金钥;
使用所述第一认证金钥对所述挑战进行签章,以计算对应所述挑战的一回应;以及
传送所述回应至所述验证器,以验证所述给定层。
12.根据权利要求11所述的安全运算方法,其特征在于,计算所述第一认证金钥的动作包括基于所述随机数计算所述第一认证金钥,使在所述给定开机周期前由处理器用以认证的第二认证金钥,在所述给定开机周期中变得无效而无法认证。
13.根据权利要求12所述的安全运算方法,其特征在于,计算所述第一认证金钥的动作包括:
设定所述第一认证金钥为不同于在所述给定开机周期前由所述处理器用于认证的第二认证金钥,即使所述给定层及在所述给定层之前执行的各层的所述可变程序码在所述给定开机周期中仍保持完整。
14.根据权利要求11所述的安全运算方法,其特征在于,所述第一认证金钥包括一依据所述随机数决定的对称金钥,且其中计算所述回应的动作包括:
使用所述对称金钥对至少所述挑战进行签章以计算所述回应,并传送所述回应及所述随机数至所述验证器。
15.根据权利要求11所述的安全运算方法,其特征在于,所述第一认证金钥包括一依据所述随机数决定的非对称金钥,且其中计算所述回应的动作包括:
使用所述非对称金钥的一个私有金钥对所述挑战进行签章以计算所述回应,并传送所述回应至所述验证器,但不传送所述随机数。
16.根据权利要求15所述的安全运算方法,其特征在于,更包括:
对每一层各产生所述非对称金钥,其中所述第一认证金钥包含所述非对称金钥,每一所述非对称金钥包括私有金钥及公开金钥;
产生一个凭证链;
其中在一给定层中的凭证对下一层产生的公开金钥进行凭证,并所述给定层中的所述凭证由所述给定层中产生的私有金钥签章,并传送所述凭证链至所述验证器,以使用所述第一认证金钥的已凭证公开金钥进行验证。
17.根据权利要求16所述的安全运算方法,其特征在于,所述凭证链包括一由所述随机数独立产生的凭证,所述凭证证明所述装置由一特定制造商制造。
18.根据权利要求11所述的安全运算方法,其特征在于,产生所述随机数的动作包括在一在所述给定层之前执行的信任层中产生所述随机数,且其中计算所述第一认证金钥的动作包括基于所述随机数在所述信任层中计算一密钥,并依据所述密钥计算所述第一认证金钥。
19.根据权利要求11所述的安全运算方法,其特征在于,更包括以一预先定义的顺序执行所述多层程序码,并仅在一选定层已成功由所述验证器验证后,方依所述预先定义的顺序自所述选定层前进至下一层。
20.根据权利要求11所述的安全运算方法,其特征在于,计算所述第一认证金钥的动作包括依据所述随机数计算所述第一认证金钥,以减低零时差攻击的危害。
21.一种验证器,其特征在于,包括:
一网络接口,被配置以经由一通信网络与一装置通信,所述装置包括多层可变程序码,并产生一个仅与一给定开机周期关联的随机数;以及
一处理器,被设定以:
传送一挑战至所述装置,以验证所述可变程序码的一给定层;
自所述装置接收由所述装置回应所述挑战所产生的回应信息,其中所述回应信息依据与所述给定开机周期关联的所述随机数决定;以及
使用所述回应信息,验证所述可变程序码的所述给定层。
22.根据权利要求21所述的验证器,其特征在于,所述回应信息至少包括由依据所述随机数决定的一认证金钥签章的挑战,且其中所述处理器被配置为在传送所述挑战前安全地于所述验证器的存储器中储存装置信息,所述装置信息搭配所述随机数即足以复原所述认证金钥;且所述处理器被配置为自所述装置接收所述随机数,使用所述装置信息与所述接收的随机数复原所述认证金钥,并使用所述复原认证金钥验证所述可变程序码的所述给定层。
23.根据权利要求21所述的验证器,其特征在于,所述回应信息包括(i)所述挑战的一数字签章,其中所述挑战由非对称认证金钥的私有金钥签章,以及(ii)与所述给定层关联的公开金钥的凭证,且其中所述处理器被配置以验证在由与所述公开金钥匹配的私有金钥签章的凭证中已验明的一公开金钥,并随即使用所述已验证的公开金钥验证所述数字签章。
24.一种装置验证方法,其特征在于,包括:
在一个经由一通信网络与一装置通信的伺服器中,其中所述装置包括多层可变程序码,并产生一个仅与一给定开机周期关联的随机数,
传送一挑战至所述装置,以验证所述可变程序码的一给定层;
自所述装置接收由所述装置回应所述挑战所产生的回应信息,其中所述回应信息依据与所述给定开机周期关联的随机数决定;以及
使用所述回应信息,验证所述可变程序码的所述给定层。
25.根据权利要求24所述的方法,其特征在于,所述回应信息至少包括由依据所述随机数决定的一认证金钥签章的挑战,且其中处理器被配置为在传送所述挑战前安全地于所述验证器的存储器中储存装置信息,所述装置信息搭配所述随机数即足以复原所述认证金钥;且所述处理器被配置为自所述装置接收所述随机数,使用所述装置信息与所述接收的随机数复原所述认证金钥,并使用所述复原认证金钥验证所述可变程序码的所述给定层。
26.根据权利要求24所述的方法,其特征在于,所述回应信息包括(i)所述挑战的一数字签章,其中所述挑战由非对称认证金钥的私有金钥签章,以及(ii)与所述给定层关联的公开金钥的一凭证,且其中处理器被配置以验证一个在由与所述公开金钥匹配的私有金钥签章的凭证中已验明的公开金钥,并随即使用所述已验证的公开金钥验证所述数字签章。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/983,360 | 2020-08-03 | ||
US16/983,360 US11601268B2 (en) | 2020-08-03 | 2020-08-03 | Device attestation including attestation-key modification following boot event |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114065176A true CN114065176A (zh) | 2022-02-18 |
Family
ID=80003560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110636360.0A Pending CN114065176A (zh) | 2020-08-03 | 2021-06-08 | 安全运算装置、安全运算方法、验证器及装置验证方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11601268B2 (zh) |
JP (1) | JP7113123B2 (zh) |
CN (1) | CN114065176A (zh) |
TW (1) | TWI773199B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11956626B2 (en) * | 2019-04-17 | 2024-04-09 | Nokia Technologies Oy | Cryptographic key generation for mobile communications device |
US20220222348A1 (en) * | 2021-01-13 | 2022-07-14 | Microsoft Technology Licensing, Llc | Attesting update of a firmware layer |
US11665148B2 (en) * | 2021-03-22 | 2023-05-30 | Cisco Technology, Inc. | Systems and methods for addressing cryptoprocessor hardware scaling limitations |
US20220321361A1 (en) * | 2022-03-30 | 2022-10-06 | Intel Corporation | Federal information processing standard (fips) compliant device identifier composition engine (dice) certificate chain architecture for embedded systems |
WO2023212178A1 (en) * | 2022-04-27 | 2023-11-02 | Microchip Technology Incorporated | Sram physically unclonable function (puf) memory for generating keys based on device owner |
WO2024013554A1 (en) * | 2022-07-15 | 2024-01-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Hardware-entangled key generation |
WO2024061442A1 (en) * | 2022-09-20 | 2024-03-28 | Huawei Technologies Co., Ltd. | Apparatus and method for layered attestation with additive asymmetric key derivation |
EP4357953A1 (en) * | 2022-10-20 | 2024-04-24 | Google LLC | Securely provisioning secrets in authentication devices |
TWI811178B (zh) * | 2023-02-04 | 2023-08-01 | 長茂科技股份有限公司 | 基於多方多因子動態強加密認證之資通安全方法與系統 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985583B1 (en) * | 1999-05-04 | 2006-01-10 | Rsa Security Inc. | System and method for authentication seed distribution |
JP6069160B2 (ja) * | 2013-10-07 | 2017-02-01 | 株式会社日立製作所 | 制御システム及び認証装置 |
US9363087B2 (en) * | 2014-10-02 | 2016-06-07 | Microsoft Technology Licensing, Inc. | End-to-end security for hardware running verified software |
US10691807B2 (en) * | 2015-06-08 | 2020-06-23 | Nuvoton Technology Corporation | Secure system boot monitor |
US9953167B2 (en) * | 2015-10-12 | 2018-04-24 | Microsoft Technology Licensing, Llc | Trusted platforms using minimal hardware resources |
US10757087B2 (en) * | 2018-01-02 | 2020-08-25 | Winbond Electronics Corporation | Secure client authentication based on conditional provisioning of code signature |
US10936722B2 (en) * | 2018-04-18 | 2021-03-02 | Nuvoton Technology Corporation | Binding of TPM and root device |
EP3614622A1 (en) | 2018-08-24 | 2020-02-26 | Nagravision SA | Sending and receiving messages |
US10771264B2 (en) | 2018-10-10 | 2020-09-08 | Hewlett Packard Enterprise Development Lp | Securing firmware |
-
2020
- 2020-08-03 US US16/983,360 patent/US11601268B2/en active Active
-
2021
- 2021-03-18 TW TW110109649A patent/TWI773199B/zh active
- 2021-06-08 CN CN202110636360.0A patent/CN114065176A/zh active Pending
- 2021-07-30 JP JP2021125182A patent/JP7113123B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2022028632A (ja) | 2022-02-16 |
TWI773199B (zh) | 2022-08-01 |
JP7113123B2 (ja) | 2022-08-04 |
US20220038272A1 (en) | 2022-02-03 |
US11601268B2 (en) | 2023-03-07 |
TW202207664A (zh) | 2022-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI773199B (zh) | 安全運算裝置、安全運算方法、驗證器及裝置驗證方法 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
CN107085675B (zh) | 受控安全代码验证 | |
US10771264B2 (en) | Securing firmware | |
US9276752B2 (en) | System and method for secure software update | |
US9405912B2 (en) | Hardware rooted attestation | |
US10482255B2 (en) | Controlled secure code authentication | |
US11361087B2 (en) | Security data processing device | |
TW201918049A (zh) | 可信遠端證明方法、裝置和系統 | |
BR102014030327B1 (pt) | Método implementado por computador para impedir problemas de segurança no uso de certificados digitais na assinatura de código; e sistema de computador para impedir problemas de segurança no uso de certificados digitais na assinatura de código | |
US10853472B2 (en) | System, apparatus and method for independently recovering a credential | |
Corrigan-Gibbs et al. | Ensuring high-quality randomness in cryptographic key generation | |
JP7450713B2 (ja) | ソフトウェア完全性保護方法および装置、ならびにソフトウェア完全性検証方法および装置 | |
WO2023087895A1 (zh) | 设备认证方法和系统、物联网设备和认证服务器 | |
Sanwald et al. | Secure boot revisited: challenges for secure implementations in the automotive domain | |
US8954728B1 (en) | Generation of exfiltration-resilient cryptographic keys | |
RU2571381C1 (ru) | Система и способ пополнения базы данных доверенных сертификатов, использующейся при антивирусной проверке | |
CN111506915B (zh) | 授权访问的控制方法、装置和系统 | |
Yu et al. | How to detect unauthorised usage of a key. | |
US20240126886A1 (en) | Trusted Computing for Digital Devices | |
KR20150089696A (ko) | 접근제어와 우선순위기반 무결성 검증 시스템 및 그 방법 | |
RU2571382C1 (ru) | Система и способ антивирусной проверки в зависимости от уровня доверия сертификата | |
Debes et al. | ZEKRO: Zero-Knowledge Proof of Integrity Conformance | |
CN106375340B (zh) | 提高证书验证安全性的方法和系统 | |
CN117118631A (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 |