石琴 潘廷亮 程腾 王川宿 张星
(1.合肥工业大学,自动驾驶汽车安全技术安徽省重点实验室 安徽省智慧交通车路协同工程研究中心,合肥 230009;2.奇瑞汽车股份有限公司,芜湖 241006)
主题词:量子加密通信 身份认证 车联网 计算开销 通信开销
在车联网各实体中,车-云间的通信是车联网技术的基础。车-云通信过程中,存在大量的车辆隐私和位置信息,以及云服务器的控制信令[1]。因此,车-云通信安全对于整个车联网交通安全具有重大影响。身份认证是车联网通信中最重要的步骤之一,可使合法车辆与车联网云平台进行信息交互,并将非法用户和各种类型的攻击拒之门外[2]。
在车-云通信过程中,密钥对于信息加密也有十分重要的影响。密钥的生成往往基于随机数和口令,随机数的随机性会影响生成密钥的安全性[3]。在具有强大算力的计算机面前,通过种子信息、预设函数和常数常量等元素生成的伪随机数将会变得极其不安全[4]。而真随机数往往通过一些不可预测的物理现象产生,例如量子随机数发生器通过光子的物理现象产生随机数[5]。通过使用真随机数来生成量子密钥将会具有更高的安全性。目前,较为常用的量子密钥分发协议由Bennett 和Brassard[6]于1984年提出,即BB84协议。
目前的身份认证机制主要分为基于公钥基础设施(Public Key Infrastructure,PKI)的认证方案、基于群签名的认证方案和基于身份的认证方案[7]。基于PKI的认证方案具有存储、通信和计算开销过大的缺陷。基于群签名的认证方案普遍具有如下问题:车辆离开一个群或加入一个新群,需要在可信实体(Trusted Authority,TA)的帮助下更新群密钥[8],这不仅给TA 带来了额外的负担,群密钥的频繁切换也带来极大的计算和通信开销[9];群成员隐私信息的保护不易实现,难以保证匿名性和可追溯性。基于身份的认证方案相较于基于PKI 的认证方案,在很大程度上减少了计算、通信和存储的开销,但密钥生成算法或者密钥存储设备的攻破会直接危害系统安全[10]。
本文针对部分车联网设备通信和计算能力有限的问题,在车云网量子通信架构的基础上,设计一种轻量化身份认证方案,主要通过量子随机数、逻辑运算和单向哈希函数[11-13]等进行运算,并与其他4种相关方案[14-17]进行对比验证。
车云网量子加密通信架构系统既支持广域网下车辆与车联网云平台之间通过线下储存的充注密钥进行会话密钥的无线分发,也支持局域网下车联网云平台与车载信息服务提供商(Telematics Service Provider,TSP)之间使用BB84协议实现量子密钥的有线协商。因此,该系统实现了混合网络下基于量子物理安全的加密通信。
车云网量子加密通信架构系统主要由车联网云平台、车辆、密钥充注系统(Key Filling System,KFS)和TSP组成,其架构如图1所示:
图1 车云网量子加密通信架构
a.量子云服务器(Quantum Cloud Server,QCS)车联网云平台。车联网云平台记录着每一辆车的ID、密码和充注密钥,以此验证车辆身份的合法性,也为车辆提供各种车联网服务。同时,QCS内还集成了一套量子密钥分发系统,可生成充注密钥和量子会话密钥,使其能够与车辆之间进行安全加密通信。QCS 与TSP 之间也具有量子密钥分发系统,保证QCS能够将车辆数据安全地传输给TSP。
b.车辆。每一辆车都配备一个具有无线通信能力的设备,该设备可以是车载通信终端(Telematics-BOX,T-BOX)或车载诊断系统(On-Board Diagnosis,OBU)。同时,车辆的安全介质内存放着KFS生成并线下充注的密钥。在车辆与QCS完成认证并申请到会话密钥后,车辆能够使用密钥进行加密通信。
c.密钥充注系统。KFS 的主要作用是将QCS 产生的足量的量子随机数以线下充注的方式储存到车辆的安全介质内。该随机数文件可以视为充注密钥。同时,充注密钥在QCS中也存有备份,并且与车辆ID绑定,充注密钥将会用于后续的车-QCS会话密钥的申请。
d.车载信息服务提供商:TSP主要负责从QCS获取车辆的相关数据和请求后,提供相应的车联网服务。TSP与QCS之间通过光纤连接,并且集成了一套量子密钥分发系统。量子密钥分发系统能够保证两者之间的密钥分发和加密通信绝对安全。
车辆与车联网云平台之间有2轮认证,认证过程如图2所示。车辆上电后,将与QCS建立连接,并发送第1轮登录认证消息。QCS在收到车辆第1条认证消息后,对车辆身份进行认证,认证通过后向车辆回复一条认证消息。车辆收到QCS 回复的认证消息后,对QCS 身份进行认证,认证通过后发送第2轮认证消息。QCS收到第2轮认证消息,验证通过后向车辆回复成功消息。至此,车辆与QCS之间的认证流程完成。
图2 车辆与云平台的身份认证流程
车辆与QCS 身份认证的过程分为2 个阶段,即注册阶段和认证阶段。表1 所示为认证过程中的相关参数。
表1 登录认证协议参数
车辆通过线下的安全渠道向QCS 注册登记,并向KFS获取充注密钥:
a.车辆Vi选择其唯一真实身份信息RIDi和密码PWi,并将信息上传QCS。
b.QCS收到注册信息后,计算H1(RIDi),并将计算结果与数据库现有身份信息进行对比。如果已经存在,则拒绝注册请求;反之,QCS 将计算结果与RIDi绑定并记录在数据库内。同时,QCS将注册成功信息和3个安全哈希函数H1、H2、H3发送给车辆。
c.车辆收到信息后,记录下3个安全哈希函数并向KFS上报身份信息H1(RIDi),请求充注密钥。
d.KFS在收到充注请求后,请求QCS检查车辆合法性。完成检查后,将充注密钥传输到车辆的安全介质内。同时,KFS将车辆身份信息和充注密钥发送给QCS进行绑定和记录。
e.车辆收到充注密钥后,将充注密钥存储在其安全介质内以完成注册过程。
认证阶段详细过程如图3所示:
a.车辆Vi启动,登录云服务平台,生成第1 轮登录认证消息。生成量子随机数α、随机序列号Seqi和时间戳ti。计算匿名身份信息IDi=H1(RIDi)⊕H2(ti),按照α1=α⊕H3(RIDi⊕H2(ti))计算随机数,并且组装生成认证消息头部,即H={MT||L||ti||Seqi},计算MAC=H2(H||Ri||IDi||α1),最后生成消息Mi={H||IDi||α1||Ri||MAC},将消息发送给云服务器。
b.云服务器接收到消息Mi后,计算时间差t*-ti<Δt,检查消息的有效性,如果不满足条件则丢弃,如果满足时间戳有效性,则计算该消息MAC*=H2(H||Ri||IDi||α1},并检查式(1)是否成立:
如果不成立则丢弃该消息,否则查看消息类型MT,验证为登录认证消息。检查认证轮次Ri,验证为第1轮认证。取出IDi,并根据时间戳ti计算得出H1(RIDi),将数据库内的身份消息进行对比分析,查询得出车辆的RIDi,如果未能成功查询,则丢弃该消息,如果查询成功,则通过车辆的RIDi在数据库中找到对应的PWi,并计算α=α1⊕H3(RIDi⊕H2(ti)),以及Rm=H2{α||PWi}。记录对方的Seqj,同时生成量子随机数β、随机序列号Seqj和时间戳ti,计算β1=β⊕H3(RIDi⊕H2(ti)),组装生成认证消息头部,即H={MT||L||ti||Seqj},然后计算消息完整性验证码MAC=H2(H||Ri||β1||Rm||E||Em),最后生成消息Mi={H||β1||Ri||E||Em||Rm||MAC},将消息发送给车辆Vi。
c.车辆Vi接收到消息Mi后,计算时间差t*-ti<Δt,检查消息的有效性,如果不满足条件则丢弃,如果满足时间戳有效性,则计算该消息MAC*=H2(H||Ri||β1||Rm||E||Em),并检查式(2)是否成立:
如果不成立则丢弃该消息,否则查看消息类型MT,验证为登录认证消息。检查认证轮次Ri,验证为第1轮认证。车辆Vi将自己之前发送的量子随机数α与自己的密码PWi进行计算=H2{α||PWi},并检查式(3)是否成立:
如果不成立则丢弃该消息,否则检查消息内错误码E的值,如果表明登录认证消息失败,则根据错误信息Em修改认证信息,并重新执行步骤a。如果消息内错误码E的值表明登录认证消息成功,则计算量子随机数β=β1⊕H3(RIDi⊕H2(ti)),将云服务器的量子随机数β与自己的密码PWi进行计算,得到Rm=H2{β||PWi}。序列号Seqi在之前的基础上增加1,同时生成时间戳ti。组装生成认证消息头部,即H={MT||L||ti||Seqj},然后计算消息完整性验证码MAC=H2(H||Ri||IDi||Rm),最后生成消息Mi={H||IDi||Rm||Ri||MAC}并发送给云服务器。
d.云服务器接收到消息Mi后,计算时间差t*-ti<Δt,检查消息的有效性,如果不满足条件则丢弃,如果满足时间戳有效性,则计算消息MAC*=H2(H||Ri||IDi||Rm),并检查式(4)是否成立:
如果不成立则丢弃该消息,否则查看消息类型MT,验证为登录认证消息。检查认证轮次Ri,验证为第2轮认证。计算Rm=H2{β||PWi},并检查式(5)是否成立:
如果不成立则丢弃该消息,否则对比Seqi与之前记录的数值是否满足Seqi=Seqi*+1,不满足则发送对应错误码给车辆Vi,如果符合条件,则回复认证成功消息。组装生成认证消息头部H={MT||L||ti||Seqj},然后计算消息完整性验证码MAC=H2(H||Ri||E||Em),最后生成消息Mi={H||Ri||E||Em||MAC},将消息发送给车辆Vi。
e.车辆Vi接收到消息Mi后,计算时间差t*-ti<Δt,检查消息的有效性,如果不满足条件则丢弃,如果满足时间戳有效性,则计算该消息MAC*=H2(H||Ri||E||Em),验证式(6)是否成立:
如果不成立则丢弃该消息,否则查看消息类型MT,验证为登录认证消息。检查认证轮次Ri,验证为第2轮认证。检查消息内错误码E的值,如果表明登录认证消息失败,则根据错误信息Em修改认证信息,并重新执行步骤a。如果消息内错误码E的值表明登录认证消息成功,则认证结束,车辆进入通信流程下一阶段。
本文所提出的轻量化身份认证方案使用量子随机数提高了通信过程的安全性,因为量子加密通信具有无条件的安全性,这是由量子物理学的不可克隆原理和不确定性原理所决定的[18]。一方面,基于量子随机数所产生的量子密钥更加难以破解,具有更高的安全性,另一方面,量子密钥分发过程已被证明是绝对安全的,且任何第三方窃听行为都将会被及时发现[19]。本文对身份认证过程进行安全性分析,保证其符合安全性需求并能应对各种安全攻击手段:
a.匿名性。因为在认证过程中车辆使用的IDi并不是真实身份信息,所以在进行身份认证的过程中,攻击者不能依靠拦截认证消息获得用户的真实信息。因此,本文方案具有匿名性。
b.可追溯性。车辆的真实身份信息RIDi可以由QCS 分析计算IDi来获得。当网络内出现异常节点时,QCS 能够通过分析IDi来追踪到真实身份信息。因此,本文方案具备可追溯性。
c.不可链接性。车辆生成的用于身份认证的匿名身份IDi和认证消息Mi都使用了量子随机数和时间戳,因此,每一次认证使用的IDi都不相同,攻击者无法通过长期追踪来锁定某个特定的车辆用户。
d.抵抗伪造攻击。本文方案在建立通信前需要进行身份认证。合法节点的身份信息记录在QCS内,而且每次认证过程使用不同的量子随机数,攻击者难以伪装成车辆或者QCS。因此,该方案能够抵抗伪造攻击。
e.抵抗重放攻击。假定攻击者具有截获车辆和QCS 的身份认证消息Mi的能力,在一段时间后,攻击者将截获信息原封不动地发送给车辆或者QCS,并以此冒充合法身份。但是,Mi中存在着时间戳ti、量子随机数和序列号Seqi或Seqj,都将造成攻击者发送的认证消息无效,从而使得攻击者无法完成身份认证。因此,本文方案对于重放攻击具有很强的抵抗能力。
f.抵抗篡改攻击。假设攻击者在截获车辆和QCS之间的身份认证消息Mi后,篡改部分内容来通过身份认证。本文方案中,车辆与QCS的通信消息中都存在着完整性摘要MAC。当消息被篡改后,消息接受方在对消息进行完整性校验时将发现消息已经篡改,从而丢弃该条消息。
g.抵抗中间人攻击。假设攻击者通过截获车辆和QCS间的通信消息,介入两者间的通信,达到欺骗对方、窃听和篡改信息的目的[20]。本文方案中,车辆和QCS之间会进行双向认证。同时,认证所需信息都进行加密并具有完整性摘要MAC,中间人既不能获取有效信息,也不能篡改消息内容。因此,本文方案具有抵抗中间人攻击的能力。
将所提出的轻量化认证方案与现有的其他相关方案[10-13]在认证过程的计算开销进行对比和分析。
试验中,使用一台笔记本电脑作为QCS或云服务提供商(Cloud Service Provider,CSP)来统计计算开销。该主机具有AMD Ryzen 7 5800H with Radeon Graphics 处理器、16 GB 内存和Ubuntu 16.04 操作系统。对于每种计算开销的统计,以10 000次计算为一组,计算10组取平均值。试验主机如图4 所示,试验中,使用试验车的T-BOX开发板统计车辆计算开销,开发板为移远AG35 QuecOpen硬件模组,具有ARM Cortex A7内核的基带处理器平台,T-BOX开发板如图5所示。对于每种计算开销的统计,同样以10 000次计算为一组,计算10组取平均值。异或运算执行时间远小于其他运算,对试验结果影响较小,因此在统计计算开销时忽略异或操作执行时间。设Th1、Th2、Th3、Tbp、Tbp.m、Tmtp、TW.m、TM.m和Te/d分别为以MD5算法执行单向哈希函数运算、以SHA256算法执行单向哈希函数运算、以SM3 算法执行单向哈希函数运算、执行双线性对运算、执行双线性对乘法运算、执行Map-To-Point 哈希运算、执行椭圆曲线群上的点乘运算、执行蒙哥马利曲线群上的点乘运算和执行对称加解密运算的消耗时间,各方案的加密操作执行时间如表2所示。
表2 各方案的加密操作执行时间 ms
图4 实车试验
图5 T-BOX开发板
将本文所提出的轻量化身份认证方案与现有的其他相关方案在认证过程的计算开销进行对比,结果如表3所示。
表3 各方案的计算开销 ms
由表3 可以看出,与其他方案相比,本文设计的轻量化方案在认证阶段所需的总时间大幅缩短。
将所提出的轻量化认证方案与其他现有的相关方案在认证过程的通信开销进行对比和分析。
本文提出的认证方案主要有4 条消息:M1={H||IDi||α1||Ri||MAC}、M2={H||β1||Ri||E||Em||Rm||MAC}、M3={H||IDi||Rm||Ri||MAC}、M4={H||Ri||E||Em||MAC}。假设哈希函数的输出大小为32 B、时间戳为4 B,4 条消息中IDi、MAC、α1、β1、Rm均属于哈希函数。H中MT、L、ti、Seqi(Seqj)的大小分别是3 B、4 B、4 B 和3 B,Ri和E的大小均为1 B,Em的大小为2 B。因此消息M1~M4的通信开销分别为142 B、114 B、111 B 和50 B。最终,本文方案的通信开销为417 B。
本文所提出的轻量化认证方案与其他现有的相关方案在认证过程的通信开销对比结果如表4 所示。由表4可知,本文方案的通信开销低于其他4种方案。
表4 各方案的通信开销 B
本文在车云网量子通信架构的基础上,设计了一种轻量化身份认证方案。通过对认证流程的详细分析,论证了该方案符合安全性需求且能应对各种安全攻击手段。试验结果表明,该方案相较于其他相关方案,有更低的计算开销和通信开销,故对于大多数低计算量和低通信量的车联网设备具有更高的适用性。