基于消息池的车联网信息安全高效认证算法

2020-03-12 01:37
关键词:发送者接收者消息

李 楠

(福州软件职业技术学院 软件工程系,福建 福州350003)

车联网是新兴的移动自组织网络,它是物联网技术在交通领域的一大应用研究,旨在通过信息的传递,对车辆进行有效控制,实现道路交通的智能化管理。网络中的车辆、道路、行人,在无线或有线网络中,按照特定的通信协议进行安全信息交换[1],使得行驶安全得以提升,交通拥堵情况得以缓解。车联网中的节点每隔一段时间就会向周边节点发送车辆具体位置、行驶速度、行驶方向等车辆自身状态信息,周边节点车辆通过接收到的信息,就可以辅助驾驶员对路况做出预判,从而通过及时调整车辆行驶状态,排除安全隐患,通过调整车辆行驶路线,选择最优行驶线路,优化了道路使用情况。由此,车联网技术的应用将来必然会在提高人们出行效率和确保行车安全方面做出巨大贡献,正因如此,越来越多专家学者致力于突破车联网应用中的各个技术难题,可以说它是未来交通发展的方向。同时,在车联网技术的各类探索中,如何确保信息的安全又是一个至关重要的技术焦点。

1 车联网面临的关键问题

1.1 信息安全问题

车联网面临的一大不容忽视的问题,就是信息安全。车联网的通信基础主要是无线网,这种通信媒介又恰恰受到攻击者的“青睐”。一旦攻击者入侵之后,就可以通过对信息的拦截、篡改、重放、删除等手段,使车联网的数据安全受到严重威胁。比如,攻击者可以通过拦截窃取到车辆位置、车主身份、车主喜好等隐私数据;攻击者可以通过修改真实消息,误导交通;攻击者还可以通过伪造合法身份,发送虚假消息,扰乱正常交通秩序。如果攻击者通过虚假身份发送伪造的信息[2],删除传输中的安全信息,或者截取并恶意修改信息,网络中的节点收到经过网络传播的被攻击的虚假消息,有可能做出错误的行为决策,降低消息的可信度,干扰正常的交通秩序,甚至影响到人们的出行安全。

1.2 消息时延问题

基于车辆节点数量多,大量的消息、复杂的认证计算过程,会造成消息在时间上的滞后,这是当下车联网消息认证方案普遍存在的痛点,也是关键研究点。短距离无线通信协议DSRC规定,节点广播一条信息的时间间距大约是200 ms。假设在有效通信范围内的网络中至少存在100个车辆节点,则单个节点每隔1 s将收到至少500条消息。而且,节点收到的消息数量还会随着车辆密度的增大而增加。当车辆硬件设备的数据处理能力无法及时处理车辆接收的大量数据,就会造成消息滞后,因消息的超时响应导致消息的有效利用率大大降低。所以,如何提高签名认证算法的效率,使车辆节点尽快解析消息,是很多学者在研究的课题。

2 基于消息池的安全高效认证算法

车联网的核心技术就是在车辆节点之间高效、准确、安全地传递信息。就消息通信安全性来说,普遍通过消息签名与认证的方法来保障。同时,基于车辆网中庞大的通信节点数量和硬件通信设备有限的处理能力,消息处理带来的时间延迟不容忽视[3]。而车辆的移动性和车联网的应用场景,又对消息的实时性提出很高的要求。对于节点而言,滞后的消息即是无用的消息。本文提出一种新型高效的签名认证算法——基于消息池的安全认证算法,旨在提高系统的签名认证速率,减少时延。

2.1 系统模型与假设

车联网通信模型通常由车辆、RSU和TA三部分节点组成,其中,RSU代表分布在道路旁的通信装置,TA代表拥有强大计算和通信能力的可信权威机构。表1列出了算法中的主要符号及其含义。

表3.1 符号及其定义

在车联网模型M中假设有n个车辆节点,表示为V={v_i,i∈{1,2,…,n}},其中v_i代表M中的车辆节点。同时,假设在车联网中的所有车辆已经安装好两个硬件设备:一个是OBU,用于通信,它负责发送消息和接收消息;另一个是TPD,用于存储及处理数据,防止信息被篡改。TA是可信权威机构,在M中假设有一个TA,负责为M中的所有车辆节点注册合法身份,给通信设备必要参数的初始化配置,同时辅助节点对信息签名认证。为了验证消息的合法有效,必须实现消息的可溯源,TA会为每个车辆节点生成一个唯一的身份标识码RID和一组初始化参数,这些数据将被保存在车辆节点的防篡改设备里。TPD也被默认为可靠和安全的设备。RSU则通过有线或无线网络,在TA和车辆节点间传递信息。RSU的通信范围与数据数理能力较强,它负责收集各方车辆发来的消息,提交给交通管理部门作为临时管制和信号灯设置等交通管理决策的数据依据。

在车联网中,车与RSU承担消息发送者和消息接收者双重角色。消息发送者要先对消息进行数字签名,然后发送消息;消息接收者则在接收消息后,认证消息。把消息发送者标记为SV,消息接收者标记为NV。用mmid={bmid,SVRID,tmid}标识一条消息元素构成,其中,bmid表示主体消息,SVRID表示消息来源节点的身份编号,tmid表示此信息的有效时限。多条消息在节点中以队列的结构存储,按照消息到达节点的先后顺序,新消息永远放在队首,则队尾存放的是到达时间最久且最快被NV处理的消息。根据tmid消息在队列中的到期时间,一旦消息在队列里停留超时,我们就对消息作失效处理,丢弃消息。

2.2 具体算法描述

2.2.1 消息签名与认证的流程

消息发送者SV先用私钥加密准备发送的消息mmid,生成数字签名Smid。接着,消息mmid和对应的签名Smid—同被SV广播给M内的各节点。得到消息mmid的节点NV先用网络公布的公钥和对应的认证算法对Smid进行解析,判断接收到的消息在传输的过程中是否遭受过篡改等攻击,以确保消息的真实性、完整性和有效性。如果认证通过,则消息mmid则被认为是有效的,并进一步分析应用,否则该消息将会被作无效处理。

椭圆曲线算法ECC与经典的RSA算法相比,具有如下优点:安全性高、计算量小、占用存储空间少、低网络带宽,本文介绍的算法也是基于ECC的。

2.2.2 算法设计依据

车联网中传播的信息分为三类:控制信息、常规信息和事故信息。其中,常规信息占比最大,通常车辆节点每隔固定时长就把自己的行驶状态数据广播一次,包括车辆所处位置、行进速度、行进方向等。显而易见,同一路段,特别是拥挤路段,相同方向车辆的行驶速度相同的几率很大。一旦车辆节点发生事故,就会生成事故信息对外广播,附近车辆节点如果收到该事故信息,就能够提前避开事故路段,选择其他更优的路段通行。据交通部门统计,两车刮擦、两车或多车追尾,是事故中最为常见的情况。这就会造成多个车辆节点在相近时间内发送相同的事故消息的情况。综上所述,一个消息接收者在短时间内收到不同发送者发送的相同路况消息的概率极高。

本文设计的算法思想就是在接收者节点设置消息池,消息池中的消息根据到期时间形成队列。当接收者接收一条消息时,先将消息与消息池中的消息比对(不比对消息发送者、到期时间等附加信息),若接收到的新消息已经存在消息池,就跳过认证步骤,认为其为可信消息,将新消息中的到期时间更新到消息池中的原有消息中;若接收到的新消息在消息池中不存在,则进行认证,认证通过,将该消息加入到消息池。当消息池容量满时,根据到期时间,清除消息队列中已经到期或即将到期的消息内容。

2.2.3 具体算法设计

认证算法主要包含以下几个部分:

(1)初始化系统。由权威机构TA生成系统参数:

1)TA在有限数据集Fp上,借助大素数p,构造出一个非奇异的椭圆曲线E,表示为

E:y2=x3+ax+b(mod p),a,b∈Fp。

2)TA从集合G中选取一个q阶生成元P,G是一个涵盖了E上任意点和无限远点O的加法群,P≠O。P是生成公钥和私钥的关键。

3)TA选取一个随机数s作为认证算法的主密钥,s∈z*,并计算出公钥Ppub=s×P,这个公钥对车联网M中的全部节点和中心服务器RSU公开。

4)TA选取三个单向的哈希函数,分别表示为

H1:G→Zq,H2:G→Zq,H3:{0,1}*×{0,1}*×G{0,1}*→Zq。

经过以上系统初始化过程后,TA会产生一系列的系统参数,表示为params={p,g,a,b,P,Ppub,H1,H2,H3}。在车辆向TA申请合法身份的同时,TA就把这个参数集合一并发给车辆,存储到车辆的防篡改设备TPD中,在验证消息完整性时使用。车联网中所有节点的系统参数是相同的。

(2)注册节点。注册节点指的是每个节点要主动向TA申请一个合法且唯一不可抵赖的身份编号,以及系统初始化产生的系统参数。为了使车联网中的消息都可以溯源,也确保车辆节点在车联网中正常收发消息,加入到该网络中的每一个节点都需要完成节点注册。在这个环节中,TA按一定规则为某节点生成身份标识RID以及配套的密码PAD、系统初始化参数集合params和认证算法的主密钥s,全部存储在节点的TPD里面。一个节点一旦完成注册,它所发送的消息才是可溯源的,也才拥有发送消息的资格。

(3)生成密钥及匿名身份。消息签名所使用的重要参数就是密钥及节点的身份ID[4],如果使用节点的真实身份ID作为参数对消息进行签名,结合所传递的车辆状态信息,使节点的行车路线、行车习惯等容易受到窃取、追踪等攻击,也增加了车主的安全隐患。基于这一隐私保护的考虑,所以使用的是匿名身份进行消息签名,而非使用真实身份。同时,作为防篡改设备,充分信任每个节点安装的TPD是安全可靠的。基于TPD的安全性能这一前提,TPD才能负责生成私钥这一关键工作。防篡改设备TPD会选择一个随机数,以及车辆的真实身份RID计算得出车辆的匿名身份ID。通过下面公式,得出车的匿名身份AID

由式(1)即得到车的匿名身份ID,写成AID={AID1,AID2}。然后,PKG结合车vRID的匿名身份AID与共享的主密钥s,通过以下公式计算得出vRID的私钥数据

(4)生成消息签名。消息签名是指消息发送者将消息使用上一步生成的私钥,采用椭圆曲线签名算法进行加密后发送,为后续接收者验证消息的完整性,也确保了消息发送者的不可抵赖性。考虑到消息的安全性,要求车联网中的节点在发送消息前必须先对消息进行签名,未经签名的消息是不会被接收者采信的。用S_mid来表示消息b_mid的数字签名,计算公式为

其中,λi=ri×P,vi∈zq*是一个随机数。车vRID对消息进行数字签名处理完,就可以将消息以广播的形式发送车联网内各个节点,将该消息表示为

(5)消息池过滤。消息池过滤的作用是,考虑到车辆的移动性和路况的实时变化,通过筛选淘汰需要认证的消息数量来节省时间,从而提高消息的时效性。在验证消息完整性前,节点先将tmid与当前时间作比较,判断消息是否在有效期内。若系统当前时间超过tmid,表示该消息已过期,则丢弃该消息。接着判断消息是否在消息池中,如果在,就跳过认证步骤,认为其为可信消息,同时用当前所验证的新消息的到期时间tmid替换到消息池中原有消息的tmid字段,并将消息移至消息池中消息队列队首,从而确保队尾永远是时效性最差的消息,若消息池满,则淘汰处于队列队尾的消息;若接收到的新消息bmid在消息池中不存在,则进行认证步骤。

(6)消息认证。该步骤是指消息接收者使用共享公钥验证所收到的消息的可靠性,既验证消息完整性和消息发送者的真实合法身份,也能解决伪造、篡改、否认等问题[5]。给定一个接收到的消息mmid={bmid,AID,tmid,λi,Smid},节点(车或RSU)将使用已有的系统参数params={p,g,a,b,P,Ppub,H1,H2,H3}通过认证算法对该消息进行认证。使用下面公式来认证消息

如果式(4)成立,则表示消息是真实完整的,将消息加入消息池队列队首,否则丢弃该消息。在上述(2)节点注册阶段,每个节点都被分配了系统参数集合params,并且λi=ri×P,Ppub=s×P,AID1=δ1×P。网络中的每个合法用户都可以根据已知参数结合认证算法验证所接收到的消息。

3 算法分析与总结

基于消息是通过网络传播这一特性,消息所要应对网络攻击与威胁的挑战越发严峻。节点所发送的消息难免要遭遇到各式各样的网络攻击。而消息的安全传输是消息有效性的保障,是一切基于消息的车联网应用研究的大前提。消息签名与认证算法都是基于ECDSA(椭圆曲线数字签名认证)实现的,该算法的安全性已被大量专家学者论证。目前数学家们认为,对于大素数来说是几乎不可能计算出离散对数的,也就是说攻击者不可能伪造出一个假消息蒙骗接收者。所以,本文方案使消息具有可认证性,允许接收者完全能够使用认证算法筛选出真实、完整、有效的信息。

车联网中节点密度大,加上节点收发消息的时间间隔短,使得车联网中单位时间内传播的消息总量非常多。出于消息的时效性考虑,节点必须迅速检验筛选大量消息。如果按原有的认证方法,节点只能逐一验证得到的消息,验证速度慢,导致节点容易错过许多实时性强的消息。我们选取时下业界普遍认可的多种签名认证算法[3]和本文提出的签名认证方案,分析了不同签名认证算法在同一时间内对多个签名的认证效率。经过比较,当对n个消息的签名进行认证时,本文提出的基于消息池的车联网信息认证算法的运算效率要好于当前流行且公认的CPAS、IBV算法。我们也做了大量的模拟实验,使用IBV、CPAS等多种算法同时对若干条签名进行认证,本文介绍的算法方案执行总时间最少,且消息数量越多,时间优势就越明显,因此本文设计并提出的算法是安全高效的。

猜你喜欢
发送者接收者消息
信息披露的经济学分析:预防性动机视角
网络表情符号的作用
表情符号的使用角度对亲密度感知的影响
基于SDN的组播安全机制
论《聊斋志异》梦境叙事
一张图看5G消息
功能翻译理论视角下英语翻译技巧探讨
口碑传播中影响因素作用机制研究及应用
消息
消息