5G 车联网安全加密身份认证研究
2022-10-31尚大伟龚元明
尚大伟,龚元明
(201620 上海市 上海工程技术大学 机械与汽车工程学院)
0 引言
通信技术的革新推动了车联网产业的快速进步,汽车由代步工具变成了娱乐休闲、快捷办公等兼顾生活与工作的移动载体。但随着车联网的业务场景的不断丰富,信息篡改、隐私泄漏等问题层出不穷[1],给汽车的安全性带来极大的挑战,主要体现在以下几个方面:(1)相比于传统的封闭式的车内网络,在车联网中,车辆单元要不断地与车内网络、车际网络交换数据,在外部网络的接入下,难以保证车内网络的安全性;(2)5G 技术融入车联网中无疑会提升消息处理速率,但是根据现代密码学的加密算法,强加密不仅要求硬件设备具有很高的处理能力,同时还耗费较多时间,这就为安全加密算法提出了更高的要求;(3)在车联网环境中,各智能设备都实时进行数据传输,甚至面临来自攻击方的恶意攻击等,如何保证信息的准确性而不被篡改或窃听,为车辆的信息安全带来了巨大挑战。
针对以上问题,本文构建了车联网系统安全框架,在此基础上,分析对比RSA、ECC、DSA 等算法在密钥破解时间、密钥长度等方面的优劣,结合PKI 认证体系,提出了基于ECC 的PKI 身份认证方式,并对其实现过程做了详细阐述,制定了身份认证传输协议,分析了系统的安全性,并用iperf工具验证了系统传输的时效性。
1 车联网系统安全框架
为有效应对未来车联网面临的安全问题,包括3GPP、5GAA 在内的多家国际组织都在针对NR V2X 做一些安全相关的课题研究,并且已提出许多建设性解决方案,其中在3GPP TR33.836 中首次阐述了当前国际认可度较高的NR V2X 安全问题的解决方案,提出NR V2X 将支持网络层安全问题解决方案,以期在网络层上解决信息安全问题,保证通讯的安全[2]。
如图1 所示,5G 网络安全是车联网系统中至关重要的部分,为保证车联网系统的安全性,可以将5G 车联网系统分为安全感知层、安全网络层和安全应用层[3]。其中,安全感知层主要负责与路侧单元(RSU)相关的道路设备、定位设备或ETC等设备的感知功能,通过道路感知,实现地图定位,车与车、车与人、车与RSU 的距离感知,ETC 自动收费等。安全网络层主要通过当前主流的蜂窝网络/WLAN/卫星网络结合毫米波、Device-to-Device通信等技术实现数据通信的安全传输。安全应用层则主要是对人、车、路之间传递的大量数据进行安全分析与决策,并对其进行安全传输及存储,保障行车过程中车辆通信数据的安全性和行车安全性。
图1 5G 车联网安全框架Fig.1 5G Internet of Vehicles security framework
车载硬件平台作为将封闭式的车内网络与外部网络和设备紧密连接的实体,在数据加密和安全认证方面扮演着十分重要的角色。任何信息传输中不安全的因素都将给车辆节点带来灭顶之灾。DOUCEUR[4]提出Sybil 攻击,由于身份与实体之间缺少一个身份识别认证,一个虚假身份可以创造出大量的虚假身份,利用多个虚假身份对系统攻击进而控制整个系统;THING[5]等提出的In Vehicle Spoofing 攻击,是指攻击者通过利用非法组件替代车内组件从而达到恶意操控驾驶的目的,其根本原因就是相互通信的组件之间缺乏信任认证;黑客曾用自己研发的无线电设备,破解汽车和车库门厂商间使用的无线解锁码,轻松截取密码随意打开门锁[6]。
针对车联网发展面临的诸多安全威胁,许多学者为解决安全加密难题提出了许多针对车联网安全的解决方案。其中利用公钥基础设施(Public Key Infrastructure,PKI)技术[7]的解决方案得到了普遍认同和支持,下文对PKI 体系进行论述。
2 基于PKI 体系通信安全
2.1 PKI 体系安全原理
为保证车联网中各节点之间的通信安全,常采用PKI 机制来保证通信安全。两个网络设备进行传输数据之前,需先进行身份认证,身份确认后方可进行信息通信。这个身份认证是通过证书颁发机构(Cerlificale Authority,CA)实现的,车辆通信的原理如图2 所示。CA 公布自身的相关信息,车辆A 和车辆B 之间要建立通信时,车辆A 先向CA请求身份认证,CA 对车辆A 进行身份认证,认证通过后将车辆A 的公钥、身份信息、数字证书等打包成签名消息发送给车辆A,车辆A 将签名消息、公钥证书发送给车辆B,车辆B 在接收到消息后,将证书发送给CA,验证签名消息的有效性,验证通过则二者建立通信。
图2 基于PKI 体系的车辆通信安全原理Fig.2 Vehicle communication security principle based on PKI system
2.2 CA 身份认证
PKI 体系的核心就是身份验证,这是PKI 体系安全的重要保障。车辆网中的智能单元(车辆单元、RSU 及移动终端等)在进行数据交互时,首先要进行身份认证,确保通信双方身份的真实性。图3以车辆单元接入为例,详述其通信流程。
图3 PKI 通信流程Fig.3 PKI communication flow
2.3 数字签名验签
进行身份认证时,数字签名是消息安全不被窃取的重要保障。当车辆单元发送消息时,为保证消息的安全性,加快消息的加密解密速度,缩短时间开销,可采用散列函数Hash 对消息进行摘要,并用自己的私钥对摘要加密,然后将加密后的密文连同散列函数生成签名消息发送给接收方。接收方在接收到签名消息后,用发送方的公钥对密钥解密,同时将接收到的内容用消息包中的Hash 函数进行摘要,对二者的摘要进行比对,若一致则证明消息源自接收方。具体流程如图4 所示。
图4 数字签名验签流程图Fig.4 Digital signature verification flow chart
2.4 非对称加密算法
加密算法在网络安全中扮演着重要角色,得到了广泛应用,尤其是非对称加密算法,无需用户交换密钥。目前,非对称加密算法有许多种,常用的主要有RSA、DSA 和ECC 等。
RSA 算法采用乘方运算,随着计算机计算能力的不断提升和因子分解算法的不断改进,当前采用RSA 加密要达到一般安全性,所需密钥至少达到768 位。DSA 算法为保证加密的安全性,要求密钥长度在512~2 048 位之间。这2 种方法对计算机的处理能力有极大挑战,普适性较差。相比之下,ECC 算法更加友好,在同等加密等级下,密钥长度在106~210 位之间,更加符合车用条件。表1 对这几种算法的安全等级进行了比较[8-9]。
表1 ECC/DSA/RSA 安全等级比较Tab.1 Comparison of ECC/DSA/RSA security levels
表2 对当前两种主流的非对称加密算法的加密体系进行了比较[10]。不难看出,与RSA 相比,ECC 的计算复杂度较高,单位安全强度相对较高,要达到相同的安全等级,ECC 需要的存储空间也更小,解密的速度也更快一些,更适应车联网应用的不断变化的场景。
表2 ECC/RSA 加密体系的比较Tab.2 Comparison of ECC/RSA encryption systems
3 基于椭圆曲线的身份认证研究
3.1 CA 初始化
初始状态下,在有限域Fp上,CA 选定一条椭圆曲线Ep(a,b):y2=x3+ax+b(modp),其 中p是一个很大的素数,且参数a,b,x,y∈Fp,符合4a3+27b2≠0(modp)。然后,在Ep(a,b)中挑选一个点G=(x1,y1)作为基点,G的阶是一个非常大的数n。椭圆曲线上的点G的阶n是使得nG=O 成立的最小正整数。同时,CA还创建了2个Hash函数:H1{0,1}→Z*,H2{0,1}→Z*,对认证内容进行摘要,随机选取r∈[1,p-1]用作自己的私钥,并根据公式Ppub=r·G得到自己的公钥。最后,CA 选定了所有参数后,将自己的参数{E,n,Ppub,G,H1,H2}公布并下发至待认证设备。
3.2 RSU 初始化
由于CA 在完成初始化后会公布并在自己的下辖区域发布自己的参数,RSU 在获取到这些参数后向CA 注册获取属于自己的公私钥对:Sr=r·H1(IDr)和Pr=r·G·H1(IDr)。
3.3 车辆与CA 之间身份认证
车辆单元与其他设备通信之前,必须先注册CA 完成相应的身份认证,然后由CA 颁发公钥数字证书,认证通过后方可进行数据通信。本节对车辆与CA 的认证过程(如图5 所示)进行详细讲解。
图5 汽车初始化认证Fig.5 Vehicle initialization authentication
3.3.1 车辆初始化认证
Engv‖H1‖Pv-pub‖IDEng‖TS1:CA 初始化后会公布自己的参数,车辆单元需先注册CA 下载相应的由CA 选定的椭圆曲线参数,然后在Fp上选定一个素数s∈[1,p-1]作为自己的私钥,选定椭圆曲线上一点G'作为基点,由公式计算可得公钥为Pv-pub=s·G'。将车牌号作为车辆的唯一编号,对车牌号做Hash 运算提取摘要,并用自己的私钥对摘要进行加密得到临时汽车身份IDEng=Es[H1(Engv)]。其次,将车辆的车牌号Engv、散列函数H1、自己的公钥Pv-pub、IDEng以及时间戳TS1使用随机的对称加密算法M1进行加密,再用CA 的公钥将对称加密后的密钥加密,通过安全通道发送给CA。
3.3.2 CA 颁发签名消息
EPv[RIDv‖Certv‖Ksession‖TS2:CA 接收到由车辆传来的请求认证的消息,先通过Tsec-TS1<ΔT来进行时间验证,其中Tsec表示接收到消息的时间,ΔT表示互联网传输的最大时延。如果通过验证,则用自己的私钥r对密钥进行解密,得到车辆所用的加密算法M1的密钥,再对消息进行解压可得到Engv、H1、车辆的公钥Pv-pub、IDEng以及TS1,为防止消息在传输的过程中被篡改,先通过计算H1(Engv)与IDEng是否相等来验证消息的准确性,若验证通过,则根据车牌号计算并生成汽车的真实身份RIDv=H2(Pv-pub||Engv)。CA 根据RIDv生成临时签名密钥,并由相应的参数进行签名运算Signv生成对应的汽车的数字证书Certv。同时,生成会话密钥Ksession,数字证书Certv用CA 自己的私钥r进行加密,将临时签名、加密的数字证书Certv及会话密钥Ksession连同时间戳TS2发送给汽车。
3.3.3 汽车对CA 消息进行验证
汽车接收到由CA 传送的消息后,先用CA 的公钥对签名消息进行解密,并通过Tsec-TS2<ΔT 对时延进行验证,若验证通过,获取消息中的由签名运算生成的会话密钥Ksession,并使用签名算法对消息的有效性进行验证;验证通过后对CA 生成的数字证书、Ksession以及车辆的真实身份进行保存。
3.4 车辆与RSU 之间身份认证
当汽车行驶进入RSU 所在区域内时,需要与RSU 交换数据,就需要与RSU 进行数据通信。车辆与RSU 之间进行数据交互的流程如图6 所示。
图6 汽车与RSU 的认证过程Fig.6 Vehicle and RSU certification process
3.4.1 汽车请求通信
RIDv‖Pv-pub‖Certv‖TS1:当汽车行驶进入RSU所管辖的区域内,欲实现与RSU 通信,需先将CA所颁发的汽车真实身份RIDv、自己的公钥Pv-pub、汽车的数字安全证书Certv以及时间戳TS1,发送给对应的RSU。
3.4.2 RSU 与CA 建立验证
RIDv‖Certv‖Pv-pub‖Pr‖TS2:RSU在接收到汽车传过来的正式身份RIDv、数字证书Cerv、汽车的公钥Pv-pub信息后,先对它们进行时延验证。若验证通过,将这些消息与当前时间戳TS2以及自己的公钥Pr组成数据包传输给CA 进行验证。
CA 接收到RSU 传来的数据后,用自己的私钥解密,对时延进行验证,若验证通过,再对汽车的真实身份RIDv、数字证书Certv进行验证,验证通过后利用相关的参数生成临时会话密钥Ksession、签名消息以及当前时间戳TS3,并将其进行公钥加密传输给RSU。
3.4.3 汽车身份认证反馈
EPv-pub(Pr‖TS4‖Ksession‖Certv):RSU 接收到CA 的签名消息后,用自己的私钥对数据包进行解密,首先对时延进行验证,验证通过后,由于收到CA 的信息符合,则汽车身份认证完成,将RSU 的公钥Pr、当前时间戳TS4、会话密钥Ksession及Certv用汽车的公钥加密后发送给汽车。
3.4.4 汽车接收并验证RSU
汽车接收到RSU 反馈的消息包后,先计算并验证消息的时延,若通过验证,则用自己的私钥对密文进行解密,然后根据解密出的RSU 的公钥Pr及会话密钥Ksession,实现对RSU 的身份认证[11]。认证通过后便可建立汽车和RSU 之间的通信。汽车与汽车之间的认证方式与此相似,在此就不做赘述。
4 5G 车联网安全认证协议制定
车辆、RSU 与CA 之间只有经过认证后方能通信。在前面的论述中,对车联网中采用ECC 算法实现基于PKI 体系的认证做了比较详细的描述。不难看出,在认证过程中,主要包含表示汽车身份的车牌号信息、签名算法、公钥、数字证书、时间戳等内容。为满足车联网中初始化认证的通信需求,在参考国标GB/T 37376-2019《交通运输数字证书格式》和X.509 证书格式的基础之上[12],设计初始化认证报文格式,如表3 所示。
表3 报文基本信息格式Tab.3 Basic information format of message
车辆与CA、RSU 及车辆之间相互通信时,采用蜂窝网络通信,根据以上归纳的报文传输内容,可制定认证报文的传输协议,如表4 所示。
表4 认证报文传输协议Tab.4 Authenticated Message Transport Protocol
5 结语
在PKI体系中,私钥是由相关通信实体来保存,因此私钥是难以被获取的,除非根据公钥破解,而要想故意破解私钥,则面临大素数相乘分解的难题,对计算机的计算能力也是一个巨大的挑战,因为私钥不被破解,通信消息的安全发送也将得到有效的保证。同时,本文通过几台电脑搭建模拟环境,采用socket 通信模拟车辆、CA 及RSU 之间通信的安全认证,并采用iperf 工具对加密数据传输进行抓包,测算传输时间间隔,保障了传输的实效性,验证了该方案的可行性。