基于BlockChain的车联网数据交换系统设计
2018-05-09汤春明张永乐
汤春明,张永乐,于 翔
(1.天津工业大学电子与信息工程学院,天津 300387;2.天津工业大学工程教学实习训练中心,天津 300387)
车联网是物联网技术在智能交通领域的一个重要分支.然而相比于物联网,车联网具有一些独特的网络特性,其网络自身安全性较低、通信隐蔽性较差,同时车联网的中心化模式导致数据被黑客侵入的风险急剧增大,在通信过程中又要求通过共享信息来优化车辆交通系统,数据安全是进行后续数据分析和应用的基础,因此保障车联网数据安全十分必要.车联网中有两种节点类型:一是预装在车辆上的移动通信节点,车载单元OBU;二是大规模部署在道路两边的基础设施,路侧单元RSU,而两种节点之间的通信主要是无线通信[1].WAVE(wireless access in vehicular environments)作为车载自组网(VANET)的一种短程通信技术协议栈(DSRC),专门应用于智能交通系统无线通信[2].智能交通系统中的车辆通信类型主要包括车与车之间(vehicle to vehicle,V2V)、车辆与路边单元之间(vehicle to roadside,V2R)、车辆与便携设备之间(vehicle to pedestrian,V2P)的通信[3].WAVE 协议栈底层使用IEEE 802.11p协议解决无线传输问题.
目前,有很多学者致力于车联网信息安全方面不同问题的研究:Chim等[4]提出使用公钥基础设施(public key infrastructure,PKI),在信息发送前,对信息加密和数字签名,保证信息的完整性和认证性;Zeadally等[5]提出在信息后附加时间戳,信息接收方对比信息附加的时间戳与当前时间,可以实现抗重放攻击;Varshney等[6]采用传统解决方案,在信息后附加数字签名,保证信息的不可否认性;Shao等[7]提出一种门限认证协议,保证节点身份的认证性.这些方法虽然不同程度的解决了车联网信息安全问题,但都是基于车联网中心化模式下开展的,无法保障数据中心不遭受攻击.
针对车联网存在的数据存储、信息安全等问题,本文将区块链技术应用在车联网上,区块链技术的核心优势是去中心化,能够通过运用数据加密、时间戳和分布式共识等方法,在节点无需相互信任的分布式系统中实现基于去中心化的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案[8].通过去中心化的共识机制提高内部系统的安全性、私密性.
1 系统方案设计
本文将区块链技术应用在车联网上,以车联网服务为基础,构建智慧交通为导向,借助区块链的思想设计了车联网数据交换系统.以城市为单位,将车联网设计为一个联盟链[9],联盟链是“多中心化”的区块链,RSU和OBU作为联盟链中的两类节点,由于RSU的存储计算能力强于OBU,所以预选取所有RSU为共识记录节点,而OBU只参与数据交换,不参与共识过程.
在车联网联盟链中,包括3种数据交换类型,即车与车(V2V)、车与路(V2R)、路与路(R2R).WAVE是车与车、车与路之间进行数据交互的协议,其应用层采用SAE J2735协议作为安全消息集.在V2V、R2R数据交换过程中,为了保证信息的完整性和可验证性,保证节点间的相互信任,在信息后附加数字签名.当节点需要发送信息时,使用自身持有的私钥对信息进行签名,接收方使用发送方公钥验证签名,验证通过后获取其中的位置速度等信息.本文采用椭圆曲线数字签名算法(ECDSA)[10-11]对信息进行签名.
1.1 车与车数据交换
前期对车与车之间通信的路由方式进行了研究,提出了多三角形网络组播通信模型[12],它是以一个车辆为中,与其他相邻车辆组成多个三角形构成的多边形.多三角形通信网络包括两种节点类型:主节点(Host-OBU)和从节点(Slave-OBU),主节点与从节点是相对的,每个节点既可以成为主节点,也可以成为从节点,通过主从节点通信可以实现车与车之间的数据交换.多三角形网络模型如图1所示.
图1 多三角形网络模型Fig.1 MTCN model
图1中,星形标注车辆节点1和2是各自所在群的主节点,其他车辆均为从节点.每个主节点最多可以与6个在其通信半径内与其形成多三角形网络的从节点进行分组.车与车之间交换基本安全消息(basic safety message,BSM),BSM定义了车辆本身的信息:位置、速度、方向、刹车状态等.车与车的数据交换过程为:①车载传感器时刻监听自身状态,并将接收到的信息用SAE J2735标准进行定义,然后通过网络层的 WSMP(WAVE short message protocol)协议对其进行封装,先经LLC层,再经物理层以多三角网组播通信的路由形式发送出去.②发送出去的WSM(WAVE short message)信息在控制信道CCH上被周围车辆实时监听,当周围车辆监听到WSM消息后,将该数据包提交给相应的程序.③相应的程序先对WSM进行解包,得到符合J2735标准格式的消息,然后获取其中的位置和速度等信息,显示在用户界面上.通过V2V数据交换,可以辅助驾驶员安全驾驶.
1.2 路与路数据交换
1.2.1 数据交换
RSU通过传感器收集车辆的位置速度等信息,整合其覆盖范围内的交通拥堵指数(traffic congestion index,TCL),即路况信息.TCL 取值范围为 0~10,分为5级(畅通、基本畅通、轻度拥堵、中度拥堵、重度拥堵).RSU周期性地广播路况信息,内容包括:地点、时间、TCL信息.TCL描述如表1所示.
以北京为例,五环全长98.58 km,RSU无线通信能力为1~2 km,按每2 km部署1个RSU计算,全城大概需部署150个RSU,RSU覆盖方式如图2所示.RSU通过有线线路(如光纤)或其他线路接入到高宽带、低延迟、低错误率的主干网络,相互之间可以通过主干网络进行简单、快捷、准确地信息交换或信息同步[13].路与路交换路况信息后,通过工作量证明[8]共识过程来记录和生成区块.
表1 交通拥堵指数Tab.1 Traffic congestion index
图2 RSU覆盖方式Fig.2 RSU Coverage mode
1.2.2 工作量证明
RSU将某一时间段内经过验证的约150条路况信息记录在区块体中,并且在区块体中生成此区块中所有路况信息的Merkle Tree[8],把最终生成的Merkle根保存在区块头中,把当前时间保存在时间戳字段中,并把其他内容分别保存在区块头相应字段中.车联网联盟链区块结构如图3所示.
图3 车联网联盟链区块结构Fig.3 Vehicle networking alliance chain block structure
区块头(Block_Header)内容是工作量证明(Proof of work,Pow)的输入字符串,其中难度值和随机数是Pow的重要参数,难度值决定大概多长时间生成一个区块,其对应一个目标哈希值Target,本文实验中选定初始Target为 0X000000FFFF…FFF(256 bit),约3 min生成区块.将区块头内容经过双SHA256运算得到一个哈希值,不断更新区块头中的随机数n、Merkle根以及时间戳,最先求解出随机数n,使得哈希值小于目标哈希值的RSU节点,将获得该区块的记录权,生成的目标哈希值作为父哈希保存在下一个区块的区块头中前一区块字段中.Pow如式(1)所示:
SHA256(SHA256(Block_Header))< Target (1)
获得记录权的RSU向其他RSU广播其打包生成的区块,其他RSU验证每一条路况信息的有效性后将其加入区块链的尾部,所有RSU节点立即开始下一个区块的生成工作.通过分布式共识方法可以形成统一完备的、不可篡改的全市路况信息的记录,从而可以达到去中心化的目的,保证路况数据的安全性和真实性.
1.3 车与路数据交换
RSU将当前区块加入联盟链后,向其覆盖范围内的车辆广播该区块,OBU只需存储最新的区块即可,不必同步所有联盟链数据.通过V2R数据交换,驾驶员可以获取全面可靠的全市路况信息,有效缓解拥堵.车与路边单元数据交换过程为:①RSU在控制信道CCH 上发布 WSA(WAVE service advertisement),WSA中包含有说明WBSS(WAVE basic service set)存在和WBSS所提供服务的信息.②OBU在CCH上监听RSU发出的WSA信息,OBU接收到WSA之后,可直接加入到WBSS当中接收需要的信息.③当OBU不在需要RSU提供的服务时,可随时退出WBSS.
2 仿真与分析
2.1 车与车数据交换
V2V数据交换仿真结果如图4所示.运行OBU1节点和OBU2节点分别在Android模拟器上,车辆节点之间通过 Socket[14-15]建立通信,如图4(a)、4(b)所示,车辆1接收到车辆2~7的信息,车辆2接收到车辆 1、3、7、8 的信息,以 OBU1 为例,点击“发送汽车状态信息”按钮,将自身状态信息显示在界面上,同时将私钥签名后的信息发送给其他车辆,它们收到信息后,用OBU1的公钥验证这个签名,验证通过后显示在用户界面上,并且将车辆位置通过高德地图标出来.签名验证过程如图4(c)所示.
图4 V2V数据交换Fig.4 V2V data exchange
2.2 路与路数据交换
2.2.1 数据交换
R2R数据交换仿真结果如图5所示.
图5 R2R数据交换Fig.5 R2R data exchange
图5中,运行RSU1、RSU2、RSU3分别在3台电脑上(Intel(R)Core(TM)CPU i5-7200u@2.50 GHz、Intel(R)Core(TM)CPU i5-5200u@2.20 GHz和 Intel(R)Core(TM)CPU i3-2300u@2.30 GHz).以 RSU1为例,RSU1 接收到的信息如图5(a)所示,5(b)为 RSU1 对RSU2和RSU3发送的数字签名的验证过程,验证通过后显示在用户界面上.
对V2V、R2R数据交换分别进行多次仿真测试,统计得出160位的ECC密钥对生成时延在10.8 ms左右,ECDSA签名时延在4 ms左右,验证时延在5.9 ms左右,总时延在20 ms以内,且均能准确验证并接收.
2.2.2 工作量证明
RSU1、RSU2、RSU3之间交换路况信息后,分别打包区块头内容送入Pow的输入,初始区块版本号为“1”,前一区块为“N/A”,难度值为“1”(对应 Target为0X000000FFFF…FFF(256 bit)),区块哈希为 Pow 输出的目标哈希值.图6所示为RSU1生成的车联网联盟链区块,区块体包含该时间段所有RSU广播的路况信息以及对应hash值.所有RSU验证后存储该区块,开始下一次Pow.
图6 车联网联盟链区块Fig.6 Vehicle networking alliance chain block
2.3 车与路数据交换
V2R数据交换仿真结果如图7所示.
图7 V2R数据交换Fig.7 V2R data exchange
RSU获得全市路况信息的统一记录之后,向其覆盖范围内的车辆广播.图7(a)、(b)分别为节点 RSU1和OBU1,通过V2R数据交换,OBU1可以获取所有RSU的信息,并将其显示在用户界面上.
通过RSU的分布式记录、分布式存储路况信息,每个RSU都会存储联盟链上所有的数据,即使网络中某些节点遭受攻击,也不会对数据造成任何威胁,有效地保证了数据的真实性和安全性,从本质上解决了中心化模式下数据存储不安全的问题,同时也为驾驶员提供更加全面安全的信息服务.
3 结 语
本文基于WAVE协议实现了V2V、R2R、V2R的数据交换.通过对区块链技术的研究,将区块链应用在非数字资产的车联网上,设计了一个车联网数据交换系统,由实验结果及分析可以得出以下结论:
(1)基于去中心化的数据交换系统为节点间的通信带来便利;
(2)通过椭圆曲线签名算法(ECDSA)使得V2V、R2R交换的数据以安全可靠的方式传输,保证了信息的完整性和可验证性;
(3)基于全网共识为基础的数据可信的区块链技术,解决了车联网数据的存储问题.因此区块链技术对车联网的发展有推动作用,未来我们将重点研究基于车联网的大数据服务平台.
参考文献:
[1]MORGAN Y L.Notes on DSRC&WAVE standards suite:Its architecture,design,and characteristics[J].IEEE Communications Surveys&Tutorials,2010,12(4):504-518.
[2]周伐,丁家瑞,刘志敏.车联网WAVE协议研究[J].通信技术,2015(7):755-761.
ZHOU F,DING J R,LIU Z M.Research of WAVE protocol in V2V[J].Communications Technology,2015(7):755-761(in Chinese).
[3]吕子茹.基于WAVE的车载通信系统介绍 [J].现代电信科技,2010(8):50-54.
LUY Z R.Introduction of vehicular communication system based on WAVE [J].Modern Science&Technology of Telecommunications,2010(8):50-54(in Chinese).
[4]CHIM T W,YIU S M,HUI L C K,et al.SPECS:Secure and privacy enhancing communications schemes for VANETs[J].Ad Hoc Networks,2011,9(2):189-203.
[5]ZEADALLY S,HUNT R,CHEN Y S,et al.Vehicular ad hoc networks(VANETS):Status,results,and challenges[J].Telecommunication Systems,2012,50(4):217-241.
[6]VARSHNEY N,ROY T,CHAUDHARY N.Security protocol for VANET by using digital certification to provide security with low bandwidth[C].International Conference on Communications and Signal Processing,2014:768-772.
[7]SHAO J,LIN X,LU R,et al.A threshold anonymous authentication protocol for VANETs[J].IEEE Transactions on Vehicular Technology,2016,65(3):1711-1720.
[8]袁勇,王飞跃.区块链技术发展现状与展望 [J].自动化学报,2016(4):481-494.YUAN Y,WANG F Y.Blockchain:The state of the art and future trends[J].Acta Automatica Sinice,2016(4):481-494(in Chinese).
[9]蔡维德,郁莲,王荣,等.基于区块链的应用系统开发方法研究[J].软件学报,2017,28(6):1474-1487.CAI W D,YU L,WANG R,et al.Blockchain application development techniques[J].Journal of Software,2017,28(6):1474-1487(in Chinese).
[10]张岩,张爱丽.数字签名算法RSA与ECDSA的比较与分析[J].科协论坛,2010(2):96-97.ZHANG Y,ZHANG A L.Comparison and analysis of digital signature algorithm RSA and ECDSA[J].Science&Technology Association Forum,2010(2):96-97(in Chinese).
[11]张伟.ECDSA算法实现及其安全性分析[J].信息与电子工程,2003(2):7-12.ZHANG W.Implementation of ECDSA algorithm and its security analysis[J].Information and Electronic Eegineering,2003(2):7-12(in Chinese).
[12]汤春明,闫博,鄢婷,等.车联网WAVE的多三角形网络组播通信模型[J].天津工业大学学报,2015,34(5):58-62.TANG C M,YAN B,YAN T,et al.Multi-triangle multicast communication network model of vehicle networking WAVE[J].Journal of Tianjin Polytechnic University,2015,34(5):58-62(in Chinese).
[13]张良,陆川.车联网下基于RSU辅助AODV路由协议改进[J].无线互联科技,2014(4):11-13.ZHANG L,LU C.Improvement of AODV aided routing protocol based on RSU in vehicle networking[J].Wireless Internet Technology,2014(4):11-13(in Chinese).
[14]胡晶晶.基于Socket的Android聊天室系统设计与实现[J].微处理机,2014(4):50-51.HU J J.Design and implementation of Android chat room system based on Socket[J].Microprocessor,2014(4):50-51(in Chinese).
[15]YOON J H,PYO S C,JANG S H,et al.Communication architecture and application for vehicle to nomadic devices communication[C]//International Conference on Information and Communication Technology Convergence.2014:681-682.