本发明涉及车联网安全技术领域,具体为融合区块链共识机制的车联网恶意节点检测系统及方法。
背景技术:
车联网的安全涉及车辆节点隐私保护、恶意节点检测等方面。在车联网中,恶意或自私车辆节点发送的虚假消息会降低车联网的运行效率,严重的甚至会危及驾驶员的安全,因此及时检测出车联网中的恶意车辆节点极其重要。目前,检测恶意节点的方法有基于射频识别,基于匿名证书以及基于群签名等车辆节点合法身份认证鉴别方法,这些方法系统开销较大,运行成本偏高,同时对检测恶意节点的准确率方面有待进一步提高。
技术实现要素:
本发明的目的在于提供融合区块链共识机制的车联网恶意节点检测系统及方法,本发明提出根据区块链公识机制来审核车辆节点的合法性,从而解决车联网中检测恶意节点准确率低下的问题,有效降低网络开销。
为达到上述目的,本发明采用如下技术方案:
融合区块链共识机制的车联网恶意节点检测方法,包括以下步骤:任意车辆接收节点vj将车辆发送节点vi发送的消息和车辆发送节点vi的身份信息打包成请求认证数据包向rsu发送,rsu接收该数据包之后与vj进行身份相互验证,若身份相互验证通过,rsu将接收的vj发来的数据包转发给ta,ta通过共识机制对数据包进行审核来判断其中内容的合法性。
进一步的,具体包括以下步骤:
步骤1)、车辆发送节点vi向接收节点vj发送信息,接收节点vj打包发送节点vi发送的消息;
步骤2)、接收节点vj与临近rsu进行身份相互验证,vj申请将该数据包加入到由车辆、rsu和可信机构ta组成的区块链中;
步骤3)、ta通过共识机制对rsu发来的数据包进行审核,并通过rsa算法进行数字签名和认证;
步骤4)、ta统计区块链中记账节点的签名数,并判断发送节点vi身份和消息内容的合法性,即完成车联网恶意节点信息检测。
进一步的,接收节点vj与临近rsu具体验证过程包括以下步骤:
2.1车辆发送节点vj向其通信范围内的rsu发送请求认证消息;
2.2rsu发送自己的公钥pkrsu和车辆发送节点vj的公钥pkvj、以及随机生成的一个随机数r1给ta;
2.3ta收到由rsu发送过来的信息后,在区块链上查找对应信息,若核实为真,则产生一个会话密钥ks,并用pkvj将ks与pkrsu加密,生成一个加密函数epkvj[ks||pkrsu],然后将该次认证记录内容添加到区块链中,最后向rsu返回一个结果,该结果采用加密函数的形式发送,即用公钥pkrsu将所有记录过程加密,生成加密函数epkrsu[ks||pkrsu||pkvj||r1||epkvj[ks||pkrsu]]发送给rsu,其中e为加密函数;
2.4rsu收到该加密函数后,用私钥解密得到会话密钥ks、pkvj和epkvj[ks||pkrsu],此时完成了对车辆发送节点vj的认证,然后随机生成另一个随机数r2并用ks加密,最后将加密结果epkvj[ks||pkrsu]||eks[r2]发送给车辆vj;
2.5车辆发送节点vj用私钥解密得到ks和pkrsu,即完成了对该rsu的认证;
2.6当车辆发送节点vj和rsu身份相互验证通过后,rsu将接收的车辆发送节点vj发来的数据包转发给ta,这样数据包便成功加入到区块链网络中,ta再对该数据包进行审核;若验证不通过,则rsu丢弃该数据包。
进一步的,ta通过共识机制选出一个记账节点来接收该数据包,其余记账节点同步此次记录,这样区块中的所有记账节点便都可以访问到该数据包的内容信息,然后,除去区块中vi和vj以外的所有记账节点对该数据包中的发送节点vi的身份资料和消息内容进行审核,并使用rsa算法进行数字签名和认证。
进一步的,步骤3)具体包括以下步骤:
3.1车辆节点vj在步骤1中打包好的数据包由rsu发送到ta后,区块的记账节点首先通过历史积累的信誉值对vi的身份信息做出评估,随后使用hash函数对消息m进行处理,生成一个hash值,称为消息摘要h(m),并使用自己的私钥对h(m)进行加密,生成签名s(sign);
3.2记账节点将签名s和消息m结合,并使用ta的公钥进行加密,生成密文c,并发送给ta;
3.3ta收到密文c后,用自己的私钥对密文进行解密,得到明文m和经过加密的数字签名s;
3.4ta使用上述记账节点的公钥解密数字签名s得到消息摘要h(m);
3.5ta同样使用hash函数对消息m进行处理得到消息摘要h(m);
3.6ta比较两个消息摘要h(m)和h(m),相同则验证成功,不同则验证失败;
3.7区块中的所有记账节点都重复以上步骤来进行数字签名和认证。
进一步的,采用ripple共识算法验证数据包内容的真实性和可靠性。当区块中节点的签名数大于等于区块中节点个数的51%时,ta自动认为该车辆节点vj所发送的数据包通过审核,确认该消息可信,并添加记录到区块链中,若车辆节点签名数不足区块中总车辆节点的51%,则认为该消息是不可信的;ta将审核的发送节点发送的数据包可信与否的结果广播到其他记账节点和周围车辆,并反馈给接收节点vj。
进一步的,接收节点vj根据收到的ta反馈的数据包可信与否的结果,转发或丢弃发送节点vi发送的消息。
进一步的,若确认该消息可信,则车辆节点vj转发该条消息并采取与该消息相应的动作,此时视车辆节点vi为有效节点;若签名数不足,车辆节点vj无法确认该消息可信,则丢弃该消息,此时视车辆节点vi为恶意节点。
一种融合区块链共识机制的车联网恶意节点检测系统,包括能够相互传递信息的车载单元、rsu和可信机构ta,车载单元用于车辆信息的传送,rsu用于车载单元信息认证,并将认证结果反馈于可信机构ta,可信机构ta用于存储安全机制信息并与rsu反馈信息对比,判断rsu反馈信息的合法性。
与现有技术相比,本发明具有以下有益的技术效果:
本发明为一种融合区块链共识机制的车联网恶意节点检测方法,通过任意车辆接收节点vj将车辆发送节点vi发送的消息和车辆发送节点vi的身份信息打包成请求认证数据包向rsu发送,rsu接收该数据包之后与vj进行身份相互验证,若身份相互验证通过,rsu将接收的vj发来的数据包转发给ta,ta通过共识机制对数据包进行审核来判断其中内容的合法性,将区块链技术应用于车联网中,根据区块链所记录数据库的可追溯性,利用rsa算法进行数字签名和信息认证,并结合车辆节点的当前状态,采用共识机制检测车辆节点是否为恶意节点,该方法利用区块链中所记录数据的不易篡改特性,能高效准确地检测出车联网中的恶意车辆,并能够及时地在全网更新,同时还可以解决车联网去中心化管理和隐私保护的问题,从而解决车联网中检测恶意节点准确率低下的问题,有效降低网络开销。
进一步的,通过rsa算法进行数字签名和认证,算法简单安全,根据所记录数据的不易篡改特性,能高效准确地检测出车联网中的恶意车辆。
本发明为一种融合区块链共识机制的车联网恶意节点检测系统,利用能够相互传递信息的车载单元、rsu和可信机构ta,通过车载单元实现车辆信息的传送,rsu用于车载单元信息认证,并将认证结果反馈于可信机构ta,可信机构ta用于存储安全机制信息并与rsu反馈信息对比,判断rsu反馈信息的合法性,根据区块链公识机制来审核车辆节点的合法性,从而解决车联网中检测恶意节点准确率低下的问题,有效降低网络开销。
附图说明
图1为本发明系统流程图。
图2为车联网区块链系统架构图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
如图1所示,一种融合区块链共识机制的车联网恶意节点检测方法,将区块链技术应用于车联网中,根据区块链所记录数据库的可追溯性,利用rsa算法进行数字签名和信息认证,并结合车辆节点的当前状态,采用共识机制检测车辆节点是否为恶意节点。该方法利用区块链中所记录数据的不易篡改特性,能高效准确地检测出车联网中的恶意车辆,并能够及时地在全网更新,同时还可以解决车联网去中心化管理和隐私保护的问题,有效降低网络开销。
1.车联网:
车联网是实现车辆与公众网络通信的动态移动通信系统,可以通过车与车、车与路基设施单元rsu(roadsideunit)互联互通实现信息共享,每辆车上安装车载单元obu(onboardunit),采用dsrc(dedicatedshortrangecommunication)技术与车辆、基础设施等进行通信,可对数据进行计算、存储和传输等工作。
2.区块链系统架构:
本方法涉及的车联网区块链系统架构如图2所示,由车载单元、rsu、可信机构ta(trustedauthority)三者构建成一个区块网络。ta具备密钥管理、分配、认证、撤销等功能,每个装载obu设备的车辆使用自己的真实身份在ta注册,以保证对恶意行为车辆节点的可追溯性;在图2所示的系统框架中,任意车辆接收节点vj将车辆发送节点vi(即车辆源节点)发送的消息和vi的身份信息打包成请求认证数据包向rsu发送,rsu接收该数据包之后与vj进行身份相互验证,若身份相互验证通过,rsu将接收的vj发来的数据包转发给ta,ta通过共识机制对数据包进行审核来判断其中内容的合法性。
一种融合区块链共识机制的车联网恶意节点检测方法,包括如下步骤:
步骤1),车辆发送节点vi向接收节点vj发送信息,接收节点vj打包发送节点vi发送的消息;
1.1在车联网中,发送节点vi首先向接收节点vj发送消息,接收节点vj收到此消息后,进行数据打包,该数据包中包括发送节点vi的身份信息id(identity)和所发送的消息内容;
步骤2),接收节点vj与临近rsu进行身份相互验证,vj申请将该数据包加入到区块链中;
2.1车辆发送节点vj向其通信范围内的rsu发送请求认证消息;
2.2rsu发送自己的公钥pkrsu和车辆vj的公钥pkvj、以及随机生成的一个随机数r1给ta;
2.3ta收到由rsu发送过来的信息后,在区块链上查找对应信息,若核实为真,则产生一个会话密钥ks(sessionkey),并用pkvj将ks与pkrsu加密,生成一个加密函数epkvj[ks||pkrsu],然后将该次认证记录内容添加到区块链中,最后向rsu返回一个结果,该结果采用加密函数的形式发送,即用公钥pkrsu将所有记录过程加密,生成加密函数epkrsu[ks||pkrsu||pkvj||r1||epkvj[ks||pkrsu]]发送给rsu,其中e为加密函数;
2.4rsu收到该加密函数后,用私钥解密得到会话密钥ks、pkvj和epkvj[ks||pkrsu],此时完成了对车辆vj的认证,然后随机生成另一个随机数r2并用ks加密,最后将加密结果epkvj[ks||pkrsu]||eks[r2]发送给车辆vj;
2.5车辆vj用私钥解密得到ks和pkrsu,即完成了对该rsu的认证;
2.6当车辆vj和rsu身份相互验证通过后,rsu将接收的vj发来的数据包转发给ta,这样数据包便成功加入到区块链网络中,ta再对该数据包进行审核;若验证不通过,则rsu丢弃该数据包。
步骤3),ta通过共识机制对rsu发来的数据包进行审核,并通过rsa算法进行数字签名和认证。
ta通过共识机制选出一个记账节点来接收该数据包,其余记账节点同步此次记录,这样区块中的所有记账节点便都可以访问到该数据包的内容信息。然后,除去区块中vi和vj以外的所有记账节点对该数据包中的发送节点vi的身份资料和消息内容进行审核,并使用rsa算法进行数字签名和认证。
3.1车辆节点vj在步骤1中打包好的数据包由rsu发送到ta后,区块的记账节点首先通过历史积累的信誉值对vi的身份信息做出评估,随后使用hash函数对消息m进行处理,生成一个hash值,称为消息摘要h(m),并使用自己的私钥对h(m)进行加密,生成签名s(sign)。
3.2记账节点将签名s和消息m结合,并使用ta的公钥进行加密,生成密文c,并发送给ta。
3.3ta收到密文c后,用自己的私钥对密文进行解密,得到明文m和经过加密的数字签名s。
3.4ta使用上述记账节点的公钥解密数字签名s得到消息摘要h(m)。
3.5ta同样使用hash函数对消息m进行处理得到消息摘要h(m)。
3.6ta比较两个消息摘要h(m)和h(m),相同则验证成功,不同则验证失败。
3.7区块中的所有记账节点都重复以上步骤来进行数字签名和认证。
步骤4),ta统计区块链中记账节点的签名数,并判断发送节点vi身份和消息内容的合法性。
4.1为了验证数据包内容的真实性和可靠性,共识机制采用ripple共识算法。依据该算法,当区块中节点的签名数大于等于区块中节点个数的51%时,ta自动认为该车辆节点vj所发送的数据包通过审核,确认该消息可信,并添加记录到区块链中。
4.2若车辆节点签名数不足区块中总车辆节点的51%,则认为该消息是不可信的。
4.3ta将审核的发送节点发送的数据包可信与否的结果广播到其他记账节点和周围车辆,并反馈给接收节点vj。
步骤5),接收节点vj根据收到的ta反馈的数据包可信与否的结果,转发或丢弃发送节点vi发送的消息。
5.1若确认该消息可信,则车辆节点vj转发该条消息并采取与该消息相应的动作,此时视车辆节点vi为有效节点。
5.2若签名数不足,车辆节点vj无法确认该消息可信,则丢弃该消息,此时视车辆节点vi为恶意节点。
将区块链技术应用于车联网中,根据区块链所记录数据库的可追溯性,利用rsa算法进行数字签名和信息认证,并结合车辆节点的当前状态,采用共识机制检测车辆节点是否为恶意节点。该方法利用区块链中所记录数据的不易篡改特性,能高效准确地检测出车联网中的恶意车辆,并能够及时地在全网更新,同时还可以解决车联网去中心化管理和隐私保护的问题,有效降低网络开销。