APP下载

基于区块链的车联网节点数据安全通信模型研究*

2021-05-24任条娟郑佳莹陈友荣陈秋霞刘半藤

汽车技术 2021年5期
关键词:哈希数据安全共识

任条娟 郑佳莹 陈友荣 陈秋霞 刘半藤

(1.常州大学,常州 213164;2.浙江树人大学,杭州 310015)

主题词:区块链 车联网 共识机制 安全通信模型

1 前言

车联网是智能网联车辆的核心技术之一。在车联网中,车辆节点定期向周围的节点广播其当前位置、速度和加速度等信息,但这种方式对车辆数据安全构成潜在威胁。现有的车联网架构都是中心化的,一旦中心化实体被攻击,将会带来严重的数据安全风险,造成身份、位置等隐私泄露。且随着物联网技术的快速发展,车联网节点数据量剧增,中心实体负载过大,面临着单点故障的风险。同时,车联网的高移动性、易变性等特质给车辆通信系统带来了巨大挑战。

区块链技术是一种完全分布式的公共数据库或分类账,具有去中心化、透明性、防篡改等特点,因此国内外学者提出将区块链技术引入车联网。如:文献[1]根据数据类型设计了不同功能的独立区块链,提出了车辆区块链数据向外传输的模型。文献[2]提出了基于许可的区块链模型,管理所收集的车辆相关数据。文献[3]增加奖励机制,并提出一种半分布式对等计算(Peer to Peer,P2P)网络模型。文献[4]提出了一种基于区块链的安全数据共享模型,鼓励车辆广播公告消息和生成区块。部分学者以联盟链为基础,将车辆的存储和计算转移至路侧单元(Road Side Unit,RSU)。文献[5]开发了一种P2P 数据共享系统,公开审计和存储共享数据及其共享记录。文献[6]提出了一种基于联盟区块链的数据安全共享和存储系统。文献[7]实现了开放环境下自动驾驶云控服务及相关数据的安全共享。部分学者将区块链网络划分区域。文献[8]将车联网划分为若干个区域,每个区域设定一条公有链,提出了一种区块链分支算法。文献[9]、文献[10]以城市为单位,将车联网设计为一个联盟链,实现各城市车联网联盟链之间的数据交换。

本文针对存储维护困难、通信效率低、实时处理困难等问题,提出一种基于区块链的车联网节点数据安全 通 信 模 型(Date Security Communication Model,DSCM),包括区块链设计、节点身份认证、改进动态实用拜占庭容错共识算法、车辆安全通信方法等。根据数据的紧急程度,将数据分成普通数据和紧急数据。考虑到车辆节点的运动情况,提出一种改进实用拜占庭容错共识算法。

2 车联网数据安全通信模型

本文以车联网服务为基础,借助区块链的思想设计了安全通信模型,包括区块链设计、节点身份认证、改进动态实用拜占庭容错共识算法和车辆安全通信方法。

如图1 所示,车联网区块链由车联网联盟链和1 个公链组成。考虑通信基站的部署,将整个车联网划分成蜂窝式区域,每个区域设定1 条区块链,这些区块链共同组成车联网联盟链,其中车联网联盟链由各区域中所有的通信基站和车辆节点等车联网节点组成。同时,所有通信基站(5G)和路侧单元等车联网的边缘侧设备统称为边缘节点。车联网中所有边缘节点作为共识节点组成车联网公链,实现各区域间紧急数据的共享。

图1 车联网数据通信原理

本文将车联网数据分为普通数据和紧急数据。普通数据包含车辆的基本安全数据,在所在区域内的车辆之间传输。紧急数据包含交通事故、道路拥堵状态等特殊信息,在区域之间传输,通过车路通信和云计算的分布式广播,实现全范围内的消息共享。但是仍需要解决以下问题:一是如何设计普通数据和紧急数据的区块结构、数据存储结构、节点身份认证方式等,并实现车辆数据真实性和完整性的验证;二是如何有效地实现车辆数据的共识,剔除恶意节点,提高共识效率,缩短共识时间;三是如何实现数据的安全通信。

2.1 车联网区块链设计

2.1.1 区块设计

边缘节点分布式记录、存储路况信息,每个边缘节点都会存储联盟链上所有的数据,即使网络中某些节点遭受攻击,也不会对数据造成任何威胁,从本质上解决了中心化模式下数据存储不安全的问题。

图2所示为主链中的区块结构,区块主要分为区块头和区块体2个部分。区块头中:时间戳表示区块产生的时间;有效时间表示该区块的有效期限;当前区块的哈希值表示整个区块数据的哈希值;父区块哈希值表示上一个区块的哈希值;默克尔树根哈希值表示区块体内存储的所有车辆交易信息的根哈希值。区块体由交易数据块组成,交易数据块由多个数据块(例如图中D1~D4)构成,计算每个数据块哈希值(例如图中H1~H4、H12、H34),最终计算整个交易区块体的默克尔树根(H1234)。每个数据块中可存储10 条车辆数据条目(Item),每个区块的大小不超过1 MB。这种区块链的数据结构使得链上每个区块的信息都可以由前驱节点追溯,并影响后继节点的信息构成,由密码学方法保证了恶意攻击无法篡改信息,确保数据的安全性和完整性。

图2 区块结构

2.1.2 数据存储结构

如图3所示,为了保证记录内容可信、未篡改,模型记录所有数据的哈希值并采用分层结构存储。其中,数据块(Data Block)由1个数据头信息和多个数据条目组成。数据头信息包含时间戳和数据块的哈希值,可减少校验的计算成本,有利于数据块在区块链网络中传播。每一个数据条目中都包含了时间戳t、数据所有者公钥Pk、元数据、数据哈希(Hash)。其中,元数据为普通数据或紧急数据:普通数据包括车辆的位置、速度、方向、制动状态、有效时间等车辆自身基本安全信息;紧急数据包括交通事故、道路拥堵状态、实时路况、有效时间等特殊信息。每条数据的大小不超过1 KB。根据前面3个信息,计算和存储本条数据的哈希值,方便其他节点的哈希校验,从而加快节点对区块的校验速度,减少搜索空间。

图3 数据存储结构

2.1.3 节点数据更新

由于区块链具有无限冗余的特性,每个节点都备份了区块链网络的所有信息,消耗大量功率,这在车联网的网络环境下难以运行和维护。且车辆通信期间会生成大量数据,需要大型数据服务器长时间管理和存储数据。因此,根据车联网的实时性和移动性,在每个区块链节点上,都只备份当前区域内区块链网络的数据。当车辆节点从一个区域移动到另一个区域时,删除在原有区域的区块链信息,并更新下载当前区域网络的区块链信息和数据。车辆节点存储量达到阈值后,则从头开始判断区块的有效期。如图4所示,如果区块链中有区块过期,则删除整个区;如果区块链中区块未过期而内存不足,为保护区块的完整性和真实性,先删除该区块的数据,只保留区块的哈希值。

图4 节点数据更新

2.1.4 数据包格式

车辆发送的数据包含数据所有者公钥Q、元数据m、数字签名S、数据哈希值h(m)(SHA256)、时间戳t。如表1所示,应发送的数据包为Msig{Q|S|t|m|h(m)}。

表1 数据格式

2.2 节点身份认证

用户的身份验证和隐私是车联网中的2 个重要问题,本文采用一种基于云服务器和区块链的节点身份认证方案。如图5 所示,车联网节点(车辆节点和边缘节点)在启动加入网络前,发送注册请求给负责证书签发的认证中心(Certificate Authority,CA)。云服务器负责存储和管理节点的出厂信息和真实身份,方便节点注册时进行身份验证,并管理CA 颁发的节点假名。当节点在具有真实身份的系统中注册后,可获得由CA 颁发的包括假名、一对公私钥和2 个哈希值的证书。在CA 为节点颁发的证书中,隐藏了节点的真实身份,可以保护节点的隐私,并可根据假名+公钥的哈希值和真名+证书的哈希值追踪恶意节点。

图5 节点身份认证

车辆节点可从一个区域快速移动到另一个区域,为移动节点。新加入网络的节点称为新生节点。考虑到车辆的移动性,通过随机组成的随时间动态变化的验证组成员,快速验证新生节点和移动节点的证书。其中,验证组成员由所有区域内随机挑选的数量为M的边缘节点和数量为N的移动节点组成。其中,已经入选成为验证组成员的节点在下次随机组合过程中将不会被考虑,直到所有可能的组合都遍历过。

在区块链网络中,车联网节点会在其通信列表中保存一定时间内通信过的节点信息,该列表为信任列表。若列表中的节点信息超出时间范围,则会被删除。信任列表可在边缘节点之间和边缘节点与车辆节点之间更新。当车辆节点移动到另一个区域时,则该节点当前所在区域内的区域代表节点向前一个区域及其周围区域(不包括当前区域)发送验证请求。其中,验证组中只要在1个边缘节点或n个车辆节点的可通信列表中可查询到该车辆节点信息,即认为通过该区域的验证。若该车辆节点通过跨区之前所在区域的验证,且在周围区域(不包括当前区域和前一个区域)中未能通过,则表明该车辆节点具有唯一性,即认为该车辆节点的身份验证成功,可以参与数据通信。若未能满足上述情况,则该车辆节点参与数据通信的权利被取消,一段时间后重复上述验证过程,直到完成该车辆节点的身份验证。车辆节点第一次加入网络时,该区域的区域代表节点向其他区域的验证组发送验证请求,若在各个区域中都未通过验证,则证明该车辆节点的唯一性,即认为该车辆节点的身份验证成功,否则不能参与数据的通信。

总之,通过云服务器的身份认证和节点间的身份认证,才能允许车联网节点进行有效的数据通信,从而减少传统认证方案中对CA 的依赖,有效检测和防止恶意节点加入,并保护节点的身份隐私。

2.3 改进动态实用拜占庭容错共识机制

实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法提出的一致性协议、视图切换协议和检查点协议,可实现数据更新和容错恢复,使区块在全网达成一致。相比工作量证明(Proof of work,PoW)机制,该机制不仅在效率上能满足交易短时间内响应的需求,还解决了每个节点的历史消息存储问题,且当恶意节点入侵时可容错恢复。但是,由于车联网中节点可快速移动且实时产生较多的数据,需要快速达到共识。因此,在PBFT 共识机制的基础上,提出由区域内部共识机制与多区域共识机制组成的动态区域共识机制。

区域内部共识机制在分区策略的基础上,在边缘节点中随机确定区域代表节点,并在区域代表节点中选出主节点。主节点的选举方法是为p=v·f(R),其中p为主节点编号,v为视图编号(当前区块数量),R为区域内边缘节点的总数量,f()为取余函数。其他区域代表节点作为副本节点。其中,若主节点存在恶意行为,则在副本节点中重新挑选主节点。根据主节点,区域内部共识机制采用PBFT原有的一致性协议完成区块共识。

多区域共识机制同样依赖于前面各项机制。但考虑到在多区域共识机制下,参与区块共识的区域代表节点数量远超出区域内部共识机制的节点数量,为提高共识机制的效率,缩短数据更新时间,简化了一致性协议和视图切换协议。如图6 所示,在简化一致性协议中,各区域的主节点组成主节点群,发送预准备消息到其他区域代表节点,区域代表节点接收并处理预准备消息,向主节点群发送认可消息。若主节点群收到的认可消息数量超过f2(f2为区域代表节点数量的1/3),则统一发送认可消息到其他区域代表节点进行验证。若区域代表节点验证通过,则将验证消息发送给主节点群。若主节点群收到的验证成功消息数量超过f2,则共识达成,并将区块写入车联网公链。而简化视图切换协议主要针对当主节点为恶意节点时,选取副本节点的其中一个节点取代当前主节点,继续完成当前共识。该方法不仅可避免恶意节点成为主节点构建区块而导致交易延迟的风险,而且区块构建效率满足车联网的需求。

图6 简化一致性协议

2.4 数据安全通信实现

考虑车联网数据中存在普通数据和紧急数据,提出不同数据的安全通信方法。车与车之间交换车辆自身的常规数据属于普通消息,主要通过本区域的车车通信实现;当出现紧急数据时,需要将这些数据广播给其他区域的车辆,则需要通过车路通信实现,即边缘节点可直接将紧急数据广播给附近的车辆节点,同时将紧急数据发送给云服务器,云服务器统筹并通过大数据查找其他感兴趣区域内的边缘节点,边缘节点再将紧急数据发送给其所在区域内附近的车辆节点[11]。数据安全通信的流程如图7所示。

3 模型评估

与传统的车联网通信方案中的安全和隐私保护不同,车联网联盟区块链技术可确保数据存储和共享期间的安全并实现隐私保护。联盟区块链可确保数据可追溯性,智能合约的自动执行可保护数据安全共享。车联网联盟链的分布式特征可抵御集中式数据存储带来的数据安全风险。本文采用对照分析的方法评估基于区块链的车联网节点数据安全通信模型。如表2 所示为通信模型比较结果,与现有研究成果中的其他解决方案的对比,DSCM 模型基于联盟链和改进PBFT,具有区域划分、数据分类、数据更新等特点,专为车联网通信问题设计。现存车联网通信安全问题及相应解决方案如表3 所示,从安全隐私、效率、数据管理、用户参与度等角度,分析了目前车联网安全通信存在的问题,并介绍了DSCM模型中相应的解决方案及优势,从而解决了隐私泄露、数据篡改、内存冗余、用户参与度低等问题。

图7 数据安全通信的流程

表2 通信模型比较

4 结束语

本文借助区块链技术,解决了现有的车联网架构中心实体负载过大和数据安全风险高等问题。首先提出了基于区块链的车联网节点数据安全通信模型(DSCM),根据车联网的实时性和移动性设计普通数据和紧急数据的区块结构,采用数字签名方法验证数据和区块的完整性和真实性。其次,采用一种基于云服务器和验证组的节点身份认证方案,解决用户的身份验证和隐私问题。接着,在PBFT 共识机制的基础上,提出动态实用拜占庭容错共识算法,保证车联网区块链快速共识。最后,通过与其他通信模型进行比较,说明了DSCM模型具有快速共识、数据安全、隐私保护、轻量级存储、高效通信等特点,更适用于目前的车联网通信环境。

表3 现存车联网节点通信安全问题及解决方案

猜你喜欢

哈希数据安全共识
凝聚共识:新时代人民政协的初心与使命
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
部署推进2020年电信和互联网 行业网络数据安全管理工作
商量出共识
建立激励相容机制保护数据安全
数据安全政策与相关标准分享
巧用哈希数值传递文件
“慢养孩子”应成社会普遍共识