用于提供设备的固件更新的方法与流程

文档序号:17831603发布日期:2019-06-05 23:06阅读:271来源:国知局
用于提供设备的固件更新的方法与流程

本发明涉及用于电子设备的固件更新的代码签署(signing)、用于公共密钥基础设施的系统、以及用于提供固件更新的方法。特别地,本发明涉及用于更新通过公共密钥基础设施认证的固件的系统和方法。



背景技术:

操作技术中的电子设备正在使用越来越多的机载应用。可编程自动化设备或断路器正是这种电子设备的两个示例。

机载应用或固件通常需要周期性地进行更新,尤其是在开发应用的改进已经发展或缺陷需要解决的时候。在电子设备上安装应用的新版本的期间,验证新版本适合所针对的电子设备并且新版本是由授权公司(即,经批准的电子设备的供应商或制造商)生成的是重要的。安装由恶意第三方修改的版本可能会妨碍设备的操作,或者更糟糕的是,使设备的操作对用户来说是有害的或危险的。

因此,期望通过可靠地认证任何更新的来源来更新电子设备的应用。

为此,通常使用应用的更新中存在的电子签名(signature),其中电子设备具有特定的电子签名验证能力。

然而,由于工业正在寻求最小化操作停机时间或其他损失,因此电子设备很少进行更新,例如在数年的操作中,仅发生若干次更新。结果,当电子设备在一段时间内没有更新时,例如,几年甚至几十年,并且在此期间已经创建了多种应用的签名版本,电子设备的验证能力仅能够验证可能已经过时的电子签名。此外,在某些情况下,签字(signing)密钥可能已经泄露。

另一个问题涉及根证书,它是加密技术的基本工具之一,可用于各种认证系统以确认某些类型的加密。操作技术(operationtechnology,ot)系统中使用的认证系统总是依赖于因特网连接来通过一个或多个证书授权机构(certificateauthorities)管理证书。但是,许多ot系统无法访问因特网。例如,许多电力监控系统(例如,断路器、继电器、计量装置、功率计等)有意地与因特网隔离以用于安全保证。因此,这些设备无法访问证书授权机构进行证书管理。作为结果,正如在线系统上所使用的,在因特网上将证书绑定到证书授权机构的信任的根的传统方法也许是不可能的。然而,认证和确认例如固件更新等接收的信息的需求仍然存在。例如,在接受和执行终端设备的固件之前,期望对固件进行签署和验证。未经验证的信息可能导致系统损坏或面临安全威胁。在工业设备领域,特别是电力监控系统领域,这些问题非常重要。



技术实现要素:

本发明的一个目的是解决上述更新电子设备的固件的缺点,特别是嵌入在这些现场设备中的固件。

根据本发明,上述目的通过提供一种方法来实现,所述方法包括电子设备接收固件更新,所述固件更新具有签字密钥的签名、具有主密钥的签名的签字证书和修订号。所述设备验证所述签字密钥的所述签字证书上的所述主密钥的签名,将所述签字密钥的所述签名证书签字证书上的修订号与回滚计数器(rollbackcounter)进行核对,以及验证所述固件更新上的所述签字密钥的签名。基于上述验证和核对的结果,所述设备拒绝或接受所接收的固件更新。

所述方法还可以由计算机实施,所述计算机执行和/或编排各种步骤。

根据本发明的另一方面,提供了一种固件更新系统。所述系统包括电子设备,所述电子设备包括固件、签名管理模块(signaturemanagementmodule,smm)和回滚计数器。所述系统还包括硬件安全模块(hardwaresecuritymodule,hsm),所述hsm具有存储一个或多个签字密钥的在线组件和存储一个或多个主密钥的离线组件。所述系统还包括签字门户,用于提供软件包,所述软件包具有存储在所述hsm的在线组件中的所述签字密钥中的一个签字密钥的私有部分的签名;和所述相应签字密钥的签字证书,所述签字证书具有存储在所述hsm的离线组件中的所述主密钥中的一个主密钥的私有部分的签名。其中,所述签字证书包括修订号。并且其中,所述smm用于通过相应的签字密钥的公共部分检查所述签字密钥的签名,通过相应的主密钥的公共部分检查所述主密钥的签名,以及将所述修订号与回滚计数器进行核对。

通常,公共密钥基础设施采用一组用于签名的私有密钥和公共密钥,以及证书用于验证签名的真实性。因此,为了验证固件是否来自认证的提供商,电子设备通过使用签字密钥的公共部分验证签字密钥的私有部分所置的签名来检查固件的签名。签字密钥的公共部分通常通过证书来提供。验证签字密钥的结果是,如果固件确实由签字密钥的私有部分签署,则表示固件的提供商的来源被认证。

在本公开中,为了验证固件提供商的签字密钥是否实际上仍然有效,设备还使用由主密钥的私有部分签署的证书撤销列表(certificaterevocationlist,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具有固件以执行它的功能。电子设备还具有签名管理模块smm3和回滚计数器4。这些可以被实现为单独的硬件组件、存储在存储器模块中的软件对象、或者是设备的固件的一部分。

固件更新系统1具有硬件安全模块hsm5和自动化软件签字门户6。通常,hsm是物理计算设备,其保护和管理用于强认证的数字密钥并提供加密处理。这种模块可以设置成插件卡、外部设备或其他形式的因子,其允许将加密密钥存储在硬化的防篡改设备内。它还可以形成企业级计算机的组成部分,例如受信平台模块(trustedplatformmodule,tpm),其使用安全加密集成电路(integratedcircuit,ic)。

硬件安全模块hsm5具有存储一个或多个签字密钥的在线组件8和存储一个或多个主密钥的离线组件9。在线组件8优选地是永久可用的,即可每天24小时/每周7天(24/7)在线访问、或者至少在正常操作期间是可用的。在线组件8可以经由私有网络或局域网络连接,并且优选地仅可以从签字门户访问。离线组件9在正常操作期间可以处于关闭状态,并且优选地仅在要创建新的主密钥时接通。创建由公共部分和私有部分组成的新主密钥通常被称为密钥仪式。在仪式期间,离线组件将被接通,该动作本身可能受到进一步的安全措施的影响,例如需要同时转动两个空间上分开的开关。离线组件9应仅在这种特定操作期间与私有网络连接,并且优选地仅可从管理站访问。无论是在线8还是离线9,附加策略可能需要法定数量的运营商k/n才能启用对hsm5的访问。

自动化软件签字门户6是运营商可以访问的本地工作站,用于创建包含固件更新11和验证和/或认证装置的软件包10。另外,固件可以上传到门户6。访问签字门户6优选地受到例如密码控制访问等的认证装置、智能卡或需要运营商认证其自身的其他装置的限制或至少受其控制。签字门户6用于使得固件更新11或软件包10能够具有存储在hsm的在线组件8中的签字密钥中的一个签字密钥的私有部分的签名12。签字门户6还提供相应签字密钥的签字证书13,签字证书13具有存储在hsm的离线组件9中的主密钥中的一个主密钥的私有部分的签名14。具有主密钥中的一个主密钥的签名的签字证书13还具有修订号15。

电子设备2的签名管理模块smm3用于通过相应的签字密钥的公共部分检查固件更新上的签字密钥的签名12。smm3还用于通过相应的主密钥的公共部分检查签字证书上的主密钥的签名14。并且,smm3还用于将修订号15与回滚计数器4进行核对。因此,根据非对称加密的要求,签字密钥和主密钥都包括私有密钥部分和公共密钥部分。主密钥在所公开的方法中的作用是用作设备的受信锚点。

在签字证书13上设置修订号15,以指示签字证书是最新版本还是已经进行过更新并替换了先前的版本。修订号15可以遵循一列连续增加的号码,如1、2、3,或遵循日期格式。或者,它可以采用更复杂格式的形式,例如,斐波那契、素数或平方(即二次)数列等的预定数列。

随着签字证书13的每次更新或替换,需要更新回滚计数器4,以便回滚计数4指示签字证书13的最新修订号。这可以通过电子设备2的smm3或电子设备2的另一合适的部件来设置,例如回滚计数器4本身。

将修订号15与回滚计数器4进行核对可以包括检查修订号15是否等于回滚计数4。在这种情况下,不需要更新计数器4。检查修订号15还可以包括检查修订号是否大于回滚计数4。例如,修订号预计遵循连续增加的号码的情况。如果修订号15更大,则需要更新回滚计数4。然而,如果修订号15小于回滚计数4,则这表示签字证书13不是最新的,进而不应作为有效的而被接收。因此,这提供了验证签字证书13的有效性的附加方法。

当然,当修订号15遵循另一更复杂的数列时,修订号15与回滚计数器4的核对将执行对应于预定数列的另一种检查。在这种情况下,检查可以包括修订号15是否等于遵循例如斐波那契、素数、平方或二次数列等的预定数列的预期下一个号码。

在图1的实施例中,系统还具有证书授权机构7,其维护证书撤销列表crl16。crl16具有主密钥中的一个主密钥的签名17。签名17可以是签字证书13上存在的相同主密钥的签名,或者可以来自存储在离线组件9中的另一个主密钥。证书授权机构7可以使用网站、云结构或其他在线可用装置来使crl16公开可用。

当固件更新系统1具有crl16时,电子设备2的smm3还用于通过主密钥的公共部分检查,即认证,crl16的签名17,以及检查签字证书13是否有效,即未撤销。

参考图2,示出了图1的固件更新系统1,其中hsm5的离线组件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所示。

此外,由于替换主密钥可以指示用于创建密钥的加密算法已经改进,因此可以根据可用的新加密算法创建新的签字密钥。这可以根据如上所述的用于替换签字密钥的方法的示例来执行。

尽管以上已经参考特定实施例描述了本发明,但是并不意图将本发明限于这里阐述的特定形式。相反,本发明仅受所附权利要求的限制,并且除了上述特定实施例之外的其他实施例在这些所附权利要求的范围内同样是可能的。

此外,尽管上面已经在组件和/或功能的一些示例性组合中描述了示例性实施例,但是应当理解,在不脱离本公开的范围的情况下,可以通过构件和/或功能的不同组合来提供替代实施例。另外,特别预期的是,单独地或作为实施例的一部分描述的特定特征可以与其他单独描述的特征或其他实施例的部分组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1