石琴 朱俊杰 程腾 杨泽 王川宿
(1.合肥工业大学,自动驾驶汽车安全技术安徽省重点实验室 安徽省智慧交通车路协同工程研究中心,合肥 230009;2.奇瑞汽车股份有限公司,芜湖 241006)
主题词:身份认证 访问控制 量子保密通信 车辆自组网
随着智能网联汽车的快速发展,车辆所产生的数据量越来越丰富[1],这些数据不仅涉及车辆信息,也包括车辆所有者的私人敏感信息[2]。因此,车辆面临着私人信息未经车辆所有者授权而被不当开放的威胁[3]。为此,车辆数据的安全传输和云存储数据的限制性访问需要得到重视。
在数据传输过程中,攻击者可能通过对传输的消息进行修改、模仿或重放等手段威胁通信安全[4];在访问控制方面,车辆敏感信息可能受到未经授权的访问[5]。因此,身份认证和密钥协商机制是车联网信息安全中重要的一环[6]。现有的车辆安全通信方案大多通过有条件的身份认证来识别未经授权的数据访问[7-9]。这些方案虽然可以在一定程度上保护车辆数据在传输过程中不会受到未经批准的访问,但并未考虑数据在云端存储后的隐私数据访问限制与管控。
随着量子计算研究的不断深入,大型量子计算机一旦出现,许多常用的密码系统将被快速破解,当前的加密方案面临着严峻的挑战[4],车联网的通信安全也将受到威胁[10]。量子保密通信是在抗量子计算攻击的特定需求下的全新的、有效的密码学补充手段[11]。常见的是量子密钥分发(Quantum Key Distribution,QKD)与其他能够抵抗量子计算攻击的对称密钥加密算法结合使用,从而形成安全的量子保密通信系统[12]。
针对车联网数据在传输和存储过程中面临的攻击者恶意侵入与非授权访问的问题,本文提出一种基于车端量子密钥的车联网数据访问控制方案,包括基于预充注量子密钥的身份认证和密钥协商机制,以及基于量子随机数发生器的车辆数据访问控制方案,通过在车载通信终端集成量子随机数发生器生成量子加密密钥,由车辆所有者管理外部访问者对车辆隐私数据的访问请求,防止非授权访问和高权限人员的恶意侵入。方案融合了量子密钥进行加密通信,可应对以量子计算为代表的超能力计算机的威胁。最后对方案与其他主要研究方案进行安全性与性能对比分析。
本文系统的通信架构如图1所示,包括集成量子随机数发生器(Quantum Random Number Generator,QRNG)的车载通信终端(Telematics BOX,T-BOX)、量子密服平台(Quantum Security Server,QSS)、车辆信息服务提供平台(Telematics Service Provider,TSP)、车辆电子控制单元(Electronic Control Unit,ECU)、车辆所有者(Owner)、访问者(Visitor)。
图1 系统通信架构
T-BOX负责接收车辆数据MData,并将其加密生成密文(CData)上传到TSP。T-BOX可以与QSS进行通信完成量子会话的密钥加密密钥(Key Encryption Key,KEK)生成,即会话密钥的协商,并通过预充注量子密钥(Pre-Fill quantum Key,PFK)保护KEK的安全传输。T-BOX通过集成的QRNG 提取内容加密密钥(Contents Encryption Key,CEK),并加密车辆数据。T-BOX使用KEK对CEK进行加密获得加密会话密钥(Keyed CEK,KCEK)。最后,根据车辆所有者授权的指令将KCEK分发到TSP。
TSP的安全存储芯片(Secure Memory Chip,SMC)中存有大量预充注量子密钥PFK。TSP 接收到QSS 分发的KCEK 后,从SMC 中取出对应的PFK,解密后得到会话密钥KEK。当TSP 收到T-BOX 发送的KCEK 后,用KEK 解密得到量子加密密钥CEK,并使用CEK 将车辆数据密文(CData)解密生成车辆明文数据(MData)发送给访问者。TSP以有线方式连接到互联网,为车辆提供各种网络接入服务。
QSS存储所有注册T-BOX和TSP平台的信息,从而能够对T-BOX 和TSP 的身份合法性进行认证。QSS 还集成了量子密钥分发系统(Quantum Key Distribution,QKM)和电子密码机(Electronic Code Machine,ECM)。ECM 从QKM 获取量子随机数,生成PFK 和KEK。QSS负责将KEK分发到T-BOX和TSP。
访问者意图读取车辆隐私数据,并发送数据请求到TSP。车辆所有者接收TSP 转发的车辆数据读取请求,完成车辆隐私数据读取的授权。
本文方案包括注册阶段、身份认证和密钥协商阶段、数据访问控制阶段,相关协议参数定义如表1所示。
表1 协议参数及其定义
注册阶段由QSS、T-BOX、TSP 在可信环境下进行。QSS 负责管理所有注册体的身份信息。T-BOX 在交付前,由TSP 后台将T-BOX 的数据(SN、ICCID)录入数据库并在平台上完成T-BOX的注册。注册阶段需要TSP 和T-BOX 在QSS 处注册。本文方案中的T-BOX、TSP 均安装了SMC。整车生产线上使用量子密钥预充注设备对T-BOX的安全芯片进行密钥充注;TSP后台的SMC 预充注量子密钥。QSS 中记录了所有预充注量子密钥信息。TSP需要提前在QSS进行注册,注册流程如下:
a.TSP 选取唯一的TID,计算h(TID)并将结果组包消息mR1={h(TID)}发送到QSS。
b.QSS收到消息mR1后,首先,从ECM中随机提取预充注量子密钥PFKT用于生成TSP 的注册信息。然后,验证h(TID)是否已经注册,若没有注册,计算NID=h(h(TID)||PFKT),并记录NID。组包消息mR2={NID⊕PFKT},发送到TSP。
c.TSP 收到消息mR2后,从SMC 中提取预充注量子密钥,计算NID=(NID⊕PFKT)⊕,最后TSP存储注册信息。
同理,如果车辆终端意图加入车联网使用某些服务提供商提供的某些服务,需要提前向QSS 注册,执行以下步骤:
a.T-BOX 提取内存中的SN、ICCID,并计算h(SN||ICCID),然后组包消息mR4={h(SN||ICCID)},发送到QSS。
b.QSS 收到消息mR4后,首先从ECM 中提取PFKV,然后检索h(SN||ICCID)是否已经注册,若没有注册,生成新的用户信息VID=h(h(SN||ICCID)||PFKV),将VID记录到注册表中,最后,组包消息mR5={VID⊕PFKV},发送到TBOX。
c.T-BOX 收到消息mR5后,从SMC 提取出PFKV,计算VID=(VID⊕PFKV)⊕。最后,T-BOX 存储注册信息。
如图2所示,身份认证和密钥协商流程为:
图2 身份认证和密钥协商流程
a.T-BOX 向QSS 发起身份认证,计算Qi=h(PFKV⊕VID),生成时间戳tSi,并组包消息mA1发送到QSS:
b.QSS 接收到mA1后,生成时间戳tRi。定义超时时间Δt,通过计算tRi-tSi<Δt检验消息的有效性;通过计算对比h(|)=h(Qi||tSi)校验消息的完整性,若消息不匹配,则退出会话。然后,计算T-BOX 的身份信息VID*=Qi⊕h(PFKV)并验证其合法性。随机选择新的预充注密钥PFKVi,计算加密后的会话密钥KKEKVi=EPFKVi(KEKi)⊕VID*。接着,计算哈希值Ri=h(KKEKVi||PFKVi||tSi),其中tSi为当前发送消息的时间戳。最后,组包消息mA2到T-BOX:
c.T-BOX 收到mA2的同时产生时间戳tRi,通过计算tRi-tSi<Δt检验消息时效性。然后,通过校验h(||PFKVi||tSi)=Ri检查完整性,其中为从mA2中解析或计算获得的加密后的会话密钥。最后,通过SM4 解密算法计算QSS 分发的会话密钥=DPFKVi(KKEKVi⊕VID) 。计 算Wi=h(SN||ICCID)⊕后,组包消息mA3发送到QSS:
d.QSS提取mA3的消息内容,并通过计算h(||KEKi)=h(Wi||)检验消息的完整性,其中为从mA3中解析或计算获得的哈希结果。若消息完整,则计算Si=h(PFKTi)⊕NID用于验证TSP 的身份,其中PFKTi为从QSS 本地存储的预充注量子密钥随机取出的密钥。计算KKEKTi=EPFKTi(KEKi)⊕NID进行量子保护密钥的分发,并组包消息mA4发送到TSP:
e.TSP 提取消息mA4的内容。首先,TSP 验证等式Si⊕h(PFKTi)=NID是否成立,若成立,则表明QSS是受信任的平台。然后,通过解密计算得到=DPFKTi(KKEKTi⊕VID) 并存储。接着,TSP 计算h(SN||ICCID)*=⊕,并从注册信息中提取T-BOX的序列号和集成电路卡标识SN*、ICCID*验证T-BOX 的身份信息,h(SN||ICCID)=h(SN||ICCID)*,若验证通过,计算Vi=h(||SN*||ICCID*||tSi),并组包消息mA5发送到TBOX:
f.T-BOX 收到mA5后,通过计算tRi-tSi<Δt验证消息的时效性。然后,计算=h(||SN||ICCID||tSi)并验证等式=Vi,若等式成立,则T-BOX、QSS、TSP 间完成了身份认证。
如果访问者意图获取车辆信息,需要生成请求信息VInf,等待车辆所有者授权,只有获得授权后,T-BOX才会将量子加密密钥的加密结果KCEKi发送到TSP,TSP解密后最终得到数据明文MData,数据访问控制流程如图3所示:
图3 数据访问控制流程
a.T-BOX 向QRNG 获取16 B(本方案中的CEK 长度为16 B)的量子随机数QR作为量子加密密钥CEKi,CEKi=Str16(QR),用CEKi对车辆数据进行加密,CData=ECEKi(MData⊕CTRi)。CTRi为加密会话的计数器,防止密钥与其加密密钥泄露时攻击者伪造数据。然后,通过T-BOX 与QSS 协商的量子会话密钥密钥KEKi加密量子加密密钥CEKi,KCEKi=EKEKi(CEKi)⊕CTRi。KCEKi为加密后的密钥。最后,生成消息mk1,并发送到TSP:
b.TSP 接收T-BOX 发送的mk1,提取密文数据CData,并进行存储。
c.T-BOX 内部的数据访问处理模块(Data Request Handler,DRH)根据访问者的,生成访问请求者的信息VInf。T-BOX将消息组包发送mk2到车辆所有者:
d.车辆所有者根据T-BOX 发送的VInf,对访问者的请求进行授权,提供请求通过信息(Approval,APR)。同时,车辆所有者设定本次授权的有效时长TSi,计算Yi=h(APR||TSi||tUi),其中tUi为车辆所有者进行授权操作的时间戳。消息组包mk3发送并到T-BOX:
e.T-BOX 接收到车辆所有者对数据读取请求的授权后,判断授权操作是否超时TSj-tUi≤Δt与h(APR||TSi||tUi)=Yi是否成立,其中TSj为T-BOX 接收到消息mk4的时间戳。如满足,检查车辆所有者是否授权访问者的访问请求,若未授权则退出当前会话。然后,计算用户授权的失效时间TSij=TSi*+TSj,生成摘要Zi=h(KCEKi||CTRi||TSij)。最后,组包消息mK4,发送消息TSP:
f.TSP 收到来自T-BOX 的mK4后,先计算=h(KCEKi||CTRi||TSij),验证条件=Zi是否成立,若不成立,说明消息内容不准确,结束会话,验证通过后,TSP 计算出量子加密密钥CEKi=DKEKi(KCEKi⊕CTRi)。最后,通过计算MData=DCEKi(CData⊕CTRi)得到解密后的车辆数据明文MData,通过安全通信通道发送给访问者。
本文使用真实或随机(Real Or Random,ROR)模型进行形式化分析,验证所提出的方案中会话密钥的安全性。基于ROR模型的会话密钥的安全性证明已经用于多个研究者提出的认证协议[13-15]。同时,分析本文方案可以抵御的典型的攻击。
假设本文方案中身份认证和密钥协商协议有Vi(T-BOX)、QSS、TSP 3 种类型的实体,这些实体包含了多个实例并能够同时进行身份认证。每一个实例都能视为一个独立的预言机。预言机的状态有3种:接受(Accept),预言机接收到正确的信息;拒绝(Reject),预言机接收到错误信息;空(⊥),预言机输出为空。设为车辆i的第a个实例,TSPb、QSSc分别为TSP 的第b个实例和QSS 的第c个实例。状态变为接受后,和TSPb之间协商获得相同的会话密钥。但是,车辆所有者和访问者对会话密钥的安全不产生影响。同时,他们不参与加密操作,也不存储任何有效信息,故不考虑车辆所有者和访问者。
定义攻击者A 可以执行以下查询来分析得到会话密钥:
a.Execute(Via,TSPb,QSSc):此查询为窃听模式。攻击者A通过执行此查询能够获得、TSPb、QSSc间的所有信息{mA1,mA2,mA3,mA4,mA5}。
b.Send(,TSPb):此查询为主动攻击。如果攻击者A意图拦截并修改Via发出的消息,A需要执行此查询。
c.Reveal():当攻击者A 执行此查询时,会将会话密钥CEK发送给A。
d.Test():此查询模拟会话密钥的语义安全性。在游戏开始前,将硬币翻转,并且只有A 了解硬币的值d,这个值决定了此预言机的输出。如果A 执行此查询并建立了新的会话密钥:当d=1 时,Test 返回正确的会话密钥;当d=0时,Test输出随机值,否则输出为空(⊥)。
e.Corrupt(,TSPb):通过执行该查询,攻击者A 可以获得存储在注册的参与者实例、TSPb的SMC 中的所有秘密参数。
定理:设A 是针对本方案在多项式时间t内运行的攻击者,若A不能以可忽略的优势AdvA(t)成功攻击本方案,那么提出的方案是安全的。设qs、qe、qh和qh1分别表示发送查询、执行查询、h查询和h1查询的数量,|H|、|H1|分别表示哈希值的范围空间,A在破解会话密钥安全性方面的优势可以估计为:
式中,L为密钥长度;Lc为计数器的最大长度。
通过5个连续的博弈(Gm0~Gm4)来证明方案的安全性。用来表示在博弈Gmi中,A 猜测了d′=d。定义攻击者A 在博弈Gmi中的获胜优势。
Gm0:A在ROR模型中对本文方案执行的实际攻击对应于游戏Gm0。在这个游戏中,硬币d在开始时被选择。因此:
Gm1:Gm1 对应窃听攻击。A 通过Execute 查询来获取身份认证和密钥协商的过程中的mA1={Qi,h(Qi||tSi),tSi}、mA2={KKEKVi,Ri,tSi}、mA3={Wi,h(Wi||KEKi*)}、mA4={KKEKTi,Si,Wi,tSi}和mA5={Vi}。此询问结束后,A执行Reveal和Test查询,验证获取的CEK是真实密钥或随机数。然而,会话密钥CEK 通过h(QR||KEK||VID)得到,A无法获得生成会话密钥CEK 的参数。因此,通过窃听消息,A 不能增加其在Gm1 中获胜的概率。所以,Gm0 与Gm1 是不可区分的。得到以下结果:
Gm2:Gm2 和Gm1 的区别是增加了Send 和Hash 预言器的模拟。Gm2模拟了一种主动攻击,A试图欺骗参与者接受其编造的消息。A 反复查询哈希预言机以查找冲突。根据生日悖论可得:
事件E1:认证协议中用到的2 个散列函数h、h1 发生碰撞的最大概率为:。
事件E2:认证协议中随机数QR、PFKi是随机均匀分布的,因此QR和PFKi碰撞的概率为。
如果事件E1 和事件E2 都发生,Gm2和Gm1则是不可区分的。因此可得:
Gm3:Gm3 模拟了Gm2 中的所有预言。若A 不通过随机预言查询可以伪造身份认证流程中的关键参数(Qi,Ri,Wi,Si,Vi),则方案终止运行。但是这种情况只会出现在Send查询中,故A无法区分Gm3和Gm2,因此:
Gm4:Gm4模拟Gm3中所有预言。攻击者A意图获取会话密钥CEK=h(QR||KEKi||VID),A 需要执行Corrupt()查询获得SMC 中PFK、VID、NID 和KCEK。攻击者A 可以通过执行以下2 个独立的事件来获取会话密钥CEK:
a.通过执行qs次Send询问获得(QR,KEKi),对应的可能性为qs/22L。
b.对称加密后的会话密钥KCEKi=EKEKi(CEKi)⊕CTRi获得会话密钥。攻击者A 通过执行qs次Send 询问得到(CTRi,KEKi),对应的可能性为。
因此,可得:
分析本文所提出方案对典型攻击的抵御情况:
a.根权限内部攻击:假设攻击者A可以获得开发根(root)权限,从而通过身份认证与密钥协商。A 意图读取车辆数据,需要得到加密后的会话密钥KCEK。然而,KCEK只有在车辆所有者本人授权读取请求后才会发送到云端,攻击者无法在未经授权的情况下获得车辆数据明文信息。所以,本文方案可以抵抗根权限内部攻击。
b.重放攻击:假设攻击者A 可以监视并获取TBOX、QSS、TSP 之间的通信,并在一段时间后重放该条消息。但是在密钥协商和数据加密消息中包含时间戳,并且在数据加密后加密会话计数器的计数值会更新,A无法获得有效的信息。假设攻击者A 记录所有的身份认证请求消息mA1,并将其重播到密钥管理服务器QSS,以模拟T-BOX 获取保护密钥。然而,VID 受到单向哈希函数和对称量子密钥加密保护,A 不能通过mA1获得T-BOX 的假名,无法通过身份认证。因此本文方案能够抵抗重放攻击。
c.前向安全:本文方案中内容加密密钥CEK 由加密会话密钥 KEK 进行加密后传输,即KCEKi=EKEKi(CEKi)⊕CTRi。在车辆所有者授权的有效期限内,每次会话的CTRi都会进行更新。因此,对于车辆数据加密,每一次会话密钥是无关联的,本文方案具有前向安全。
d.模拟攻击:在本方案中,认为TSP、所有者、QSS三者之间的通信通道是安全可信的。因此,本文方案面临QSS模拟攻击和T-BOX的模拟攻击。T-BOX模拟攻击中,攻击者A 劫持T-BOX 发送的消息mA1={Qi,h(Qi||tSi),tSi}、mA3={Wi,h(Wi||KEKi*)}。同时,A 试图从劫持的消息中获得有效参数来生成合法的请求消息mA1和mA3来欺骗与QSS 的身份验证。但是,消息mA1和mA3中包含参数VID、PFK、KEK,A无法获得,因此,A不能生成有效的请求消息mA1和mA3。同样,QSS 的消息mA2中包含了参数PFKi、VID、NID,攻击者也无法获取这些参数。因此本文方案可以抵抗模拟攻击。
e.中间人攻击:本方案中量子会话密钥CEK 是通过KEK 加密进行传输的。因此,攻击者A 意图获取会话密钥CEK,需要通过QSS 与T-BOX 之间的身份认证。而PFK 存储在SMC 中,A 无法获取,故A 无法通过身份认证。因此本文方案可以抵御中间人攻击。
本文将所提出的方案与现有的相关方案在认证和密钥协商阶段的计算和通信开销进行对比。
对本文方案的身份认证部分的通信开销和计算开销进行测试。由于车辆所有者授权操作只在有访问请求时才会进行,所以,车辆所有者的授权时间与访问者的访问时间不进行计算。使用一台计算机作为QSS 来统计计算开销。该主机具有AMD Ryzen 5 5600H with Radeon Graphics 处理器、16 GB 内存和Ubuntu 18.04 操作系统。用T-BOX 统计车辆端的计算开销,实物图如图4 所示,该T-BOX 包括移远AG35-GEN 通信模组、KF32MCU以及量子安全模块等硬件资源。
图4 T-BOX实物图
通过对每种计算开销进行统计,以10 000次计算为一组,计算10 组取其平均值。Th、Ts,m、Tm,e、Tbp、TW.m、TM.m、Te/d、Tmtp分别为单向Hash函数、标量乘法运算、模指数运算、双线性对运算、魏尔斯特拉斯(Weierstrass)椭圆曲线点乘操作、蒙哥马利(Montgomery)椭圆曲线点乘操作、对称密钥加/解密操作、加密Hash运算的时间消耗,异或(exclusive OR,XOR)操作忽略不计。具体时间开销如表2所示。
表2 不同操作的开销 ms
在本文提出的方案中,从开始登录到完成认证,车辆端需要进行1 次对称加密计算和6 次单向Hash 计算,车端计算开销为Te/d+6Th≈0.306 ms。服务端需要进行3 次对称加密和14 次单向Hash 计算,服务端计算开销为3Te/d+14Th≈0.089 ms。因此,方案计算共消耗0.395 ms。表3 列出了各方案的计算开销,其中使用的哈希算法为SHA-256,对称加密密算法为SM4。
表3 各方案计算开销 ms
本文方案采用预充注量子密钥和对称加密的方法进行身份认证,因此认证过程中的计算开销更小,可以更快完成身份认证。
假设哈希函数的输出大小为32 B、时间戳大小为4 B、对称加密输出大小为16 B。本文方案的通信开销总数为300 B+120 B=420 B。同理,文献[16]、文献[14]、文献[17]、文献[18]方案的通信开销分别为216 B、2 296 B、668 B、544 B。显然,文献[14]、文献[17]、文献[18]方案要比文献[16]方案通信开销高。这是因为其身份认证的消息中包含了较多密钥相关的MAC 值。然而,本文方案中采用预充注密钥进行对称加密,认证消息中减少了大量的密钥相关的信息,故具有更小的通信开销。
本文提出了一种基于车端量子密钥的车联网数据访问控制方案,设计并详细分析了基于预充注量子密钥的T-BOX、量子密服平台(QSS)、车辆信息服务云平台(TSP)之间的身份认证和密钥协商流程,以及基于量子随机数发生器的车辆数据的访问控制流程。对所提出的方案进行形式化安全分析并论证了其可以抵御的典型攻击,通过试验对所提出的方案进行性能分析,并与其他相关方案进行对比,结果表明,本文方案具有更高的安全性和更好的性能。