CN115659288A - 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 - Google Patents
一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 Download PDFInfo
- Publication number
- CN115659288A CN115659288A CN202211336797.3A CN202211336797A CN115659288A CN 115659288 A CN115659288 A CN 115659288A CN 202211336797 A CN202211336797 A CN 202211336797A CN 115659288 A CN115659288 A CN 115659288A
- Authority
- CN
- China
- Prior art keywords
- software
- certificate
- trusted
- detection
- developer
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种变电站嵌入式装置软件版本管控方法、终端及存储介质,所述变电站嵌入式装置预部署有可信执行环境;可信执行环境包括数字证书***、可信管理中心和可信策略库;所述方法包括:周期性地启动可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;对于合法性验证通过的软件,允许继续运行;对于合法性验证未通过的软件,阻止其运行;通过可信管理中心对最新版本的软件的签名信息进行验证;接收并安装可信管理中心转发的签名信息验证通过的最新版本的软件,并将软件安装路径和所安装软件的签名信息加载到可信策略库中。本发明能够防御软件下发传输过程中可能出现的软件替换或版本替换攻击行为。
Description
技术领域
本发明涉及一种变电站嵌入式装置及软件版本管控方法、终端及存储介质,属于工控安全技术领域。
背景技术
目前嵌入式自动化装置已广泛应用于能源、交通、电力等工业现场的工业控制***中,承担着测量、控制、通信等重要功能。随着工业***信息化和数字化,嵌入式装置软件面临的攻击日益增多。
现有的软件版本管理方案中,缺乏针对嵌入式装置的有效软件版本管理技术。同时,在这些方案中,软件版本管理人员是软件版本管理的核心部门,优化方向是提高软件开发、测试和发布的效率,保证软件的安全性和机密性。不能防御软件下发传输过程中可能出现的软件替换或版本替换攻击行为。针对软件在运行过程中完整性遭到破坏的情况,也没有相应的校验和保护措施。软件更新主要由厂商和现场工程师人为控制和操作,缺少主动反馈的软件安全更新流程。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种变电站嵌入式装置及软件版本管控方法、终端及存储介质,能够防御软件下发传输过程中可能出现的软件替换或版本替换攻击行为。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种变电站嵌入式装置软件版本管控方法,其特征在于,所述变电站嵌入式装置预部署有可信执行环境;所述可信执行环境包括数字证书***、可信管理中心和可信策略库;所述方法包括如下步骤:
周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;
对于合法性验证通过的软件,允许继续运行;
对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;
通过所述可信管理中心对最新版本的软件的签名信息进行验证;
接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件,并将软件安装路径和所安装软件的签名信息加载到所述可信策略库中;
其中,所述签名信息包括开发商数字签名和检测机构数字签名;所述开发商数字签名由软件开发商根据开发证书开发或更新软件后获取;所述检测机构数字签名由软件检测机构根据检测证书对软件进行检测后获取;所述开发证书和所述检测证书由所述数字证书***制作并颁发。
结合第一方面,进一步地,所述对当前所要运行的软件的合法性进行验证,包括:
步骤A:通过HOOK机制捕获正在运行的当前软件,获得当前软件的软件安装路径;
步骤B:验证所述可信策略库是否存在当前软件的软件安装路径,若存在,则进入步骤C;否则,进入步骤D;
步骤C:从所述可信策略库中获取当前软件的签名信息,利用当前软件的数字证书解密所述签名信息,以获取当前软件的基准哈希值;
计算当前软件的哈希值,并将所计算的哈希值与相应的基准哈希值进行对比,以验证当前软件的软件来源合法性和版本合法性;若对比一致,则表明合法性验证通过,继续捕获下一软件;将捕获的下一软件作为当前软件重复步骤B和步骤C;若合法性验证未通过,则进入步骤D;
步骤D:阻止当前软件运行,向可信管理中心发出获取当前软件的最新版本的指令;在获取最新版本的软件后重复步骤B和步骤C;
所述数字证书包括开发证书和检测证书。
结合第一方面,进一步地,启动所述可信管理中心的校验程序的同时,启动硬件看门狗计时器开始计时;
对所有软件的合法性验证全部完成后,将所述硬件看门狗计时器的计时值清零;
若所述硬件看门狗计时器的计时值达到预设时间阈值仍未清零,则向所述可信管理中心发出所述校验程序为正常启动的警告信号。
结合第一方面,进一步地,所述软件开发商和软件检测机构作为证书用户,所述变电站嵌入式装置将相应证书颁发给所述证书用户的方法包括:
通过所述数字证书***接收所述证书用户发送的公共密钥和用户信息;
通过所述数字证书***验证所述用户信息,验证通过后,使用根证书私钥加密包括所述公共密钥、所述用户信息、颁发日期和有效期在内的相关信息以生成二级证书,并安全存储所述二级证书;所述二级证书包括:所述开发证书和所述检测证书;
通过所述数字证书***将所述二级证书和根证书公钥发送至所述证书用户;
其中,所述公共密钥指所述证书用户调用SM2算法生成的公私密钥对中的公钥。
结合第一方面,进一步地,所述开发商数字签名的获取方法包括:
所述软件开发商使用SM3算法计算所述软件的哈希值;
所述软件开发商根据所述公私密钥对中的私钥,采用SM2算法加密所述哈希值,获得所述开发商数字签名。
结合第一方面,进一步地,所述软件检测机构对所述软件进行检测之前,通过所述软件开发商获取所述开发证书,根据所述开发证书对所述软件进行验签。
结合第一方面,进一步地,所述根据所述开发证书对所述软件进行验签,包括:
所述软件检测机构使用服务器中安全存储的根证书公钥解密所述开发证书,获取开发商公钥;
所述软件检测机构根据所述开发商公钥,采用SM2算法***开发商所发送的所述数字签名,解密成功则表明所述软件的数字签名来源合法;
所述软件检测机构使用SM3算法计算所述软件开发商发送的所述软件的哈希值;
所述软件检测机构将解密所述数字签名获取的基准哈希值与所述软件的哈希值进行对比,两值相同则表明所述软件未经篡改。
结合第一方面,进一步地,所述可信管理中心对所述签名信息进行验证,包括:
利用所述可信管理中心通过所述可信执行环境的内部API从所述数字证书***导入所述软件的开发证书和检测证书;
利用所述开发证书对所述开发商数字签名进行验证、利用所述检测证书对所述检测机构数字签名进行验证,两者均验证通过,则表明所述软件的签名信息验证通过。
结合第一方面,进一步地,所述软件检测机构对所述软件进行的检测包括:病毒检测和功能检测。
第二方面,本发明提供一种变电站嵌入式装置,所述变电站嵌入式装置部署有RTU执行环境和可信执行环境;所述可信执行环境包括数字证书***、可信管理中心和可信策略库;
所述RTU执行环境:用于周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;对于合法性验证通过的软件,允许继续运行;对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;以及用于接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件;其中,所述签名信息包括开发商数字签名和检测机构数字签名;
所述可信管理中心:用于接收最新版本的软件及相应的签名信息,并对最新版本的软件的签名信息进行验证;
所述数字证书***:用于根据根证书制作开发证书和检测证书,并将所述开发证书颁发给软件开发商,以使所述软件开发商根据开发证书开发或更新软件,获取所述开发商数字签名;将所述检测证书颁发给软件检测机构,以使所述软件检测机构根据检测证书对所述软件开发商开发或更新的软件进行检测,获取所述检测机构数字签名;
所述可信策略库:用于存储所述开发证书、所述检测证书、所安装软件的软件安装路径和所安装软件的签名信息。
结合第二方面,进一步地,所述数字证书***包括:
第一远程通信模块:用于与所述软件开发商和所述软件检测机构交换用户信息、以及向所述软件开发商和所述软件检测机构发送相应的数字证书;
信息鉴别模块:用于对所述用户信息进行合法性判断,鉴别合法证书用户;
第一数据库模块:用于通过调用硬件可信根的隔离存储区域,安全存储所述用户信息、根证书和二级证书,所述二级证书包括:所述开发证书和所述检测证书;
安全加密模块:用于通过调用硬件可信根的对称加密算法、非对称加密算法生成公私密钥对,并利用所述公私密钥对对数字证书相关信息执行加密操作,以生成对应的数字证书;
时间信息接口:用于生成真实时间信息;
第一控制执行模块:用于与数字证书***中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作;
其中,所述数字证书包括开发证书和检测证书。
结合第二方面,进一步地,所述可信管理中心包括:
第二远程通信模块:用于接收所述开发或更新后的软件以及相应的开发商数字签名和检测机构数字签名;以及用于通过可信执行环境内部API从数字证书***导入开发证书和检测证书;
签名验证模块:用于使用所述开发证书对所述开发商数字签名进行验证,使用检测证书对所述检测机构数字签名进行验证;
软件库模块:用于存储所述开发或更新后的软件;
第二数据库模块:用于存储所述开发证书、所述检测证书、所述开发商数字签名和所述检测机构数字签名;
第二控制执行模块:用于与可信管理中心中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作。
结合第二方面,进一步地,所述可信策略库包括:
第三数据库模块:包括可信策略单元和证书管理单元;所述可信策略单元用于:用于安全存储所述软件安装路径和所述签名信息;所述证书管理单元用于安全存储所述开发证书和所述检测证书;
输入输出模块:用于转发所述第三数据库模块输入或输出的信息。
结合第二方面,进一步地,所述变电站嵌入式装置包括变电站远动装置,所述软件包括自检程序、数据采集与计算程序和通信程序。
第三方面,本发明提供一种电子终端,包括处理器与所述处理器连接的存储器,在所述存储器内存储有计算机程序,当所述计算机程序被所述处理器执行时,执行如第一方面任一项所述方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。
与现有技术相比,本发明所达到的有益效果:
通过可信执行环境中的可信管理中心接收软件开发商开发或更新后的软件,对开发商数字签名和检测机构数字签名组成的签名信息进行双签验证,确保变电站嵌入式装置所安装的软件均为可信管理中心验证通过的软件,能够防御软件下发传输过程中可能出现的软件替换或版本替换等攻击行为,提高了软件的安全性和机密性;可信执行环境可以通过硬件可信根提供密码功能、完整性度量功能和安全隔离存储空间,能够满足软件开发、测试、运行和更新中的签名验证和完整性校验,保证软件全生命周期的来源一致性和版本可控;在启动可信管理中心的校验程序的同时,启动硬件看门狗计时器开始计时,利用硬件看门狗计时器攻击面小的特性,确保软件校验程序正常启动和计时值达到预设时间阈值时触发警告信号这两者必然触发其一,保障软件、签名或版本不一致时,能够触发软件更新流程。
附图说明
图1是根据本发明实施例提供的一种变电站嵌入式装置软件版本管控方法的流程图;
图2是根据本发明实施例提供的变电站嵌入式装置运行所述软件时对所述软件的合法性进行验证的方法流程图;
图3是根据本发明实施例提供的一种变电站嵌入式装置的结构原理框图;
图4是图3中数字证书***的一种结构原理框图;
图5是图3中可信管理中心的一种结构原理框图;
图6是图3中可信策略库的一种结构原理框图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。
实施例一:
图1是本发明实施例一中的一种变电站嵌入式装置软件版本管控方法的流程图。本流程图仅仅示出了本实施例所述方法的部分逻辑顺序,在互不冲突的前提下,在本发明其它可能的实施例中,可以以不同于图1所示的顺序完成所示出或描述的步骤,也可以在图1的基础上进一步延伸更多的步骤。本实施例提供的方法可应用于终端,可以由变电站嵌入式装置来执行。在本发明实施例中变电站嵌入式装置指变电站远动装置,负责数据采集、计算和远距离数据传输,变电站嵌入式装置的软件包括自检程序、数据采集与计算程序和通信程序。
值得注意的是,所述变电站嵌入式装置需要预先部署可信执行环境,所谓可信执行环境(Trusted Execution Environment,TEE),通过软硬件方法构建一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。TEE基础原理:是将硬件和软件资源划分为两个执行环境——可信执行环境和普通执行环境。两个环境是安全隔离的,有独立的内部数据通路和计算所需存储空间。普通执行环境的应用程序无法访问TEE,即使在TEE内部,多个应用的运行也是相互独立的,不能无授权而互访。
在本发明实施例中,可信执行环境包括:数字证书***、可信管理中心和可信策略库三个可信应用。参见图3,数字证书***、可信管理中心和可信策略库通过可信执行环境的内部应用调用接口API通信,因此,数字证书***在制作完成二级证书(包括:开发证书和检测证书)后,可以通过调用硬件可信根的对称加密算法、非对称加密算法,生成密钥对并对数据加密,通过API将二级证书导入可信策略库中。此外,数字证书***还可以通过调用硬件可信根的隔离存储区域、利用API安全存储用户信息、根证书和二级证书。
参见图1,本实施的方法具体包括如下步骤:
步骤一:周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;对于合法性验证通过的软件,允许继续运行;对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;
软件校验过程主要与可信策略库进行交互,应当理解:启动校验程序的周期可以根据实际需求进行设置,对***实时性影响较小,程序安装和更新的耗时对于长时间运行的嵌入式装置可以忽略。
周期性地启动可信管理中心的校验程序,能够保证软件、签名信息(包括开发商数字签名和检测机构数字签名)或软件版本不一致时,及时触发更新流程。具体流程可以参见图2:
步骤A:通过HOOK机制捕获正在运行的当前软件,获得当前软件的软件安装路径;
步骤B:验证所述可信策略库是否存在当前软件的软件安装路径,若存在,则进入步骤C;否则,进入步骤D;
步骤C:从所述可信策略库中获取当前软件的签名信息,利用当前软件的数字证书解密所述签名信息,以获取当前软件的基准哈希值;
计算当前软件的哈希值,并将所计算的哈希值与相应的基准哈希值进行对比,以验证当前软件的软件来源合法性和版本合法性;若对比一致,则表明合法性验证通过,继续捕获下一软件;将捕获的下一软件作为当前软件重复步骤B和步骤C;若合法性验证未通过,则进入步骤D;
步骤D:阻止当前软件运行,向可信管理中心发出获取最新版本的软件的指令;在获取最新版本的软件后重复步骤B和步骤C;
所述数字证书包括开发证书和检测证书。
步骤二:通过所述可信管理中心对最新版本的软件的签名信息进行验证;
本发明实施例所述签名信息包括开发商数字签名和检测机构数字签名;因此,对签名信息进行验证的方法步骤可以包括:
S401:利用所述可信管理中心通过所述可信执行环境的内部API从所述数字证书***导入所述软件的开发证书和检测证书;
S402:利用所述开发证书对所述开发商数字签名进行验证、利用所述检测证书对所述检测机构数字签名进行验证,两者均验证通过,则表明所述软件的签名信息验证通过。
步骤三:接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件,并将软件安装路径和所安装软件的签名信息加载到所述可信策略库中;
所述开发商数字签名由软件开发商根据开发证书开发或更新软件后获取;所述检测机构数字签名由软件检测机构根据检测证书对软件进行检测后获取;所述开发证书和所述检测证书由所述数字证书***制作并颁发。在本发明实施例中,软件检测机构对软件所执行的检测包括病毒检测和功能检测。
在本发明实施例中,所述软件开发商和软件检测机构作为证书用户,所述变电站嵌入式装置将相应证书颁发给所述证书用户的方法包括:
S201:通过所述数字证书***接收所述证书用户发送的公共密钥和用户信息;
在本发明实施例中,所述公共密钥指所述证书用户调用非对称加密算法SM2生成的公私密钥对中的公钥;所述用户信息包括机构名称或个人名称等身份信息。
S202:通过所述数字证书***验证所述用户信息,验证通过后,使用根证书私钥加密包括所述公共密钥、所述用户信息、颁发日期和有效期在内的相关信息以生成二级证书,并安全存储所述二级证书;
S203:通过所述数字证书***将所述二级证书和根证书公钥发送至所述证书用户。
证书用户在接收到相应的二级证书和根证书公钥后,将其安全存储于自己的服务器中。
作为本发明的一种实施例,所述软件开发商使用哈希算法和非对称加密算法对开发或更新后的软件进行签名,以获取所述开发商数字签名。具体包括:
S2-a:所述软件开发商使用SM3算法计算所述软件的哈希值;
S2-b:所述软件开发商根据步骤S201中所述公私密钥对中的私钥,采用SM2算法加密步骤S2-a所述的哈希值,即获得所述开发商数字签名。
作为本发明的一种实施例,所述软件检测机构对所述软件进行检测之前,通过所述软件开发商获取所述开发证书,根据所述开发证书对所述软件进行验签,验签通过后再执行软件检测操作,仅当软件检测全部通过后再根据奸恶证书使用SM2和SM3算法对软件进行签名,从而获取检测机构数字签名。最后将软件、开发商数字签名和检测机构数字签名传送给可信管理中心。所述开发商数字签名和所述检测机构数字签名可以组成签名信息。
作为本发明的一种实施例,所述软件检测机构根据所述开发证书对所述软件进行验签,包括:
S301:所述软件检测机构使用服务器中安全存储的根证书公钥解密所述开发证书,解密成功则开发证书合法,从而获取开发商公钥;
S302:所述软件检测机构根据所述开发商公钥,采用SM2算法***开发商所发送的所述数字签名,解密成功则表明所述软件的数字签名来源合法;
S303:所述软件检测机构使用SM3算法计算所述软件开发商发送的所述软件的哈希值;
S304:所述软件检测机构将解密所述数字签名获取的基准哈希值与步骤S303中所述软件的哈希值进行对比,两值相同则表明所述软件未经篡改。
需要说明的是,在本发明实施例中,启动所述可信管理中心的校验程序的同时,可以启动硬件看门狗计时器开始计时,利用硬件看门狗计时器攻击面小的特性,确保软件校验程序正常启动和计时值达到预设时间阈值时触发警告信号这两者必然触发其一,保障软件、签名或版本不一致时,能够触发软件更新流程。对所有软件的合法性验证全部完成后,将所述硬件看门狗计时器的计时值清零;若所述硬件看门狗计时器的计时值达到预设时间阈值仍未清零,则向所述可信管理中心发出所述校验程序为正常启动的警告信号。
本发明实施例提供的方法可通过更换硬件芯片方式在变电站RTU上实现可信执行环境TEE,实施方式便捷;通过可信执行环境中的可信管理中心接收软件开发商开发或更新后的软件,对开发商数字签名和检测机构数字签名组成的签名信息进行双签验证,确保变电站嵌入式装置所安装的软件均为可信管理中心验证通过的软件,能够防御软件下发传输过程中可能出现的软件替换或版本替换等攻击行为,提高了软件的安全性和机密性;可信执行环境可以通过硬件可信根提供密码功能、完整性度量功能和安全隔离存储空间,能够满足软件开发、测试、运行和更新中的签名验证和完整性校验,保证软件全生命周期的来源一致性和版本可控。基于硬件可信根和看门狗计时器实现软件来源一致性和版本管控功能,抵抗信息攻击能力强,且不受业务软件类别限制。
实施例二:
参见图3,是根据本发明实施例提供的一种变电站嵌入式装置的结构原理框图。在本发明实施例中,变电站嵌入式装置指变电站运动装置,负责数据采集、计算和远距离数据传输,相应的变电站嵌入式装置的软件包括自检程序、数据采集与计算程序,以及通信程序。所述变电站嵌入式装置部署有RTU执行环境和可信执行环境,作为本发明的一种实施例,可以使用支持Trustzone技术的ARM芯片构造RTU执行环境。可信执行环境通过API接口与RTU执行环境进行双向通信,两者共享内存。
所述RTU执行环境:用于周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;对于合法性验证通过的软件,允许继续运行;对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;以及用于接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件;其中,所述签名信息包括开发商数字签名和检测机构数字签名;
可信执行环境中包含:数字证书***、可信管理中心和可信策略库三个可信应用。
所述可信管理中心:用于接收最新版本的软件及相应的签名信息,并对最新版本的软件的签名信息进行验证;
所述数字证书***:用于根据根证书制作开发证书和检测证书,并将所述开发证书颁发给软件开发商,以使所述软件开发商根据开发证书开发或更新软件,获取所述开发商数字签名;将所述检测证书颁发给软件检测机构,以使所述软件检测机构根据检测证书对所述软件开发商开发或更新的软件进行检测,获取所述检测机构数字签名;
所述可信策略库:用于存储所述开发证书、所述检测证书、所安装软件的软件安装路径和所安装软件的签名信息。
参见图4,是本发明实施例提供的一种数字证书***的结构原理框图,所述数字证书***包括:
第一远程通信模块:用于与所述软件开发商和所述软件检测机构交换用户信息、以及向所述软件开发商和所述软件检测机构发送相应的数字证书;
信息鉴别模块:用于对所述用户信息进行合法性判断,鉴别合法证书用户;
第一数据库模块:用于通过调用硬件可信根的隔离存储区域,安全存储所述用户信息、根证书和二级证书,所述二级证书包括:所述开发证书和所述检测证书;
安全加密模块:用于通过调用硬件可信根的对称加密算法、非对称加密算法生成公私密钥对,并利用所述公私密钥对对数字证书相关信息执行加密操作,以生成对应的数字证书;
时间信息接口:用于生成真实时间信息;
第一控制执行模块:用于与数字证书***中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作;
其中,所述数字证书包括开发证书和检测证书。
参见图5,是本发明实施例提供的一种可信管理中心的结构原理框图,所述可信管理中心包括:
第二远程通信模块:用于接收所述开发或更新后的软件以及相应的开发商数字签名和检测机构数字签名;以及用于通过可信执行环境内部API从数字证书***导入开发证书和检测证书;
签名验证模块:用于使用所述开发证书对所述开发商数字签名进行验证,使用检测证书对所述检测机构数字签名进行验证;
软件库模块:用于存储所述开发或更新后的软件;
第二数据库模块:用于存储所述开发证书、所述检测证书、所述开发商数字签名和所述检测机构数字签名;
第二控制执行模块:用于与可信管理中心中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作。
参见图6,是本发明实施例提供的一种可信策略库的结构原理框图,所述可信策略库包括:
第三数据库模块:包括可信策略单元和证书管理单元;所述可信策略单元用于:用于安全存储所述软件的软件安装路径和所述软件对应的开发商数字签名和检测机构数字签名;所述证书管理单元用于安全存储所述开发证书和所述检测证书;
输入输出模块:用于转发所述第三数据库模块输入或输出的信息。
本发明实施例所提供的装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果,在此不作赘述。本实施例中未尽的其它技术细节,在不冲突的情况下,可以参见其它实施例。
实施例三:
本发明实施例还提供了一种电子终端,包括处理器与所述处理器连接的存储器,在所述存储器内存储有计算机程序,当所述计算机程序被所述处理器执行时,执行如实施例一所述方法的步骤。
实施例四:
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现实施例一任一项所述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (16)
1.一种变电站嵌入式装置软件版本管控方法,其特征在于,所述变电站嵌入式装置预部署有可信执行环境;所述可信执行环境包括数字证书***、可信管理中心和可信策略库;所述方法包括如下步骤:
周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;
对于合法性验证通过的软件,允许继续运行;
对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;
通过所述可信管理中心对最新版本的软件的签名信息进行验证;
接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件,并将软件安装路径和所安装软件的签名信息加载到所述可信策略库中;
其中,所述签名信息包括开发商数字签名和检测机构数字签名;所述开发商数字签名由软件开发商根据开发证书开发或更新软件后获取;所述检测机构数字签名由软件检测机构根据检测证书对软件进行检测后获取;所述开发证书和所述检测证书由所述数字证书***制作并颁发。
2.根据权利要求1所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述对当前所要运行的软件的合法性进行验证,包括:
步骤A:通过HOOK机制捕获正在运行的当前软件,获得当前软件的软件安装路径;
步骤B:验证所述可信策略库是否存在当前软件的软件安装路径,若存在,则进入步骤C;否则,进入步骤D;
步骤C:从所述可信策略库中获取当前软件的签名信息,利用当前软件的数字证书解密所述签名信息,以获取当前软件的基准哈希值;
计算当前软件的哈希值,并将所计算的哈希值与相应的基准哈希值进行对比,以验证当前软件的软件来源合法性和版本合法性;若对比一致,则表明合法性验证通过,继续捕获下一软件;将捕获的下一软件作为当前软件重复步骤B和步骤C;若合法性验证未通过,则进入步骤D;
步骤D:阻止当前软件运行,向可信管理中心发出获取当前软件的最新版本的指令;在获取最新版本的软件后重复步骤B和步骤C;
所述数字证书包括所述开发证书和所述检测证书。
3.根据权利要求1或2所述的变电站嵌入式装置软件版本管控方法,其特征在于,启动所述可信管理中心的校验程序的同时,启动硬件看门狗计时器开始计时;
对所有软件的合法性验证全部完成后,将所述硬件看门狗计时器的计时值清零;
若所述硬件看门狗计时器的计时值达到预设时间阈值仍未清零,则向所述可信管理中心发出所述校验程序为正常启动的警告信号。
4.根据权利要求1所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述软件开发商和软件检测机构作为证书用户,所述变电站嵌入式装置将相应证书颁发给所述证书用户的方法包括:
通过所述数字证书***接收所述证书用户发送的公共密钥和用户信息;
通过所述数字证书***验证所述用户信息,验证通过后,使用根证书私钥加密包括所述公共密钥、所述用户信息、颁发日期和有效期在内的相关信息以生成二级证书,并安全存储所述二级证书;所述二级证书包括:所述开发证书和所述检测证书;
通过所述数字证书***将所述二级证书和根证书公钥发送至所述证书用户;
其中,所述公共密钥指所述证书用户调用SM2算法生成的公私密钥对中的公钥。
5.根据权利要求4所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述开发商数字签名的获取方法包括:
所述软件开发商使用SM3算法计算所述软件的哈希值;
所述软件开发商根据所述公私密钥对中的私钥,采用SM2算法加密所述哈希值,获得所述开发商数字签名。
6.根据权利要求1所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述软件检测机构对所述软件进行检测之前,通过所述软件开发商获取所述开发证书,根据所述开发证书对所述软件进行验签。
7.根据权利要求6所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述根据所述开发证书对所述软件进行验签,包括:
所述软件检测机构使用服务器中安全存储的根证书公钥解密所述开发证书,获取开发商公钥;
所述软件检测机构根据所述开发商公钥,采用SM2算法***开发商所发送的所述数字签名,解密成功则表明所述软件的数字签名来源合法;
所述软件检测机构使用SM3算法计算所述软件开发商发送的所述软件的哈希值;
所述软件检测机构将解密所述数字签名获取的基准哈希值与所述软件的哈希值进行对比,两值相同则表明所述软件未经篡改。
8.根据权利要求1所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述可信管理中心对所述签名信息进行验证,包括:
利用所述可信管理中心通过所述可信执行环境的内部API从所述数字证书***导入所述软件的开发证书和检测证书;
利用所述开发证书对所述开发商数字签名进行验证、利用所述检测证书对所述检测机构数字签名进行验证,两者均验证通过,则表明所述软件的签名信息验证通过。
9.根据权利要求1所述的变电站嵌入式装置软件版本管控方法,其特征在于,所述软件检测机构对所述软件进行的检测包括:病毒检测和功能检测。
10.一种变电站嵌入式装置,其特征在于,所述变电站嵌入式装置部署有RTU执行环境和可信执行环境;所述可信执行环境包括数字证书***、可信管理中心和可信策略库;
所述RTU执行环境:用于周期性地启动所述可信管理中心的校验程序,对当前所要运行的软件的合法性进行验证;对于合法性验证通过的软件,允许继续运行;对于合法性验证未通过的软件,阻止其运行,并向所述可信管理中心下发获取最新版本的软件的指令;以及用于接收并安装所述可信管理中心转发的签名信息验证通过的最新版本的软件;其中,所述签名信息包括开发商数字签名和检测机构数字签名;
所述可信管理中心:用于接收最新版本的软件及相应的签名信息,并对最新版本的软件的签名信息进行验证;
所述数字证书***:用于根据根证书制作开发证书和检测证书,并将所述开发证书颁发给软件开发商,以使所述软件开发商根据开发证书开发或更新软件,获取所述开发商数字签名;将所述检测证书颁发给软件检测机构,以使所述软件检测机构根据检测证书对所述软件开发商开发或更新的软件进行检测,获取所述检测机构数字签名;
所述可信策略库:用于存储所述开发证书、所述检测证书、所安装软件的软件安装路径和所安装软件的签名信息。
11.根据权利要求10所述的变电站嵌入式装置,其特征在于,所述数字证书***包括:
第一远程通信模块:用于与所述软件开发商和所述软件检测机构交换用户信息、以及向所述软件开发商和所述软件检测机构发送相应的数字证书;
信息鉴别模块:用于对所述用户信息进行合法性判断,鉴别合法证书用户;
第一数据库模块:用于通过调用硬件可信根的隔离存储区域,安全存储所述用户信息、根证书和二级证书,所述二级证书包括:所述开发证书和所述检测证书;
安全加密模块:用于通过调用硬件可信根的对称加密算法、非对称加密算法生成公私密钥对,并利用所述公私密钥对对数字证书相关信息执行加密操作,以生成对应的数字证书;
时间信息接口:用于生成真实时间信息;
第一控制执行模块:用于与数字证书***中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作;
其中,所述数字证书包括开发证书和检测证书。
12.根据权利要求10所述的变电站嵌入式装置,其特征在于,所述可信管理中心包括:
第二远程通信模块:用于接收所述开发或更新后的软件以及相应的开发商数字签名和检测机构数字签名;以及用于通过可信执行环境内部API从数字证书***导入开发证书和检测证书;
签名验证模块:用于使用所述开发证书对所述开发商数字签名进行验证,使用检测证书对所述检测机构数字签名进行验证;
软件库模块:用于存储所述开发或更新后的软件;
第二数据库模块:用于存储所述开发证书、所述检测证书、所述开发商数字签名和所述检测机构数字签名;
第二控制执行模块:用于与可信管理中心中的其余各模块交互,通过收发控制指令控制其余各模块执行相应的操作。
13.根据权利要求10所述的变电站嵌入式装置,其特征在于,所述可信策略库包括:
第三数据库模块:包括可信策略单元和证书管理单元;
所述可信策略单元用于:用于安全存储所述软件安装路径和所述签名信息;
所述证书管理单元用于安全存储所述开发证书和所述检测证书;
输入输出模块:用于转发所述第三数据库模块输入或输出的信息。
14.根据权利要求10所述的变电站嵌入式装置,其特征在于,所述变电站嵌入式装置包括变电站远动装置,所述软件包括自检程序、数据采集与计算程序和通信程序。
15.一种电子终端,其特征在于,包括处理器与所述处理器连接的存储器,在所述存储器内存储有计算机程序,当所述计算机程序被所述处理器执行时,执行如权利要求1~9任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336797.3A CN115659288A (zh) | 2022-10-28 | 2022-10-28 | 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336797.3A CN115659288A (zh) | 2022-10-28 | 2022-10-28 | 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115659288A true CN115659288A (zh) | 2023-01-31 |
Family
ID=84994211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211336797.3A Pending CN115659288A (zh) | 2022-10-28 | 2022-10-28 | 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659288A (zh) |
-
2022
- 2022-10-28 CN CN202211336797.3A patent/CN115659288A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108337239B (zh) | 电子设备的事件证明 | |
US20180287802A1 (en) | Using A Trusted Execution Environment As A Trusted Third Party Providing Privacy For Attestation | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
US20220038272A1 (en) | Device attestation including attestation-key modification following boot event | |
EP2278514A1 (en) | System and method for providing secure virtual machines | |
CN108696356B (zh) | 一种基于区块链的数字证书删除方法、装置及*** | |
CN112887282B (zh) | 一种身份认证方法、装置、***及电子设备 | |
CN103460195A (zh) | 用于安全软件更新的***和方法 | |
EP3333747A1 (en) | Methods and systems for detecting rollback attacks | |
CN113014444B (zh) | 一种物联网设备生产测试***及安全保护方法 | |
CN110276198B (zh) | 一种基于概率预测的嵌入式可变粒度控制流验证方法及*** | |
CN116490868A (zh) | 用于可信执行环境中的安全快速机器学习推理的***和方法 | |
JP6385842B2 (ja) | 情報処理端末、情報処理方法、及び情報処理システム | |
CN105099705B (zh) | 一种基于usb协议的安全通信方法及其*** | |
US20050005161A1 (en) | Services and secure processing environments | |
JP6387908B2 (ja) | 認証システム | |
Van Dijk et al. | Offline untrusted storage with immediate detection of forking and replay attacks | |
JP2020071880A (ja) | デバイス証明技術 | |
CN113872986B (zh) | 配电终端认证方法、装置和计算机设备 | |
CN111651740B (zh) | 一种面向分布式智能嵌入式***的可信平台共享*** | |
CN115659288A (zh) | 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 | |
CN113868628A (zh) | 一种签名验证方法、装置、计算机设备和存储介质 | |
CN115879087A (zh) | 一种面向电力终端的安全可信启动方法及*** | |
Magnanini et al. | Scalable, confidential and survivable software updates | |
Debes et al. | ZEKRO: Zero-Knowledge Proof of Integrity Conformance |
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 |