掌桥专利:专业的专利平台
掌桥专利
首页

一种基于边缘物联代理装置系统程序的信任度验证方法

文献发布时间:2023-06-19 19:14:59


一种基于边缘物联代理装置系统程序的信任度验证方法

技术领域

本申请涉及电力通信技术领域,尤其涉及一种基于边缘物联代理装置系统程序的信任度验证方法。

背景技术

边缘物联代理作为电力物联网边缘层的核心设备,在国家电网“云-管-边-端”的物联网架构中,起到连接最下层电力物联终端和上层云平台的桥梁的作用。边缘物联代理如防护措施不到位,遭受入侵或被非法控制后,可能造成电网系统类数据的泄露、篡改,甚至还可以以此为跳板对上层云平台开展渗透攻击,导致整个云平台的瘫痪,因此亟须开展基于边缘物联代理的安全防护技术研究。

通过近年来的对边缘物联代理装置安全事件的分析,进行恶意代码渗透攻击,植入或者伪装系统程序(注:系统程序在此方案中专指系统业务程序)进行攻击的手段愈演愈烈,对于此种攻击手段如何防护成为近年热点研究主题。

目前对系统程序进行防护较为认可的方式是采用程序“白名单”方式,但是这个远远还不够,由于“白名单”的实现方式只能在操作系统是安全启动的前提下,才能保证系统程序是可信的。假如操作系统在启动的过程中,攻击者通过更改系统的启动参数,获取到root权限,或者替换根文件系统和操作系统,都会让白名单机制就失去保护效力。

发明内容

本申请实施例的目的在于提供基于边缘物联代理装置系统程序的信任度验证方法,以解决现有的“白名单”防护机制,无法应对操作系统不能安全启动所造成的安全风险。

为实现上述目的,本申请提供如下技术方案:

本申请实施例提供一种基于边缘物联代理装置系统程序的信任度验证方法,包括以下具体步骤:

鉴于一次性可编程存储器eFuse只能烧写一次的特性,将基于eFuse特性的安全根密钥SRK的hash值烧入,并以此作为信任根;

从操作系统启动开始,进行多级验证,直到开机启动的信任度验证程序验证完毕,确保操作系统启动的安全性。

所述将基于eFuse特性的SRK的hash值烧入,并以此作为信任根具体为,

在eFuse中写入SRK的hash值,并以此为信任根;

基于边缘物联代理硬件,生成SRK和对应的私钥,将SRK的hash值写入一次性可编程存储器eFuse,SRK打包到uboot中,SRK对应的私钥对uboot进行签名,签名打包到uboot中,bootrom读取uboot中的SRK,计算SRK的hash值,和efuse中的hash值对比,如果一致,说明SRK合法,然后,基于SRK进行下一级的认证;

在uboot镜像、操作系统镜像和信任度验证程序中分别写入不同的公钥;

用eFuse的SRK对应的私钥对uboot镜像进行签名;

bootrom使用SRK对系统引导程序uboot文件末尾的签名进行验签,验签成功则继续启动,否则终止;

用uboot镜像私钥对操作系统进行签名;

使用uboot中的公钥对操作系统末尾的签名进行验签,验签成功则启动操作系统,否则就终止,由于根文件系统也在操作系统内部,因此,此过程也保证了根文件系统的可信性;

用操作系统私钥对信任度验证程序进行签名;

使用操作系统中的公钥,对信任度验证程序文件末尾的签名进行验签,验签成功,则启动信任度验证程序,否则系统挂起。

所述从操作系统启动开始,进行多级验证,直到开机启动的信任度验证程序验证完毕,确保操作系统启动的安全性具体为,

系统自带应用程序受信验证;

信任度验证程序启动以后,对可信程序清单进行验签,验签失败,则系统退出;

信任度验证程序加载内核启动进程拦截模块,将可信程序清单里面的各个系统程序的hash值写到内核空间;

信任度验证程序启动系统程序;

内核拦截到启动系统程序的系统调用,根据启动的系统程序的路径,计算此时系统程序的hash值,并将此hash值和可信程序清单内部的hash值比较,如果一致则合法,否则不合法,不合法则禁止启动;

后续增加应用程序受信验证;

此类系统程序末尾都需要添加使用私钥签名的签名信息,私钥是信任度验证程序中公钥对应的私钥;

信任度验证程序对系统程序进行验签,验签成功则将系统程序的hash值写入可信程序清单,并更新可信程序清单的签名信息;

信任度验证程序同步更新内核空间内存中的可信程序清单;

信任度验证程序启动此系统程序;

内核拦截到启动系统程序的系统调用,根据启动的系统程序的路径,计算此时系统程序的hash值,并将此hash值和可信程序清单内部的hash值比较,如果一致则合法,否则不合法,不合法则禁止启动。

与现有技术相比,本发明的有益效果是:

本发明基于eFuse公钥作为信任根,并联合Uboot、操作系统和“信任度验证程序”的公私钥签名认证,打造安全可信的操作系统启动环境。通过“信任度验证程序”扫描识别启动程序,并将其纳入到可信程序清单文件中,同时对可信程序清单的应用程序进行私钥签名。后续启动程序以及新加入的应用程序通过公钥进行验证,来确保运行程序的合法性。可信程序清单放置在操作系统内核内存中,将可信程序清单里面的各个系统程序的hash值写到内核空间构造“内核启动程序拦截”模块,力求从系统启动阶段就对应用程序进行过滤,有效保障系统的安全性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为申请提供的一种基于边缘物联代理装置系统程序的信任度验证方法的流程图;

图2为申请提供的操作系统安全启动的流程图;

图3为申请提供的启动程序验证的方法的流程图;

图4为申请提供的新加系统程序验证的流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

参见图1,为本申请提供的一种基于边缘物联代理装置系统程序的信任度验证方法的流程图,可知,本申请提供了向eFuse烧入安全根密钥SRK的hash值,构造边缘物联代理装置系统信任根;向Uboot、操作系统、信任度验证程序烧入不同的公钥,并基于信任根,进行逐级签名、逐级验证,构造安全可靠的操作系统启动环境;通过信任度验证程序构建“内核鉴别”级白名单防护机制,力求从系统启动阶段就对应用程序进行过滤,有效保障系统的安全性。该信任度鉴别方法包括:

S1:设置eFuse公钥作为信任根,从操作系统启动开始,进行多级认证,确保操作系统安全启动;

S11:在eFuse中写入安全根密钥SRK的hash值,并以此为信任根

S12:在uboot镜像、操作系统镜像和信任度验证程序中分别写入不同的公钥;

S13:用eFuse的私钥对uboot镜像进行签名

S14:用uboot镜像私钥对操作系统进行签名

S15:用操作系统私钥对“信任度验证程序”进行签名

S2:应用程序受信验证

S21:系统自带应用程序受信验证

S22:后续增加应用程序受信验证。

参见图2,为本申请提供的操作系统安全启动的流程图,可知,筛选操作系统安全启动的过程如下:

S1:设置eFuse公钥作为信任根,从操作系统启动开始,进行多级认证,确保操作系统安全启动;

S11:在eFuse中写入公钥,并以此为信任根

S111:基于边缘物联代理硬件,生成一对公私钥,将公钥写入eFuse(一次性可编程存储器),此公钥作为根,基于它进行下一级的认证。

S12:在uboot镜像、操作系统镜像和“信任度验证程序”中分别写入5不同的公钥;

S13:用eFuse的私钥对uboot镜像进行签名

S131:bootrom读取eFuse中的公钥,并对uboot(系统引导程序,类似于widnows里面的BIOS)文件末尾的签名进行验签,验签成功则继续启动,否则终止。

0S14:用uboot镜像私钥对操作系统进行签名

S141:使用uboot中的公钥对操作系统末尾的签名进行验签,验签成功则启动操作系统,否则就终止。由于根文件系统也在操作系统内部,因此,此过程也保证了根文件系统的可信性。

S15:用操作系统私钥对“信任度验证程序”进行签名5S151:使用操作系统中的公钥,对“信任度验证程序”文件末尾的签名

进行验签,验签成功,则启动“信任度验证程序”,否则系统挂起。

参见图3,为本申请提供的筛选启动程序验证的方法的流程图,可知,筛选启动程序验证的过程如下:

S21:系统自带应用程序受信验证

0S211:“信任度验证程序”启动以后,对可信程序清单进行验签,验签

失败,则系统退出。

S212:“信任度验证程序”加载“内核启动进程拦截”模块,将可信程序清单里面的各个系统程序的hash值写到内核空间。

S213:“信任度验证程序”启动系统程序。

5S214:内核拦截到启动系统程序的系统调用,根据启动的系统程序的路

径,计算此时系统程序的hash值,并将此hash值和可信程序清单内部的hash值比较,如果一致则合法,否则不合法,不合法则禁止启动。

参见图4,为本申请提供的筛选新加系统程序验证的方法的流程图,可知,筛选新加系统程序验证的过程如下:

S22:后续增加应用程序受信验证。

S221:此类系统程序末尾都需要添加使用私钥签名的签名信息,私钥是“信任度验证程序”中公钥对应的私钥。

S222:“信任度验证程序”对系统程序进行验签,验签成功则将系统程序的hash值写入可信程序清单,并更新可信程序清单的签名信息。

S223:“信任度验证程序”同步更新内核空间内存中的可信程序清单。

S224:“信任度验证程序”启动此系统程序。

S225:内核拦截到启动系统程序的系统调用,根据启动的系统程序的路径,计算此时系统程序的hash值,并将此hash值和可信程序清单内部的hash值比较,如果一致则合法,否则不合法,不合法则禁止启动。

信任度验证方法,作为构建白名单安全机制的方法之一,它克服了其他白名单软件防护方法对操作系统安全启动缺乏保障能力的不足,并从内核层面对启动程序进行验证过滤,将主机防护的关口前移,真正为边缘物联代理装置系统提供了可信的主机环境,有效保障系统的安全性。为后续类似主机层面的安全防护措施研究提供技术基础。

本方法的关键核心要点包括构建安全可靠的操作系统启动环境和基于“信任度验证程序”的内核级白名单防护机制。

构建安全可靠的操作系统启动环境的技术包括:

基于efuse的只能烧写一次,且源码不公开的特性,烧入公钥打造信任根;向Uboot、操作系统、“信任度验证程序”设置不同的公私钥,联合信任根进行逐级验证,确保操作系统启动的安全性。

基于“信任度验证程序”的内核级白名单防护机制技术点包括:

通过“信任度验证程序”扫描识别启动程序,并将其纳入到可信程序清单文件中,同时对可信程序清单的应用程序进行私钥签名。后续启动程序以及新加入的应用程序通过公钥进行验证,来确保运行程序的合法性。可信程序清单放置在操作系统内核内存中,将可信程序清单里面的各个系统程序的hash值写到内核空间构造“内核启动程序拦截”模块,力求从系统启动阶段就对应用程序进行过滤,有效保障系统的安全性。

本申请提供了一种基于边缘物联代理装置系统程序的信任度验证方法,以eFuse为信任根,构建边缘物联代理装置系统的信任体系,从操作系统启动开始,进行多级验证,直到开机启动的“信任度验证程序”验证完毕,构建操作系统安全启动环境;在操作系统安全启动的环境下,构建基于“信任度验证程序”的白名单防护机制。在设备出厂的时候,扫描系统所有运行程序,将这些运行程序写入到可信程序清单文件中,并对可信程序清单使用“信任度验证程序”中存储的公钥对应的私钥进行签名,并将签名写入可信程序清单尾部,供后续验签使用。后续应用程序安装运行则经过“信任度验证程序”验证后给予运行。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 基于图形化建模的电力边缘物联代理边缘计算方法及系统
  • 一种基于配置实现采集、计算的边缘物联代理装置及方法
技术分类

06120115848981