CN117203934A - 具有基于信任根的安全性的加密且认证的固件供应 - Google Patents

具有基于信任根的安全性的加密且认证的固件供应 Download PDF

Info

Publication number
CN117203934A
CN117203934A CN202280027958.2A CN202280027958A CN117203934A CN 117203934 A CN117203934 A CN 117203934A CN 202280027958 A CN202280027958 A CN 202280027958A CN 117203934 A CN117203934 A CN 117203934A
Authority
CN
China
Prior art keywords
firmware
key
electronic device
authority
server
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
CN202280027958.2A
Other languages
English (en)
Inventor
M·阿默
C·格罗弗
S·莫萨耶比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantum Cryptography Co ltd
Original Assignee
Quantum Cryptography Co ltd
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 Quantum Cryptography Co ltd filed Critical Quantum Cryptography Co ltd
Publication of CN117203934A publication Critical patent/CN117203934A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/3271Cryptographic 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
    • H04L9/3278Cryptographic 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 using physically unclonable functions [PUF]
    • 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]
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Abstract

提供了与固件加密相关的方法、装置、设备和计算机可读介质。在一个示例中,提供了一种方法,该方法用于向电子设备提供固件。该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的挑战和响应来建立固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该方法包括使用密钥对的私密密钥对固件的散列进行签名,以获得对该散列的签名,该密钥对包括公共密钥和私密密钥,其中,公共密钥安全地嵌入在该电子设备中。该方法还包括使用服务器加密密钥来加密固件和对散列的签名。该方法还包括使用FPK来加密服务器解密密钥,该服务器解密密钥用于对加密的固件和加密的签名进行解密。该方法还包括将加密的固件、加密的签名和加密的服务器解密密钥传送给第三方以安装在该电子设备上。

Description

具有基于信任根的安全性的加密且认证的固件供应
技术领域
本公开总体上涉及用于在各方之间建立信任的方法和系统。特别地,本公开涉及用于向电子设备安全地提供固件的方法以及配置成执行这样的方法的计算装置。本文的公开适用于许多设备和网络,但是特别适用于互联网连接的设备。
背景技术
比如互联网之类的网络改变了日常工作的执行方式,并且这对信息安全产生了重大影响。许多日常任务要求数字设备进行安全认证和由另一方认证和/或安全地处理私人信息。随着物联网(IoT)的发展,比如供暖和照明之类的系统由互联网连接的设备控制变得越来越普遍——每年都有越来越多的设备连接到互联网。
向比如IoT设备之类的电子设备安全提供秘密信息的固有困难会影响进一步的下游流程,比如设备的注册——其进入互联设备的网格的开始。常常,秘密信息(比如非对称密钥对的预共享密钥或私钥)和/或设备证书必须在制造时安全地提供给设备,以便向设备提供一些基本凭证,利用这些凭证来注册服务。同样,对于如何安全地完成此操作存在限制。
在典型的场景中,原始装备制造商(OEM)可以寻求为制造的设备提供身份,以允许注册IoT服务,以及在设备上安全地安装固件。该设备可以包括例如具有用于存储密钥的安全区域的微控制器,并且该微控制器可以由第三方制造商制造。OEM或制造商可以例如将私密密钥和设备证书添加到安全区域中,这需要安全设施。为了在设备上安装固件/证书,OEM可以使用编程公司的服务来配置设备,这需要进一步的信任。必须信任编程公司来操作安全设施,添加正确的信息,并代表OEM安全地对证书签名。在一些情况下,供应设备可能需要多个不同方与电子设备交互。然而,这些不同方可以访问要安装在电子设备上的信息,例如固件或证书,并且因此存在这些不同方中的任何一方在将信息安装在电子设备上之前篡改信息的风险。
本发明实施例的目的是至少缓解本领域已知的一个或多个问题。
发明内容
根据本发明的一个方面,提供了一种方法,该方法用于向电子设备提供固件。该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该方法包括使用权威机构密钥对的私密密钥使得固件的散列被签名,以获得签名。权威机构密钥对包括公共密钥和私密密钥,其中,公共密钥安全地嵌入在电子设备中。该方法还包括使用服务器加密密钥来加密固件和签名。该方法还包括使用FPK来加密服务器解密密钥,该服务器解密密钥用于对加密的固件和加密的签名进行解密;该方法还包括将加密的固件、加密的签名和加密的服务器解密密钥传送给第三方以安装在电子设备上。
有利地,该方法使得固件能够以加密的形式提供给电子设备,使得只有电子设备能够解密固件。这确保了固件创建者,例如原始装备制造商(OEM)可以确信专有固件将保持机密。在电子设备的制造和编程中涉及的其他方,例如第三方编程公司不能在篡改不被检测到的情况下而篡改固件。
有利的是,固件密钥对基于的是对PUF的挑战和响应,这意味着在制造期间不需要将秘密信息添加到设备中,并且不需要将私密密钥存储在设备的存储器中。
该方法还可以包括接收固件并对固件执行散列函数以生成固件的散列。
该方法还可以包括接收固件的散列。
使得固件的散列被签名可以包括对固件的散列进行签名。
使得固件的散列被签名可以包括将固件的散列发送到可信权威机构,并从可信权威机构接收签名。
该方法还可以包括从可信权威机构接收FPK。
服务器加密密钥可以与服务器解密密钥相同。替代地,可以使用非对称服务器加密密钥和服务器解密密钥。
安全模块还可以配置成基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),注册密钥对包括注册公共密钥(EPK)和注册私密密钥(ESK);并且该方法还可以包括向第三方传送设备标识符,该设备标识符包括EPK的函数。有利地,设备标识符因此被链接到基于对PUF的挑战和响应的EPK和ESK,并且因此在制造期间不需要将秘密信息添加到设备中来为设备供应身份。
设备标识符可以从可信权威机构来接收。
该方法可以进一步包括,在已经将固件安装在电子设备上之后,接收设备标识符并且向可信权威机构登记设备标识符。通过向可信权威机构登记设备标识符,提高了安全性,因为可以禁止没有向其登记设备标识符的其他方与电子设备通信。具体而言,设备标识符变得与特定服务器相关联,并且因此在没有服务器授权的情况下,其他第三方不可以与该设备进行交互。
根据本发明的一个方面,提供了一种计算机可读介质。计算机可读介质具有存储在其上的指令,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于向电子设备提供固件的方法。
根据本发明的一个方面,提供了一种计算装置。该计算装置包括一个或多个处理器。该计算装置还包括其上存储有指令的一个或多个存储器,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于向电子设备提供固件的方法。
根据本发明的一个方面,提供了一种用于认证用于电子设备的固件的方法,该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),其中,固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),并且其中,注册密钥对(ESK EPK)包括注册公共密钥(EPK)和注册私密密钥(ESK)。该方法包括通过安全通信信道从服务器接收固件的散列,该固件用于安装在电子设备上。该方法包括使用权威机构密钥对的秘密权威机构密钥对固件的散列进行签名,权威机构密钥对包括公共权威机构密钥(PAK)和秘密权威机构密钥(SAK),其中,公共权威机构密钥安全地嵌入在电子设备中。该方法包括启动将签名传送给第三方以安装在电子设备上。该方法包括通过安全通信信道向服务器发送FPK和用于识别电子设备的相关联设备标识符,该设备标识符包括EPK的函数。
有利的是,这样的一种方法使得电子设备能够接收已经由可信权威机构授权的固件,而该可信权威机构无权访问该固件。此外,不需要以未加密的形式将秘密信息添加到电子设备中。
该方法还可以包括从安全模块提取设备标识符。
该方法还可以包括从安全模块提取FPK。
该方法还可以包括接收设备标识符和FPK。
该方法还可以包括接收向服务器登记设备标识符的请求。
该方法还可以包括在查找表中输入设备标识符和FPK。
根据本发明的一个方面,提供了一种计算机可读介质。计算机可读介质上具有指令,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于认证电子设备的固件的方法。
根据本发明的一个方面,提供了一种计算装置。该计算装置包括一个或多个处理器。该计算装置还包括其上存储有指令的一个或多个存储器,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于认证电子设备的固件的方法。
根据本发明的一个方面,提供了一种由电子设备执行的方法,该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该方法包括使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥使用FPK来加密。该方法还包括使用解密的服务器解密密钥来解密固件和对固件散列的签名。该方法还包括使用安全地嵌入在电子设备中的公共权威机构密钥来验证固件的散列已经被可信权威机构签名。该方法还包括,基于验证在电子设备上安装解密的固件。
该方法还可以包括,在引导电子设备时,验证固件已经被可信方签名。
根据本发明的一个方面,提供了一种电子设备。该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该电子设备还包括一个或多个处理器,一个或多个处理器包括安全模块或通信地耦合到安全模块。一个或多个处理器配置成使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥是使用FPK来加密的。一个或多个处理器配置成使用解密的服务器解密密钥来解密固件和对固件散列的签名。一个或多个处理器配置成使用安全地嵌入在电子设备中的公共权威机构密钥来验证固件的散列已经被可信权威机构签名。一个或多个处理器配置成基于验证在电子设备上安装解密的固件。
有利的是,将固件安全地提供给电子设备。在制造期间,没有秘密信息存储在电子设备上。此外,由于安全性的一部分基于对安装在电子设备中的PUF的挑战和响应,所以相关的私密密钥始终不需要存储在电子设备上,而是可以根据需要动态地重新生成。
根据本发明的一个方面,提供了一种系统,该系统用于向电子设备提供固件。该电子设备包括具有物理不可克隆函数(PUF)的安全模块,该安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),其中,该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该系统包括可信权威机构和服务器。可信权威机构配置成从服务器接收固件的散列。可信权威机构配置成使用权威机构密钥对的秘密权威机构密钥对固件的散列进行签名,权威机构密钥对包括公共权威机构密钥和秘密权威机构密钥,其中,公共权威机构密钥安全地嵌入在电子设备中。可信权威机构配置成向服务器发送对固件的散列的签名。可信权威机构配置成向服务器发送FPK。服务器配置成通过固件从可信权威机构接收签名。服务器配置成从可信权威机构接收FPK。服务器配置成使用服务器加密密钥来加密固件和签名。服务器配置成服务器解密密钥使用FPK来加密,该服务器解密密钥用于解密固件和签名。服务器配置成将加密的固件、加密的签名和加密的服务器解密密钥传送给第三方以安装在电子设备上。
根据本发明的一个方面,提供了一种方法,该方法用于向电子设备提供固件。该电子设备包括具有物理不可克隆函数(PUF)的安全模块。安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该方法包括使用包括公共密钥和私密密钥的授权/签名密钥对的私密密钥使得加密形式的固件被签名,其中,公共密钥安全地嵌入在电子设备中。固件使用服务器加密密钥来加密。该方法还包括将签名的加密形式的固件传送给第三方以安装在电子设备上。该方法还包括将加密形式的服务器解密密钥传送给第三方以安装在电子设备上,其中,服务器解密密钥用于对加密形式的固件进行解密,并且其中,服务器解密密钥使用FPK来加密。
有利地,该方法使得固件能够以加密的形式提供给电子设备,使得只有电子设备能够解密固件。这确保了固件创建者,例如原始装备制造商(OEM)可以确信专有固件将保持机密。参与电子设备的制造和编程的其他方不能篡改固件。
有利的是,固件密钥对是基于对PUF的挑战和响应的,这意味着在制造期间不需要将秘密信息添加到设备中,并且不需要将私密密钥存储在设备的存储器中。
该方法还可以包括接收固件并加密固件以生成加密形式的固件。该方法还可以包括接收加密形式的固件。
使得对加密形式的固件被签名可以包括对加密形式的固件进行签名。使得对加密形式的固件被签名可以包括将加密形式的固件传输到可信权威机构,并且从可信权威机构接收签名的加密形式的固件。对加密形式的固件进行签名确保了可以检测到在安装到设备上之前对固件的任何篡改,从而增强了对下游安全措施的信心。
该方法还可以包括从可信权威机构接收FPK。
该方法还可以包括使用FPK来加密服务器加密密钥。
服务器加密密钥可以与服务器解密密钥相同。
安全模块还可以配置成基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),注册密钥对包括注册公共密钥(EPK)和注册私密密钥(ESK)。该方法还可以包括向第三方传送设备标识符,该设备标识符包括EPK的函数。该函数可以包括密写散列函数。有利地,设备标识符被链接到基于对PUF的挑战和响应的EPK和ESK,并且因此在制造期间不需要将秘密信息添加到设备中。
可以从可信权威机构接收设备标识符。
该方法可以进一步包括,在已经将固件安装在电子设备上之后,接收设备标识符并且向可信权威机构登记设备标识符。通过向可信权威机构登记设备标识符,提高了安全性,因为没有登记设备标识符的其他方不能与电子设备通信。具体来说,设备标识符变得与该服务器相关联,并且因此在没有服务器授权的情况下,其他第三方不能与该设备进行交互。
根据本发明的一个方面,提供了一种计算机可读介质。计算机可读介质具有存储在其上的指令,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于向电子设备提供固件的方法。
根据本发明的一个方面,提供了一种计算装置。该计算装置包括一个或多个处理器。该计算装置还包括其上存储有指令的一个或多个存储器,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于向电子设备提供固件的方法。
根据本发明的一个方面,提供了一种用于认证电子设备的固件的方法。该电子设备包括具有物理不可克隆函数(PUF)的安全模块。安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),其中,固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),并且其中,注册密钥对(EPK、ESK)包括注册公共密钥(EPK)和注册私密密钥(ESK)。该方法包括通过安全通信信道从服务器接收加密的固件,该固件用于安装在电子设备上。该方法还包括使用权威机构密钥对的秘密权威机构密钥对加密的固件进行签名,权威机构密钥对包括公共权威机构密钥和秘密权威机构密钥,其中,公共权威机构密钥安全地嵌入在电子设备中。该方法还包括启动将签名的加密固件传送给第三方以安装在电子设备上。该方法还包括通过安全通信信道向服务器发送查找表,该查找表指示FPK和用于识别电子设备的相关联设备标识符,该设备标识符包括EPK的函数。该函数可以包括密写散列函数。
有利的是,这样的一种方法使得电子设备能够接收由可信权威机构授权的固件,而该可信权威机构无权访问未加密形式的固件。此外,不需要以未加密的形式将秘密信息添加到电子设备中。
该方法还可以包括从安全模块提取设备标识符。该方法还可以包括从安全模块提取FPK。该方法可以包括接收设备标识符和FPK。
该方法还可以包括接收向服务器登记设备标识符的请求。通过向服务器登记设备标识符,提高了安全性,因为没有向其登记设备标识符的其他方不能与电子设备通信。该方法还可以包括在查找表中输入设备标识符和FPK。
根据本发明的一个方面,提供了一种计算机可读介质。计算机可读介质具有存储在其上的指令,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于认证电子设备的固件的方法。
根据本发明的一个方面,提供了一种计算装置。该计算装置包括一个或多个处理器。该计算装置还包括其上存储有指令的一个或多个存储器,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行如本文所述的用于认证电子设备的固件的方法。
根据本发明的一个方面,提供了一种方法,该方法由电子设备执行。该电子设备包括具有物理不可克隆函数(PUF)的安全模块。安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该方法包括使用FSK解密加密的服务器解密密钥,其中,服务器解密密钥使用FPK来加密。该方法还包括使用安全地嵌入在电子设备中的公共权威机构密钥来验证加密形式的固件已经被可信权威机构认证。该方法还包括使用解密的服务器解密密钥来解密用于安装在电子设备上的固件。
有利的是,将固件安全地提供给电子设备。在制造期间,没有秘密信息存储在电子设备上。此外,由于安全性的一部分基于的是对安装在电子设备中的PUF的挑战和响应,所以相关的私密密钥始终不需要存储在电子设备上,而是可以根据需要动态地重新生成。
根据本发明的一个方面,提供了一种计算机可读介质。该计算机可读介质上存储有指令,当由一个或多个处理器执行时,这些指令使得一个或多个处理器执行一种方法,该方法包括:使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥使用FPK来加密;使用安全地嵌入在电子设备中的公共权威机构密钥来验证加密形式的固件已经被可信权威机构认证;以及使用解密的服务器解密密钥来解密用于安装在电子设备上的固件。
根据本发明的一个方面,提供了一种电子设备。该电子设备包括具有物理不可克隆函数(PUF)的安全模块。安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。该电子设备还包括一个或多个处理器,一个或多个处理器包括安全模块或通信地耦合到安全模块,其中,一个或多个处理器配置成:使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥使用FPK来加密;使用安全地嵌入在电子设备中的公共权威机构密钥来验证加密形式的固件已经被可信权威机构认证;以及使用解密的服务器解密密钥来解密用于安装在电子设备上的固件。
根据本发明的一个方面,提供了一种系统。该系统用于向电子设备提供固件。该电子设备包括具有物理不可克隆函数(PUF)的安全模块。安全模块配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),其中,固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),并且其中,注册密钥对(EPK、ESK)包括注册公共密钥(EPK)和注册私密密钥(ESK)。该系统包括可信权威机构和服务器。可信权威机构配置成从服务器接收加密的固件。可信权威机构还配置成使用权威机构密钥对的秘密权威机构密钥对加密的固件进行签名,权威机构密钥对包括公共权威机构密钥和秘密权威机构密钥,其中,公共权威机构密钥安全地嵌入在电子设备中。可信权威机构还配置成向服务器发送签名的加密固件。可信权威机构还配置成向服务器发送设备标识符,该设备标识符用于识别电子设备,该设备标识符包括EPK的函数。可信权威机构进一步配置成将FPK发送到服务器。服务器配置成将加密形式的固件发送到可信权威机构以进行签名,该固件使用服务器加密密钥来加密。服务器还配置成从可信权威机构接收经签名的加密固件。服务器还配置成从可信权威机构接收设备标识符和FPK。服务器还配置成服务器解密密钥使用FPK加密,该服务器解密密钥用于解密加密的固件。服务器还配置成将设备标识符、加密的服务器解密密钥和签名的加密固件传送给第三方,以安装在电子设备上。
用于执行本文所述的这样的方法的计算机程序和/或代码/指令可以在计算机可读介质或计算机程序产品上提供给装置,比如计算机。计算机可读介质可以是例如电子系统、磁系统、光系统、电磁系统、红外系统或半导体系统,或者用于数据传输的传播介质,例如用于通过互联网下载代码的传播介质。替代地,计算机可读介质可以采取物理计算机可读介质的形式,比如半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、以及光盘,比如CD-ROM、CD-R/W或DVD。
根据本文给出的教导,本发明所属领域的技术人员将会想到本文阐述的本发明的许多修改和其他实施例。因此,将会理解,本文的公开不限于本文公开的具体实施例。此外,尽管本文提供的描述在元素、步骤和/或功能的某些组合的上下文中提供了示例实施例,但是在不脱离本发明的范围的情况下,可以由替代实施例来提供。
附图说明
参考附图,仅以示例的方式进一步描述本发明的实施例,其中:
图1示出了在整个详细描述中仅出于示例性目的而提及的各方的示意图;
图2示出了通信系统;
图3A示出了电子设备的框图;
图3B示出了微控制器的示意图;
图4A示出了安全模块的框图;
图4B示出了PUF模块的框图;
图5示出了计算装置的框图;
图6A示出了用于向电子设备提供固件的方法;
图6B示出了向电子设备提供固件的另一种方法;
图7A示出了流程图;
图7B示出了流程图;
图8A示出了流程图;
图8B示出了流程图;
图9A示出了流程图;
图9B示出了流程图;以及
图10示出了计算机可读介质的框图。
在整个说明书和附图中,相同的附图标记指的是相同的零件。
具体实施方式
虽然下面描述了各种实施例,但是本发明不限于这些实施例,并且这些实施例的变型可以落入仅由所附权利要求限定的本发明的范围内。
在下文中,将提及IoT设备的安全性和注册。然而,本领域技术人员将理解的是,本文描述的方法、系统和装置适用范围更广。
在下文中,描述了向电子设备安全地提供固件的方法。本文描述的方法使得固件能够被安装在电子设备中,而不需要所涉及的各方在电子设备的安全性方面特别地相互信任。为了便于解释,几个相关方(例如原始装备制造商和IoT中枢)的示例场景在图1中进行描述,并在整个具体实施方式中引用。然而,如本领域技术人员将理解的,本文描述的方法更普遍地适用。
如在阅读详细描述时将会理解的,电子设备可以被提供有物理不可克隆函数。物理不可克隆函数(也称为物理上不可克隆函数,或PUF)是用于认证和私密密钥存储的密写原语,不需要安全EEPROM和其他昂贵的硬件。PUF不是将秘密存储在数字存储器中,而是从一个或多个部件的独特物理特性获取秘密,独特物理特性常常是在制造期间引入的。已知的PUF是基于这样的现象,比如激光通过其中悬浮有微小二氧化硅球的硬化环氧树脂片的散射,或者一些电路中门延迟的制造可变性。
在下文中,术语物理上不可克隆函数、物理不可克隆函数和PUF可互换地使用。PUF包括执行函数运算的对象,即当用某个输入查询时,PUF产生可测量的输出。PUF不是数学意义上的真正函数,因为PUF的输入可能有一个以上的可能的输出。典型地,对PUF的输入被称为“挑战”,并且PUF的最终输出被称为“响应”。施加的挑战及其测量的响应被称为“挑战-响应对”(CRP)。本文使用的术语“挑战”理解为是指提供给PUF的选定输入(例如,阵列的特定单元的选择、特定电压的施加等等),并且本文使用的术语“响应”是指PUF的相应输出。
只要PUF适用于电子设备,任何合适的PUF都可以与本文描述的系统和方法一起使用。例如,PUF可以是SRAM PUF。SRAM PUF使用SRAM的阈值电压的随机差异来创建唯一的挑战响应对。
合适的PUF的另一个示例是延迟PUF,该延迟PUF利用芯片上的线路或门的延迟的随机变化。给定输入挑战,在电路中设置竞争条件,并且比较沿着不同路径传播的两个跃迁,看哪一个先出现(响应)。
在PUF的其他示例中,量子限制可以发挥作用。例如,PUF可以由几个共振隧穿二极管形成。
在PUF的其他示例中,通过量子隧道势垒的量子隧道效应可以发挥作用。在2020年4月8日提交的名称为“Device Identification With Quantum Tunnelling Currents(利用量子隧道电流的设备标识)”并公开为WO2020/212689A1的第PCT/GB2020/050918号国际专利申请中描述了PUF的一个示例。根据示例,PUF可以包括具有多个可单独寻址的单元的阵列。每个单元可以包括具有量子隧道势垒的基本电路。单元可以包括晶体管形式的第一电子部件和第二电子晶体管形式的第二电子部件。第一晶体管的源极、漏极和主体可以保持在相同的电势(例如,接地)。第二晶体管的源极、漏极和主体也可以都保持在相同的电势。第一晶体管在晶体管的沟道与栅极端之间具有第一量子隧道势垒。第二晶体管在晶体管的沟道与栅极端之间具有第二量子隧道势垒。由于在制造期间引入的晶体管的固有差异,第一量子隧道势垒唯一地表征第一晶体管,并且第二量子隧道势垒唯一地表征第二晶体管。单元可以使用行解码器和列解码器来选择,以便在第一量子隧道势垒与第二量子隧道势垒之间施加电势差。电势差可以低于阈值电压,对于该阈值电压,电流将经典地能够通过第一量子隧道势垒抑或第二量子隧道势垒。因此,一旦选择了单元,量子隧穿电流就可以流过第一晶体管的第一量子隧穿势垒,并且量子隧穿电流可以流过第二晶体管的第二量子隧穿势垒,而经典电流可能不流动。可以比较和放大量子隧道电流。单元和施加的电压的组合可以被认为是挑战,并且输出量子隧道电流可以被认为是响应。
在其他示例中,PUF不需要基于电子部件,只要它能够以电子方式交互就可以。
在下文中,将提及几个公共密钥对,也称为非对称密钥对。公共密钥对包括可以与其他方共享的公共密钥和不共享的相应私密密钥。公共密钥是公共值,其不需要保密,但应该存储起来,以便它不能被篡改。在示例中,公共密钥可以存储在电子设备中的ROM中,以确保它不能以任何方式被重写或修改。本文描述的公共密钥对通常有名称。例如,一个公共密钥对被描述为包括“固件公共密钥”(FPK)和相应的“固件私密密钥”(FSK)的“固件公共密钥对”。另一个公共密钥对被描述为包括“注册公共密钥”(EPK)和相应的“注册私密密钥”(ESK)的“注册公共密钥对”。另一个公共密钥对被描述为包括“公共权威机构密钥”(PAK)和相应的“秘密权威机构密钥”(SAK)的“权威机构密钥对”。读者将会理解,这些公共密钥对的名称仅仅是为了区分公共密钥对。
本文描述的公共密钥对可以与任何合适的公共密钥密码系统(例如RSA或基于椭圆曲线的密写系统)结合使用。本文描述的许多公共密钥对用于数字签名。数字签名是验证数字消息或文档真实性的数学方案。在本文的示例中,可以使用任何合适的数字签名方案,例如RSA、ElGamal签名方案或ECDSA。
本文描述的服务器/服务器系统/计算设备中的几个服务器/服务器系统/计算设备也被赋予了比如“权威机构服务器系统”或“密钥管理服务器”的名称。读者将会理解,这样的名称仅旨在区分不同的计算装置。
图1示出了描绘可参与电子设备100的安全创建、供应和部署的商业(或其他)方的图示。本领域技术人员将理解,可以设想其他设置,并且这个附图仅用于示例性目的。以高层次,安全模块进行制造,然后提供给原始装备制造商(OEM)160(典型地,但不是必须地,作为微控制器的一部分),用于安装在电子设备100中。然后,OEM 160在编程公司180的帮助下,可以采取步骤来将固件安装在电子设备100上,并最终准备电子设备100以进行部署。一旦部署,电子设备100就可以与通过IoT中枢170提供的服务通信。
参考该图,权威机构140可以具有制造能力150(或者可以与可信制造商密切合作)来创建安装在电子设备100中的安全模块110。下面将进一步描述安全模块和电子设备的示例。
为了当前讨论的目的,安全模块110包括图1中未示出的物理不可克隆函数(PUF),PUF能运算以建立公共密钥对。公共密钥对包括可以与其他方共享的公共密钥和不共享的相应私密密钥。公共密钥对也称为非对称密钥对。公共密钥和私密密钥可以基于对PUF的挑战和响应。因此,安全模块110能够建立公共密钥对,而不需要由制造商150或任何下游方在其中添加任何私密密钥。
出于当前讨论的目的,安全模块110配置成基于相应的至少两个挑战响应对来建立至少两个密钥对。有利的是,利用基于PUF的公共密钥对,密钥不需要存储在电子设备上,而是可以在由安全模块提供的安全周界/信任区域内从PUF动态地重新生成。因此,即使电子设备被黑客攻击,也不会有存储在那里的私密密钥被窃取。
固件公共密钥(FPK)和相应的固件私密密钥(FSK)基于第一CRP,并用于安全地向电子设备提供固件,如将进一步描述的。固件密钥对用于使OEM 160能够为电子设备100准备固件,即使第三方编程公司180以某种方式受到损害。
注册公共密钥(EPK)和相应的注册私密密钥(ESK)基于第二CRP。EPK用于为电子设备提供标识符。设备标识符基于EPK的函数。虽然在本文描述的许多示例中,函数是加密散列函数,但不一定是这种情况并且可以使用另一个函数。比如SHA-1或MD5之类的密写散列函数广泛用于密写术中。伪随机比特串由散列函数生成。散列函数H是单向函数,它将任意长的比特串m作为输入,并输出固定长度n的比特串。散列函数的一个基本要求是散列值H(m)易于计算,这使得硬件和软件实现都能实践。如果散列函数H是抗冲突的,也就是说,如果在计算上找两个不相同的比特串m和m’(其中,H(m)=H(m^'))不可行,则散列函数H为密写散列函数。密写散列函数的示例包括MD5、SHA-1、SHA-2、SHA-3、RIPEMD-160、BLAKE2和BLAKE3。
通过使用PUF向设备安全地提供固件来为电子设备提供标识符,电子设备具有构建公共密钥基础设施和安全地连接到IoT服务的所有要求。这样的注册过程在2021年4月12日提交的标题为“Interim Root-Of-Trust Enrolment And Device-Bound Public KeyRegistration(临时信任根注册和设备绑定公共密钥注册)”的申请号为GB 2105185.9的共同未决英国专利申请和2021年4月12日提交的标题为“Secure Root-Of-Trust EnrolmentAnd Identity Management Of Embedded Devices(嵌入式设备的安全信任根注册和身份管理)”的申请号为GB 2105183.4的共同未决英国专利申请中有所描述。这些相关申请中的每一者的内容通过引用全部并入本文,用于所有目的。
出于本公开的目的,电子设备100可以理解为由低级电路(比如微控制器(MCU))组成。电子设备100可以替代地理解为包括更高级别的电路,例如用于感测湿度或温度的电路,或者可以理解为更大规模的电子设备,比如智能电话或计算机。制造商150可以只制造安全模块110,或者可以制造其中安装有安全模块110的微控制器。
如下面将进一步解释的,权威机构140可以与公共密钥对相关联。也就是说,权威机构140可以与公共密钥(以下称为公共权威机构密钥PAK)和相应的私密密钥(以下称为秘密权威机构密钥SAK)相关联。SAK不与任何其他方共享,而PAK可以更广泛地共享。例如,PAK可以压印在安全模块110中,例如压印在安全存储器中。替代地,如果制造商150制造包括安全模块的微控制器(或其他电子设备),则PAK可以安装在安全模块外部的电子设备的其他只读存储器(ROM)中。出于安全目的,重要的是存储在安全模块/电子设备中的PAK不能被重写或修改,以保持其完整性。安全模块110可以在稍后阶段使用PAK来验证所接收的信息已经使用SAK进行了签名,并且因此已经得到权威机构140批准。其他非秘密信息也可以被压印在安全模块/电子设备中,例如根证书,该根证书由权威机构140使用SAK签名并指示PAK与权威机构140相关联。权威机构140不向安全模块110提供秘密信息。权威机构140或制造商150没有从安全模块110提取秘密信息。
也向安全模块/电子设备提供初始注册固件(IEF),以便能够从安全模块110提取设备标识符和一个或多个公共密钥。
权威机构140可以拥有和/或操作包括一个或多个服务器的服务器系统130。虽然图1的权威机构服务器系统130被示为具有三个服务器,但是本领域技术人员将会理解,服务器系统130可以包括更多或更少的服务器。
机构系统的至少一个服务器配置成使用SAK来对证书进行签名(关于这一点的更多信息将在下面进一步提供)。SAK也可以用来对固件进行签名。
权威机构服务器系统130的至少一个服务器配置成保有具有关于安全模块110(比如设备标识符)的信息的数据库。
权威机构服务器系统130的至少一个服务器配置成与由原始装备制造商(OEM)160操作的计算设备120安全地通信。
至少一个服务器配置成与IoT中枢170通信。IoT中枢是托管在云中的托管的服务,其充当IoT应用程序与其管理的电子设备之间双向通信的消息中枢。出于当前讨论的目的,本文描述的方法适于供应电子设备,使得它可以被部署准备好与IoT中枢170通信。
仅为了清楚起见,服务器系统130的服务器有时在本文被称为“权威机构服务器”。
技术人员将理解,服务器系统130的至少一些功能可以作为云服务来提供。一个或多个服务器可以物理上位于权威机构140的外部。服务器系统130的权威机构服务器可以接收用于识别特定安全模块110的设备标识符,该设备标识符基于注册密钥对的注册公共密钥(EPK)的函数,该注册密钥对包括注册私密密钥(ESK)和EPK。服务器系统130配置成将设备标识符存储在数据库中。在一些示例中,服务器系统130也可以,但不是必须,接收用于特定安全模块110的EPK。
根据一些实施例,服务器系统130还可以接收固件密钥对的固件公共密钥(FPK),该固件密钥对包括固件私密密钥(FSK)和FPK。服务器系统130可以将设备标识符和相应的FPK存储在数据库中。
一旦服务器系统130接收并存储了安全模块110的设备标识符,就将安全模块110(可能已经安装在微控制器中)提供给OEM 160。OEM典型地可以购买一批这样的安全模块来安装在由OEM 160制造的几个电子设备100中。
OEM 160还可以访问能够与权威机构140的服务器系统130安全通信的计算装置120。为了便于参考,由OEM操作的计算装置120在下文中被称为“密钥管理服务器”。虽然术语“密钥管理服务器”以单数使用,但是本领域技术人员将会理解,计算装置120的功能可以在多个计算设备之间共享,并且因此“密钥管理服务器”应该理解为也指具有期望功能的多个计算设备(包括一个或多个服务器/计算设备的密钥管理服务器系统)。
密钥管理服务器120(以下称为KMS120)在一些情况下可以被认为是权威机构服务器系统130的另一个权威机构服务器,尽管是OEM 160能够与之直接交互的服务器。特别地,KMS120能够与权威机构服务器系统130进行安全通信,并因此可以得到权威机构140证实供OEM使用。
密钥管理服务器120可以包括提供给OEM 160用于本地操作的物理服务器。例如,OEM 160可以安排从权威机构140获得物理KMS120。权威机构140可以生成并记录用于识别要提供给OEM 160的特定KMS实例120的KMS标识符。权威机构140可以在KMS120内部的硬件安全模块(HSM)中生成KMS公共密钥对,提取KMS公共密钥对中的KMS公共密钥,并使用SAK来对证书签名,以将KMS标识符与KMS公共密钥和KMS软件中的证书相关联。权威机构140还可以在KMS120中嵌入将PAK与权威机构140相关联的根证书,以及将使KMS能够与权威机构服务器系统130的权威机构服务器连接的URL。然后可以将KMS120物理地转移到OEM 160。KMS120可以随后启动与服务器系统130的安全通信(例如,TLS通信)。服务器系统130可以通过出示由SAK签名的TLS证书和链并执行TLS服务器认证来进行认证。KMS120然后可以使用将PAK与权威机构140相关联的硬编码根证书来验证证书。KMS120可以通过出示其证书(由权威机构140使用SAK签名)并执行TLS客户端认证来向权威机构服务器认证。权威机构140可以使用对应于用于签署安装在KMS中的证书的SAK的根公共密钥(PAK)来验证证书上的签名。技术人员将会理解,公共权威机构密钥用于证实KMS120可以与安装到安全模块110中的公共权威机构密钥相同或不同。
与提供给OEM 160用于本地操作的定制物理服务器相反,密钥管理服务器120可以包括由OEM 160操作的计算装置120,但是其上提供有用于安全网关的定制软件,用于与权威机构140的服务器系统130通信。定制软件具有平台无关性,以便于部署,并可以由OEM160容易地安装和操作。定制软件包括一种机制(公共密钥),由此它可以向服务器系统130认证。
OEM 160可以使用KMS120来登记一个或多个接收到的安全模块。具体而言,KMS120可以与电子设备的安全模块110通信以提取设备标识符,该设备标识符包括EPK的函数。KMS120可以打开与权威机构服务器系统130的安全通信信道,以向可信权威机构140登记KMS实例120与设备标识符之间的关联。权威机构140可以更新本地数据库,并且告知已经成功登记了设备标识符的KMS120,并且可以授予KMS120与和该设备标识符相关联的电子设备进行通信的特定许可。
OEM 160可以使用KMS120根据本文描述的方法安全地向电子设备提供固件。固件可以包括用于控制电子设备硬件的低级指令。固件可以包括一个或多个根证书,用于按照在2021年4月12日提交的标题为“Interim Root-Of-Trust Enrolment And Device-BoundPublic Key Registration(临时信任根注册和设备绑定公共密钥注册)”的申请号为GB2105185.9的共同未决英国专利申请和2021年4月12日提交的标题为“Secure Root-Of-Trust Enrolment And Identity Management Of Embedded Devices(嵌入式设备的安全信任根注册和身份管理)”的申请号为GB 2105183.4的共同未决英国专利申请中描述的方法注册设备。固件可以包括KMS120的标识符,电子设备的设备标识符向KMS120登记。例如,标识符可以包括统一资源定位符(URL),电子设备将与该URL进行通信以联系KMS120。固件可以包括用于启动安全连接的指令,该安全连接比如为与由URL标识的计算装置/服务器的TLS连接。固件可以包括证书命名结构的细节,使得电子设备能够解读接收到的证书。固件还可以包括用于建立证书签名请求(CSR)的细节。证书签名请求通常包含应为其颁发证书的公共密钥、标识信息(比如设备标识符)和完整性保护(如数字签名)。
密钥管理服务器120也能够与一个或多个电子设备100通信。以这种方式,一个或多个电子设备100可以向OEM 160注册。如将在本文描述的,KMS120可以用于便于电子设备100上固件的安全安装。KMS120可以用于将设备标识符与特定的电子设备100相关联。KMS120可以用于对证书签名。一旦固件被安装在电子设备上,就可以建立起信任链,以便向OEM注册该设备,并最终使该设备准备好部署用于通过IoT中枢安全使用。
KMS120还可以用于安全地向电子设备提供用于连接到IoT中枢170所需的信息。例如,KMS120可以配置成直接或经由服务器系统130与IoT中枢通信,以向IoT中枢提供针对每个登记的电子设备100的设备证书。KMS120可以配置成向电子设备100提供IoT根证书和IoT端点,以使得该设备能够与IoT中枢170通信。
电子设备100可以部署有它们与IoT中枢170通信所需的所有信息。
图2更一般地示出了包括图1中呈现的硬件设备中的许多硬件设备的通信系统。图2特别地示出了通信网络200、具有安全模块110的示例电子设备100、可以由例如OEM 160操作的密钥管理服务器120、权威机构服务器系统130、以及可以由例如IoT集线器170操作的计算设备220。通信网络200可以是任何合适的通信网络,比如互联网。在一些示例中,网络200可以包括广域网(WAN)。
电子设备100可以采取任何合适的形式,并可以包括用于执行如本文描述的方法的任何合适的计算装置。例如,电子设备可以是能够处理和存储的任何计算设备,比如个人计算机、服务器、膝上型计算机或其他这样的机器。电子设备100可以包括IoT设备。电子设备可以包括用于安装在更大设备中的微控制器单元(MCU)。电子设备100可以直接或经由网络200与其他设备通信。例如,电子设备100可以经由物理连接或者经由网络200与KMS120通信。一旦部署了电子设备100,设备100就可以通过网络200与计算设备220通信。电子设备可以通过安全连接,例如TLS连接,与KMS120和/或计算设备220通信。
KMS120可以包括任何合适的计算装置,比如下面进一步讨论的计算装置500。KMS120可以包括服务器集群或单个设备。KMS120的功能可以用在许多不同类型的数据处理环境中,许多不同类型的数据处理环境包括分布式数据处理环境、单个数据处理设备等。
KMS120能够经由网络200建立与权威机构服务器系统130的安全连接,并还能够经由网络200或者在一些情况下经由比如有线连接的直接连接与电子设备100通信。KMS120配置成存储与电子设备100相关的信息,比如标识电子设备100的安全模块110的设备标识符和一个或多个公共密钥(比如电子设备100的EPK)。附加地或替代地,KMS120可以配置成与权威机构服务器系统130的数据库210通信以获得这样的信息。KMS120还配置成对证书签名。
权威机构服务器系统130包括一个或多个服务器,并包括数据库210。权威机构服务器系统130的一个或多个权威机构服务器配置成代表权威机构140对证书签名,例如证实KMS120得到权威机构140信任或者对用于安装在电子设备100上的固件签名。数据库210配置成存储关于电子设备100的信息,比如标识电子设备100的设备标识符,以及在一些示例中,电子设备100的固件公共密钥FPK。数据库210还可以配置成存储关于KMS120的信息。例如,数据库210可以包含将一批设备标识符与特定KMS120相关联的信息,并可以用于授权KMS120仅与那些与其相关联的设备标识符进行交互。
计算设备220可以包括许多连接的设备(例如在分布式计算环境中)或者单个计算设备。
图3A示出了根据示例的电子设备100的框图。例如,电子设备100可以是IoT设备。本领域技术人员将会理解,可以使用图3A所示的其他架构。
参考该图,电子设备100包括安全模块110、一个或多个CPU处理器302、一个或多个存储器304、传感器模块306、通信模块308、端口310和电源312。部件302、304、306、308、310、312中的每一者使用各种总线互连。CPU 302可以处理用于在电子设备100内执行的指令,包括存储在存储器304中的、经由通信模块308或经由端口310接收的指令。
存储器304用于在电子设备100内存储数据。一个或多个存储器304可以包括一个或多个易失性存储单元。一个或多个存储器可以包括一个或多个非易失性存储单元。一个或多个存储器304也可以是另一种形式的计算机可读介质,比如磁盘或光盘。一个或多个存储器304可以为电子设备100提供大容量存储。用于执行本文描述的方法的指令可以存储在一个或多个存储器304中。
通信模块308适于在处理器302与其他系统之间发送和接收通信。例如,通信模块308可以用于经由比如互联网的通信网络200发送和接收通信。通信模块308可以使电子设备100能够通过比如WiFi、蓝牙、NFC等多种协议中的任何一者与其他设备/服务器通信。
端口310适于接收例如包含要由处理器302处理的指令的非暂时性计算机可读介质。端口310可以用于例如电子设备100与密钥管理服务器120之间的有线通信。
传感器模块306可以包括用于感测参数(比如温度、湿度或任何其他参数)的一个或多个传感器。
处理器302配置成例如从传感器模块306、安全模块110或通信模块308接收数据。处理器302还配置成访问存储器304,并根据从所述存储器304、从通信模块308或连接到端口310的计算机可读存储介质接收的指令和/或信息行动。
图3B示出用于电子装置100的另一实例的架构,即,可以安装在较大电子装置内的微控制器单元(MCU)315。本领域技术人员将理解,可以使用其他MCU架构。
图3B的MCU 315包括CPU 320、用户存储器322和引导随机存取存储器328。CPU320、引导ROM 328和用户存储器322可以经由代码总线324进行通信。CPU 320、引导ROM 328和用户存储器322可以连接到系统总线326,系统总线326也可以连接到多个外围设备A、B和C(330、332和334)以及安全模块110。在MCU 315中仅示出了与安全性相关的部件。技术人员将会理解,MCU 315可以具有更多或更少的部件。例如,MCU 315可以具有更多的外围设备和系统部件。
图4A示出了根据示例的安全模块110的框图。安全模块110可以被认为是将其内的安全部件与电子设备100的其他部件分开的信任区。安全模块110包括PUF模块402、密写速器404和安全存储器406。本领域技术人员将理解,其他架构也是可能的。安全模块110连接到电子设备100的系统总线。
PUF模块410包括PUF和与PUF交互所需的任何电路。特别地,PUF模块可以从密写加速器404接收信号,并提供适当的响应。密写加速器404包括用于执行密写操作以及用于与PUF模块402和安全存储器406交互的专用处理单元。
安全存储器配置成存储秘密信息,比如由PUF模块402产生的密钥和/或根证书。CPU 320控制PUF模块402、安全模块110内的安全外围设备和安全存储器所需的指令包含在引导ROM 328内,该引导ROM 328是针对系统的不可变引导过程的一部分。
图4B示出了根据示例的PUF模块402的功能部件。PUF模块402包括PUF 450、模拟前端(AFE)452、后处理引擎454和RISC-V核心456。
本领域技术人员将会理解,PUF 450可以是任何合适的PUF。
模拟前端(AFE)452包括用于与PUF交互的模拟信号调节电路结构。例如,AFE可以与PUF 450交互以建立原始“指纹”。后处理引擎454配置成校正AFE 452的输出,并通过进一步处理AFE的输出来提供进一步的隐私增强。RISC-V核心456是执行来自PUF 450的数据的后处理(例如,数据的纠错)的CPU核心。RISC-V核心提供允许PUF模块402容易地连接到外部微控制器的界面,尽管可以利用其他CPU核心。
图5是计算装置500的框图。例如,计算装置500可以包括计算设备、服务器、移动或便携式计算机或电话等。计算装置500可以分布在多个连接的设备上。计算装置500可以适于用作密钥管理服务器120、权威机构服务器系统130的权威机构服务器、或用于例如IoT中枢的服务器220。本领域技术人员将会理解,可以使用图5所示的其他架构。
参考该图,计算装置500包括一个或多个处理器510、一个或多个存储器520、多个任选的用户界面(比如视觉显示器530和虚拟或物理键盘540)、通信模块550,以及任选的端口560和任选的电源570。部件510、520、530、540、550、560、和570中的每一者使用各种总线互连。处理器510可以处理用于在计算装置500内执行的指令,包括存储在存储器520中、经由通信模块550或经由端口560接收的指令。
存储器520用于在计算装置500内存储数据。一个或多个存储器520可以包括一个或多个易失性存储单元。一个或多个存储器可以包括一个或多个非易失性存储单元。一个或多个存储器520也可以是另一种形式的计算机可读介质,比如磁盘或光盘。一个或多个存储器520可以为计算装置500提供大容量存储。用于执行本文描述的方法的指令可以存储在一个或多个存储器520中。
装置500包括多个用户界面,包括视觉装置(比如视觉显示器530)和虚拟或专用用户输入设备(比如键盘540)。
通信模块550适于在处理器510与远程系统之间发送和接收通信。例如,通信模块550可以用于经由比如互联网的通信网络200发送和接收通信。
端口560适于接收例如包含要由处理器510处理的指令的非暂时性计算机可读介质。
处理器510配置成接收数据、访问存储器520,并根据从所述存储器520或连接到端口560的计算机可读存储介质、从通信模块550或从用户输入设备540接收的指令来行动。
计算装置500还可以包括图5中未示出的硬件安全模块(HSM),以便安全地存储密写密钥。例如,对于用作密钥管理服务器120的计算装置500,可能需要HSM来存储用于对证书签名的一个或多个私密密钥,或者用于加密/解密固件的服务器加密密钥和服务器解密密钥。例如,对于用作权威机构服务器系统130的权威机构服务器的计算装置500,可能需要HSM来存储一个或多个私密密钥,比如权威机构密钥对的秘密权威机构密钥(SAK)。本领域技术人员将会理解,不需要HSM来存储私密密钥,并且其他安全安排也是适用的。例如,计算装置可以访问基于云的HSM。
图6A示出了根据示例的用于将固件安全地提供到电子设备100上的方法。在这个示例中,并且参考图1,OEM 160试图在电子设备100上安装固件,并且为此目的使用了第三方编程公司180。OEM 160可以访问能够与权威机构服务器系统130进行安全通信的密钥管理服务器120。
权威机构140/制造商150配置成生产安全模块110(并任选地将其安装在MCU 315内)。
安全模块110包括PUF 450。安全模块110配置成基于对PUF的第一挑战和响应来生成固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。安全模块110还配置成基于对PUF的第二挑战和响应来生成注册密钥对(EPK、ESK),该注册密钥对包括注册公共密钥(EPK)和注册私密密钥(ESK)。私密密钥FSK和ESK不会离开安全模块110。实际上,由于这些私密密钥基于来自PUF 450的响应,所以它们不需要存储在存储器中,并且可以利用适当的输入从PUF 450动态地重新生成。
安全模块110配置成生成设备标识符(图6A中的“设备ID”),该标识符将用于识别最终安装了安全模块110的电子设备100。基于注册公共密钥EPK的函数,并且优选地是非线性函数,来确定设备标识符。通过将设备标识符基于EPK的函数,安全模块110的身份基于安全模块110的物理属性,并因此不能被欺骗。
根据示例,可以通过将加密散列函数应用于EPK来确定设备标识符。
根据图6A中的示例,通过将加密散列函数应用于注册公共密钥来生成设备标识符。
参考图6A,在步骤602,在制造期间,公共权威机构密钥PAK提供给安全模块。例如,PAK可以存储在安全模块110的安全存储器406中。在示例中,安全存储器406可以是只读存储器(ROM)。ROM不能以任何方式重写或修改,并且因此将PAK存储在ROM中可以确保它不会被篡改。公共权威机构密钥PAK是权威机构密钥对的公共密钥,该权威机构密钥对包括秘密权威机构密钥SAK和PAK。虽然只有权威机构140(或权威机构服务器系统130的服务器)知道秘密权威机构密钥SAK,但是PAK可以广泛共享。本领域技术人员将会理解,虽然在图6A中,PAK是由服务器系统130提供给安全模块110的,但是PAK可以由一些其他实体提供给安全模块,例如,PAK可以由可信的制造商150嵌入在安全模块中。安全模块110还可以设置有包括基本软件的初始注册固件,该基本软件用于执行所需安全功能,比如能够提取设备标识符和一个或多个公共密钥,以及比如启动与本地存储的端点(例如URL)的安全连接。此外,本领域技术人员将会理解,尽管在图6A的步骤602中公共权威机构密钥PAK提供给安全模块110,但是该PAK也可以提供给电子设备100的其他部分,并安全地嵌入到电子设备100中。
在604,权威机构服务器系统130获得用于安全模块110的设备标识符和固件公共密钥FPK。设备标识符包括注册公共密钥EPK的散列。服务器系统130可以从设备提取设备标识符和FPK,或者可以从例如制造商150接收它们。
安全模块110可以是一批安全模块中的一个安全模块。服务器系统130可以相应地获得许多设备标识符和相应的FPK。在606,服务器系统130将设备ID和相应的FPK存储在数据库210中以供以后参考。
一旦服务器系统130获得并存储了设备标识符和相应的FPK,就可以将安全模块110(或包含安全模块的MCU 315)运送到OEM 160以安装在电子设备100中。
在参考图6A描述的场景中,OEM 160设计用于安装在电子设备100上的固件。固件还可以包括由OEM自签名的一个或多个根证书,以使得能够在电子设备注册期间建立信任链。固件可以包括用于控制电子设备100的硬件的低级指令。将固件提供给密钥管理服务器120,在步骤608,密钥管理服务器120生成用于加密固件的服务器加密密钥K。服务器加密密钥K可以是用于对称加密函数的密钥,或者可以是用于非对称加密函数的密钥。也就是说,服务器解密密钥(图6A中的“Inv(K)”)可以与服务器加密密钥K相同,也可以不同。在658,KMS120将密码散列函数应用于固件。这可以在生成608服务器加密密钥之前、期间或之后发生。
KMS120能够与权威机构服务器系统130进行安全通信,并且固件的散列被发送到服务器系统130。通过将固件的散列从KMS120发送到服务器系统130,固件本身不需要被传输,并且服务器系统130本身不能修改固件。在662,权威机构服务器系统130使用秘密权威机构密钥SAK对固件的散列进行签名。因此,将公共权威机构密钥PAK与对固件散列的签名一起使用的任何实体将能够验证固件散列已经得到服务器系统130签名。
然后将对固件散列的签名发送回KMS120。在660,KMS120使用服务器加密密钥K来加密固件和签名。
用于加密固件的服务器加密密钥对于不同的固件可以是相同的,也可以是不同的。例如,OEM 160可以为第一批电子设备产生第一固件,并可以为第二批电子设备产生第二固件,并可以使用相同的服务器加密密钥K来加密第一固件和第二固件两者,或者可以使用固件特定的加密密钥。此外,在一些示例中,对于OEM生产的每批电子设备100,可能存在不同的服务器加密密钥。
权威机构服务器系统130还将设备标识符(“设备ID”)和相应的FPK安全地传送给密钥管理服务器120。多个安全模块110的设备标识符和FPK可以单独地或成批地(例如以查找表的形式)传送给KMS120。
在614,KMS服务器解密密钥使用FPK加密Inv(K)。将加密的服务器解密密钥(在图6A中标为“Enc(FPK,Inv(K))”)和相应的设备标识符传送到编程公司180。例如,可以将包括多个设备标识符和相应的加密服务器解密密钥的查找表提供给编程公司180。服务器解密密钥用于解密固件和签名的散列。
然后将加密的固件、加密的签名和加密的服务器解密密钥发送到编程公司180,以安装在电子设备100上。
在616,对于给定的电子设备100,编程公司180将相应的加密服务器解密密钥安装到电子设备100上。编程公司还向电子设备100提供加密的固件用于安装。
包含安全模块110的电子设备100包含解密和安装固件所需的所有信息。由于加密的服务器解密密钥Enc(FPK,Inv(K))使用FPK来加密,所以电子设备100能够使用FSK来解密服务器解密密钥。由于对固件散列的签名使用SAK来签名,所以电子设备能够使用PAK来验证该签名。电子设备还能够使用服务器解密密钥Inv(K)来解密加密的固件。电子设备100还能够通过例如将散列函数应用于经解密的固件并与权威机构服务器系统130签名的固件进行比较,来检查签名是否对应于接收到的固件。基于验证,电子设备100可以在电子设备100上安装解密的固件。
任选地,在引导时,电子设备可以通过散列固件并使用签名检查散列来验证固件。以这种方式,每次电子设备引导时可以验证固件。
因此,图6A的方法论确保了在任何阶段都不需要以未加密的形式将秘密信息添加到电子设备100中(或在安装在电子设备100中之前添加到安全模块110中)。OEM 160可以确保提供给电子设备100的固件可以在安装到电子设备100上之前进行修改而不被检测到,这减少了完全信任例如第三方编程公司180的需要。权威机构服务器系统130也看不到固件,也没有机会修改固件,因为它只接收固件的散列。
任选地,编程公司180可以从电子设备100提取设备标识符(在618),并将这个设备标识符传送给KMS120,KMS120可以采取步骤向权威机构服务器系统登记设备标识符(在620)。权威机构服务器系统130然后可以通过例如将该信息存储在数据库210中来将设备标识符与KMS相关联。在其他示例中,设备标识符可以在从服务器系统130接收到它们之后由KMS120登记(606与614之间的箭头)。设备标识符的注册不需要以任何方式与向电子设备提供固件的方法相链接。例如,OEM 160可以由制造商150提供设备标识符文件,他们从该文件接收安全模块110/微控制器315,并可以手动地将设备标识符上传到KMS120用于注册。
向权威机构服务器系统130注册设备标识符确保了KMS120与所要求的设备标识符相关联,并充当进一步的安全检查。权威机构服务器系统130可以与许多密钥管理服务器通信,并且因此将设备标识符与KMS120相链接确保了正确的OEM 160正在供应和部署具有特定安全模块110的设备。
登记和主张设备标识符的过程可以如下工作。知道设备标识符的KMS 120可以与权威机构服务器系统130的权威机构服务器建立安全连接,例如TLS连接。KMS120然后可以通过TLS连接向权威机构服务器发送一个或多个设备标识符。服务器系统130可以使用存储在数据库210中的信息来验证一个或多个设备标识符。特别地,服务器系统130可以检查是否所有的设备标识符都对应于真实设备(即,它们在数据库210中具有对应的条目),以及是否所接收的设备标识符都没有被第二KMS先前主张过。如果检查成功,则服务器系统130可以更新数据库210,以指示主张设备标识符的KMS120与设备标识符相关联,即,KMS120“拥有”那些设备标识符。一旦该注册完成,就可以将成功指示发送回KMS120。成功指示可以例如使得KMS120能够与电子设备建立安全TLS连接,和/或可以使得设备标识符(或另外的图标)出现在KMS120上的用户界面中。然后,可以关闭KMS120与权威机构服务器系统130之间的安全连接。
图6B示出了根据示例的用于将固件安全地提供到电子设备100上的另一种方法。在这个示例中,并且参考图1,OEM 160试图在电子设备100上安装固件,并且为此目的使用了第三方编程公司180。OEM 160可以访问能够与权威机构服务器系统130进行安全通信的密钥管理服务器120。
安全模块110配置成生成设备标识符(图6B中的“设备ID”),该标识符将用于识别最终安装了安全模块110的电子设备100。基于注册公共密钥EPK的函数,并且优选地是非线性函数,来确定设备标识符。通过将设备标识符基于EPK的函数,安全模块110的身份基于安全模块110的物理属性,并因此不能被欺骗。
如图6A所示,在步骤602,在制造期间,将公共权威机构密钥PAK提供给安全模块(或微控制器的其他安全存储器)。
在604,服务器系统130获得用于安全模块110的设备标识符和固件公共密钥FPK。设备标识符包括注册公共密钥EPK的散列。服务器系统130可以从设备提取设备标识符和FPK,或者可以从例如制造商150接收它们。
安全模块110可以是一批安全模块中的一个安全模块。服务器系统130可以相应地获得许多设备标识符和相应的FPK。在606,服务器系统130将设备ID和相应的FPK存储在数据库210中以供以后参考。
一旦服务器系统130获得并存储了设备标识符和相应的FPK,就可以将安全模块110(或包含安全模块的MCU 315)运送到OEM 160以安装在电子设备100中。
如同图6A中描述的情形,在图6B的情形中,OEM 160设计用于安装在电子设备100上的固件。将固件提供给密钥管理服务器120,在步骤608,密钥管理服务器120生成用于加密固件的服务器加密密钥K。在610,KMS120使用服务器加密密钥K来加密固件
KMS120能够与服务器系统130进行安全通信,并且加密的固件被发送到服务器系统130,服务器系统130在612使用秘密权威机构密钥SAK对加密的固件进行签名。因此,将公共权威机构密钥PAK与签名的加密固件一起使用的任何实体将能够验证加密的固件已经得到服务器系统130签名。任选地,通过KMS120,将签名的加密固件发送到编程公司180。
权威机构服务器系统130还将设备标识符(“设备ID”)和相应的FPK安全地传送给密钥管理服务器120。多个安全模块110的设备标识符和FPK可以单独地或成批地(例如以查找表的形式)传送给KMS120。
在614,KMS服务器解密密钥使用FPK加密Inv(K)。将加密的服务器解密密钥(在图6B中标为“Enc(FPK,Inv(K))”)和相应的设备标识符传送到编程公司180。例如,可以将包括多个设备标识符和相应的加密服务器解密密钥的查找表提供给编程公司180。
在616,对于给定的电子设备100,编程公司180向电子设备100提供相应的加密的服务器解密密钥。编程公司还向电子设备100提供签名的加密固件。
包含安全模块110的电子设备100包含解密和安装固件所需的所有信息。由于加密的服务器解密密钥Enc(FPK,Inv(K))使用FPK来加密,所以电子设备100能够使用FSK来解密服务器解密密钥。由于签名的加密固件使用SAK签名,所以电子设备能够使用PAK来验证签名的加密固件。电子设备100还能够使用服务器解密密钥Inv(K)来解密固件。
任选地,编程公司180可以从电子设备100提取设备标识符(在618),并将这个设备标识符传送给KMS120,KMS120可以采取步骤向权威机构服务器系统注册设备标识符(在620)。权威机构服务器系统130然后可以通过例如将该信息存储在数据库210中来将设备标识符与KMS相关联。在其他示例中,设备标识符可以在从服务器系统130接收到它们之后由KMS120注册(606与614之间的箭头)。设备标识符的注册不需要以任何方式与向电子设备提供固件的方法相链接。例如,OEM 160可以由制造商150提供设备标识符文件,他们从该文件接收安全模块110/微控制器315,并可以手动地将设备标识符上传到KMS120用于注册。
图7A示出了用于向电子设备100提供固件的通用方法700的流程图。假设电子设备100包括具有PUF 450的安全模块110。安全模块110配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),该固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK)。还假设公共密钥安全地嵌入在电子设备100中,例如,嵌入在电子设备100的安全模块110中。公共密钥是公共密钥对的一部分,该公共密钥对包括公共密钥和相应的私密密钥。签名密钥对可以是权威机构密钥对,该权威机构密钥对包括公共权威机构密钥和只有权威机构140知道的秘密权威机构密钥。方法700可以由例如密钥管理服务器120来执行。
在710,方法700包括使用包括公共密钥和私密密钥的签名密钥对的私密密钥来对固件的散列进行签名,其中,公共密钥安全地嵌入在电子设备中。
在一些实施例中,密钥管理服务器120可以配置成用签名密钥对的私密密钥对固件的散列进行签名。然而,在其他实施例中(如图6A所示),密钥管理服务器120可以配置成与权威机构服务器系统130的权威机构服务器建立安全连接。KMS120然后可以将固件的散列传送给权威机构服务器,并接收对固件的签名的散列的签名,其中,固件的散列使用签名密钥对的私密密钥来签名。也就是说,签名密钥对可以包括公共权威机构密钥PAK和秘密权威机构密钥SAK,并且服务器系统130可以用SAK对固件的散列进行签名。
在720,方法700包括使用服务器加密密钥100来加密固件和签名。服务器加密密钥可以至少部分基于用户证书,例如用户的密码(例如OEM的密码)。
在725,方法700包括使用FPK来加密服务器解密密钥。服务器解密密钥用于对加密的固件和加密的签名进行解密。
在730,方法700包括将加密的固件、加密的签名和加密的服务器解密密钥传送给第三方以安装在电子设备上。第三方可以包括例如编程公司180的服务器、或者KMS和权威服务器系统130之外的任何其他计算设备。
可以通过安全连接从权威机构服务器130接收FPK(如图6A所示),或者可以以某种其他方式接收FPK。例如,FPK可以直接上传到KMS120,或者可以从一些其他信息源接收。
图7B示出了用于向电子设备100提供固件的通用方法750的流程图。假设电子设备100包括具有PUF 450的安全模块110。安全模块110配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK)。还假设公共密钥安全地嵌入在电子设备100中,例如,嵌入在电子设备100的安全模块110中。公共密钥是签名密钥对的一部分,该签名密钥对包括公共密钥和相应的私密密钥。签名密钥对可以是权威机构密钥对,该权威机构密钥对包括公共权威机构密钥和只有权威机构140知道的秘密权威机构密钥。方法750可以由例如密钥管理服务器120来执行。
在760,方法750包括使用签名密钥对的私密密钥使得加密形式的固件被签名。固件使用服务器加密密钥来加密适用服务器加密密钥可以至少部分基于用户证书,例如用户的密码(例如OEM的密码)。
例如,密钥管理服务器120可能已经接收到未加密形式的固件,然后使用服务器加密密钥K加密该固件(如图6B所示),或者可以直接接收加密形式的固件。在一些实施例中,密钥管理服务器120可以配置成用签名密钥对的私密密钥对加密形式的固件进行签名。然而,在其他实施例中(如图6B所示),密钥管理服务器120可以配置成与权威机构服务器系统130的权威机构服务器建立安全连接。KMS120然后可以将加密形式的固件传送给权威机构服务器,并接收签名的加密形式的固件,其中,签名的加密形式的固件使用权威机构密钥对的秘密权威机构密钥来签名。
在770,方法750包括将签名的加密形式的固件传送给第三方以安装在电子设备100上。第三方可以包括例如编程公司180的服务器、或者KMS和权威服务器系统130之外的任何其他计算设备。
在780,方法750包括将加密形式的服务器解密密钥传送给第三方以安装在电子设备上,其中,服务器解密密钥使用FPK加密。当然,加密形式的服务器解密密钥可以在签名的加密形式的固件传送给第三方之前、同时或之后传送给第三方。
可以通过安全连接从权威机构服务器130接收FPK(如图6A所示),或者可以以某种其他方式接收FPK。例如,FPK可以直接上传到KMS120,或者可以从一些其他信息源接收。
图8A示出了用于认证电子设备100的固件的通用方法800的流程图。假设电子设备100包括具有PUF 450的安全模块110。安全模块110布置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK)。假设权威机构密钥对的公共权威机构密钥PAK已经安全地嵌入在电子设备100中,例如,嵌入在电子设备的安全模块110中。权威机构密钥对包括PAK和相应的秘密权威机构密钥SAK。该方法可以由例如权威机构服务器系统130的一个或多个服务器来执行。
在810,方法800包括通过安全通信信道从服务器接收固件的散列,该固件用于安装在电子设备100上。例如,如图6A所示,权威机构服务器可以通过TLS连接从KMS120接收加密的固件。
在820,方法800包括使用包括公共权威机构密钥(PAK)和秘密权威机构密钥(SAK)的机构密钥对的秘密权威机构密钥来对固件进行签名的散列,其中,公共权威机构密钥安全地嵌入在电子设备中。可以利用任何合适的数字签名方案。
如果权威机构服务器系统130执行方法800,则对加密的固件进行签名的权威机构服务器可以与执行步骤810的权威机构服务器相同或不同。
在830,方法800包括启动将对固件散列的签名传送给第三方以安装在电子设备上。例如,第三方可以包括编程公司180、或权威机构服务器系统130和从其接收加密固件的服务器(例如KMS120)之外的任何实体。例如,服务器系统130可以将签名传送给KMS120进行加密并转发给第三方(如图6B所示),或者可以将签名以未加密的形式直接传送给第三方。
在840,方法800包括通过安全通信信道向服务器(例如,KMS120)发送FPK和用于识别电子设备100的相关联的设备标识符,该设备标识符包括EPK的函数。可以在查找表中向服务器提供FPK和设备标识符。设备标识符和FPK可以以任何合适的方式获得,例如通过在运输到OEM 160之前从安全模块110提取它们来获得,或者通过从另一个来源接收信息。步骤830可以在步骤840之前、同时或之后执行。
该方法可以进一步包括,在电子设备已经被编程之后,从服务器接收登记设备标识符的请求,并且将服务器与设备标识符相关联。
图8B示出了用于认证电子设备100的固件的通用方法850的流程图。假设电子设备100包括具有PUF 450的安全模块110。安全模块110布置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对PUF的第二挑战和响应来建立注册密钥对(EPK、ESK)。假设权威机构密钥对的公共权威机构密钥PAK已经安全地嵌入在电子设备100中,例如,嵌入在电子设备的安全模块110中。权威机构密钥对包括PAK和相应的秘密权威机构密钥SAK。该方法可以由例如权威机构服务器系统130的一个或多个服务器来执行。
在860,方法850包括通过安全通信信道从服务器接收加密的固件,该固件用于安装在电子设备100上。例如,如图6B所示,权威机构服务器可以通过TLS连接从KMS120接收加密的固件。
在870,方法850包括使用机构密钥对的秘密权威机构密钥SAK对加密的固件进行签名。可以利用任何合适的数字签名方案。
如果权威机构服务器系统130执行方法850,则对加密的固件进行签名的权威机构服务器可以与执行步骤860的权威机构服务器相同或不同。
在880,方法850包括启动将签名的加密固件传送给第三方以安装在电子设备上。例如,第三方可以包括编程公司180、或权威机构服务器系统130和从其接收加密固件的服务器(例如KMS120)之外的任何实体。例如,服务器系统130可以将签名的加密固件传送给KMS120,以便转发给第三方,或者可以将签名的加密固件直接传送给第三方。
在890,方法850包括通过安全通信信道向服务器(例如,KMS120)发送FPK和用于识别电子设备100的相关联的设备标识符,该设备标识符包括EPK的函数。可以在查找表中向服务器提供FPK和设备标识符。设备标识符和FPK可以以任何合适的方式获得,例如通过在运输到OEM 160之前从安全模块110提取它们来获得,或者通过从另一个来源接收信息。步骤880可以在步骤890之前、同时或之后执行。
该方法可以进一步包括,在电子设备已经被编程之后,从服务器接收登记设备标识符的请求,并且将服务器与设备标识符相关联。
图9A示出了由电子设备100执行的通用方法900的流程图。电子设备100包括具有物理不可克隆函数(PUF)450的安全模块110,安全模块110配置成基于对PUF的第一挑战和响应来建立固件密钥对(FPK、FSK)。
在910,方法900包括使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥使用FPK加密。
在915,方法900包括使用解密的服务器解密密钥,解密固件和对固件散列的签名。
在920,方法900包括使用安全地嵌入在电子设备中的公共权威机构密钥来验证固件的散列已经得到可信权威机构(例如权威机构140)签名。公共权威机构密钥是机构密钥对的一部分,该机构密钥对包括公共权威机构密钥和可信权威机构拥有的相应秘密权威机构密钥。步骤910可以在步骤920之前、同时或之后执行。
在930,方法900包括,基于验证,在电子设备100上安装解密的固件。
图9B示出了由电子设备100执行的通用方法950的另一流程图。
在960,方法950包括使用FSK对加密的服务器解密密钥进行解密,其中,服务器解密密钥使用FPK加密。
在970,方法950包括使用安全地嵌入在电子设备100中的公共权威机构密钥来验证加密形式的固件已经被可信权威机构(例如权威机构140)认证。公共权威机构密钥是机构密钥对的一部分,该机构密钥对包括公共权威机构密钥和可信权威机构拥有的相应秘密权威机构密钥。步骤960可以在步骤970之前、同时或之后执行。
在980,方法950包括使用解密的服务器解密密钥来解密用于安装在电子设备100上的固件。
上面关于图6A至图9B描述的方法使得固件能够安全地提供给电子设备。有利的是,固件不以未加密的形式提供给权威机构140或编程公司180。一旦为电子设备100提供了固件,电子设备就可以开始注册。
可以在制造时将一个或多个根证书安装在电子设备100上,或者为了增加安全性,可以使用上面关于图6A至图9B描述的方法将一个或多个根证书与固件一起或作为固件的一部分提供给电子设备100。
图10示出了根据一些示例的计算机可读介质1700。
计算机可读介质1700存储单元,其中,每个单元包括指令1710,当执行指令1710时,指令1710使得处理器1720或其他处理/计算设备或装置执行特定操作。
例如,指令1710可以使处理器1720使用包括公共密钥和私密密钥的密钥对的私密密钥对固件的散列进行签名,其中,公共密钥安全地嵌入在电子设备中。指令1710还可以使处理器1720使用服务器加密密钥来加密固件和对散列的签名。指令1710还可以使处理器1720服务器解密密钥使用FPK加密,该服务器解密密钥用于解密加密的固件和加密的签名。指令1710还可以使处理器1720将加密的固件、加密的签名和加密的服务器解密密钥传送给第三方,以便安装在电子设备上。
在另一个示例中,指令1710可以使处理器1720使用包括公共密钥和私密密钥的加密密钥对的私密密钥对加密形式的固件进行签名,其中,公共密钥安全地嵌入在电子设备中,并且其中,固件使用服务器加密密钥进行加密。指令1710还可以使处理器1720启动将签名的加密形式的固件传送给第三方以安装在电子设备上。指令1710还可以使处理器1720将加密形式的服务器解密密钥传送给第三方以安装在电子设备上,其中,服务器解密密钥用于解密加密形式的固件,并且其中,服务器解密密钥使用固件公共密钥FPK加密。
例如,指令1710可以使处理器使用包括公共权威机构密钥和秘密权威机构密钥的权威机构密钥对的秘密权威机构密钥对固件的散列进行签名,其中,公共权威机构密钥嵌入在电子设备的安全模块中,并且其中,通过安全通信信道从服务器接收固件的散列。指令1710还可以使处理器1720启动将对固件的散列的签名传送给第三方以安装在电子设备上。指令1710还可以使处理器1720通过安全通信信道向服务器发送查找表,该查找表指示固件公共密钥FPK和用于识别电子设备的相关联的设备标识符,该设备标识符包括注册公共密钥EPK的函数。
在另一个示例中,指令1710可以使处理器使用包括公共权威机构密钥和秘密权威机构密钥的机构密钥对的秘密权威机构密钥对加密的固件进行签名,其中,公共权威机构密钥嵌入在电子设备的安全模块中,并且其中,通过安全通信信道从服务器接收加密的固件。指令1710还可以使处理器1720启动将签名的加密固件传送给第三方以安装在电子设备上。指令1710还可以使处理器1720通过安全通信信道向服务器发送查找表,该查找表指示固件公共密钥FPK和用于识别电子设备的相关联的设备标识符,该设备标识符包括注册公共密钥EPK的函数。
例如,指令1710可以使处理器1720使用固件私密密钥FSK解密加密的服务器解密密钥,其中,服务器解密密钥使用固件公共密钥FPK加密。指令1710还可以使处理器1720使用解密的服务器解密密钥来解密加密的固件和对固件散列的签名。指令1710还可以使处理器1720使用安全地嵌入在电子设备中的公共权威机构密钥来验证固件的散列已经得到可信权威机构签名。指令1710可以进一步使得处理器1720基于验证在电子设备上安装解密的固件。
例如,指令1710可以使处理器1720使用固件私密密钥FSK解密加密的服务器解密密钥,其中,服务器解密密钥使用固件公共密钥FPK加密,该固件公共密钥与FSK一起形成固件密钥对。指令1710还可以使处理器1720使用公共权威机构密钥来验证加密形式的固件已经得到可信权威机构认证。指令1710还可以使处理器1720使用解密的服务器解密密钥来解密用于安装在电子设备上的固件。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子系统、磁系统、光系统、电磁系统、红外系统、或半导体系统、半导体装置、半导体设备、或者前述的任何合适的组合。计算机可读介质的更具体的示例(非穷举列表)将包括以下:具有一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CDROM)、光存储设备、磁存储设备、或者前述的任何合适的组合。在本文件的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的任何有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码的传播数据信号,例如,在基带中或作为载波的一部分。这样的传播信号可以采取多种形式中的任何一种,多种形式包括但不限于电磁、光学、或者其任何合适的组合。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质,并可以传送、传播或输送由指令执行系统、装置或设备使用或与其结合使用的程序。
包含在计算机可读介质上的计算机代码可以使用任何适当的介质来传输,介质包括但不限于无线、有线、光纤电缆、射频(RF)等、或者其任何合适的组合。
用于执行用于本发明各方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写,编程语言包括面向对象的编程语言,比如JavaTM、SmalltalkTM、C++等,以及传统的过程编程语言,比如“C”编程语言或类似的编程语言。程序代码可以完全在用户计算机上执行、部分在用户计算机上执行、作为独立的软件包、部分在用户计算机上执行且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,网络包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。
本文描述的方法的许多变化对技术人员来说是显而易见的。
除非另有明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中公开的每个特征可以由用于相同、等同或类似目的的替代特征所替代。因此,除非另有明确说明,否则所公开的每个特征仅仅是一般系列的等效或相似特征的一个示例。
本发明不限于任何前述实施例的细节。本发明延伸到本说明书(包括任何所附权利要求、摘要和附图)中公开的特征的任何新颖的一个或任何新颖的组合,或者延伸到如此公开的任何方法或过程的步骤的任何新颖的一个或任何新颖的组合。权利要求不应被解释为仅覆盖前述实施例,而是覆盖落入权利要求范围内的任何实施例。

Claims (24)

1.一种用于向电子设备提供固件的方法,所述电子设备包括具有物理不可克隆函数(PUF)的安全模块,所述安全模块配置成基于对所述PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),所述固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),其中,所述方法包括:
使用权威机构密钥对的私密密钥使得所述固件的散列被签名以获得签名,其中,所述权威机构密钥对包括公共密钥和所述私密密钥,其中,所述公共密钥安全地嵌入在所述电子设备中;
使用服务器加密密钥来加密所述固件和所述签名;
使用所述FPK来加密服务器解密密钥,所述服务器解密密钥用于对加密的所述固件和加密的所述签名进行解密;
将加密的所述固件、加密的所述签名和加密的所述服务器解密密钥传送给第三方以安装在所述电子设备上。
2.根据权利要求1所述的方法,所述方法还包括:接收所述固件并对所述固件执行散列函数以生成所述固件的所述散列。
3.根据权利要求1所述的方法,其中,所述方法还包括接收所述固件的所述散列。
4.根据任一前述权利要求所述的方法,其中,使得所述固件的散列被签名包括对所述固件的所述散列进行签名。
5.根据权利要求1至3中任一项所述的方法,其中,使得所述固件的散列被签名包括将所述固件的所述散列传输给可信权威机构,并从所述可信权威机构接收所述签名。
6.根据任一前述权利要求所述的方法,所述方法还包括从可信权威机构接收所述FPK。
7.根据任一前述权利要求所述的方法,其中,所述服务器加密密钥与所述服务器解密密钥相同。
8.根据任一前述权利要求所述的方法,
其中,所述安全模块还配置成基于对所述PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),所述注册密钥对包括注册公共密钥(EPK)和注册私密密钥(ESK);并且
其中,所述方法还包括向所述第三方传送设备标识符,所述设备标识符包括所述EPK的函数。
9.根据权利要求8所述的方法,其中,所述设备标识符是从可信权威机构接收的。
10.根据任一前述权利要求所述的方法,所述方法还包括:
在已经将所述固件安装在所述电子设备上之后,接收所述设备标识符并且向所述可信权威机构登记所述设备标识符。
11.一种其上存储有指令的计算机可读介质,当由一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行根据任一前述权利要求所述的方法。
12.计算装置,包括:
一个或多个处理器;以及
其上存储有指令的一个或多个存储器,当由所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行根据权利要求1-10中任一项所述的方法。
13.一种用于认证用于电子设备的固件的方法,所述电子设备包括具有物理不可克隆函数(PUF)的安全模块,所述安全模块配置成基于对所述PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),以及基于对所述PUF的第二挑战和响应来建立注册密钥对(EPK、ESK),其中,所述固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),并且其中,所述注册密钥对(ESK、EPK)包括注册公共密钥(EPK)和注册私密密钥(ESK),所述方法包括:
通过安全通信信道从服务器接收固件的散列,所述固件用于安装在所述电子设备上;
使用权威机构密钥对的秘密权威机构密钥对所述固件的所述散列进行签名,所述权威机构密钥对包括公共权威机构密钥(PAK)和所述秘密权威机构密钥(SAK),其中,所述公共权威机构密钥安全地嵌入在所述电子设备中;
启动将对所述散列的所述签名传送给第三方以安装在所述电子设备上;以及
通过安全通信信道向所述服务器发送所述FPK和用于识别所述电子设备的相关联设备标识符,所述设备标识符包括所述EPK的函数。
14.根据权利要求13所述的方法,所述方法还包括从所述安全模块提取所述设备标识符。
15.根据权利要求13或权利要求14所述的方法,所述方法还包括从所述安全模块提取所述FPK。
16.根据权利要求13或权利要求14所述的方法,所述方法还包括接收所述设备标识符和所述FPK。
17.根据权利要求13至16中任一项所述的方法,所述方法还包括接收向所述服务器登记所述设备标识符的请求。
18.根据权利要求13至17中任一项所述的方法,所述方法还包括在查找表中输入所述设备标识符和所述FPK。
19.一种其上存储有指令的计算机可读介质,当由一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行根据权利要求13至18中任一项所述的方法。
20.计算装置,包括:
一个或多个处理器;以及
其上存储有指令的一个或多个存储器,当由所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行根据权利要求13-18中任一项所述的方法。
21.一种用于由电子设备执行的方法,所述电子设备包括具有物理不可克隆函数(PUF)的安全模块,所述安全模块配置成基于对所述PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),所述固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),其中,所述方法包括:
使用所述FSK对加密的服务器解密密钥进行解密,其中,所述服务器解密密钥使用所述FPK来加密;
使用解密的所述服务器解密密钥来解密固件和对所述固件的散列的签名;
使用安全地嵌入在所述电子设备中的公共权威机构密钥来验证所述固件的所述散列已经被可信权威机构签名;以及
基于所述验证在所述电子设备上安装解密的所述固件。
22.根据权利要求21所述的方法,还包括,在引导时,验证所述固件已经被可信方签名。
23.一种电子设备,包括:
具有物理不可克隆函数(PUF)的安全模块,所述安全模块配置成基于对所述PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),所述固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK);
一个或多个处理器,所述一个或多个处理器包括所述安全模块或通信地耦合到所述安全模块,其中,所述一个或多个处理器配置成:
使用所述FSK对加密的服务器解密密钥进行解密,其中,所述服务器解密密钥是使用所述FPK来加密的;
使用解密的所述服务器解密密钥来解密固件和对所述固件的散列的签名;
使用安全地嵌入在所述电子设备中的公共权威机构密钥来验证所述固件的所述散列已经被可信权威机构签名;以及
基于所述验证在所述电子设备上安装解密的所述固件。
24.一种用于向电子设备提供固件的系统,所述电子设备包括具有物理不可克隆函数(PUF)的安全模块,所述安全模块配置成基于对所述PUF的第一挑战和响应来建立固件密钥对(FPK、FSK),其中,所述固件密钥对包括固件公共密钥(FPK)和固件私密密钥(FSK),所述系统包括可信权威机构和服务器,
其中,所述可信权威机构配置成:
从所述服务器接收固件的散列;
使用权威机构密钥对的秘密权威机构密钥对所述固件的所述散列进行签名,所述权威机构密钥对包括公共权威机构密钥和所述秘密权威机构密钥,其中,所述公共权威机构密钥安全地嵌入在所述电子设备中;
将对所述固件的所述散列的所述签名发送到所述服务器;以及
将所述FPK发送到所述服务器;并且
其中,所述服务器配置成:
从所述可信权威机构接收所述签名;
从所述可信权威机构接收所述FPK;
使用服务器加密密钥来加密所述固件和所述签名;
使用所述FPK来加密服务器解密密钥,所述服务器解密密钥用于对加密的所述固件和加密的所述签名进行解密;
将加密的所述固件、加密的所述签名和加密的所述服务器解密密钥传送给第三方以安装在所述电子设备上。
CN202280027958.2A 2021-04-12 2022-04-12 具有基于信任根的安全性的加密且认证的固件供应 Pending CN117203934A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2105203.0A GB2605953A (en) 2021-04-12 2021-04-12 Encrypted and authenticated firmware provisioning with root-of-trust based security
GB2105203.0 2021-04-12
PCT/GB2022/050910 WO2022219319A1 (en) 2021-04-12 2022-04-12 Encrypted and authenticated firmware provisioning with root-of-trust based security

Publications (1)

Publication Number Publication Date
CN117203934A true CN117203934A (zh) 2023-12-08

Family

ID=75949493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280027958.2A Pending CN117203934A (zh) 2021-04-12 2022-04-12 具有基于信任根的安全性的加密且认证的固件供应

Country Status (5)

Country Link
EP (1) EP4324154A1 (zh)
JP (1) JP2024516126A (zh)
CN (1) CN117203934A (zh)
GB (1) GB2605953A (zh)
WO (1) WO2022219319A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860744B2 (en) * 2018-11-20 2020-12-08 Silicon Laboratories, Inc. System and method for ensuring integrity and confidentiality of data programmed in an insecure manufacturing environment
GB2583118B (en) 2019-04-17 2021-09-08 Crypto Quantique Ltd Device identification with quantum tunnelling currents

Also Published As

Publication number Publication date
JP2024516126A (ja) 2024-04-12
EP4324154A1 (en) 2024-02-21
GB2605953A (en) 2022-10-26
WO2022219319A1 (en) 2022-10-20
GB202105203D0 (en) 2021-05-26

Similar Documents

Publication Publication Date Title
US10382485B2 (en) Blockchain-assisted public key infrastructure for internet of things applications
US9912485B2 (en) Method and apparatus for embedding secret information in digital certificates
US11070542B2 (en) Systems and methods for certificate chain validation of secure elements
US9838870B2 (en) Apparatus and method for authenticating network devices
US20190074981A1 (en) Post-manufacture generation of device certificate and private key for public key infrastructure
US8397281B2 (en) Service assisted secret provisioning
WO2016173211A1 (zh) 一种管理应用标识的方法及装置
US20230379152A1 (en) Binding with cryptographic key attestation
CN109960935B (zh) 确定tpm可信状态的方法、装置及存储介质
CN110912685A (zh) 建立受保护通信信道
CN117397199A (zh) 嵌入式设备的安全信任根注册和身份管理
CN117203934A (zh) 具有基于信任根的安全性的加密且认证的固件供应
KR20240045160A (ko) 신뢰 루트(Root-of-Trust) 기반의 보안을 갖는 암호화되고 인증된 펌웨어 제공 방법 및 시스템
KR101868227B1 (ko) 차량용 모듈의 정품 인증 방법 및 장치
CN117256121A (zh) 临时信任根注册以及设备绑定的公共密钥登记
KR20240045162A (ko) 임베디드 장치들의 안전한 신뢰 루트 등록 및 신원 관리
KR20240045161A (ko) 임시 신뢰점 등록 및 디바이스-구속형 공개 키 등록
JP2018011190A (ja) 機器リスト作成システムおよび機器リスト作成方法
CN115438352A (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