基于匿名认证的车联网安全技术研究*

2020-03-26 08:26黄海旭
通信技术 2020年2期
关键词:数字证书公钥哈希

黄海旭

(北京长焜科技有限公司,北京 100088)

0 引 言

随着5G物联网技术与汽车产业、交通产业的深度融合,车联网技术应用得到了飞速发展,被认为是5G物联网领域中最具发展潜力的应用之一。借助于信息通信技术,车联网技术将实现车与车、车与人以及车与路之间的互联互通,实现交通智能化,构建交通服务新业态,从而提高交通运行效率,降低交通事故发生率,为用户提供更舒适、更高效、更安全的驾乘感受。车路协同技术通过道路设施的智能化、数字化以及车与路之间实时的信息交互,在辅助驾驶阶段和自动驾驶阶段,都可以有效提升驾驶安全性,改善交通拥堵,提高交通运行效率。

在车联网技术飞速发展的同时,信息安全问题越来越受到人们的关注。V2V通信过程中,车辆信息和用户隐私如何不被泄露、车辆内部的控制数据如何不被攻击者篡改等安全问题,已成为车联网商用过程中必须面对的问题[1]。区块链(Blockchain)匿名认证机制的共识机制和不可篡改的特性被认为是信息安全的有力保障,将匿名认证机制应用到车联网的信息安全中,必将为车联网信息安全防护提供一种新的解决方案。

1 匿名认证机制中的默克尔树

默克尔树是一种二叉树,由一个根节点、一组中间节点和一组叶节点构成,如图1所示。

图1 默克尔树

从下往上看,D0、D1、D2和D3是叶子节点包含的数据,也就是叶子节点的value。继续往上看,N0、N1、N2和 N3是叶子节点,是将数据 D0、D1、D2和D3分别进行Hash运算后得到的Hash值;继续往上看,N4和N5是中间节点,分别是N0和N1经过Hash运算得到的哈希值以及N2和N3经过Hash运算得到的哈希值,它们是把相邻的两个叶子结点合并成一个字符串,然后运算这个字符串的哈希;继续往上看,Root节点是N4和N5经过Hash运算后得到的哈希值,即这颗默克尔树的根哈希。

默克尔树中最下面的大量的叶节点包含基础数据;每个中间节点是它的两个叶子节点的哈希,根节点是它的两个子节点的哈希,代表了默克尔树的顶部。从默克尔树的结构可以看出,任意一个叶子节点的交易被修改,叶子节点Hash值会变更,最终根节点的Hash值会改变。所以,确定的根节点的Hash值可以准确作为一组交易的唯一摘要[2]。

默克尔树的具有如下特点:

(1)默克尔树常见的结构是二叉树,但它也可以是多叉树,具有树结构的全部特点;

(2)默克尔树的基础数据不是固定的,因为它只要数据经过哈希运算得到的Hash值;

(3)默克尔树是从下往上逐层计算的,就是说每个中间节点是根据相邻的两个叶子节点组合计算得出的,而根节点是根据两个中间节点组合计算得出的,所以叶子节点是基础[3]。

2 基于匿名认证机制的车联网安全方案

2.1 方案的组成

本方案的系统组成如图2所示,主要由车辆、数字证书认证中心、授权中心和Blockchain共4部分组成。

2.1.1 车 辆

通过V2I的方式从RSU上获取匿名认证所需要的数据,并保存在本地。通过V2V的方式与其他车辆进行通信及匿名认证,整个匿名认证过程需要基于Blockchain来实现,以保证认证过程中的安全性。

2.1.2 数字证书认证中心

在授权中心下发颁发证书或者公钥撤销指令时,对车辆进行颁发证书或者公钥撤销的过程中,数字证书认证中心不需要知道公钥和车辆信息的对应关系[4]。同时,数字证书认证中心和授权中心需要将公钥和车辆信息进行双重加密后保存到Blockchain中,以防止单独一方获取公钥和车辆信息的对应关系。

图2 方案的系统组成

2.1.3 授权中心

接收车辆上报的匿名认证申请,判断车辆信息是否合法。如果合法,则授权数字证书认证中心向该车辆颁发数字证书。当车辆认证过程中发生纠纷时,对车辆进行身份确认,对于认证过期或者未认证车辆,有权要求其重新上报匿名认证申请,在必要时可以在数字证书认证中心撤销其公钥。为了保证系统的安全,授权中心在完成数字证书授权后,需将接收到的车辆信息从本地删除,不保存公钥和车辆信息的对应关系。

2.1.4 Blockchain

利用默克尔树永久地保存公钥和车辆信息的对应关系,包括数字证书的认证和公钥撤销记录,并提供完整而高效的验证机制,以方便车辆在通信过程中快速地证明自己的合法性。

2.2 证书颁发与公钥撤销

2.2.1 证书颁发

数字证书认证中心在收到授权中心的授权后,向车辆A颁发数字证书,具体实施过程如下:

第一步,车辆A使用自己保存的私钥产生新的公钥;

第二步,车辆A将新产生的公钥和能够证明自己的合法材料上报给授权中心;

第三步,授权中心审核通过后,向数字证书认证中心发送授权;

第四步,数字证书认证中心在验证授权的真实性后,给车辆颁发数字证书;

第五步,所有操作都被记录在Blockchain中。

2.2.2 公钥撤销

与颁发数字证书不同的是,它不包括公钥和车辆的身份关联信息。具体步骤与证书颁发类似,授权中心向数字证书认证中心发送授权,数字证书认证中心验证通过后对数字证书进行撤销[5]。在产生纠纷时,数字证书认证中心向授权中心提代私钥,用于在Blockchain中解析出车辆公钥与车辆身份信息的对应关系,授权中心根据车辆公钥与车辆身份信息的对应关系来追踪相关车辆[6]。

2.3 匿名认证过程

在车与车间的V2V通信中,车辆A向车辆B发送认证数据,用于验证车辆A的公钥是否合法。每产生一个新的区块或者新增加一个节点,RSU都会将用于匿名认证的数据通过V2I的方式广播给各个车辆[7]。车辆B根据接收到的车辆A发送的数据分别计算出默克尔根值和MPT根值,如果计算的值和区块中保存的值相同,则说明车辆A的公钥是合法的。这个过程即是存在性证明。

3 安全性与隐私性分析

3.1 数据的一致性和安全性

公钥和车辆信息的关联关系保存在Blockchain中,Blockchain的共识机制保证了车联网中所有实体记录数据的一致性。同时,由Blockchain数据结构默克尔树和MTP本身的性质可知,其中任何一个值的修改都会造成根值的变化,进而会改变区块的散列值。攻击者至少要占有50%以上算力的情况下,才能伪造出被篡改区块的所有区块。由于只需要计算若干次的SHA-256即可验证区块是否被篡改,想要伪造出被篡改区块的所有区块是不可能的。因此,Blockchain的特性保证了该方案中数据的一致性和安全性[8]。

3.2 证书透明和公钥撤销透明

数字证书的颁发和公钥撤销都按时间的顺序保存在默克尔树中,每触发一次数字证书的颁发和公钥撤销都会改变MPT的根值。改变后的根值会永久地且不可篡改地保存在Blockchain中。车联网中的任何一个节点都可以对每一条记录进行验证,这种验证的开销很低[9],因此数字证书认证中心和授权中心的所有记录都是可以验证的,这就保证了证书透明和公钥撤销透明。

3.3 车辆信息的隐私性

由于在数字证书认证中心和授权中心中都并没有保存公钥和车辆信息的对应关系,而是分别使用各自的私钥进行双重非对称加密后保存到了Blockchain中。因此,在匿名认证过程中,车辆之间只能验证公钥的合法性,而无法获取公钥对应的车辆信息,除非数字证书认证中心和授权中心的私钥同时被攻击者破解,才有可能获得到这种对应关系。

4 结 语

本文在详细分析匿名认证机制的基础上,提出了一种基于匿名认证机制的车联网信息安全保护方案。通过Blockchain的共识机制和不可篡改的特性,保证了方案的数据一致性和安全性,重点是通过默克尔树和MTP根值实现了车联网中各节点间快速、高效的认证过程,同时保证了车辆信息的隐私性。理论分析该方案的系统开销是可以接受的,但还需进一步在真实场景中进行测试验证。

猜你喜欢
数字证书公钥哈希
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
基于数字证书的军事信息系统安全防护方案
巧用哈希数值传递文件
数字签名保护Word文档
一种公开密钥RSA算法的实现