安全服务管理实体SSME模块的校验方法及装置与流程

文档序号:12670212阅读:466来源:国知局
安全服务管理实体SSME模块的校验方法及装置与流程

本发明涉及计算机技术领域,主要涉及了一种安全服务管理实体SSME模块的校验方法及装置。



背景技术:

近年来,随着汽车工业的普及,私家车拥有量的激增,道路拥塞的日益严重,交通事故的频发,以及各式各样车载设备的不断涌现,创建高性能、高扩展性、安全的车用自组织网络给无线研究者们提出了新的挑战。作为V2X(vehicle to X,车辆对外界通信)的热门技术之一的WAVE(Wireless Access in Vehicular Environments,车载通信无线接入)协议栈由IEEE制定,基于802.11的无线通信协议栈,具有部署容易、成本较低等优点。

根据WAVE 1609.2标准,为提升车联网的安全性,车联网设备(例如,汽车、路边单元等接入车联网的设备)中必须有SSME(Secure Service Management Entity,安全服务管理实体)模块,用于存储数字证书及相关信息,并向设备内其他模块提供正确的数字证书相关信息。在该标准中,假定SSME模块所提供的所有信息都是可信的。

由于SSME模块是软件模块,也就是说SSME模块可以被恶意软件感染和/或控制,进而成为攻破车联网安全系统。因此SSME模块成为整个WAVE车联网安全的薄弱环节。



技术实现要素:

基于此,为解决安全服务管理实体SSME模块在被恶意软件感染和/或控制后,提供错误的数字证书和相关信息导致车联网设备出现安全问题,特提出了一种安全服务管理实体SSME模块的校验方法。

一种安全服务管理实体SSME模块的校验方法,包括:

确定待校验的SSME子模块作为目标模块,通过哈希函数生成所述目标模块的目标校验值;

根据已存储的Merkle树中获取根节点的值和所述目标模块在所述Merkle树中对应的验证路径,所述验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列;

将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值;

当所述校验根值与所述根节点的值匹配时,确定所述目标模块校验通过。

在其中一个实施例中,所述将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值还包括:将所述目标校验值作为第一哈希值;获取所述目标模块对应的叶节点的父节点作为目标父节点,迭代执行:将和所述目标模块对应的叶节点组成目标组合的子节点作为验证节点,确定所述验证节点的值作为第二哈希值;将所述第一哈希值和所述第二哈希值两两哈希得到所述目标父节点的值作为第一哈希值,将所述目标父节点的父节点作为目标父节点;在所述目标父节点为根节点时,结束迭代;将所述根节点的值作为所述校验根值。

在其中一个实施例中,计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值;将所述叶节点作为目标节点,迭代执行:将所述目标节点不重复两两组合,遍历得到的组合,对于遍历到的目标组合,计算目标组合的哈希值作为所述目标组合中的节点的父节点的值;在遍历结束后,将所述父节点作为目标节点;在所述父节点为根节点时,结束迭代;存储所述Merkle树。

在其中一个实施例中,当所述SSME模块安装完成或所述SSME模块升级完成后,执行所述计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值的步骤。

在其中一个实施例中,所述计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值之前还包括:将所述SSME模块划分为2N个SSME子模块,其中N为正整数。

此外,为解决安全服务管理实体SSME模块在被恶意软件感染和控制后,提供错误的数字证书和相关信息导致车联网设备出现安全问题,特提出了一种安全服务管理实体SSME模块的校验装置。

一种安全服务管理实体SSME模块的校验装置,包括:

校验值确定模块,用于确定待校验的SSME子模块作为目标模块,通过哈希函数生成所述目标模块的校验值;

参数获取模块,用于根据已存储的Merkle树中获取根节点的值和所述目标模块在所述Merkle树中对应的验证路径,所述验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列;

校验根值确定模块,用于将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值;

校验结果处理模块,用于当所述校验根值与所述根节点的值匹配时,确定所述目标模块校验通过。

在其中一个实施例中,所述校验根值确定模块还用于将所述目标校验值作为第一哈希值;获取所述目标模块对应的叶节点的父节点作为目标父节点,迭代执行:将和所述目标模块对应的叶节点组成目标组合的子节点作为验证节点,确定所述验证节点的值作为第二哈希值;将所述第一哈希值和所述第二哈希值两两哈希得到所述目标父节点的值作为第一哈希值,将所述目标父节点的父节点作为目标父节点;在所述目标父节点为根节点时,结束迭代;将所述根节点的值作为所述校验根值。

在其中一个实施例中,所述装置还包括存储模块,用于计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值;将所述叶节点作为目标节点,迭代执行:将所述目标节点不重复两两组合,遍历得到的组合,对于遍历到的目标组合,计算目标组合的哈希值作为所述目标组合中的节点的父节点的值;在遍历结束后,将所述父节点作为目标节点;在所述父节点为根节点时,结束迭代;存储所述Merkle树。

在其中一个实施例中,所述装置还包括检测执行模块,用于当所述SSME模块安装完成或所述SSME模块升级完成后,调用所述存储模块。

在其中一个实施例中,所述存储模块还用于将所述SSME模块划分为2N个SSME子模块,其中N为正整数。

实施本发明实施例,将具有如下有益效果:

采用了上述的安全服务管理实体SSME模块的校验方法及装置之后,当确定待校验的SSME子模块为目标模块之后,通过哈希函数生成目标模块对应的校验值,根据已存储的Merkle树获取根节点的值和目标模块在所述Merkle树中对应的叶节点的验证路径,然后将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值,判断校验根值是否与根节点的值匹配,若是,则目标模块校验通过。由于存储的Merkle树的根节点的值是在安装或升级SSME模块后,根据SSME子模块对应的叶节点生成的,因此通过对比校验根值和根节点的值则能验证SSME子模块的完整性,从而提高车联网设备的可靠性和安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1为本发明实施例提供的一种SSME模块的校验方法流程图;

图2为本发明实施例提供的一种Merkle树的示意图;

图3为本发明实施例提供的一种验证目标模块的示意图;

图4为本发明实施例提供的一种SSME模块的校验装置结构图;

图5为一个实施例中运行SSME模块的校验方法的计算机设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为解决安全服务管理实体SSME模块在被恶意软件感染和控制后,提供错误的数字证书和相关信息导致车联网设备出现安全问题,在一个实施例中,特提出了一种安全服务管理实体SSME模块的校验方法。该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是车联网设备中针对SSME模块的安全验证软件中的一个独立的应用,或者基于安全验证软件应用开发的功能选项或应用插件,该车联网设备可以是汽车,也可以是路边单元等接入车联网的设备,该SSME模块基于WAVE 1609.2标准安装与车联网设备中,用于存储数字证书及相关信息,并向车联网设备内其他模块提供正确的数字证书相关信息。

该方法执行后,在车联网设备安装SSME模块时,应当获取每个SSME子模块的哈希值,根据这些哈希值两两组合,继续哈希,以此类推,直至计算出Merkle树的根节点的哈希值,并存储Merkle树。每当需要调用一个SSME子模块时,需通过该SSME子模块的哈希值校验该SSME子模块的完整性,从而提高了车联网设备的可靠性和安全性。

需要注意的是,当SSME模块进行升级时,应当同步更新所存储的Merkle树中包含的校验信息,包括重新计算哈希值、重新计算Merkle树,以及将重新计算结果更新所存储的信息。

具体的,如图1所示,一种安全服务管理实体SSME模块的校验方法,包括:

步骤S102:确定待校验的SSME子模块作为目标模块,通过哈希函数生成所述目标模块的校验值。

将运行中需要调用的SSME子模块作为待校验的SSME子模块,将待校验的SSME子模块作为目标模块。其中,待校验的SSME子模块至少为一个。仅针对待校验的SSME子模块进行验证,而不是整个SSME模块,可确定SSME子模块是否可信,且提高了校验的查找效率。

本发明实施例中,获取目标模块的校验信息,通过哈希函数生成校验信息对应的校验值。目标模块的校验信息可为该目标模块的身份标识,该身份标识可以是一串字符或数字,且能够唯一标识该SSME子模块,即每一个SSME子模块的身份标识都是唯一的,如使用该SSME子模块的用户的昵称或用户的联系方式、MAC地址、设备ID等,本发明实施例不作限定。

本发明实施例中,哈希函数的构造方法可为直接定址法、数字分析法、平均取中法、折叠法、除留余数法和随机数法等中的一种或多种构造方法的结合,本发明实施例不作限定。

步骤S104:根据已存储的Merkle树中获取根节点的值和所述目标模块在所述Merkle树中对应的验证路径,所述验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列。

Merkle树,用来同步数据一致性的算法,也称为Merkle哈希树,这是因为它所构造的Merkle树的所有节点都是哈希值。Merkle树具有以下特点:

1)它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点;

2)Merkle树的叶节点的值由设计你指定,如Merkle树将数据的哈希值作为叶节点的值;

3)非叶节点的值是根据它下面所有的叶节点值,然后按照一定的算法计算而得出的。如Merkle树的非叶节点的值的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行哈希计算所得出的哈希值。

本发明实施例中,在车联网设备安装SSME模块时,应当获取每个SSME子模块的哈希值,根据这些哈希值两两组合,继续哈希,以此类推,直至计算出Merkle树的根节点的哈希值,并存储Merkle树。也就是说,通过存储的Merkle树可获得根节点的值和对应的SSME子模块的验证路径,对SSME子模块的校验信息进行存储,若该SSME子模块被篡改则对应的校验信息与存储的校验信息必然不匹配,从而对SSME子模块进行校验。

具体的:计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值;将所述叶节点作为目标节点,迭代执行:将所述目标节点不重复两两组合,遍历得到的组合,对于遍历到的目标组合,计算目标组合的哈希值作为所述目标组合中的节点的父节点的值;在遍历结束后,将所述父节点作为目标节点;在所述父节点为根节点时,结束迭代;存储所述Merkle树。

如图2所示的Merkle树,每个SSME子模块对应一个叶节点,如叶节点1对应于子模块1,叶节点2对应于子模块2,叶节点n对应于子模块n。通过计算哈希函数得到叶节点的值,这些叶节点两两组合得到该叶节点的父节点,继续执行哈希,如叶节点1和叶节点2组合构造父节点11,父节点11的值为叶节点1和叶节点2哈希计算得到的哈希值;叶节点3和叶节点4组合构造父节点33,父节点33的值为叶节点3和叶节点4哈希计算得到的哈希值。将父节点2作为目标节点,与父节点4构造父节点111,则父节点111的值为父节点2和父节点4哈希计算得到的哈希值,再将父节点111作为目标节点,以此类推,直至构造Merkle树的根节点,获取该根节点的值和对应的叶节点的验证路径。

验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列。如图2所示的Merkle树中,假设子模块1为目标模块,则子模块1在Merkle树中对应的验证路径为父节点11、父节点111、……、父节点1…1。

需要说明的是,该SSME模块的SSME子模块的数量应该是双数,则将所述SSME模块划分为2N个SSME子模块,其中N为正整数。

为了确保存储的位置是安全可靠的,将Merkle树存储于可信存储区域,可以是安全芯片这种固定的硬件设备,也可以是可信执行环境(Trusted Execution Environment,TEE)这种软件环境。

步骤S106:将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值。

根据目标校验值和验证路径上的子节点值获取校验根值,具体的:将所述目标校验值作为第一哈希值;获取所述目标模块对应的叶节点的父节点作为目标父节点,迭代执行:将和所述目标模块对应的叶节点组成目标组合的子节点作为验证节点,确定所述验证节点的值作为第二哈希值;将所述第一哈希值和所述第二哈希值两两哈希得到所述目标父节点的值作为第一哈希值,将所述目标父节点的父节点作为目标父节点;在所述目标父节点为根节点时,结束迭代;将所述根节点的值作为所述校验根值。

举例来说,结合一个具体的实施例。如图3所示,目标模块为子模块3,子模块3的验证路径为父节点22,通过步骤S104获取的校验值为121,则第一哈希值为121,将子模块3对应的叶节点3的父节点22作为目标父节点,验证节点为叶节点4,则第二哈希值为叶节点4的值122。通过第一哈希值121和第二哈希值122哈希得到目标父节点的值为13;将父节点22的父节点作为目标父节点,即此时的目标父节点为根节点,第一哈希值为13,验证节点为父节点11,则第二哈希值为父节点11的值12,通过第一哈希值13和第二哈希值12哈希得到目标父节点的值为1。由于目标父节点为根节点,则校验根值为1。

需要注意的是,SSME模块升级是必不可少的,当SSME模块升级完成后,应当同步更新所存储的校验信息,包括重新计算哈希值、重新计算Merkle树,以及将重新计算结果更新所存储的信息。

步骤S108:当所述校验根值与所述根节点的值匹配时,确定所述目标模块校验通过。

当校验根值与根节点的值匹配时,说明目标模块所构造的Merkle树的校验根值与存储的Merkle树的根节点的值一致,表示该目标模块没有被修改,从而验证SSME子模块的完整性,提高了车联网设备的可靠性和安全性。

举例来说,如图3所示,假设目标模块为子模块3,已存储的Merkle树的根节点的值为1,通过步骤S106获取校验根值为1,则校验根值与根节点的值匹配,子模块3校验通过,则子模块3可以为车联网设备内其他模块提供正确的数字证书相关信息。

为解决安全服务管理实体SSME模块在被恶意软件感染和控制后,提供错误的数字证书和相关信息导致车联网设备出现安全问题,在一个实施例中,特提出了一种安全服务管理实体SSME模块的校验装置。如图4所示,上述安全服务管理实体SSME模块的校验装置包括校验值确定模块102、参数获取模块104、校验根值确定模块106以及校验结果处理模块108,其中:

校验值确定模块102,用于确定待校验的SSME子模块作为目标模块,通过哈希函数生成所述目标模块的校验值;

参数获取模块104,用于根据已存储的Merkle树中获取根节点的值和所述目标模块在所述Merkle树中对应的验证路径,所述验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列;

校验根值确定模块106,用于将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值;

校验结果处理模块108,用于当所述校验根值与所述根节点的值匹配时,确定所述目标模块校验通过。

在其中一个实施例中,所述校验根值确定模块106还用于将所述目标校验值作为第一哈希值;获取所述目标模块对应的叶节点的父节点作为目标父节点,迭代执行:将和所述目标模块对应的叶节点组成目标组合的子节点作为验证节点,确定所述验证节点的值作为第二哈希值;将所述第一哈希值和所述第二哈希值两两哈希得到所述目标父节点的值作为第一哈希值,将所述目标父节点的父节点作为目标父节点;在所述目标父节点为根节点时,结束迭代;将所述根节点的值作为所述校验根值。

在其中一个实施例中,所述装置还包括存储模块110,用于计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值;将所述叶节点作为目标节点,迭代执行:将所述目标节点不重复两两组合,遍历得到的组合,对于遍历到的目标组合,计算目标组合的哈希值作为所述目标组合中的节点的父节点的值;在遍历结束后,将所述父节点作为目标节点;在所述父节点为根节点时,结束迭代;存储所述Merkle树。

在其中一个实施例中,所述装置还包括检测执行模块1102,用于当所述SSME模块安装完成或所述SSME模块升级完成后,调用所述存储模块。

在其中一个实施例中,所述存储模块110还用于将所述SSME模块划分为2N个SSME子模块,其中N为正整数。

实施本发明实施例,将具有如下有益效果:

采用了上述的安全服务管理实体SSME模块的校验方法及装置之后,当确定待校验的SSME子模块为目标模块之后,通过哈希函数生成目标模块对应的校验值,根据已存储的Merkle树获取根节点的值和目标模块在所述Merkle树中对应的叶节点的验证路径,然后将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值,判断校验根值是否与根节点的值匹配,若是,则目标模块校验通过。由于存储的Merkle树的根节点的值是在安装或升级SSME模块后,根据SSME子模块对应的叶节点生成的,因此通过对比校验根值和根节点的值则能验证SSME子模块的完整性,从而提高车联网设备的可靠性和安全性。

在一个实施例中,如图5所示,图5展示了一种运行安全服务管理实体SSME模块的校验方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是汽车等车联网设备,也可以是路边单元等接入车联网的设备。具体的,可包括通过系统总线连接的外部输入接口1001、处理器1002、存储器1003和输出接口1004。其中,外部输入接口1001可选的可至少包括网络接口10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口1004可至少包括显示屏10042等设备。

在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的校验值确定模块102、参数获取模块104、校验根值确定模块106、校验结果处理模块108、存储模块110以及检测执行模块1102。且在上述安全服务管理实体SSME模块的校验方法执行过程中,输入的参数均通过外部输入接口1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口1004进行输出。

具体的,上述处理器1002用于确定待校验的SSME子模块作为目标模块,通过哈希函数生成所述目标模块的校验值;根据已存储的Merkle树中获取根节点的值和所述目标模块在所述Merkle树中对应的验证路径,所述验证路径为所述目标模块对应的叶节点到所述根节点所经过的子节点的序列;将所述目标校验值迭代地与所述验证路径上的子节点值进行哈希得到校验根值;当所述校验根值与所述根节点的值匹配时,确定所述目标模块校验通过。

在可选实施例中,在上述处理器1002还用于将所述目标校验值作为第一哈希值;获取所述目标模块对应的叶节点的父节点作为目标父节点,迭代执行:将和所述目标模块对应的叶节点组成目标组合的子节点作为验证节点,确定所述验证节点的值作为第二哈希值;将所述第一哈希值和所述第二哈希值两两哈希得到所述目标父节点的值作为第一哈希值,将所述目标父节点的父节点作为目标父节点;在所述目标父节点为根节点时,结束迭代;将所述根节点的值作为所述校验根值。

在可选实施例中,在上述存储器1003用于计算SSME模块中各个SSME子模块的哈希值作为所述Merkle树的叶节点的值;将所述叶节点作为目标节点,迭代执行:将所述目标节点不重复两两组合,遍历得到的组合,对于遍历到的目标组合,计算目标组合的哈希值作为所述目标组合中的节点的父节点的值;在遍历结束后,将所述父节点作为目标节点;在所述父节点为根节点时,结束迭代;存储所述Merkle树。

在可选实施例中,在上述处理器1002还用于当所述SSME模块安装完成或所述SSME模块升级完成后,调用所述存储模块。

在可选实施例中,在上述存储器1003还用于将所述SSME模块划分为2N个SSME子模块,其中N为正整数。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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