CN111818483B - 一种基于5g的v2v车联网通信系统及方法 - Google Patents
一种基于5g的v2v车联网通信系统及方法 Download PDFInfo
- Publication number
- CN111818483B CN111818483B CN202010603902.XA CN202010603902A CN111818483B CN 111818483 B CN111818483 B CN 111818483B CN 202010603902 A CN202010603902 A CN 202010603902A CN 111818483 B CN111818483 B CN 111818483B
- Authority
- CN
- China
- Prior art keywords
- vehicle end
- vehicle
- sig
- session key
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/009—Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/46—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种基于5G的V2V车联网通信系统及方法,包括云端、至少一个第一车辆端和至少一个第二车辆端;所述第一车辆端具有5G通信模块的,所述第二车辆端不具有5G通信模块的;分别针对所述第一车辆端和所述第二车辆端设计了两套专门的认证协议以进行所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;通过提供探测协议,对在已通过认证并获得会话密钥的车辆端之间进行车辆端间通信可达性探测,解决了因车辆端具有的高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有的高动态性所带来的车辆端之间的距离可能的超出其直接通信模块的通信范围而导致通信不可达的问题或由于某些原因导致车辆端间通信内容不正常的问题。
Description
技术领域:
本发明涉及V2V车联网通信技术领域,具体涉及一种基于5G的V2V车联网通信系统及方法。
背景技术:
车用无线通信技术( Vehicle to Everything, V2X)是将车辆与一切事物相连接的新一代信息通信技术,是一系列车载通讯技术的总称。V2X主要包括车与车(Vehicle toVehicle,V2V)、车与交通路侧基础设施之间(Vehicle to Infrastructure,V2I)、车与人(Vehicle to Pedestrian, V2P)、车与网络(Vehicle to Network, V2N)等几种模式。V2X是未来智能交通的关键技术,它可以通过通讯获得实时路况、道路信息、行人信息等一系列交通信息,提高驾驶安全性、减少拥堵、提高交通效率、提供车载娱乐信息等。
其中,V2V是指通过车载终端进行车辆间的通信。车载终端可以实时获取周围车辆的车速、位置、行车情况等信息,车辆间也可以构成一个互动的平台,实时交换文字、图片和视频等信息。V2V通信主要应用于避免或减少交通事故、车辆监督管理等。
然而,在V2V为车辆与车辆之间的通信带来方便快捷实用的同时,也存在着不可忽视的安全隐患。比如,V2V车辆端身份被假冒、车辆端之间传输的信息被窃听、篡改、重放等,这很可能会对V2V车辆造成重大事故、严重经济损失或其它不良影响、给相关用户的生命、财产安全和隐私带来严重威胁。同时,在V2V车联网环境中,车辆具有高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有高动态性,而车辆本身所拥有处理能力及资源有限(如数据及通信的处理能力、存储能力等),不可能在车辆内预置用于认证的所有路过其附近的(可能是无限多)的其它车辆的公钥证书,而如果车辆在每次需要进行V2V通信时都需要先临时去下载其它车辆的公钥证书然后再进行认证的话,不但会给车辆造成通信和计算上的压力,也会造成认证的时延,影响认证的效果,甚至造成认证失败,并且使得之后的安全加密通信也无法进行。同时,由于车辆具有的高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有的高动态性,车辆端之间可能会超出其直接通信模块的通信范围,造成通信失效。
如何根据V2V车联网的上述特点和问题,结合云端的计算和存储资源通常都配置得比车辆端更强大的实际情况,并利用5G及C-V2X技术,进行V2V车联网的身份认证及安全加密通信,是目前急需解决的问题。
发明内容:
本发明的目的在于克服现有技术的不足,从而提供一种基于5G的V2V车联网通信系统及方法,使得进行V2V车联网身份认证及安全加密通信既安全可靠,又简单高效。
为了实现上述目的,本发明所采用的技术方案是:一种基于5G的V2V车联网通信系统,包括云端、至少一个第一车辆端和至少一个第二车辆端;所述云端包括证书服务器、云端安全模块以及分别与所述证书服务器和所述云端安全模块连接的车联网服务器;所述第一车辆端包括第一短距离直接通信模块、第一5G通信模块、第一安全模块以及分别与所述第一短距离直接通信模块、所述第一5G通信模块和所述第一安全模块连接的第一车辆端控制模块;所述第二车辆端包括第二短距离直接通信模块、第二安全模块以及分别与所述第二短距离直接通信模块和所述第二安全模块连接的第二车辆端控制模块;所述车联网服务器通过5G网络与至少一个所述第一车辆端的第一5G通信模块通信接连,以实现所述云端与所述第一车辆端之间的双向通信;每个第一车辆端的第一短距离直接通信模块与至少一个所述第二车辆端的第二短距离直接通信模块通信连接,以实现所述第一车辆端与至少一个所述第二车辆端之间的双向通信;每个第二车辆端的第二短距离直接通信模块与至少一个所述第一车辆端的第一短距离直接通信模块通信连接,以实现所述第二车辆端与至少一个所述第一车辆端之间的双向通信;
所述云端安全模块、所述第一安全模块和所述第二安全模块用于提供密码服务功能和安全存储功能;所述密码服务功能包括随机数生成、签名运算、加解密运算、会话密钥生成;所述车联网服务器调用由所述云端安全模块提供的相应密码服务功能;所述第一车辆端控制模块调用由所述第一安全模块提供的相应密码服务功能和安全存储功能;所述第二车辆端控制模块调用由所述第二安全模块提供的相应密码服务功能和安全存储功能;
所述证书服务器分别为所述云端、所述第一车辆端和所述第二车辆端生成公钥证书并保存,通过离线方式将所述云端的公钥证书中的公钥分别写入所述第一车辆端的所述第一安全模块与所述第二车辆端的所述第二安全模块内;所述云端的云端安全模块、所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块各自保存与其相应公钥证书中的公钥相对应的私钥;
所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块内均设置有会话密钥安全存储区、会话密钥存在标志位以及车辆端编号存储区,所述会话密钥安全存储区用于存储与对端车辆进行安全加密通信的会话密钥,所述会话密钥存在标志位用于标识是否存在与对端车辆进行安全加密通信的会话密钥,当所述会话密钥存在标志位的值为真或1时,表示存在与对端车辆进行安全加密通信的会话密钥;所述会话密钥存在标志位的初始值置为假或0;所述车辆端编号存储区用于存储与当前车辆端进行通信的对端车辆的车辆端编号;每个车辆端编号关联一个存储于所述会话密钥安全存储区内的会话密钥;
在与所述第二车辆端进行通信前,所述第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,所述云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,所述发送终端和所述接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
优选地,所述车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
优选的,在与所述第二车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第一身份认证协议进行身份认证和会话密钥协商;
所述第一身份认证协议包括:
C1->C2: NC1C2;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后通过第一5G通信模块发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会话密钥存在标志位;
至此,身份认证阶段结束。
优选的,在与所述第一车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第二身份认证协议进行身份认证和会话密钥协商;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名, SIGC2表示用C2的私钥签名, SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与所述车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,所述车辆端C由HAS5GCONN可知所述第二车辆端正在向其询问所述车辆端C是否有与所述车联网服务器的5G通信连接,如果所述车辆端C是具有5G通信模块并经5G网络与所述车联网服务器有通信连接的第一车辆端C1,则生成5GCONNYES,并向所述第二车辆端发送{N5G||5GCONNYES};否则,生成5GCONNNO,并向所述第二车辆端发送{N5G||5GCONNNO};
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否有经5G网络与所述车联网服务器的通信连接;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入所述第一车辆端会话密钥安全存储区,并将所述第一车辆端会话密钥存在标志位置为真或1;所述第一车辆端将第二车辆端编号IDC2存入所述第二车辆端编号存储区,并建立第二车辆端编号IDC2与会话密钥KC1C2的关联,使得通过第二车辆端编号IDC2可以查找到会话密钥KC1C2;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入所述第二车辆端会话密钥安全存储区,并将所述第二车辆端会话密钥存在标志位置为真或1;所述第二车辆端将第一车辆端编号IDC1存入所述第一车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2;
至此,身份认证阶段结束。
优选的,所述第一短距离直接通信模块与所述第二短距离直接通信模块均为C-V2X PC5短距离直接通信模块;所述第一安全模块、所述第二安全模块和所述云端安全模块均为安全智能芯片,所述安全智能芯片支持的商用密码算法包括SM1、SM2和SM3中的至少一种,支持的国际常用密码算法包括3DES、AES、RSA、SHA-1和SHA-256中的至少一种;所述安全智能芯片支持存储数字证书;所述安全智能芯片提供安全存储区域,支持重要信息的安全存储;所述安全智能芯片支持随机数的生成;所述证书服务器维护证书撤销列表,提供证书撤销列表查询功能。
本发明还提供了一种基于5G的V2V车联网通信方法,包括以下步骤:
在与所述第二车辆端进行通信前,所述第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,所述云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,所述发送终端和所述接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
优选的,车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
优选的,在所述第一车辆端为发送终端,所述第二车辆端为接收终端时,所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证;
所述第一身份认证协议包括:
C1->C2: NC1C2;;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后通过第一5G通信模块发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会话密钥存在标志位;
至此,身份认证阶段结束。
优选的,在所述第二车辆端为发送终端,所述第一车辆端为接收终端时,所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名, SIGC2表示用C2的私钥签名, SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与所述车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,根据其是否具有5G通信模块来生成5GCONNYES或5GCONNNO,将验证因子N5G与5GCONNYES或5GCONNNO拼接后发送至所述第二车辆端;
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否具有5G通信模块;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC2,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC2,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会4话密钥存在标志位;
至此,身份认证阶段结束。
优选的,所述第一短距离直接通信模块与所述第二短距离直接通信模块采用C-V2X PC5协议进行短距离直接通信。
本发明具有如下积极效果:
在V2V车联网环境中,车辆具有高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有高动态性,而车辆本身所拥有处理能力及资源有限(如数据及通信的处理能力、存储能力等),不可能在车辆内预置用于认证的所有路过其附近的(可能是无限多)的其它车辆的公钥证书,而如果车辆在每次需要进行V2V通信时都需要先临时去下载其它车辆的公钥证书然后再进行认证的话,不但会给车辆造成通信和计算上的压力,也会造成认证的时延,影响认证的效果,甚至造成认证失败,并且使得之后的安全加密通信也无法进行。同时由于车辆具有高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有高动态性,车辆端之间可能会超出其直接通信模块的通信范围,造成通信失效。
本发明所提供的一种基于5G的V2V车联网通信系统及方法,充分考虑到的上述特点和问题,提出了基于5G的V2V车联网的身份认证协议,充分利用了云端的计算和存储资源通常配置得比车辆端更强大的实际情况,通过由云端分别对第一车辆端和第二车辆端进行认证,然后,第一车辆端和第二车辆端再分别对云端进行认证的方式,使得第一车辆端和第二车辆端获得间接互相认证,避免第一车辆端和第二车辆端的直接相互认证,从而仅需要在第一车辆端和第二车辆端的相应安全模块内存储云端的公钥证书,避免了在车辆端大量存储或频繁地协商和交换不同的车辆端的公钥证书和/或其它与安全认证和通信相关的信息,从而降低了对参与认证的车辆端资源的消耗;通过使云端承担更多的协商和交互工作,即可实现车辆端之间及车辆端与云端之间的身份认证并得到用于更进一步的安全加密通信所需的会话密钥,从而最大程度地降低了车辆端处理相关信息的负担。
在本发明中,第一车辆端代表具有5G通信模块的、能通过5G网络直接与所述车联网服务器进行通信的车辆端;第二车辆端代表不具有5G通信模块的、不能通过5G网络直接与所述车联网服务器进行通信的车辆端;进行这样的区分使得在进行相互直接通信的车辆端中只要有一个是具有5G通信模块的、能通过5G网络直接与所述车联网服务器进行通信的车辆端,就可以适用于本发明所提供的认证方法,而不需要为每个车辆端都配备5G通信模块,从而起到节约车辆端成本和兼容现有未配备5G通信模块的车辆端的积极作用。为此,本发明专门为具有5G通信模块的、能通过5G网络直接与所述车联网服务器进行通信的车辆端和不具有5G通信模块的、不能通过5G网络直接与所述车联网服务器进行通信的车辆端分别设计了两套专门的认证协议。
同时,本发明通过提供探测协议,对在已通过认证并获得会话密钥的车辆端之间进行车辆端间通信可达性探测,解决了因车辆端具有的高机动性、车辆与车辆之间的关系随着车辆不停地移动而具有的高动态性所带来的车辆端之间的距离可能的超出其直接通信模块的通信范围而导致通信不可达的问题或由于某些原因导致车辆端间通信内容不正常的问题。在通过本发明的探测协议确定通信不可达或通信内容不正常后,会将相应车辆端会话密钥存在标志位的值置为假或0,下次如果再需要加密通信,则需要重新进行认证和获得新的会话密钥,从而更好地满足高机动性、高动态性的需求,既可兼顾使用便利性,又可保证通信的安全性。
综上所述,本发明所提供的一种基于5G的V2V车联网通信系统及方法,根据V2V车联网的特点,实现了V2V车联网身份认证和安全加密通信,从而有效地解决了现有技术安全性不足的问题,使得进行V2V车联网身份认证及安全加密通信既安全可靠,又简单高效,具有突出的实质性特点和显著的进步。
附图说明:
图1为本发明一个实施例的基于5G的V2V车联网通信系统的架构示意图。
图2为本发明一个实施例的基于5G的V2V车联网通信系统的另一个架构示意图。
具体实施方式:
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例一种基于5G的V2V车联网通信系统,如图1、图2所示,包括云端、至少一个第一车辆端和至少一个第二车辆端;所述云端包括证书服务器、云端安全模块以及分别与所述证书服务器和所述云端安全模块连接的车联网服务器;所述第一车辆端包括第一短距离直接通信模块、第一5G通信模块、第一安全模块以及分别与所述第一短距离直接通信模块、所述第一5G通信模块和所述第一安全模块连接的第一车辆端控制模块;所述第二车辆端包括第二短距离直接通信模块、第二安全模块以及分别与所述第二短距离直接通信模块和所述第二安全模块连接的第二车辆端控制模块;所述车联网服务器通过5G网络与至少一个所述第一车辆端的第一5G通信模块通信接连,以实现所述云端与所述第一车辆端之间的双向通信;每个第一车辆端的第一短距离直接通信模块与至少一个所述第二车辆端的第二短距离直接通信模块通信连接,以实现所述第一车辆端与至少一个所述第二车辆端之间的双向通信;每个第二车辆端的第二短距离直接通信模块与至少一个所述第一车辆端的第一短距离直接通信模块通信连接,以实现所述第二车辆端与至少一个所述第一车辆端之间的双向通信;优选的,所述第一短距离直接通信模块与所述第二短距离直接通信模块均为C-V2X PC5短距离直接通信模块;
所述C-V2X中的C是指蜂窝(Cellular),它是基于3G/4G/5G等蜂窝网通信技术演进形成的车用无线通信技术,包含了两种通信接口:一种是车、人、路之间的短距离直接通信接口(PC5),另一种是终端和基站之间的通信接口(Uu),可实现长距离和更大范围的可靠通信。C-V2X是基于3GPP全球统一标准的通信技术,包含LTE-V2X和5G-V2X,从技术演进角度讲,LTE-V2X支持向5G-V2X平滑演进。
所述云端安全模块、所述第一安全模块和所述第二安全模块用于提供密码服务功能和安全存储功能;所述密码服务功能包括随机数生成、签名运算、加解密运算、会话密钥生成;所述车联网服务器调用由所述云端安全模块提供的相应密码服务功能;所述第一车辆端控制模块调用由所述第一安全模块提供的相应密码服务功能和安全存储功能;所述第二车辆端控制模块调用由所述第二安全模块提供的相应密码服务功能和安全存储功能;
所述证书服务器通过离线方式将所述云端的公钥证书分别写入所述第一车辆端的所述第一安全模块与所述第二车辆端的所述第二安全模块内;所述云端、所述第一车辆端和所述第二车辆端各自保存与其相应公钥证书中的公钥相对应的私钥;所述云端的私钥保存在证书服务器或云端安全模块的安全存储区内;所述第一车辆端的私钥保存在第一安全模块的安全存储区内;所述第二车辆端的私钥保存在第二安全模块的安全存储区内;
优选的,所述第一安全模块、所述第二安全模块和所述云端安全模块均为安全智能芯片,所述安全智能芯片支持的商用密码算法包括SM1、SM2和SM3中的至少一种,支持的国际常用密码算法包括3DES、AES、RSA、SHA-1和SHA-256中的至少一种;所述安全智能芯片支持存储数字证书;所述安全智能芯片提供安全存储区域,支持重要信息的安全存储;所述安全智能芯片支持随机数的生成;所述证书服务器维护证书撤销列表,提供证书撤销列表查询功能;
所述证书服务器分别为所述云端、所述第一车辆端和所述第二车辆端生成公钥证书并保存,通过离线方式将所述云端的公钥证书中的公钥分别写入所述第一车辆端的所述第一安全模块与所述第二车辆端的所述第二安全模块内;所述云端的云端安全模块、所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块各自保存与其相应公钥证书中的公钥相对应的私钥;
所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块内均设置有会话密钥安全存储区、会话密钥存在标志位以及车辆端编号存储区,所述会话密钥安全存储区用于存储与对端车辆进行安全加密通信的会话密钥,所述会话密钥存在标志位用于标识是否存在与对端车辆进行安全加密通信的会话密钥,当所述会话密钥存在标志位的值为真或1时,表示存在与对端车辆进行安全加密通信的会话密钥;所述会话密钥存在标志位的初始值置为假或0;所述车辆端编号存储区用于存储与当前车辆端进行通信的对端车辆的车辆端编号;每个车辆端编号关联一个会话密钥存在标志位和一个存储于所述会话密钥安全存储区内的会话密钥;
具体的,所述第一车辆端的所述第一安全模块内设置有第一车辆端会话密钥安全存储区、第一车辆端会话密钥存在标志位和第二车辆端编号存储区;所述第一车辆端会话密钥安全存储区用于与所述第二车辆端进行安全加密通信的存储会话密钥;所述第一车辆端会话密钥存在标志位用于标识是否存在与所述第二车辆端进行安全加密通信的会话密钥,当所述第一车辆端会话密钥存在标志位的值为真或1时,表示存在与所述第二车辆端进行安全加密通信的会话密钥;所述第一车辆端会话密钥存在标志位的初始值置为假或0;所述第二车辆端编号存储区用于存储与所述第一车辆端进行通信的所述第二车辆端的车辆端编号;每个第二车辆端的车辆端编号关联一个第一车辆端会话密钥存在标志位和一个存储于所述第一车辆端会话密钥安全存储区内的会话密钥;
在所述第二车辆端的所述第二安全模块内设置第二车辆端会话密钥安全存储区、第二车辆端会话密钥存在标志位和第一车辆端编号存储区;所述第二车辆端会话密钥安全存储区用于存储与所述第一车辆端进行安全加密通信的会话密钥;所述第二车辆端会话密钥存在标志位用于标识是否存在与所述第一车辆端进行安全加密通信的会话密钥,当所述第二车辆端会话密钥存在标志位的值为真或1时,表示存在与所述第一车辆端进行安全加密通信的会话密钥;所述第二车辆端会话密钥存在标志位的初始值置为假或0;所述第一车辆端编号存储区用于存储与所述第二车辆端进行通信的所述第一车辆端的车辆端编号;每个第一车辆端的车辆端编号关联一个第二车辆端会话密钥存在标志位和一个存储于所述第二车辆端会话密钥安全存储区内的会话密钥;
在与所述第二车辆端进行通信前,所述第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,所述云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,所述发送终端和所述接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
在一个实施例中,当所述第一车辆端为多个时,所述第一车辆端与一个或多个其它第一车辆端通过各自的第一短距离直接通信模块通信连接。
在一个实施例中,所述车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
优选的,在与所述第二车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第一身份认证协议进行身份认证和会话密钥协商;
所述第一身份认证协议包括:
C1->C2: NC1C2;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后通过第一5G通信模块发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会话密钥存在标志位;
至此,身份认证阶段结束。
优选的,在与所述第一车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第二身份认证协议进行身份认证和会话密钥协商;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名, SIGC2表示用C2的私钥签名, SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与所述车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,所述车辆端C由HAS5GCONN可知所述第二车辆端正在向其询问所述车辆端C是否有与所述车联网服务器的5G通信连接,如果所述车辆端C是具有5G通信模块并经5G网络与所述车联网服务器有通信连接的第一车辆端C1,则生成5GCONNYES,并向所述第二车辆端发送{N5G||5GCONNYES};否则,生成5GCONNNO,并向所述第二车辆端发送{N5G||5GCONNNO};
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否有经5G网络与所述车联网服务器的通信连接;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入所述第一车辆端会话密钥安全存储区,并将所述第一车辆端会话密钥存在标志位置为真或1;所述第一车辆端将第二车辆端编号IDC2存入所述第二车辆端编号存储区,并建立第二车辆端编号IDC2与会话密钥KC1C2的关联,使得通过第二车辆端编号IDC2可以查找到会话密钥KC1C2;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入所述第二车辆端会话密钥安全存储区,并将所述第二车辆端会话密钥存在标志位置为真或1;所述第二车辆端将第一车辆端编号IDC1存入所述第一车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2;
至此,身份认证阶段结束。
本发明还提供了一种基于5G的V2V车联网通信方法,可应用于如图1、图2所示的环境中,本发明还提供了一种基于5G的V2V车联网通信方法,包括以下步骤:
在与所述第二车辆端进行通信前,所述第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,所述云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,所述发送终端和所述接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
优选的,车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
优选的,在所述第一车辆端为发送终端,所述第二车辆端为接收终端时,所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证;
所述第一身份认证协议包括:
C1->C2: NC1C2;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后通过第一5G通信模块发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会话密钥存在标志位;
至此,身份认证阶段结束。
优选的,在所述第二车辆端为发送终端,所述第一车辆端为接收终端时,所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名, SIGC2表示用C2的私钥签名, SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与所述车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,根据其是否具有5G通信模块来生成5GCONNYES或5GCONNNO,将验证因子N5G与5GCONNYES或5GCONNNO拼接后发送至所述第二车辆端;
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否具有5G通信模块;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC2,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC2,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会4话密钥存在标志位;
至此,身份认证阶段结束。
优选的,所述第一短距离直接通信模块与所述第二短距离直接通信模块采用C-V2X PC5协议进行短距离直接通信。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于5G的V2V车联网通信系统,其特征在于:包括云端、至少一个第一车辆端和至少一个第二车辆端;所述云端包括证书服务器、云端安全模块以及分别与所述证书服务器和所述云端安全模块连接的车联网服务器;所述第一车辆端包括第一短距离直接通信模块、第一5G通信模块、第一安全模块以及分别与所述第一短距离直接通信模块、所述第一5G通信模块和所述第一安全模块连接的第一车辆端控制模块;所述第二车辆端包括第二短距离直接通信模块、第二安全模块以及分别与所述第二短距离直接通信模块和所述第二安全模块连接的第二车辆端控制模块;所述车联网服务器通过5G网络与至少一个所述第一车辆端的第一5G通信模块通信接连,以实现所述云端与所述第一车辆端之间的双向通信;每个第一车辆端的第一短距离直接通信模块与至少一个所述第二车辆端的第二短距离直接通信模块通信连接,以实现所述第一车辆端与至少一个所述第二车辆端之间的双向通信;每个第二车辆端的第二短距离直接通信模块与至少一个所述第一车辆端的第一短距离直接通信模块通信连接,以实现所述第二车辆端与至少一个所述第一车辆端之间的双向通信;
所述云端安全模块、所述第一安全模块和所述第二安全模块用于提供密码服务功能和安全存储功能;所述密码服务功能包括随机数生成、签名运算、加解密运算、会话密钥生成;所述车联网服务器调用由所述云端安全模块提供的相应密码服务功能;所述第一车辆端控制模块调用由所述第一安全模块提供的相应密码服务功能和安全存储功能;所述第二车辆端控制模块调用由所述第二安全模块提供的相应密码服务功能和安全存储功能;
所述证书服务器分别为所述云端、所述第一车辆端和所述第二车辆端生成公钥证书并保存,通过离线方式将所述云端的公钥证书中的公钥分别写入所述第一车辆端的所述第一安全模块与所述第二车辆端的所述第二安全模块内;所述云端的云端安全模块、所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块各自保存与其相应公钥证书中的公钥相对应的私钥;
所述第一车辆端的第一安全模块和所述第二车辆端的第二安全模块内均设置有会话密钥安全存储区、会话密钥存在标志位以及车辆端编号存储区,所述会话密钥安全存储区用于存储与对端车辆进行安全加密通信的会话密钥,所述会话密钥存在标志位用于标识是否存在与对端车辆进行安全加密通信的会话密钥,当所述会话密钥存在标志位的值为真或1时,表示存在与对端车辆进行安全加密通信的会话密钥;所述会话密钥存在标志位的初始值置为假或0;所述车辆端编号存储区用于存储与当前车辆端进行通信的对端车辆的车辆端编号;每个车辆端编号关联一个会话密钥存在标志位和一个存储于所述会话密钥安全存储区内的会话密钥;
在与所述第二车辆端进行通信前,所述第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,所述云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,发送终端和接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
2.根据权利要求1所述的基于5G的V2V车联网通信系统,其特征在于:所述车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
3.根据权利要求1或2所述的基于5G的V2V车联网通信系统,其特征在于:在与所述第二车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第一身份认证协议进行身份认证和会话密钥协商;
所述第一身份认证协议包括:
C1->C2: NC1C2;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后通过第一5G通信模块发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第二车辆端编号IDC2存入自身的车辆端编号存储区,并建立第二车辆端编号IDC2与所述会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第二车辆端编号IDC2可以查找到对应的会话密钥KC1C2和会话密钥存在标志位;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入自身的会话密钥安全存储区,并将一个会话密钥存在标志位置为真或1,以及将第一车辆端编号IDC1存入自身的车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2以及所述会话密钥存在标志位的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2和会话密钥存在标志位;
至此,身份认证阶段结束。
4.根据权利要求1或2所述的基于5G的V2V车联网通信系统,其特征在于:在与所述第一车辆端进行通信前,若执行身份认证步骤,则在身份认证步骤执行过程中,所述云端、所述第一车辆端和所述第二车辆端采用预置第二身份认证协议进行身份认证和会话密钥协商;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名,SIGC2表示用C2的私钥签名,SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与所述车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,所述车辆端C由HAS5GCONN可知所述第二车辆端正在向其询问所述车辆端C是否有与所述车联网服务器的5G通信连接,如果所述车辆端C是具有5G通信模块并经5G网络与所述车联网服务器有通信连接的第一车辆端C1,则生成5GCONNYES,并向所述第二车辆端发送{N5G||5GCONNYES};否则,生成5GCONNNO,并向所述第二车辆端发送{N5G||5GCONNNO};
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否有经5G网络与所述车联网服务器的通信连接;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入所述第一车辆端会话密钥安全存储区,并将所述第一车辆端会话密钥存在标志位置为真或1;所述第一车辆端将第二车辆端编号IDC2存入所述第二车辆端编号存储区,并建立第二车辆端编号IDC2与会话密钥KC1C2的关联,使得通过第二车辆端编号IDC2可以查找到会话密钥KC1C2;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入所述第二车辆端会话密钥安全存储区,并将所述第二车辆端会话密钥存在标志位置为真或1;所述第二车辆端将第一车辆端编号IDC1存入所述第一车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2;
至此,身份认证阶段结束。
5.根据权利要求1或2所述的基于5G的V2V车联网通信系统,其特征在于:所述第一短距离直接通信模块与所述第二短距离直接通信模块均为C-V2X PC5短距离直接通信模块;所述第一安全模块、所述第二安全模块和所述云端安全模块均为安全智能芯片,所述安全智能芯片支持的商用密码算法包括SM1、SM2和SM3中的至少一种,支持的国际常用密码算法包括3DES、AES、RSA、SHA-1和SHA-256中的至少一种;所述安全智能芯片支持存储数字证书;所述安全智能芯片提供安全存储区域,支持重要信息的安全存储;所述安全智能芯片支持随机数的生成;所述证书服务器维护证书撤销列表,提供证书撤销列表查询功能。
6.一种基于5G的V2V车联网通信方法,其特征在于,包括以下步骤:
在与第二车辆端进行通信前,第一车辆端判断所述第二车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在与所述第一车辆端进行通信前,所述第二车辆端判断所述第一车辆端的车辆端编号关联的会话密钥存在标志位的值,若所述会话密钥存在标志位的值为真或1时,则执行安全加密通信步骤;否则,执行身份认证步骤;
在身份认证步骤,云端、所述第一车辆端和所述第二车辆端采用所述云端、所述第一车辆端和所述第二车辆端的公钥证书进行交互,实现所述第一车辆端和所述第二车辆端的身份认证和会话密钥协商;
第一车辆端和所述第二车辆端分别将协商建立的会话密钥存入自身的会话密钥安全存储区,并将自身的一个会话密钥存在标志位置为真或1,以及将对端车辆的车辆端编号ID存入自身的车辆端编号存储区,并建立对端车辆的车辆端编号ID、会话密钥以及会话密钥存在标志位的关联,使得通过对端车辆的车辆端编号ID可以查找到会话密钥和会话密钥存在标志位;其中,发送终端和接收终端从自身的一个会话密钥存在标志位的值被置为真或1时起,开启车辆端间可达性探测,以确定对端车辆是否在其短距离直接通信范围内;
在安全加密通信步骤,所述第一车辆端和所述第二车辆端通过所述会话密钥进行安全加密通信;其中,所述第一车辆端和所述第二车辆端分别根据对端车辆的车辆端编号在自身的会话密钥安全存储区内查找,获取与对端车辆的车辆端编号相关联的会话密钥。
7.根据权利要求6所述的一种基于5G的V2V车联网通信方法,其特征在于,车辆端间可达性探测的探测协议及详细步骤如下所示:
CT->CB: {CTPROBE||ECTKCTCB(NCTPROBE)};
CB->CT: {CTPROBE||ECTKCTCB(NCTPROBE+1)};
其中,CT表示探测终端,CB表示被探终端,所述第一车辆端为探测终端时,所述第二车辆端为被探测端;或者所述第二车辆端为探测终端时,所述第一车辆端为被探测端;NCTPROBE表示CT产生的随机数验证因子,KCTCB表示探测终端和被探终端协商建立的会话密钥;ECTKCTCB表示用会话密钥KCTCB进行加密,其中所采用的对称密钥算法由所述探测终端和所述被探终端协商确定;||表示拼接操作;CTPROBE表示由CT发起的对CB进行探测的探测标志;
第一步,所述探测终端生成随机数验证因子NCTPROBE,并用会话密钥KCTCB对NCTPROBE进行加密,得到ECTKCTCB(NCTPROBE),然后发送{CTPROBE||ECTKCTCB(NCTPROBE)}给所述被探终端;
第二步,所述被探终端收到所述探测终端发送的{CTPROBE||ECTKCTCB(NCTPROBE)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE)进行解密,得到NCTPROBE,将NCTPROBE+1,并用会话密钥KCTCB对NCTPROBE+1进行加密,得到ECTKCTCB(NCTPROBE+1),然后将CTPROBE与ECTKCTCB(NCTPROBE+1)拼接后发送给所述探测终端;
所述探测终端收到{CTPROBE||ECTKCTCB(NCTPROBE+1)}后,用会话密钥KCTCB对ECTKCTCB(NCTPROBE+1)进行解密,如果得到的值为NCTPROBE+1,则说明所述探测终端与所述被探终端通信正常,探测结果正常,然后,等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;如果得到的值不等于NCTPROBE+1,则说明所述探测终端与所述被探终端通信内容不正常,则所述探测终端立刻开始新的一次探测,若连续两次通信内容都不正常,则所述探测终端将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测;
若所述探测终端没有收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则等待时间值T,当时间值T等于预置的通信可达性时间阈值后重新进行第一步,开始下次探测;若连续两次均未收到所述被探终端返回的回复消息{CTPROBE||ECTKCTCB(NCTPROBE+1)},则将所述探测终端会话密钥存在标志位的值置为假或0,结束对所述被探终端的探测。
8.根据权利要求6或7所述的基于5G的V2V车联网通信方法,其特征在于,在所述第一车辆端为发送终端,所述第二车辆端为接收终端时,所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证;
所述第一身份认证协议包括:
C1->C2: NC1C2;
C2->C1: {NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))};
C1->S: {PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C1表示第一车辆端,C2表示第二车辆端,IDC1表示第一车辆端编号,IDC2表示第二车辆端编号,PES表示用S的公钥加密,PEC1表示用C1的公钥加密,PEC2表示用C2的公钥加密,SIGS表示用S的私钥签名, SIGC1表示用C1的私钥签名, SIGC2表示用C2的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,NC1C2和NC1S表示C1产生的随机数验证因子,NC2S表示C2产生的随机数验证因子,||表示拼接操作;
所述第一车辆端和所述第二车辆端通过预置第一身份认证协议进行身份认证的具体步骤为:
第一步,所述第一车辆端通过短距离直接通信方式向所述第二车辆端发送随机产生的验证因子NC1C2;
第二步,所述第二车辆端收到所述第一车辆端发来的验证因子NC1C2后,用所述第二车辆端的私钥对验证因子NC1C2进行签名运算得到SIGC2(NC1C2),然后,所述第二车辆端随机产生一个验证因子NC2S,接着查找第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC1C2)加密得到PES(NC2S,IDC2,SIGC2(NC1C2)),然后将验证因子NC1C2与PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述第一车辆端;
第三步,所述第一车辆端接收到所述第二车辆端发来的{NC1C2||PES(NC2S,IDC2,SIGC2(NC1C2))}后,首先判断该接收到的NC1C2的值是否与第一步中发送给所述第二车辆端的NC1C2的值相同;若两个NC1C2值不相同,则终止身份认证过程;若两个NC1C2值相同,则所述第一车辆端用自身的私钥将验证因子NC1C2进行签名运算得到SIGC1(NC1C2),然后随机生成一个新的验证因子NC1S,接着查找第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1C2、验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC1C2) 加密得到PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2)),然后将PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2))拼接后发送给所述云端;
第四步,所述云端收到所述第一车辆端发来的{PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))||PES(NC2S,IDC2,SIGC2(NC1C2))}后,用自身的私钥分别解密PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))和PES(NC2S,IDC2,SIGC2(NC1C2)),得到NC1C2、NC1S、IDC1、SIGC1(NC1C2)以及NC2S、IDC2和SIGC2(NC1C2);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC1C2)进行运算,解密出SIGC1(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC1C2)进行运算,解密出SIGC2(NC1C2)中的NC1C2的值,然后将该NC1C2的值与刚才从PES(NC1C2,NC1S,IDC1,SIGC1(NC1C2))中得到的NC1C2值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第三步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入所述第一车辆端会话密钥安全存储区,并将所述第一车辆端会话密钥存在标志位置为真或1;所述第一车辆端将第二车辆端编号IDC2存入所述第二车辆端编号存储区,并建立第二车辆端编号IDC2与会话密钥KC1C2的关联,使得通过第二车辆端编号IDC2可以查找到会话密钥KC1C2;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第六步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第二步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入所述第二车辆端会话密钥安全存储区,并将所述第二车辆端会话密钥存在标志位置为真或1;所述第二车辆端将第一车辆端编号IDC1存入所述第一车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2;
至此,身份认证阶段结束。
9.根据权利要求6或7所述的基于5G的V2V车联网通信方法,其特征在于:在所述第二车辆端为发送终端,所述第一车辆端为接收终端时,所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证;
所述第二身份认证协议包括:
C2->C: {N5G||HAS5GCONN};
C->C2: {N5G||5GCONNYES} or {N5G||5GCONNNO};
C2->C1: {NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
C1->S: {PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))};
S->C1: {PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))};
C1->C2: PEC2(KC1C2,IDC1,SIGS(NC2S));
其中,S表示云端,C表示第一车辆端或第二车辆端,C2表示第二车辆端,C1表示第一车辆端,IDC2表示第二车辆端编号,IDC1表示第一车辆端编号,PES表示用S的公钥加密,PEC2表示用C2的公钥加密,PEC1表示用C1的公钥加密,SIGS表示用S的私钥签名, SIGC2表示用C2的私钥签名, SIGC1表示用C1的私钥签名,KC1C2表示由S所分配的C1与C2之间用于安全加密通信的会话密钥,N5G、NC2C1和NC2S表示C2产生的随机数验证因子,NC1S表示C1产生的随机数验证因子,||表示拼接操作;HAS5GCONN表示C2向C询问C是否有经5G网络与车联网服务器的通信连接的询问信息;5GCONNYES表示C向C2返回的C有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端;5GCONNNO表示C向C2返回的C没有经5G网络与所述车联网服务器的通信连接的确认信息,此时C为不具有5G通信模块的另一个第二车辆端;
所述第二车辆端和所述第一车辆端通过预置第二身份认证协议进行身份认证的具体步骤为:
第一步,所述第二车辆端随机产生一个验证因子N5G,并生成HAS5GCONN,然后将验证因子N5G与HAS5GCONN拼接后发送给所述车辆端C;
第二步,所述车辆端C接收到所述第二车辆端发来的{N5G||HAS5GCONN}后,所述车辆端C由HAS5GCONN可知所述第二车辆端正在向其询问所述车辆端C是否有与所述车联网服务器的5G通信连接,如果所述车辆端C是具有5G通信模块并经5G网络与所述车联网服务器有通信连接的第一车辆端C1,则生成5GCONNYES,并向所述第二车辆端发送{N5G||5GCONNYES};否则,生成5GCONNNO,并向所述第二车辆端发送{N5G||5GCONNNO};
第三步,所述第二车辆端接收到所述车辆端C发来的{N5G||5GCONNYES}或{N5G||5GCONNNO}后,首先判断该接收到的N5G的值是否与第一步中发送给所述车辆端C的N5G的值相同;若两个N5G值不相同,则终止身份认证过程;若两个N5G值相同,则所述第二车辆端根据接收到的5GCONNYES或5GCONNNO来判断其正在连接的所述车辆端是否有经5G网络与所述车联网服务器的通信连接;如果所述第二车辆端接收到的是5GCONNYES,则表明此时所述车辆端C为具有5G通信模块并能与所述云端的所述车联网服务器通信连接的第一车辆端C1,然后,继续第四步;如果所述第二车辆端接收到的是5GCONNNO,则终止身份认证过程;
第四步,所述第二车辆端随机生成的验证因子NC2C1,用所述第二车辆端的私钥对验证因子NC2C1进行签名运算得到SIGC2(NC2C1),然后,所述第二车辆端再随机产生一个验证因子NC2S,接着查找第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC2C1、验证因子NC2S、所述第二车辆端的第二车辆端编号IDC2、SIGC2(NC2C1)加密得到PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),然后将验证因子NC2C1与PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述第一车辆端;
第五步,所述第一车辆端接收到所述第二车辆端发来的{NC2C1||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,所述第一车辆端用自身的私钥将验证因子NC2C1进行签名运算得到SIGC1(NC2C1),然后随机生成一个新的验证因子NC1S,接着查找第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥将验证因子NC1S、所述第一车辆端的第一车辆端编号IDC1和签名值SIGC1(NC2C1) 加密得到PES(NC1S,IDC1,SIGC1(NC2C1)),然后将PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))拼接后发送给所述云端;
第六步,所述云端收到所述第一车辆端发来的{PES(NC1S,IDC1,SIGC1(NC2C1))||PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))}后,用自身的私钥分别解密PES(NC1S,IDC1,SIGC1(NC2C1))和PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1)),得到NC1S、IDC1、SIGC1(NC2C1)以及NC2C1、NC2S、IDC2和SIGC2(NC2C1);所述云端根据所述第一车辆端的第一车辆端编号IDC1,从所述证书服务器中查找出所述第一车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC1(NC2C1)进行运算,解密出SIGC1(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1的值进行比对,若值不相同,说明对所述第一车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端继续根据所述第二车辆端的第二车辆端编号IDC2从所述证书服务器中查找出所述第二车辆端所对应的公钥证书,然后用该公钥证书中的公钥对SIGC2(NC2C1)进行运算,解密出SIGC2(NC2C1)中的NC2C1的值,然后将该NC2C1的值与刚才从PES(NC2C1,NC2S,IDC2,SIGC2(NC2C1))中得到的NC2C1值进行比对,若值不相同,说明对所述第二车辆端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述云端调用所述云端安全模块,生成一个用于所述第一车辆端与所述第二车辆端通信的会话密钥KC1C2,并用自身的私钥分别对NC1S和NC2S进行签名,得到SIGS(NC1S)和SIGS(NC2S),然后,所述云端用所述第一车辆端的公钥对会话密钥KC1C2、第二车辆端编号IDC2和SIGS(NC1S)进行加密,得到PEC1(KC1C2,IDC2,SIGS(NC1S)),接着,所述云端用所述第二车辆端的公钥对会话密钥KC1C2、第一车辆端编号IDC1、签名值SIGS(NC2S)进行加密,得到PEC2(KC1C2,IDC1,SIGS(NC2S)),然后,所述云端将PEC1(KC1C2,IDC2,SIGS(NC1S))和PEC2(KC1C2,IDC1,SIGS(NC2S))拼接后发送给所述第一车辆端;
第七步,所述第一车辆端接收到来自所述云端的{PEC1(KC1C2,IDC2,SIGS(NC1S))||PEC2(KC1C2,IDC1,SIGS(NC2S))}后,用自身私钥对PEC1(KC1C2,IDC2,SIGS(NC1S))进行解密运算,得到会话密钥KC1C2、第二车辆端编号IDC2、SIGS(NC1S);然后,所述第一车辆端查找所述第一安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC1S)进行运算,得到NC1S,然后将该NC1S的值与第五步中发送给所述云端的NC1S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第一车辆端将会话密钥KC1C2存入所述第一车辆端会话密钥安全存储区,并将所述第一车辆端会话密钥存在标志位置为真或1;所述第一车辆端将第二车辆端编号IDC2存入所述第二车辆端编号存储区,并建立第二车辆端编号IDC2与会话密钥KC1C2的关联,使得通过第二车辆端编号IDC2可以查找到会话密钥KC1C2;然后,所述第一车辆端则将PEC2(KC1C2,IDC1,SIGS(NC2S))转发给所述第二车辆端;
第八步,所述第二车辆端接收到所述第一车辆端转发来的PEC2(KC1C2,IDC1,SIGS(NC2S))后,用自身的私钥对PEC2(KC1C2,IDC1,SIGS(NC2S))进行解密运算,得到KC1C2、IDC1和SIGS(NC2S),然后,所述第二车辆端查找所述第二安全模块内存储的所述云端的公钥证书,用所述云端的公钥对SIGS(NC2S)进行运算,得到NC2S,然后将该NC2S的值与第四步中所生成的NC2S的值进行比对,若值不相同,说明对所述云端的身份认证未通过,则身份认证协议终止并退出;若值相同,则所述第二车辆端将会话密钥KC1C2存入所述第二车辆端会话密钥安全存储区,并将所述第二车辆端会话密钥存在标志位置为真或1;所述第二车辆端将第一车辆端编号IDC1存入所述第一车辆端编号存储区,并建立第一车辆端编号IDC1与会话密钥KC1C2的关联,使得通过第一车辆端编号IDC1可以查找到会话密钥KC1C2;
至此,身份认证阶段结束。
10.根据权利要求6或7所述的基于5G的V2V车联网通信方法,其特征在于:所述第一车辆端和所述第二车辆端采用C-V2X PC5协议进行短距离直接通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603902.XA CN111818483B (zh) | 2020-06-29 | 2020-06-29 | 一种基于5g的v2v车联网通信系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603902.XA CN111818483B (zh) | 2020-06-29 | 2020-06-29 | 一种基于5g的v2v车联网通信系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111818483A CN111818483A (zh) | 2020-10-23 |
CN111818483B true CN111818483B (zh) | 2022-02-11 |
Family
ID=72855788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010603902.XA Active CN111818483B (zh) | 2020-06-29 | 2020-06-29 | 一种基于5g的v2v车联网通信系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111818483B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411294A (zh) * | 2021-04-30 | 2021-09-17 | 中汽研(天津)汽车工程研究院有限公司 | 基于安全云端公钥保护的车载安全通信方法、系统和装置 |
CN113452517A (zh) * | 2021-06-07 | 2021-09-28 | 北京聚利科技有限公司 | 密钥更新方法、装置、系统、存储介质及终端 |
CN116471587B (zh) * | 2023-04-19 | 2023-10-20 | 合肥工业大学 | 一种v2v通信下的车组内通信密钥生成及更新方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105792207A (zh) * | 2016-04-29 | 2016-07-20 | 北京航空航天大学 | 一种面向车辆差异化的车联网认证方法 |
WO2017020452A1 (zh) * | 2015-08-04 | 2017-02-09 | 北京百度网讯科技有限公司 | 认证方法和认证系统 |
CN108668258A (zh) * | 2018-05-09 | 2018-10-16 | 中国信息通信研究院 | V2x通信快速身份认证系统及方法 |
CN109462476A (zh) * | 2018-11-23 | 2019-03-12 | 成都卫士通信息产业股份有限公司 | 密钥协商方法、装置、终端及计算机可读存储介质 |
CN110177354A (zh) * | 2019-06-21 | 2019-08-27 | 湖北亿咖通科技有限公司 | 一种车辆的无线控制方法及系统 |
CN110289958A (zh) * | 2019-07-18 | 2019-09-27 | 郑州信大捷安信息技术股份有限公司 | 一种车联网身份认证方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018214735A1 (de) * | 2018-08-30 | 2020-03-05 | Ford Global Technologies, Llc | Verfahren zum Datenaustausch zwischen einem Fahrzeug und einer Infrastruktur oder einem weiteren Fahrzeug |
US10966085B2 (en) * | 2018-09-28 | 2021-03-30 | Intel Corporation | Methods for autonomous authentication for vehicle-to-vehicle (V2V) communications in out-of-coverage scenarios |
-
2020
- 2020-06-29 CN CN202010603902.XA patent/CN111818483B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020452A1 (zh) * | 2015-08-04 | 2017-02-09 | 北京百度网讯科技有限公司 | 认证方法和认证系统 |
CN105792207A (zh) * | 2016-04-29 | 2016-07-20 | 北京航空航天大学 | 一种面向车辆差异化的车联网认证方法 |
CN108668258A (zh) * | 2018-05-09 | 2018-10-16 | 中国信息通信研究院 | V2x通信快速身份认证系统及方法 |
CN109462476A (zh) * | 2018-11-23 | 2019-03-12 | 成都卫士通信息产业股份有限公司 | 密钥协商方法、装置、终端及计算机可读存储介质 |
CN110177354A (zh) * | 2019-06-21 | 2019-08-27 | 湖北亿咖通科技有限公司 | 一种车辆的无线控制方法及系统 |
CN110289958A (zh) * | 2019-07-18 | 2019-09-27 | 郑州信大捷安信息技术股份有限公司 | 一种车联网身份认证方法及系统 |
Non-Patent Citations (2)
Title |
---|
Efficient Privacy-Preserving Dual Authentication and Key Agreement Scheme for Secure V2V Communications in an IoV Paradigm;Yanbing Liu等;《 IEEE Transactions on Intelligent Transportation Systems 》;20170302;全文 * |
基于身份的认证机制在OMNeT++中的设计与实现;李东根;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20150915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111818483A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111479244B (zh) | 一种v2i车联网身份认证系统及方法 | |
US11876896B2 (en) | ID-based control unit-key fob pairing | |
CN111818483B (zh) | 一种基于5g的v2v车联网通信系统及方法 | |
CN110290525A (zh) | 一种车辆数字钥匙的分享方法及系统、移动终端 | |
WO2017101310A1 (zh) | 一种车辆远程控制方法、装置及系统 | |
CN109862040A (zh) | 一种安全认证方法及认证系统 | |
CN111572493B (zh) | 一种基于车联网的车辆无钥匙进入及启动系统与方法 | |
JP5435513B2 (ja) | 暗号通信システム、鍵配布装置、暗号通信方法 | |
CN108683647B (zh) | 一种基于多重加密的数据传输方法 | |
CN113781678B (zh) | 无网环境下车辆蓝牙钥匙生成与鉴权方法及系统 | |
CN112055330B (zh) | 一种基于5g的v2x车联网安全通信系统及方法 | |
CN110858970B (zh) | 第一车辆侧的终端设备及其运行方法、第二车辆侧的终端设备及其运行方法 | |
JP2012227672A (ja) | 車車/路車間通信システム | |
CN111010411B (zh) | 通信的方法、装置、路边设备、车辆和存储介质 | |
CN117395001B (zh) | 一种基于量子密钥芯片的车联网安全通信方法及系统 | |
CN113163375B (zh) | 一种基于NB-IoT通信模组的空中发证方法和系统 | |
CN112640504B (zh) | 一种安全通信的方法及装置 | |
CN117439740A (zh) | 一种车内网络身份认证与密钥协商方法、系统及终端 | |
CN113098833B (zh) | 一种车辆的信息安全控制方法、客户端设备及服务端设备 | |
CN107215308B (zh) | 无钥匙系统及无钥匙系统的控制方法 | |
CN113660271B (zh) | 一种车联网的安全认证方法及装置 | |
CN107046529B (zh) | 一种基于hash加密的车路协同安全通信方法 | |
CN112977335A (zh) | 连接认证方法、解锁端、钥匙端及智能钥匙系统 | |
CN117227561B (zh) | 国标充电系统及其车桩认证方法和系统 | |
CN117676580B (zh) | 一种基于车载网关的安全认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |