边缘计算场景下车联网身份隐私保护方案研究
2020-12-19彭维平熊长可贺军义
彭维平,熊长可,贺军义,宋 成
(河南理工大学 计算机科学与技术学院,河南 焦作 454003)
1 引 言
车辆自组织网络[1](Vehicular Ad-hoc Network,VANET)作为智能交通系统的一项核心技术,在道路交通紧急事件信息实时传播、辅助安全驾驶、车辆间信息交互和共享等领域发挥了重要作用.车辆间遵循专用短程通信协议[2](Dedicated Short-Range Communications,DSRC),但其位置、速度、方向及道路状况等信息的传输采用广播方式[3,4],使得用户间传输的隐私信息极易被恶意者截获导致信息泄露,并且由于车辆的高速移动性和基础设施的不完善,服务连接的可靠性较弱,也极易遭受重放及欺骗等攻击.针对车联网隐私信息保护问题,文献[5]介绍了基于加密的隐私保护技术.Zhang[6]等人提出匿名认证的方法,但该方案在保护信息安全的同时使得消息传输时/空间开销增加,实时性差,且过于依赖车辆的防篡改的硬件装置.为降低时/空间开销、提高消息传输效率,Harn[7]提出批量认证的思想,但仅能实现同一用户的批量消息认证.文献[8]构建了一个基于用户身份隐私的VANET安全系统,实现了对多车辆的多条消息批量认证,但出现安全事故时TA无法获取恶意者的真实身份,不能实现抗抵赖.为实现不依赖于车辆防篡改装置等硬件设备的多种类型的批量消息验证,SPECS[9]等提出了一个基于软件的批量消息认证方案,该方案具有较低的消息传输时/空间开销,但b-SPECS+[10]证明SPECS方案不能抗伪装攻击.以上方案中TA通常为汽车制造商或者运输管理部门,认证过程由TA完全掌控,存在权威欺骗.因此,文献[11]提出了一个无可信中心的认证方案,但该方案认证步骤较为繁琐,时/空间开销较大.
边缘计算作为一种远离网络中心处理数据的新型计算模型[12],采用灵活的任务卸载和资源共享机制,在边缘终端节点上即可实现敏感信息的处理,数据无需远传到云中心,为解决车联网中实时性、隐私性和高移动性的需求提供了一种有效途径[13,14].但由于计算模式不同,传统的基于云环境下的VANET模式无法直接移植到边缘计算场景中,需结合边缘计算的特性设计新的方案.另外,在车联网应用场景下,RSU部署区可能存在多个RSU服务范围交叉重叠[15],当车辆移动速度较快,对于视频等长报文需要经过多个RSU才能完成完整的服务,因而还需要考虑RSU的安全.
基于车联网隐私保护中存在的问题,本文提出一种面向边缘计算的车联网身份隐私保护认证方案.该方案首先选择一个MEC服务器作为系统的TA;然后,运用椭圆曲线上的双线性对性质对OBU及RSU等终端进行匿名化、签名等处理,针对不同的消息认证类型,不仅实现单消息认证还实现了批量消息认证;最后,当出现安全事故需TA对OBU及RSU去匿名时,根据传递消息的时间戳定位到TA的真实身份MECi服务器,还原出恶意者的真实身份,且该恶意者无法抵赖.
2 相关知识
2.1 本方案符号说明
本方案相关符号的代表含义如表1所示.
表1 符号说明Table 1 The explanation of symbols
2.2 双线性对
设G1为加法循环群,G2为乘法循环群,G1和G2的阶均为大素数q,双线性对G1×G1→G2有以下性质:
对称性:∀P,Q∈G1,e(P,Q)=e(Q,P).
非退化性:∃P,Q∈G1,满足e(P,Q)≠1.
可计算性:∀P,Q∈G1,存在一个有效的算法在多项式时间内计算出e(P,Q).
3 应用模型
3.1 模型构建
为满足边缘计算场景下车联网信息服务的实时性和可靠性,被服务车辆需在相邻RSU服务覆盖范围边缘完成高效切换,通常在部署RSU时采取边缘交叉覆盖的方式,构建系统模型如图1所示.
图1 VANET系统模型Fig.1 System model of VANET
该模型的主要构成部分及其功能如下所示:
TA:主要实现系统安全参数的生成和发布,OBU和RSU的注册、管理、追溯等.
OBU:按照专用短程通信协议与RSU和其它OBU通信,实现节点密钥存储、消息加/解密等.
RSU:收集从OBU及其它RSU发送的信息,为OBU提供服务,并对消息加/解密等.
3.2 RSU服务覆盖范围
在车联网系统中,为保证被服务车辆在相邻两个RSU信号服务覆盖范围边缘的高效切换,部署RSU时会采取边缘交叉覆盖的方式.
设RSU0,RSU1,RSU2的信号强度及其覆盖范围如图2所示.从A点到B点RSU0的信号强度高于RSU1,从B点到C点RSU1的信号强度高于RSU0.从A点到C点是RSU0和RSU1的信号交叉覆盖的范围,理论上在此区间OBU会选择当前信号最强和计算能力最高的RSU服务.
图2 RSU0,RSU1,RSU2的信号强度和覆盖范围Fig.2 Signal strength and service coverage of RSU0,RSU1,RSU2
假设在某一时刻T=t0,MEC、RSU和OBU的服务覆盖范围如图3所示.其中,RSU0,RSU1,…,RSUi在MEC0的服务覆盖范围内,OBU0,OBU1,OBU2,…,OBUi在RSU0的信号覆盖范围内,OBU3,OBU4,OBU5,…,OBUj在RSU1的信号覆盖范围内,OBU6,OBU7,OBU8,…,OBUk在RSU2的信号覆盖范围内,且OBU3,OBU4在RSU0和RSU1的信号覆盖交叉范围内, 假设OBU0,OBU3,OBU5,OBU7向右行驶,OBU1,OBU4,OBU6,OBU8向左行驶,OBU2停止不动.
图3 T=t0时刻RSU0,RSU1,RSU2信号覆盖范围内的OBUFig.3 OBU of RSU0,RSU1,RSU2signal coverage when T=t0
经过Δt后,OBU5移动到RSU2的信号覆盖范围内,OBU6移动到RSU1的信号覆盖范围内,其他的OBU仍在T=t0时刻相应RSU的信号覆盖范围内,如图4所示.
图4 T=t0+Δt时刻RSU0,RSU1,RSU2信号覆盖范围内的OBUFig.4 OBU of RSU0,RSU1,RSU2signal coverage when T=t0+Δt
4 认证方案
本方案主要分为5个部分:
1)从n个MEC服务器中选择一个MECi服务器作为本周期系统的TA;
2) TA分配系统参数,且对OBU及RSU做匿名处理;
3)发送消息者根据自身私钥对消息签名;
4)单消息签名验证,若验证通过则接收此消息,否则丢弃此消息;批量消息验证,若验证通过则接受此批次所有消息,否则丢弃所有消息;
5)当出现安全事故时,由TA的真实身份MECi服务器对OBU及RSU去匿名,追踪出恶意者.
4.1 选择TA
算法 1.MECi服务器选择为TA
//k个MEC服务器分别选择自身公/私钥
1. if(k>0 &&k<=n)
2. for(m=1;m<=k;m++)
4.Pum=xmP; //MECm的公钥
5. end for;
6.R0={x1P,x2P,…,xkP}; //环公钥
7. 选择i;
8. if(i>0 &&i<=k)
12. end if;
14. if(v>0 &&v<=k)
15. for(s=0;s<=v;s++)
16. if(s!=i)
18. end if;
19. end for;
//xs为MECs服务器的私钥
21.ξi=d-∑s≠iξs;
22.λ=t-ξixi;
24.k-1个服务器判断(1)是否成立;
(1)
27. end if;
28. end if;
29. end if;
4.2 系统初始化和消息签名
算法 2.系统初始化和消息签名
输入:TA生成的阶为q的加法循环群G1和乘法循环群G2,且符合双线性对G1×G1→G2,G1的两个生成元P和Q.OBU的总数量a,RSU的总数量b.
输出:OBUi的签名{OIDi,Si,Mi,Ti}.
2.Ppub1=s1P;
3.Ppub2=s2P; //Ppub1和Ppub2是系统公钥
4. TA发送系统参数(G1,G2,q,P,Q,Ppub1,Ppub2)给每一个OBU 和RSU
//为实现OBU和RSU的身份隐私保护,本文通过TA为每一个设备进行匿名处理
5. for(c=1;c<=a;c++)
//OBUc向TA提供自身的身份信息,且TA审核OBUc提供的身份信息,为其生成唯一的用户名RIDc,同时保存该OBUc的用户名到用户信息列表L1
6.OIDc=RIDc⊕h1(s1Ppub2); //OBUc的匿名
7. end for;
8. for (d=1;d<=b;d++)
//RSUd向TA提供自身的身份信息, TA审核该身份信息,生成唯一用户名SIDd,且保存该用户名到用户信息列表L2
12. end for;
//OBUi为消息发送者,(i<0≤a)
13.SKi=s2h1(OIDi‖Ti)Q;
//SKi是OBUi的私钥,Ti系统当前时刻
14.Si=σdSKi+h2(Mi)Q;
15.OBUi向RSUd发送Mi的签名{OIDi,Si,Mi,Ti};
16. return{OIDi,Si,Mi,Ti};
17. end;
4.3 签名验证
根据单次待验证消息的数量,消息验证可分为单消息验证和批量消息验证.根据批量待验证消息的类别[16],又可分为对同一车辆的不同消息认证、对不同车辆的同一消息认证和对不同车辆的不同消息认证等三种类型.
本文提出的验证方案实现了单消息验证和批量消息验证,并且上述三种类型的批量消息验证在本文中均适用.
4.3.1 单消息签名验证
接收者RSUd收到单条消息,则执行单消息验证.单消息认证的步骤如算法3所示.
算法 3.单消息签名验证
输入:OBUi对Mi的签名{OIDi,Si,Mi,Ti},及签名的接收者RSUd的匿名UIDd.
输出:RSUd接收或丢弃此消息.
1. if(ΔT<=Tk-Ti)
//Tk为接收到消息的时刻,ΔT为允许消息时延
(2)
3.RSUd接收此消息;
4. else
5.RSUd丢弃此消息;
6. end if;
4.3.2 批量消息签名验证
若RSUd同时收到多条消息,则执行批量验证.批量验证的步骤如算法4所示.
算法 4.批量消息签名验证
输入:要验证消息的数量n,每一个消息的签名{OIDi,Si,Mi,Ti},及签名接收者RSUd的匿名UIDd.
输出:RSUd接收或丢弃所有消息.
1. for(i=1;i<=n;i++)
2. if(ΔT<=Tk-Ti)
3. 选择随机数Vi;
//Vi∈[1-2x],x是一个很小的负数,Vi的计算开销可忽略不计
4. end if;
5. end for;
(3)
8. if(A=B)
9.RSUd接收此批量消息;
10. else
11.RSUd丢弃此批量消息;
12. end;
4.4 去匿名化
当出现安全事故需要追究责任时,为了找出真正的恶意者,TA需还原出OBU和RSU的真实身份,撤销其在车联网中的匿名.
4.4.1 TA去匿名
(4)
(5)
(6)
4.4.2 OBU去匿名
Step 1.TA根据系统私钥s1执行运算:
RIDi′=OIDi⊕h1(s1Ppub2)
(7)
Step 2.TA通过RIDi′的取值,查询用户信息列表L1即可获得该用户的真实身份信息.OBU的用户名RIDi具备唯一性,因此恶意者无法抵赖,可实现追踪.
系统私钥由TA保存,除TA外其他任意者计算系统私钥属于离散对数难题.
4.4.3 RSU去匿名
与OBU去匿名同理,RSU去匿名如下所示:
Step 1.TA根据系统私钥s2执行以下运算:
Step 2.TA通过SIDd′的取值,查询用户信息列表L2即可获得该RSU的真实身份信息.RSU的用户名SIDd也具备唯一性,因此可实现追踪.
5 方案分析
5.1 正确性分析
5.1.1 TA身份的正确性分析
本方案TA身份的正确性只需验证式(1)是否成立即可.
等式成立,因此该MECi服务器即为本周期的TA.
5.1.2 单车辆签名验证的正确性分析
本方案单车辆认证的正确性只需验证式(2)是否成立即可.
e(Si,P)=e(σdSKi+h2(Mi)Q,P)
=e(σds2h1(OIDi‖Ti)Q+h2(Mi)Q,P)
=e(σds2h1(OIDi‖Ti)P+h2(Mi)P,Q)
=e(σdPpub2h1(OIDi‖Ti)+h2(Mi)P,Q)
等式成立,故单车辆验证的正确性成立.
5.1.3 批量签名验证的正确性分析
本方案批量认证的正确性只需验证式(3)是否成立即可.
等式成立,故批量验证的正确性成立,在有且仅有每条消息都有效的情况下,批量验证才通过.
5.1.4 OBU和RSU追溯的正确性
本方案OBU的匿名为OIDi=RIDi⊕h1(s1Ppub2),由TA根据车辆自身提供的相关身份证明生成,其中s1是系统私钥,有且仅有TA拥有,且TA是安全的.因此,OBU追溯的正确性成立.
5.2 安全性分析
5.2.1 不可链接性
定义1.链接游戏
Step 1.挑战者A根据密钥生成算法计算得到系统的公钥和私钥组(Ppub1,s1),(Ppub2,s2)以及系统的公共参数(G1,G2,q,P,Q,Ppub1,Ppub2);
Step 2.挑战者A选取两个内容完全不同但长度相同的消息m0和m1;
Step 3.系统选择随机数a∈{0,1},将ma和m1-a分别通过安全信道秘密发送给A0和A1,且挑战者无从获取a;
Step 4.A0和A1分别执行本文的签名方案η;
Step 5.若A0和A1输出的两个有效签名ωa和ω1-a分别与消息ma和m1-a对应,则将ωa和ω1-a按照随机顺序发送给挑战者A;否则,返回给挑战者符号$,表示无用消息;
Step 6.挑战者A假定ωa是来自于a′,如果a′=a,则表明A赢得此场游戏.
定理1.设在多项式时间内,挑战者A赢得该游戏的概率可忽略不记,则称本方案具有不可链接性.
如果挑战者A在执行完上述链接游戏后得到是符号$,则表明A获得的是无用消息.
综上所述,本文方案实现了不可链接性.
5.2.2 不可伪造性
不可伪造性指攻击者在多项式时间内伪造出有效消息签名的概率可忽略不记.
定义2.随机预言机模型
随机预言模型[17](Random oracle model,ROEM)有列表Lin和Lout,其中,Lin中包含所有可能的问题,Lout中包含Lin问题中的所有答案.随机预言机模型是一种散列函数H:{0,1}*→{0,1}n,满足下列性质:
1)一致性:输入值与输出值唯一对应;
2)均匀分布性:输出值在取值空间呈均匀分布,且无碰撞;
3)可计算性:在多项式时间内能够计算得到输出值.
定义3.多一伪造性
对于概率多项式随机算法polynomial(k),存在任意整数l,有l=polynomial(k),k是该算法绝对安全的参数.多一伪造[18]指在一个签名方案中,有一个概率多项式时间算法在与签名者进行l次交换信息后能够以不可忽略的概率计算出l+1个有效的签名.
定义4.CDH假设
Diffie-Hellman算法中关于(Computational Diffie-Hellman,CDH)问题的困难性,由有限循环群上的CDH假设(Computational Diffie-Hellman Assumption,CDHA)保证[19].即在有限循环群G上解决离散对数问题理论上是不可实现的.
定义5.选择目标的CDH假设
目标预言机(Target oracle, TOE):随机选择K∈G,将K作为输出.
帮助预言机(Help oracle, HOE):输入给定的元素K∈G,计算Z=aK,将Z作为输出.
如果攻击者B在询问qg次目标预言机和qh次帮助预言机后,能以不可忽略的概率输出j对元组{(K1,Z2),…,(Kj,Zj)},且满足Zi=aKi,1≤i≤j,qh 假设证明,攻击者B无从找到一个多项式时间算法能够以不可忽略的概率解决CDH难题. 证明:本文方案具有不可伪造性. 假设攻击者B能够在本文方案中解决选择目标CDH假设难题,同时存在另一个攻击者C与B有相同的能力.基于以上两个预言机,本文构造出散列预言机O1和签名预言机O2供攻击者C查询,步骤如下所: Step 1.初始化 设方案的公共参数为(G1,G2,q,P,Q,Ppub1,Ppub2).Ppub2=aP,(P,aP)是选择目标CDH假设的一个攻击目标,Ppub1=s1P,攻击者C拥有系统私钥s1.C有权利访问TOE T1和HOE H1.攻击者B借助HOE查询散列值,借助TOE查询签名. Step 2.查询散列预言机O1 攻击者B向帮助预言机H1查询列表(OID,S,M)的散列值,同时攻击者C在列表Lin中查询是否存在列表(OID,S,M),如果存在,则将其作为索引放在列表Lout中用以检索K,且将K返回给B;否则C会通过查询散列预言机O1,获得随机参数K∈G1发送给B,并将(OID,S,M)存储在列表Lin中,将K作为(OID,S,M)的散列值存储在Lout中. Step 3.查询签名预言机O2 攻击者B将σ1、OID1、T1作为输入以谋获签名消息,攻击者C首先将OID1作为签名O2的输入,以得到T1=ah1(OID1‖T1)Q;接着,计算T=σ1T1+h2(M1)Q,将T作为输出,且发送给B. 攻击者B向TOE H1和HOE T1分别完成qr和qs次询问后,如果B能够准确输出l个有效的签名(OID1,S1,M1,T1),…,(OIDl,Sl,Ml,Tl),qr 因此,本方案具有不可伪造性,避免了攻击者伪造认证消息内容扰乱认证秩序的破坏. 5.2.3 前向安全性和后向安全性 5.2.4 抵抗重放攻击 本方案中整个车载网系统的时钟保持同步,OBU在发送认证消息时每次都会产生一个时间戳,如果攻击者重放此消息,则此时间戳会相对远离当前时刻,接收者将会舍弃此条信息,从而达到抵抗重放攻击的目的. 与现有典型文献[20-22]对比可知,本文方案综合实现了不可链接性、不可伪造性、保证了前向安全性和后向安全性、能够抵抗重放攻击且实现了OBU和RSU的可追溯性,如表2所示.其中,“√”表示该方案满足所对应的特性,“×”表示不满足. 表2 安全性分析Table 2 Security analysis 5.3.1 时间复杂度分析 时间复杂度主要指方案中加密操作的时间成本,其他时间开销忽略不记.设n代表传输消息的数量,Tpar表示一次双线性对运算所用的时间,Tpar-bp表示一次双线性对上的点乘运算所用的时间,Tmul表示一次椭圆曲线上点乘运算所用的时间,Tmtp表示一次哈希运算所用的时间,Tmac表示一次计算消息验证码运算所用的时间.参照文献[23],在Intel Core (TM) 2 Duo CPU @ 2.4GHz环境下,通过统计100次消息加密认证后得到各类运算所需的时间.其中,Tpar为40.7ms,Tpar-bp为17.1ms,Tmul为5.4ms,Tmtp为6us,Tmac为16.7us.单消息认证时间复杂度分析和批量消息认证时间复杂度分析如表3和表4所示. 表3 单消息认证时间复杂度分析Table 3 Time complexity analysis of single message authentication 表4 批量消息认证时间复杂度分析Table 4 Time complexity analysis of batch message authentication 由表3可知,本文方案在单消息验证方面相比于文献[20-22],分别减少了176.1ms、5.4407ms、47ms.同等条件下本文的加密签名方案使用的时间最短. 由表4可知,本文的批量消息验证方案在消息数量n≤4时优于文献[20],消息数量为任意多个时优于文献[21]、[22],在一定程度上解决了车联网中短时间内实现大量消息认证耗时较长的瓶颈. 5.3.2 通信复杂度分析 通信复杂度指发送消息的比特数,只包含通信消耗,不包含本地消耗.假设传送的原始信息大小为20bytes.通信复杂度如表5所示,其中,“*”表示方案可根据签名恢复出原消息. 表5 通信复杂度分析Table 5 Analysis of communication complexity 由表5可知,本文方案在通信复杂度方面相比于文献[20-22]分别减少了102 bytes,148 bytes,133 bytes. 车联网隐私保护方案中用户之间传递的消息均具有时效性,一个高效的认证方案需要有较低的消息丢失率和延迟.平均消息丢失率(Average Message Loss Rate,ALR)和平均消息延迟(Average Message Delay,AMD)是衡量车联网效率优劣的两个重要因素[19].ALR和AMD的值越小,代表方案的性能越优越.本方案中ALR和AMD的计算如公式(8)和公式(9)所示. (8) (9) 本方案所使用的仿真实验参数如表6所示. 表6 仿真实验参数Table 6 Parameters of simulation experiment 首先,分别设定不同的车辆节点数和车辆最大行使速度,根据表6中相关参数初始化实验模拟场景,随机生成各车辆节点的位置坐标,根据随机种子确定所要传输数据包的总数量;然后,通过模拟某一设定时间段内任意两个车辆节点间的消息传输,得到所有成对车辆节点间消息是否成功传输标识以及消息传输延迟时间的数据集;最后,统计得到平均消息丢失率ALR和平均消息延迟AMD. ALR、AMD随着自组网内车辆节点数量的变化情况分别如图5和图6所示. 图5 平均消息丢失率与车辆个数的关系Fig.5 Relation between average message loss rate and number of vehicles 图6 平均消息延迟与车辆个数的关系Fig.6 Relation between average message delay and number of vehicles 通过图5中的对比可知当车辆节点数量为40和120个时,本方案中ALR相比于文献[21],分别降低了2%和4%.本文方案优于所对比的三篇文献,且随着车辆节点的增加将保持此趋势. 当车辆节点的数量在20个时,本方案的平均消息延迟约为75ms,而文献[21]的约为130ms.根据图6的对比可知,车辆个数为0-120个之间时,本文方案平均消息延迟方面均优于所对比的三篇文献,且随着车辆节点的增加将保持此趋势. 本文针对传统的车联网身份隐私保护方案中存在可信中心权威欺骗,无可信中心时通信复杂度及时间复杂度高及RSU被攻击等问题,结合边缘计算低时延的优点,提出一种面向边缘计算场景的车联网应用身份隐私保护方案.该方案用MEC服务器构造可信中心,避免了传统方案使用汽车制造商或交通运输部门管理时存在的权威欺骗,实现了车联网中单消息认证和批量消息认证.在发生争议时,可提供OBU和RSU的可追溯.分析表明,本方案正确且在安全及效率方面都有进一步的提升.未来,将对该认证方案做进一步优化,以实现更低的消息传输时延及更低的消息丢失率,并在真实环境中进行验证.5.3 效率分析
6 仿真实验
7 结 论