CN109840104A - 用于提供设备的固件更新的方法 - Google Patents
用于提供设备的固件更新的方法 Download PDFInfo
- Publication number
- CN109840104A CN109840104A CN201811423938.9A CN201811423938A CN109840104A CN 109840104 A CN109840104 A CN 109840104A CN 201811423938 A CN201811423938 A CN 201811423938A CN 109840104 A CN109840104 A CN 109840104A
- Authority
- CN
- China
- Prior art keywords
- signature
- key
- update
- master key
- firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012795 verification Methods 0.000 claims abstract description 10
- 208000024891 symptom Diseases 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims 2
- 230000005611 electricity Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/3268—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 validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种用于向电子设备提供固件更新的方法,用于对电子设备的固件更新进行编码签名,及用于其的系统。特别地,其涉及用于更新通过公共密钥基础设施认证的固件的系统和方法。所述方法包括电子设备接收固件更新,所述固件更新具有签字密钥的签名、具有主密钥的签名的签字证书和修订号。所述设备验证所述签字密钥的所述签字证书上的所述主密钥的签名,将所述签字密钥的所述签字证书上的修订号与回滚计数器进行核对,以及验证所述固件更新上的所述签字密钥的签名。然后,基于上述验证和核对的结果,所述设备拒绝或接受所接收的固件更新。
Description
技术领域
本发明涉及用于电子设备的固件更新的代码签署(signing)、用于公共密钥基础设施的系统、以及用于提供固件更新的方法。特别地,本发明涉及用于更新通过公共密钥基础设施认证的固件的系统和方法。
背景技术
操作技术中的电子设备正在使用越来越多的机载应用。可编程自动化设备或断路器正是这种电子设备的两个示例。
机载应用或固件通常需要周期性地进行更新,尤其是在开发应用的改进已经发展或缺陷需要解决的时候。在电子设备上安装应用的新版本的期间,验证新版本适合所针对的电子设备并且新版本是由授权公司(即,经批准的电子设备的供应商或制造商)生成的是重要的。安装由恶意第三方修改的版本可能会妨碍设备的操作,或者更糟糕的是,使设备的操作对用户来说是有害的或危险的。
因此,期望通过可靠地认证任何更新的来源来更新电子设备的应用。
为此,通常使用应用的更新中存在的电子签名(signature),其中电子设备具有特定的电子签名验证能力。
然而,由于工业正在寻求最小化操作停机时间或其他损失,因此电子设备很少进行更新,例如在数年的操作中,仅发生若干次更新。结果,当电子设备在一段时间内没有更新时,例如,几年甚至几十年,并且在此期间已经创建了多种应用的签名版本,电子设备的验证能力仅能够验证可能已经过时的电子签名。此外,在某些情况下,签字(signing)密钥可能已经泄露。
另一个问题涉及根证书,它是加密技术的基本工具之一,可用于各种认证系统以确认某些类型的加密。操作技术(operation technology,OT)系统中使用的认证系统总是依赖于因特网连接来通过一个或多个证书授权机构(Certificate Authorities)管理证书。但是,许多OT系统无法访问因特网。例如,许多电力监控系统(例如,断路器、继电器、计量装置、功率计等)有意地与因特网隔离以用于安全保证。因此,这些设备无法访问证书授权机构进行证书管理。作为结果,正如在线系统上所使用的,在因特网上将证书绑定到证书授权机构的信任的根的传统方法也许是不可能的。然而,认证和确认例如固件更新等接收的信息的需求仍然存在。例如,在接受和执行终端设备的固件之前,期望对固件进行签署和验证。未经验证的信息可能导致系统损坏或面临安全威胁。在工业设备领域,特别是电力监控系统领域,这些问题非常重要。
发明内容
本发明的一个目的是解决上述更新电子设备的固件的缺点,特别是嵌入在这些现场设备中的固件。
根据本发明,上述目的通过提供一种方法来实现,所述方法包括电子设备接收固件更新,所述固件更新具有签字密钥的签名、具有主密钥的签名的签字证书和修订号。所述设备验证所述签字密钥的所述签字证书上的所述主密钥的签名,将所述签字密钥的所述签名证书签字证书上的修订号与回滚计数器(roll back counter)进行核对,以及验证所述固件更新上的所述签字密钥的签名。基于上述验证和核对的结果,所述设备拒绝或接受所接收的固件更新。
所述方法还可以由计算机实施,所述计算机执行和/或编排各种步骤。
根据本发明的另一方面,提供了一种固件更新系统。所述系统包括电子设备,所述电子设备包括固件、签名管理模块(Signature Management Module,SMM)和回滚计数器。所述系统还包括硬件安全模块(Hardware Security Module,HSM),所述HSM具有存储一个或多个签字密钥的在线组件和存储一个或多个主密钥的离线组件。所述系统还包括签字门户,用于提供软件包,所述软件包具有存储在所述HSM的在线组件中的所述签字密钥中的一个签字密钥的私有部分的签名;和所述相应签字密钥的签字证书,所述签字证书具有存储在所述HSM的离线组件中的所述主密钥中的一个主密钥的私有部分的签名。其中,所述签字证书包括修订号。并且其中,所述SMM用于通过相应的签字密钥的公共部分检查所述签字密钥的签名,通过相应的主密钥的公共部分检查所述主密钥的签名,以及将所述修订号与回滚计数器进行核对。
通常,公共密钥基础设施采用一组用于签名的私有密钥和公共密钥,以及证书用于验证签名的真实性。因此,为了验证固件是否来自认证的提供商,电子设备通过使用签字密钥的公共部分验证签字密钥的私有部分所置的签名来检查固件的签名。签字密钥的公共部分通常通过证书来提供。验证签字密钥的结果是,如果固件确实由签字密钥的私有部分签署,则表示固件的提供商的来源被认证。
在本公开中,为了验证固件提供商的签字密钥是否实际上仍然有效,设备还使用由主密钥的私有部分签署的证书撤销列表(Certificate Revocation List,CRL)来检查签字证书。验证主密钥的结果是,如果签字证书确实仍然有效,则表示签字密钥的验证提供了对固件提供商的有效认证。
在一方面,提供了一种用于更新电子设备的固件的方法。创建固件更新包,然后由硬件安全模块(HSM)使用签字密钥的私有部分进行签署。HSM使用主密钥的私有部分来进一步签署具有修订号或更通常为版本号的关联的签字证书。此外,HSM使用主密钥的私有部分签署CRL。然后将创建的固件包发送到电子设备,并且当接收到时,设备通过使用主密钥的公共部分验证主密钥签名来检查签字证书的有效性。设备还使用主密钥的公共部分检查CRL的有效性,并使用CRL检查签字密钥是否还未被撤销。此外,设备根据回滚计数检查证书修订号,并使用签字密钥的公共部分检查固件包上的签名。
在一方面,提供了一种用于撤销签字密钥的方法,其允许周期性地、甚至仅每年一次地替换包括私有部分和公共部分的签字密钥。因此,所述方法包括生成更新的签字密钥,提供固件更新包中的所述更新的签字密钥的公共部分,更新签字证书的所述修订号,并将主密钥的签名应用于所述签字证书。然后,向所述电子设备发送所述固件更新包。因此,固件更新包含更新的签字密钥,同时由当前签字密钥签署。这允许在接收时设备使用更新的签字密钥替换当前存储的签字密钥的公共部分。由于固件包的验证需要有效的公开签字密钥、关联签字证书的正确修订号以及由主密钥有效签署的签字证书,因此这些步骤允许通过修订号的更新来向设备指示存储的签字密钥的公共部分将被替换。增加修订号会在替换固件之前,确保不会接受伪造具有复制证书的包。
所述用于撤销签字密钥的方法还包括提供所述更新的签字密钥的更新签字证书,以及通过应用所述主密钥的签名来签署所述更新签字证书。由于设备现在存储更新的签字密钥,因此可以通过更新的签字密钥来签署下一个固件更新包。更新签字密钥时,通过使用签字密钥的待撤销签字证书更新CRL来撤销关联的签字证书。并且HSM使用主密钥的私有部分来签署CRL。
因此,在签字密钥被泄露的情况下,主密钥仍然有效,因此仍然接受具有增加的修订号并且由主密钥有效签署的签字证书的固件更新包。这种组合允许更新固件而没有接受恶意固件包的风险,因为恶意固件包会需要签字密钥和主密钥均被泄露。
在一方面,提供了一种用于以直接方式撤销主密钥的方法,所述方法在例如当加密算法已经过时等泄露的情况下允许替换主密钥。所述用于直接替换主密钥的方法包括生成更新的主密钥和由域密钥签署的更新主证书。所述方法还包括生成更新的签字密钥和由所述更新的主密钥签署的签字证书,以及使用更新的密钥的公共部分和证书提供固件更新包。然后,通过应用当前签字密钥的签名来签署固件包,并向所述设备发送所述固件包。
当接收到所述固件包,并验证和确认签名、修订号和证书时,设备使用更新的密钥替换当前存储的主密钥和签字密钥。
利用存储在设备中的更新密钥,可以撤销已替换的主密钥和签字密钥。因此,可以通过更新的主密钥更新和签署与撤销的主密钥和签字密钥联系的CRL。或者,可以更新单独的主CRL和签名CRL。在后一种情况下,主CRL由域密钥签署,签名CRL由主密钥签署。
在另一方面,提供了一种用于以间接方式撤销主密钥的方法,所述方法提供了在泄露的情况下替换主密钥的两步方式。所述用于直接替换主密钥的方法包括生成更新的主密钥和由域密钥签署的更新主证书,以及还生成由当前主密钥签署的临时主证书。然后,使用所述临时主证书创建固件包,使用所述当前签字密钥签署固件包,并向所述设备发送所述固件包。
在接收到后,所述设备识别所述临时主证书的模式,并使用所述临时主证书中提供的更新密钥替换存储的主密钥。因此,基本上具有所述更新的主密钥的所述临时主证书伪装成签字证书。通过这种方式,可以避免信任低安全装置(即签字密钥)以替换高安全装置(即主密钥)的风险。
所述间接方法还包括通过使用替换的主证书更新主CRL并使用域密钥签署主CRL来撤销已替换的主密钥。然后,生成新的签字密钥和签字证书,并为签字证书提供更新的主密钥的签名。然后,发送由更新的签字密钥签署的固件包连同由更新的主密钥签署的更新的签字证书。
然后,通过更新签名CRL并使用更新的主密钥签署签名CRL来撤销替换的签字证书。
从属权利要求中阐述了本发明的特定实施例。并且,参考附图,在下文多个示例性实施例的详细说明中描述了本发明的其他特征、方面、效果和细节。
附图说明
仅作为示例,将参考附图描述本公开的实施例,其中:
图1示意性地示出了根据本发明的固件更新系统的示例;
图2示意性地示出了根据本发明的固件更新系统的另一示例;
图3示意性地示出了根据本发明的用于提供固件更新的方法的示例;
图4示意性地示出了根据本发明的用于提供固件更新的方法的另一示例;
图5示意性地示出了根据本发明的用于替换签字密钥的方法的示例;
图6示意性地示出了根据本发明的用于撤销签字密钥证书的方法的示例;
图7示意性地示出了根据本发明的用于替换主密钥的方法的示例;
图8示意性地示出了根据本发明的间接替换主密钥的方法的示例;
图9示意性地示出了根据本发明的间接替换主密钥的方法的另一示例;以及
图10示出了根据本发明的用于撤销主密钥证书的方法的另一示例。
具体实施方式
参考图1,示出了用于更新固件的系统1。其可以是断路器、继电器、计量设备、功率计或其他操作技术设备的电子设备2具有固件以执行它的功能。电子设备还具有签名管理模块SMM 3和回滚计数器4。这些可以被实现为单独的硬件组件、存储在存储器模块中的软件对象、或者是设备的固件的一部分。
固件更新系统1具有硬件安全模块HSM 5和自动化软件签字门户6。通常,HSM是物理计算设备,其保护和管理用于强认证的数字密钥并提供加密处理。这种模块可以设置成插件卡、外部设备或其他形式的因子,其允许将加密密钥存储在硬化的防篡改设备内。它还可以形成企业级计算机的组成部分,例如受信平台模块(Trusted Platform Module,TPM),其使用安全加密集成电路(integrated circuit,IC)。
硬件安全模块HSM 5具有存储一个或多个签字密钥的在线组件8和存储一个或多个主密钥的离线组件9。在线组件8优选地是永久可用的,即可每天24小时/每周7天(24/7)在线访问、或者至少在正常操作期间是可用的。在线组件8可以经由私有网络或局域网络连接,并且优选地仅可以从签字门户访问。离线组件9在正常操作期间可以处于关闭状态,并且优选地仅在要创建新的主密钥时接通。创建由公共部分和私有部分组成的新主密钥通常被称为密钥仪式。在仪式期间,离线组件将被接通,该动作本身可能受到进一步的安全措施的影响,例如需要同时转动两个空间上分开的开关。离线组件9应仅在这种特定操作期间与私有网络连接,并且优选地仅可从管理站访问。无论是在线8还是离线9,附加策略可能需要法定数量的运营商k/N才能启用对HSM 5的访问。
自动化软件签字门户6是运营商可以访问的本地工作站,用于创建包含固件更新11和验证和/或认证装置的软件包10。另外,固件可以上传到门户6。访问签字门户6优选地受到例如密码控制访问等的认证装置、智能卡或需要运营商认证其自身的其他装置的限制或至少受其控制。签字门户6用于使得固件更新11或软件包10能够具有存储在HSM的在线组件8中的签字密钥中的一个签字密钥的私有部分的签名12。签字门户6还提供相应签字密钥的签字证书13,签字证书13具有存储在HSM的离线组件9中的主密钥中的一个主密钥的私有部分的签名14。具有主密钥中的一个主密钥的签名的签字证书13还具有修订号15。
电子设备2的签名管理模块SMM 3用于通过相应的签字密钥的公共部分检查固件更新上的签字密钥的签名12。SMM 3还用于通过相应的主密钥的公共部分检查签字证书上的主密钥的签名14。并且,SMM 3还用于将修订号15与回滚计数器4进行核对。因此,根据非对称加密的要求,签字密钥和主密钥都包括私有密钥部分和公共密钥部分。主密钥在所公开的方法中的作用是用作设备的受信锚点。
在签字证书13上设置修订号15,以指示签字证书是最新版本还是已经进行过更新并替换了先前的版本。修订号15可以遵循一列连续增加的号码,如1、2、3,或遵循日期格式。或者,它可以采用更复杂格式的形式,例如,斐波那契、素数或平方(即二次)数列等的预定数列。
随着签字证书13的每次更新或替换,需要更新回滚计数器4,以便回滚计数4指示签字证书13的最新修订号。这可以通过电子设备2的SMM 3或电子设备2的另一合适的部件来设置,例如回滚计数器4本身。
将修订号15与回滚计数器4进行核对可以包括检查修订号15是否等于回滚计数4。在这种情况下,不需要更新计数器4。检查修订号15还可以包括检查修订号是否大于回滚计数4。例如,修订号预计遵循连续增加的号码的情况。如果修订号15更大,则需要更新回滚计数4。然而,如果修订号15小于回滚计数4,则这表示签字证书13不是最新的,进而不应作为有效的而被接收。因此,这提供了验证签字证书13的有效性的附加方法。
当然,当修订号15遵循另一更复杂的数列时,修订号15与回滚计数器4的核对将执行对应于预定数列的另一种检查。在这种情况下,检查可以包括修订号15是否等于遵循例如斐波那契、素数、平方或二次数列等的预定数列的预期下一个号码。
在图1的实施例中,系统还具有证书授权机构7,其维护证书撤销列表CRL 16。CRL16具有主密钥中的一个主密钥的签名17。签名17可以是签字证书13上存在的相同主密钥的签名,或者可以来自存储在离线组件9中的另一个主密钥。证书授权机构7可以使用网站、云结构或其他在线可用装置来使CRL 16公开可用。
当固件更新系统1具有CRL 16时,电子设备2的SMM 3还用于通过主密钥的公共部分检查,即认证,CRL 16的签名17,以及检查签字证书13是否有效,即未撤销。
参考图2,示出了图1的固件更新系统1,其中HSM 5的离线组件9还存储域密钥,即根密钥。域密钥可用于使用域密钥的私有部分向每个相应的主密钥的主证书18提供签名19。域密钥还可以使用域密钥的私有部分向主证书撤销列表21提供签名22。主证书将包含域密钥的公共部分,并且可以在固件本身中提供。对于需要高端安全性的高端设备,主证书可以存储在电子设备2中的安全存储元件中,例如TPM。
参考图3,描述了一种用于提供如图1和图2所示的电子设备2的固件更新的方法。电子设备2接收101固件更新11,固件更新11具有签字密钥的签名12、具有主密钥的签名14的签字证书13和修订号15。当接收到固件更新11时,设备验证104签字密钥的签字证书13上的主密钥的签名14。设备2针对回滚计数4检查105签字密钥的签字证书13上的修订号15。设备2还验证固件更新11上的签字密钥的签名12。在本实施例中,固件由签字密钥签署。在其他实施例中,固件可以是包含固件更新和使用签字密钥签署的签字证书的完整软件包。
基于上述验证104、106和检查105的结果,设备拒绝或接受107所接收的固件更新11。当签字证书13上的签名14或固件11上的签名12无效时或者当修订号不遵循回滚计数时,拒绝固件更新11。
修订号15对回滚计数器4的核对105包括确定修订号15是否等于回滚计数4。如果是,则签字证书13尚未更改或更新。检查105可以包括确定修订号15是否大于回滚计数4。如果是,则签字证书13已进行过更新,并且存储在设备中的签字密钥的公共部分需要进行更新。
此外或替代地,检查105可以包括确定修订号15是否与遵循预定数列的预期连续号码匹配。例如,数列可以是斐波那契、素数、二次数列或其他数列。这可以防止通过对修订号的增加进行机会性或投机性赌博用于恶意意图的证书伪造。
如果修订号的检查105指示签字证书上的修订号更大或者与预期的连续号码匹配,则相应地更新回滚计数器4,使得其显示最新的修订号。
为了进一步提高签字证书的可靠性,可以使用证书撤销列表,这允许验证特定的签字证书是否已撤销。此外,参考图4,用于提供固件更新的方法还可以包括验证102撤销列表16的签名17,以及检查103签字证书13是否在撤销列表16上列为已撤销。
为了准备更新电子设备的固件,需要创建软件包10。因此,固件提供商可以是本地站点的运营商或远程访问站点的供应商,需要将固件更新上传到自动化软件签字门户6并提供其用于签名。因此,方法还可以包括认证固件提供商并从认证的固件提供商中获得固件更新。利用在门户6处获得的固件,可以通过应用具有签字密钥的私有部分的签名来签署固件更新。签字密钥的签字证书具有修订号,并且通过应用具有主密钥的私有部分的签名来签署签字证书。然后,向电子设备提供包含签署的固件更新11和签字证书13的软件包10。这可以通过局域网在线完成或通过智能卡、存储卡或其他合适的存储介质离线完成。
优选地,用于提供签名的所有密钥均符合非对称加密的要求。因此,所有签名动作通过使用密钥的私有部分来执行,用于提供签名。此外,验证签名中的一项包括将相应的签字密钥或主密钥的公共部分应用于相应的签署签名或主签名。
如上所述的用于提供固件更新的系统和方法特别适合于允许替换和撤销签字密钥,例如,当签字密钥变得过时或受到危害的情形。因此,作为提供固件更新的一部分,签字密钥可以由更新的签字密钥替换。此外,参考图5,方法可以包括生成更新的签字密钥201,并在固件更新中提供更新的签字密钥的公共部分202。还包括更新签字证书的修订号203,并将主密钥的签名应用于签字证书204。通过这种方式提供的固件更新可以发送到电子设备205。
随着固件更新发送到设备205,设备将使用更新的签字密钥替换存储的签字密钥。或者更具体地,用更新的签字密钥的公共部分替换签字密钥的公共部分。这需要通过更新的签字密钥和相应的更新签字证书来签署下一个固件更新。因此,方法还可以包括提供更新的签字密钥的更新签字证书206,并通过应用主密钥的签名来签署更新签字证书207。现在,更新签字证书包括更新的修订号和更新的签字密钥。
如果撤销列表是系统的一部分,则可以通过使用替换的签字证书更新撤销列表来撤销替换的签字证书208,如图6所示。接着,通过应用主密钥的签名来签署更新的撤销列表209。
随着时间的推移,主密钥也可能变得过时或受到损害,需要替换主密钥及其关联的主证书。因此,参考图7,方法还可以包括生成更新的主密钥301,并生成更新的主密钥的更新主证书302。然后,通过应用域根密钥向更新主证书提供域签名,签署更新主证书303。在固件更新中提供更新的主密钥的公共部分和更新主证书304,然后通过应用签字密钥的签名来签署固件更新305。然后,可以向电子设备发送完整的固件更新306。
上述描述的用于更新主密钥的方法是直接替换电子设备中的主密钥的示例。在另一示例中,用于更新主密钥的方法还可以以间接方式执行,这避免了依赖用于替换主密钥的签字密钥。通过这种方式,可以避免信任低安全装置(即签字密钥)以替换高安全装置(即主密钥)的风险。
此外,如图8所示,方法包括再次生成更新的主密钥401,并生成更新的主密钥的临时主证书402。通过应用当前主密钥,向临时主证书提供签名403。在固件更新中提供更新的主密钥的公共部分和临时主证书404,并通过应用签字密钥的签名来签署固件更新405。然后,可以向电子设备发送完整的固件更新406。
替换主密钥后,需要生成最终的更新主证书,而不是临时主证书。因此,如图9所示,方法还可以包括生成更新的主密钥的更新主证书407。通过应用域根密钥,向更新主证书提供域签名408。因此,图9中所示的这些动作将在图8所示的示例的动作之后。
在替换主密钥的间接方法的示例中,临时主证书准伪装成签字证书,因为它是由待替换的当前主密钥签署的。
无论以直接方式还是间接方式替换主密钥,一旦替换,在任一方法中都要更新主证书撤销列表。因此,两种方法都还可以包括通过使用主证书更新撤销列表来撤销主证书501,如图10所示。然后,通过应用域密钥的签名来签署更新的主证书撤销列表502。
如果主密钥被替换,则优选生成签字密钥的新签字证书503,并通过应用更新的主密钥的签名来签署新签字证书504,如图10所示。
此外,由于替换主密钥可以指示用于创建密钥的加密算法已经改进,因此可以根据可用的新加密算法创建新的签字密钥。这可以根据如上所述的用于替换签字密钥的方法的示例来执行。
尽管以上已经参考特定实施例描述了本发明,但是并不意图将本发明限于这里阐述的特定形式。相反,本发明仅受所附权利要求的限制,并且除了上述特定实施例之外的其他实施例在这些所附权利要求的范围内同样是可能的。
此外,尽管上面已经在组件和/或功能的一些示例性组合中描述了示例性实施例,但是应当理解,在不脱离本公开的范围的情况下,可以通过构件和/或功能的不同组合来提供替代实施例。另外,特别预期的是,单独地或作为实施例的一部分描述的特定特征可以与其他单独描述的特征或其他实施例的部分组合。
Claims (18)
1.一种用于提供设备的固件更新的方法,包括:
电子设备接收固件更新,所述固件更新具有签字密钥的签名、具有主密钥的签名的签字证书和修订号;
所述设备验证所述签字密钥的签字证书上的所述主密钥的签名;
所述设备将所述签字密钥的签字证书上的修订号与回滚计数器进行核对;以及
所述设备验证所述固件更新上的签字密钥的签名;
基于上述验证和核对的结果,拒绝或接受所接收的固件更新。
2.根据权利要求1所述的方法,其中将所述修订号与回滚计数器进行核对包括:
确定所述修订号是否:
等于所述回滚计数;和/或
大于所述回滚计数;和/或
与遵循例如斐波那契、素数或二次数列的预定数列的预期连续号码匹配;以及
如果所述签字证书上的所述修订号更大或与预期连续号码匹配,则更新所述回滚计数。
3.根据权利要求1或2所述的方法,还包括:
验证撤销列表的签名;以及
检查所述签字证书是否在所述撤销列表上列为已撤销。
4.根据前述权利要求中任一项所述的方法,其中,验证所述签名中的一项包括:
将所述签字密钥或主密钥的公共部分应用于相应的签字签名或主签名。
5.一种用于向电子设备提供固件更新的计算机实施方法,包括:
认证固件提供商;
从所认证的固件提供商中获取固件更新;
通过应用具有签字密钥的私有部分的签名来签署所述固件更新;
向所述签字密钥的签字证书提供修订号;
通过应用具有主密钥的私有部分的签名来签署所述签字证书;
向所述电子设备提供签署的固件更新。
6.根据权利要求5所述的计算机实施方法,还包括:
生成更新的签字密钥;
在所述固件更新中提供所述更新的签字密钥的公共部分;
更新所述签字证书的所述修订号,并将所述主密钥的签名应用于所述签字证书;
向所述电子设备发送所述固件更新;
提供所述更新的签字密钥的更新签字证书;
通过应用所述主密钥的签名来签署所述更新签字证书。
7.根据权利要求6所述的计算机实施方法,还包括:
通过使用所述签字证书更新所述撤销列表来撤销所述签字证书;
通过应用所述主密钥的签名来签署更新的撤销列表。
8.根据权利要求5至7中任一项所述的计算机实施方法,包括:
生成更新的主密钥;
生成所述更新的主密钥的更新主证书;
通过应用域根密钥向所述更新主证书提供域签名;
在所述固件更新中提供所述更新的主密钥的公共部分和所述更新的主证书;
通过应用所述签字密钥的签名来签署所述固件更新;
向所述电子设备发送所述固件更新。
9.根据权利要求5至8中任一项所述的计算机实施方法,包括:
生成更新的主密钥;
生成所述更新的主密钥的临时主证书;
通过应用所述主密钥,向所述临时主证书提供签名;
在所述固件更新中提供所述更新的主密钥的公共部分和所述临时主证书;
通过应用所述签字密钥的签名来签署所述固件更新。
10.根据权利要求9所述的计算机实施方法,还包括:
生成所述更新的主密钥的更新主证书;
通过应用域根密钥,向所述更新主证书提供域签名。
11.根据权利要求8-10中任一项所述的计算机实施方法,还包括:
通过使用主证书更新所述撤销列表来撤销所述主证书;
通过应用所述域密钥的签名来签署更新的撤销列表;
生成所述签字密钥的新签字证书;
通过应用所述更新的主密钥的签名来签署所述新签字证书。
12.一种固件更新系统,包括:
电子设备,包括固件、签名管理模块SMM和回滚计数器;
硬件安全模块HSM,包括存储一个或多个签字密钥的在线组件和存储一个或多个主密钥的离线组件;
签字门户,用于提供:
软件包,具有存储在所述HSM的在线组件中的所述签字密钥中的一个签字密钥的私有部分的签名;和
所述相应签字密钥的签字证书,具有存储在所述HSM的离线组件中的所述主密钥中的一个主密钥的私有部分的签名;
其中,所述签字证书包括修订号;并且
其中,所述SMM用于:
通过相应的签字密钥的公共部分检查所述签字密钥的签名;
通过相应的主密钥的公共部分检查所述主密钥的签名;以及
将所述修订号与回滚计数器进行核对。
13.根据权利要求12所述的固件更新系统,其中所述HSM的离线组件还存储域/根密钥;
所述域密钥用于:
使用所述域密钥的私有部分向每个相应的主密钥的主证书提供签名;
以及
使用所述域密钥的私有部分向主证书撤销列表提供签名。
14.根据权利要求12或13所述的固件更新系统,还包括:具有所述主密钥的签名的证书撤销列表CRL;并且
其中,所述SMM还用于:
通过所述主密钥的公共部分检查所述CRL的签名;以及
检查所述签字证书是否有效和/或未撤销。
15.根据权利要求12至14中任一项所述的固件更新系统,其中,所述回滚计数指示所述签字证书的最新修订号;
其中,所述回滚计数器随着每次证书更新/替换而更新;并且
其中,所述SMM将所述修订号与所述回滚计数核对包括:
检查所述修订号是否等于所述回滚计数;和/或
检查所述修订号是否大于所述回滚计数;和/或
所述修订号是否与遵循预定数列的预期连续号码匹配;以及
其中,所述设备被安排用于,如果所述签字证书上的所述修订号大于所述回滚计数或与预期连续号码匹配,则更新所述回滚计数器。
16.根据权利要求12至15中任一项所述的固件更新系统,其中,所述软件包包括用于电子设备的固件更新。
17.一种计算机程序产品,包括指令,当在至少一个计算机处理器上执行时,所述指令使所述至少一个计算机处理器执行以下方法:
认证固件提供商;
从所认证的固件提供商中获取固件更新;
通过应用具有签字密钥的私有部分的签名来签署所述固件更新;
向所述签字密钥的签字证书提供修订号;
通过应用具有主密钥的私有部分的签名来签署所述签字证书;
向电子设备提供签署的固件更新。
18.根据权利要求17所述的计算机程序产品,包括进一步的指令,当在至少一个计算机处理器上执行时,所述进一步的指令使所述至少一个计算机处理器执行根据权利要求6-11中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17306645.7A EP3489853B1 (en) | 2017-11-27 | 2017-11-27 | A method for providing a firmware update of a device |
EP17306645.7 | 2017-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840104A true CN109840104A (zh) | 2019-06-04 |
CN109840104B CN109840104B (zh) | 2024-08-20 |
Family
ID=60673745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811423938.9A Active CN109840104B (zh) | 2017-11-27 | 2018-11-27 | 用于提供设备的固件更新的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11210079B2 (zh) |
EP (1) | EP3489853B1 (zh) |
CN (1) | CN109840104B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124362A (zh) * | 2020-08-26 | 2022-03-01 | 西门子(中国)有限公司 | 一种密钥分发方法、装置和计算机可读介质 |
US11520891B1 (en) * | 2019-12-11 | 2022-12-06 | Amazon Technologies, Inc. | Secure boot of an integrated circuit |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6697038B2 (ja) * | 2018-07-31 | 2020-05-20 | 日本電信電話株式会社 | 情報処理装置、検証方法および検証プログラム |
EP3656577A1 (en) * | 2018-11-21 | 2020-05-27 | Thales Dis France SA | In-the-field patching of an operating system using a digital certificate extension |
WO2020117549A1 (en) * | 2018-12-06 | 2020-06-11 | Mocana Corporation | System and method for zero touch provisioning of iot devices |
US20200259663A1 (en) * | 2019-02-07 | 2020-08-13 | Guardtime Sa | One-Time Data Signature System and Method with Untrusted Server Assistance |
US11119750B2 (en) * | 2019-05-23 | 2021-09-14 | International Business Machines Corporation | Decentralized offline program updating |
CN111181958B (zh) * | 2019-12-27 | 2021-09-03 | 西安电子科技大学 | 一种提高车联网中抗攻击性的方法及系统 |
CN113127020A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 一种软件升级方法和装置 |
CN111353150B (zh) * | 2020-02-25 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种可信启动方法、装置、电子设备及可读存储介质 |
US12086257B2 (en) * | 2020-04-24 | 2024-09-10 | Omnissa, Llc | Trusted firmware verification |
US11681513B2 (en) * | 2020-05-14 | 2023-06-20 | Texas Instmments Incorporated | Controlled scope of authentication key for software update |
JP7362583B2 (ja) * | 2020-09-23 | 2023-10-17 | 株式会社東芝 | 情報処理装置 |
US11765155B1 (en) * | 2020-09-29 | 2023-09-19 | Amazon Technologies, Inc. | Robust and secure updates of certificate pinning software |
US20220156377A1 (en) * | 2020-11-19 | 2022-05-19 | Microsoft Technology Licensing, Llc | Firmware runtime patch secure release process |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436141A (zh) * | 2008-11-21 | 2009-05-20 | 深圳创维数字技术股份有限公司 | 基于数字签名的固件升级、固件封装方法与装置 |
JP2009124520A (ja) * | 2007-11-16 | 2009-06-04 | Fujitsu Ltd | データ送付方法および電子機器 |
EP2196936A1 (en) * | 2007-10-05 | 2010-06-16 | Panasonic Corporation | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
US20130016840A1 (en) * | 2001-02-06 | 2013-01-17 | Certicom Corp. | Mobile Certificate Distribution in a PKI |
US20130227538A1 (en) * | 2010-10-14 | 2013-08-29 | Fujitsu Limited | Security chip used in a contents data playing device, update management method, and update management program |
CN103370944A (zh) * | 2011-02-14 | 2013-10-23 | 莫雷加系统股份有限公司 | 具有数字版权管理的客户端装置和本地站以及随其使用的方法 |
CN104221394A (zh) * | 2012-01-03 | 2014-12-17 | 通用仪表公司 | 用于基于hdcp密钥的版本来确定源装置服务层的机构 |
CN105159707A (zh) * | 2015-08-14 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种安全的金融终端的固件烧写方法及金融终端 |
US20160191253A1 (en) * | 2014-12-31 | 2016-06-30 | Schneider Electric Usa Inc. | Systems and methods of industrial network certificate recovery |
US20170010881A1 (en) * | 2015-07-07 | 2017-01-12 | Canon Kabushiki Kaisha | Information processing apparatus and control method therefor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058317A1 (en) * | 2008-09-02 | 2010-03-04 | Vasco Data Security, Inc. | Method for provisioning trusted software to an electronic device |
US10210333B2 (en) * | 2016-06-30 | 2019-02-19 | General Electric Company | Secure industrial control platform |
-
2017
- 2017-11-27 EP EP17306645.7A patent/EP3489853B1/en active Active
-
2018
- 2018-11-16 US US16/193,658 patent/US11210079B2/en active Active
- 2018-11-27 CN CN201811423938.9A patent/CN109840104B/zh active Active
-
2021
- 2021-12-22 US US17/645,497 patent/US11714633B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130016840A1 (en) * | 2001-02-06 | 2013-01-17 | Certicom Corp. | Mobile Certificate Distribution in a PKI |
EP2196936A1 (en) * | 2007-10-05 | 2010-06-16 | Panasonic Corporation | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
JP2009124520A (ja) * | 2007-11-16 | 2009-06-04 | Fujitsu Ltd | データ送付方法および電子機器 |
CN101436141A (zh) * | 2008-11-21 | 2009-05-20 | 深圳创维数字技术股份有限公司 | 基于数字签名的固件升级、固件封装方法与装置 |
US20130227538A1 (en) * | 2010-10-14 | 2013-08-29 | Fujitsu Limited | Security chip used in a contents data playing device, update management method, and update management program |
CN103370944A (zh) * | 2011-02-14 | 2013-10-23 | 莫雷加系统股份有限公司 | 具有数字版权管理的客户端装置和本地站以及随其使用的方法 |
CN104221394A (zh) * | 2012-01-03 | 2014-12-17 | 通用仪表公司 | 用于基于hdcp密钥的版本来确定源装置服务层的机构 |
US20160191253A1 (en) * | 2014-12-31 | 2016-06-30 | Schneider Electric Usa Inc. | Systems and methods of industrial network certificate recovery |
US20170010881A1 (en) * | 2015-07-07 | 2017-01-12 | Canon Kabushiki Kaisha | Information processing apparatus and control method therefor |
CN105159707A (zh) * | 2015-08-14 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种安全的金融终端的固件烧写方法及金融终端 |
Non-Patent Citations (2)
Title |
---|
孙楠;贺永胜;刘剑欣;: "基于DLMS/COSEM协议的集中器通信安全防护技术", 电力信息与通信技术, no. 09 * |
曹欲晓;韩冬;徐金宝;: "一种基于CPUID和AES算法的STM32固件升级方案", 电子技术应用, no. 03 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520891B1 (en) * | 2019-12-11 | 2022-12-06 | Amazon Technologies, Inc. | Secure boot of an integrated circuit |
CN114124362A (zh) * | 2020-08-26 | 2022-03-01 | 西门子(中国)有限公司 | 一种密钥分发方法、装置和计算机可读介质 |
CN114124362B (zh) * | 2020-08-26 | 2023-12-01 | 西门子(中国)有限公司 | 一种密钥分发方法、装置和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3489853A1 (en) | 2019-05-29 |
EP3489853B1 (en) | 2021-02-24 |
US11714633B2 (en) | 2023-08-01 |
US20220179640A1 (en) | 2022-06-09 |
US20190163465A1 (en) | 2019-05-30 |
CN109840104B (zh) | 2024-08-20 |
US11210079B2 (en) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840104A (zh) | 用于提供设备的固件更新的方法 | |
US11743054B2 (en) | Method and system for creating and checking the validity of device certificates | |
US8756428B2 (en) | Authentication method for an electronic document and verification method of a document thus authenticated | |
CN110192197B (zh) | 通过使用证书建立身份标识和信任来实现正品设备保证的技术 | |
US11374961B2 (en) | Methods for verification of software object authenticity and integrity | |
US20200366506A1 (en) | Method for securely replacing a first manufacturer certificate already introduced into a device | |
JP2019532556A (ja) | デバイスの機器使用情報の保護 | |
CN116057524A (zh) | 用于验证工业控制系统的部件的系统和方法 | |
US11757884B2 (en) | Method and system for controlling the release of a resource | |
US20180131520A1 (en) | Method and arrangement for securely interchanging configuration data for an apparatus | |
US11522723B2 (en) | Secure provisiong of baseboard management controller identity of a platform | |
CN111492355B (zh) | 用于控制和/或监控装置的方法和控制系统 | |
US11134072B2 (en) | Method for verifying a security classification of a first device using a digital certificate, a first and second device and certificate issuing apparatus | |
KR20190115515A (ko) | Pki 기반의 사물인터넷 기기 인증방법 및 인증시스템 | |
US11483162B1 (en) | Security settlement using group signatures | |
CN111869165B (zh) | 用于控制和/或监控装置的方法和控制系统 | |
Kent et al. | Assuring vehicle update integrity using asymmetric public key infrastructure (PKI) and public key cryptography (PKC) | |
JP2014191659A (ja) | サーバ装置およびハッシュ値処理方法 | |
CN108810002A (zh) | 安全芯片的多ca应用系统及方法 | |
JP2007215103A (ja) | 計測装置 | |
US10469269B2 (en) | Arrangement and method for operating the arrangement containing a substation and at least one terminal device connected to it | |
US20160006722A1 (en) | Method for managing the installation of an application on an electronic device | |
JP6072584B2 (ja) | サーバ装置およびプログラム管理方法 | |
KR20230113534A (ko) | 통화 관리 시스템 및 전자서명 장치 | |
CN110929271A (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 |