一种车联网系统中的消息生成和验证方法、设备
技术领域
本发明涉及通信技术领域,特别涉及一种车联网系统中的消息生成和验证方法、设备。
背景技术
车联网技术的主要应用目的是为了减少交通事故的发生。车联网系统主要由安装在车辆上的车载设备(On-Board Unit,OBU),安装在路侧的路边设备(Road Side Unit,RSU)和后台控制中心(Background Control Centre,BCC)组成。OBU与OBU之间、以及OBU与RSU之间均采用专用短距离通信(Dedicated Short Range Communication,DSRC)技术。在车联网系统中,车载设备监控车辆的位置及行驶信息并向周围车辆广播这些信息,同时该车辆还将接收其他车辆发送的信息。OBU将分析本车及其他车辆的行驶信息,并将可能的交通威胁及时通知给驾驶员。
出于安全考虑,在车联网系统中所播发的消息都要经过数字签名。车辆用于签发其所发送的消息的证书称为消息证书,车辆所拥有的权利保存在消息证书中。车联网消息证书将随签发的消息一起发送给接收者,以便消息接收者能够验证收到的消息。消息证书含有用于验证消息签名的公钥和发送者的权利描述。消息接收者收到消息后,首先验证该消息证书的有效性,然后利用收到的证书验证该消息的有效性。接收者还可以通过分析消息证书中的权利描述确定该车辆是否是具有特殊通行权的车辆,若是,则接收者可以通过显示屏或语音等向驾驶者提供相应信息,以便车辆驾驶者能够决定是否采取避让措施。
当前车联网系统中的消息广播安全方案都是基于非对称加密算法的公钥证书技术,也即采用数字签名技术来生成需要播发的消息,以保证信息的完整性。然而,为了保护用户隐私,即防止通过监听车辆播发的消息而跟踪该车辆(如特种车辆),消息证书应采用匿名技术,以使OBU在接收到其他OBU播发的消息后,无法获取该消息中的与车辆相关的隐私信息。但是,对于消息证书的匿名技术,目前还没有明确的技术方案。
发明内容
本发明实施例提供了一种车联网系统中的消息生成和验证方法、设备,保护了用户隐私。
本发明实施例提供的一种车联网系统中的消息生成方法,该方法包括:
车载设备OBU使用与自身已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,所述消息明文为所述OBU根据自身所在车辆的当前行驶状态生成的信息;
所述OBU使用获取到的后台控制中心BCC的加密公钥,对包括所述数字签名值的第二信息进行加密处理,得到消息密文;
所述OBU根据包括所述消息密文的第三信息,生成所需播发的消息,并发送所生成的消息。
较佳地,所述OBU得到消息密文之后,且所述OBU生成所需播发的消息之前,还包括:所述OBU使用所述BCC生成的用于生成消息认证码MAC的消息密钥,对包括所述消息密文的第三信息进行MAC计算,得到MAC值;
所述OBU生成所需播发的消息,包括:所述OBU根据所述第三信息与所述MAC值生成所需播发的消息。
较佳地,所述第一信息中还包括以下信息中的至少一种信息:
所要播发的消息的类型信息、所述消息密钥的标识信息、所述加密公钥的标识信息、与所述车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,所述第二信息中还包括以下信息中的至少一种信息:
与所述车辆相关的信息、所述签名公钥证书的标识信息。
较佳地,所述第三信息中还包括以下信息中的至少一种信息:
所要播发的消息的类型信息、所述消息明文、所述消息密钥的标识信息、所述加密公钥的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的一种车联网系统中的消息验证方法,该方法包括:
后台控制中心BCC在接收到车载设备OBU发送的消息之后,从所述消息中获取消息明文,以确定所述OBU所在车辆的当前行驶状态;
在需要跟踪所述OBU所在的车辆时,所述BCC根据所述消息中携带的加密公钥的标识信息,确定出与所述加密公钥对应的私钥,并使用确定出的私钥对所述消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述BCC在接收到所述OBU播发的消息之后,且从所述消息中获取消息明文之前,还包括:
所述BCC根据所述消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对所述消息进行MAC验证,以验证所述消息是否可信;
所述BCC从所述消息中获取消息明文,包括:所述BCC在验证出所述消息可信后,从所述消息中获取消息明文。
较佳地,所述BCC使用确定出的私钥对所述消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息之前,还包括:
所述BCC从解密处理后的消息密文中获取所述OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出所述签名公钥证书;以及所述BCC根据所述签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证;
所述BCC从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息,包括:所述BCC在验证出所述数字签名值正确后,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述数字签名值是所述OBU使用与所述签名公钥证书中的签名公钥对应的私钥,对包括所述消息明文的第一信息进行数字签名处理得到的;
其中,所述第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、加密公钥的标识信息、与所述OBU所在车辆相关的信息、签名公钥证书的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的一种车载设备OBU,该OBU包括:
第一处理模块,用于使用与已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,所述消息明文为所述OBU根据自身所在车辆的当前行驶状态生成的信息;
第二处理模块,用于使用获取到的后台控制中心BCC的加密公钥,对包括所述数字签名值的第二信息进行加密处理,得到消息密文;
第三处理模块,用于根据包括所述消息密文的第三信息,生成所需播发的消息,并发送所生成的消息。
较佳地,该OBU还包括第四处理模块,用于使用所述BCC生成的用于生成消息认证码MAC的消息密钥,对包括所述消息密文的第三信息进行MAC计算,得到MAC值;
所述第三处理模块具体用于:根据所述第三信息与所述MAC值生成所需播发的消息。
较佳地,所述第一信息中还包括以下信息中的至少一种信息:
所要播发的消息的类型信息、所述消息密钥的标识信息、所述加密公钥的标识信息、与所述车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,所述第二信息中还包括以下信息中的至少一种信息:
与所述车辆相关的信息、所述签名公钥证书的标识信息。
较佳地,所述第三信息中还包括以下信息中的至少一种信息:
所要播发的消息的类型信息、所述消息明文、所述消息密钥的标识信息、所述加密公钥的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的一种后台控制中心BCC,该BCC包括:
第一控制模块,用于在接收到车载设备OBU发送的消息之后,从所述消息中获取消息明文,以确定所述OBU所在车辆的当前行驶状态;
第二控制模块,用于在需要跟踪所述OBU所在的车辆时,根据所述消息中携带的加密公钥的标识信息,确定出与所述加密公钥对应的私钥,并使用确定出的私钥对所述消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述BCC还包括:
第三控制模块,用于在接收到OBU发送的消息后,根据所述消息中携带的用于生成MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对所述消息进行MAC验证,以验证所述消息是否可信;
所述第一控制模块具体用于:在所述第三控制模块验证出所述消息可信后,从所述消息中获取消息明文。
较佳地,所述第二控制模块使用确定出的私钥对所述消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息之前,还用于:
从解密处理后的消息密文中获取所述OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出所述签名公钥证书;根据所述签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证;以及在验证出所述数字签名值正确后,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述数字签名值是所述OBU使用与所述签名公钥证书中的签名公钥对应的私钥,对包括所述消息明文的第一信息进行数字签名处理得到的;
其中,所述第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、加密公钥的标识信息、与所述OBU所在车辆相关的信息、签名公钥证书的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的另一种车载设备OBU,包括:收发信机、与该收发信机连接的至少一个处理器,其中:
处理器被配置用于:使用与已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,所述消息明文为所述OBU根据自身所在车辆的当前行驶状态生成的信息;使用获取到的后台控制中心BCC的加密公钥,对包括所述数字签名值的第二信息进行加密处理,得到消息密文;以及根据包括所述消息密文的第三信息,生成所需播发的消息;
收发信机被配置用于:发送处理器所生成的消息。
较佳地,处理器还被配置用于:
使用所述BCC生成的用于生成消息认证码MAC的消息密钥,对包括所述消息密文的第三信息进行MAC计算,得到MAC值;以及根据所述第三信息与所述MAC值生成所需播发的消息。
较佳地,所述第一信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、所述加密公钥的标识信息、与所述车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,所述第二信息中还包括以下信息中的至少一种信息:与所述车辆相关的信息、所述签名公钥证书的标识信息。
较佳地,所述第三信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息明文、所述消息密钥的标识信息、所述加密公钥的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的另一种后台控制中心BCC,包括:收发信机、以及与该收发信机连接的至少一个处理器,其中:
收发信机被配置用于:接收车载设备OBU发送的消息;
处理器被配置用于:从收发信机接收到的消息中获取消息明文,以确定所述OBU所在车辆的当前行驶状态;在需要跟踪所述OBU所在的车辆时,根据所述消息中携带的加密公钥的标识信息,确定出与所述加密公钥对应的私钥,并使用确定出的私钥对所述消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,处理器还被配置用于:在收发信机接收到OBU发送的消息后,根据所述消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对所述消息进行MAC验证,以验证所述消息是否可信;并在验证出所述消息可信后,从所述消息中获取消息明文。
较佳地,处理器使用确定出的私钥对所述消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息之前,还用于:
从解密处理后的消息密文中获取所述OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出所述签名公钥证书;根据所述签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证;以及在验证出所述数字签名值正确后,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述数字签名值是所述OBU使用与所述签名公钥证书中的签名公钥对应的私钥,对包括所述消息明文的第一信息进行数字签名处理得到的;
其中,所述第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、加密公钥的标识信息、与所述OBU所在车辆相关的信息、签名公钥证书的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本发明实施例提供的方法和设备中,由于OBU使用获取到的BCC的加密公钥,对包括该数字签名值的第二信息进行加密处理,得到消息密文,进而生成所需播发的消息,若要解密接收到的消息中的消息密文,需要使用与加密公钥对应的私钥进行解密,而与加密公钥对应的私钥只有BCC能够获知,因此,其他OBU在接收到该消息后,无法解密其中的消息密文,只有BCC能够解密该消息密文,从而保护了发送消息的OBU所在车辆的隐私信息。
附图说明
图1为本发明提供的车联网系统的架构示意图;
图2为本发明实施例提供的一种车联网系统中的消息生成方法的示意图;
图3为本发明实施例提供的一种车联网系统中的消息验证方法的示意图;
图4为本发明实施例提供的一种车联网系统中OBU、BCC、以及CA的交互过程示意图;
图5为本发明实施例提供的OBU生成安全行驶消息的过程的示意图;
图6为本发明实施例提供的OBU进行MAC验证的过程的示意图;
图7为本发明实施例提供的BCC对消息密文进行解密的过程的示意图;
图8为本发明实施例提供的BCC进行数据签名验证的过程的示意图;
图9为本发明实施例提供的一种OBU的示意图;
图10为本发明实施例提供的一种BCC的示意图;
图11为本发明实施例提供的另一种OBU的示意图;
图12为本发明实施例提供的另一种BCC的示意图。
具体实施方式
本发明实施例中,由于OBU使用获取到的BCC的加密公钥,对包括该数字签名值的第二信息进行加密处理,得到消息密文,若想解密该消息密文,需要使用与加密公钥对应的私钥进行解密,而与加密公钥对应的私钥只有BCC能够获知,因此,其他OBU在接收到该消息后,无法解密其中的消息密文,从而保护了发送消息的OBU所在车辆的隐私信息。
首先,对本发明实施例中涉及到的各设备进行说明,各设备之间的关系如图1所示,具体如下:
证书颁发机构(Certificate Authority,CA):负责向本专利所描述的系统中的OBU颁发用于数字签名的公钥证书,和向后台控制中心(Background Control Center,BCC)颁发携带有加密公钥的公钥证书。在本专利中用于数字签名的证书又称为签名公钥证书,用于携带加密公钥的证书又称加密公钥证书。
BCC:负责生成用于生成消息验证码(Message Authentication Code,MAC)的对称密钥,该对称密钥又称消息密钥,然后通过密钥分发系统将生成的密钥分发给OBU。BCC将存档所分发的密钥,以便将来对需要验证的消息进行验证。BCC还能用其与加密公钥所匹配的私钥对收到的公钥加密信息进行解密,然后用OBU的公钥证书中的公钥验证由OBU签署的数字签名,从而实现对特定OBU所播发消息的认证。
OBU:负责生成和广播用于交通安全的安全行驶消息,其中含有车辆当前的位置,当前的行驶状态和当前时间等信息。在本专利中该消息又称为OBU广播消息。为实现消息广播中所需要的认证性,完整性,不可否认性和隐私性,该消息中还包含有消息密钥标识,证书标识,数字签名,加密信息消息验证码等信息。
下面结合说明书附图对本发明实施例作进一步详细描述。应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
如图2所示,本发明实施例提供的一种车联网系统中的消息生成方法,该方法包括:
步骤21、OBU使用与自身已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,其中,该消息明文为该OBU根据自身所在车辆的当前行驶状态生成的信息。
较佳地,消息明文中包括但不限于以下信息中的至少一种信息:当前时间信息、当前地理位置信息、该OBU所在车辆当前的行驶方向、所述车辆的速度信息。
较佳地,第一信息除了包括消息明文之外,还包括但不限于以下信息中的至少一种信息:所要播发的消息的类型信息、消息密钥的标识信息、加密公钥的标识信息、与OBU所在车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,与OBU所在车辆相关的信息至少包括:该车辆的标识信息。
步骤22、OBU使用获取到的BCC的加密公钥,对包括步骤21得到的数字签名值的第二信息进行加密处理,得到消息密文。
较佳地,第二信息除了包括步骤21得到的数字签名值之外,还包括但不限于以下信息中的至少一种信息:与OBU所在车辆相关的信息(VehicleInfo)、签名公钥证书的标识信息。
较佳地,与OBU所在车辆相关的信息至少包括:该车辆的标识信息。
步骤23、OBU根据包括步骤22得到的消息密文的第三信息,生成所需播发的消息,并发送所生成的消息。
较佳地,第三信息除了包括步骤22得到的消息密文之外,还包括但不限于以下信息中的至少一种信息:
所要播发的消息的类型信息、消息明文、消息密钥的标识信息、加密公钥的标识信息。
本发明实施例中,由于OBU使用获取到的BCC的加密公钥,对包括该数字签名值的第二信息进行加密处理,得到消息密文,进而生成所需播发的消息,若要解密接收到的消息中的消息密文,需要使用与加密公钥对应的私钥进行解密,而与加密公钥对应的私钥只有BCC能够获知,因此,其他OBU在接收到该消息后,无法解密其中的消息密文,只有BCC能够解密该消息密文,从而保护了发送消息的OBU所在车辆的隐私信息。
在实施中,步骤21之前,该方法还包括:
OBU生成用于进行数字签名所用的密钥对,该密钥对包括签名公钥及其对应的私钥;以及
OBU利用签名公钥向CA申请签名公钥证书,并接收CA颁发的签名公钥证书。
其中,CA颁发的签名公钥证书中包含该OBU生成的签名公钥,CA将颁发的签名公钥证书存储于服务器中,BCC可以从服务器下载该签名公钥证书。
在实施中,步骤22之前,该方法还包括:OBU从BCC处获取该BCC所生成的加密公钥。
较佳地,OBU从BCC处获取该BCC所生成的加密公钥,具体包括以下两种优选的实现方式:
1、OBU接收BCC发送的该BCC所申请到的加密公钥证书,以获取该BCC所生成的加密公钥,该加密公钥证书中包含BCC所生成的用于对数据进行加密的加密公钥;
2、OBU接收BCC发送的携带了该BCC所生成的用于对数据进行加密的加密公钥的签名消息,以获取该BCC所生成的加密公钥。
基于上述任一实施例,较佳地,在步骤22之后,且在步骤23之前,该方法还包括:
OBU使用BCC生成的用于生成MAC的消息密钥,对包括步骤22得到的消息密文的第三信息进行MAC计算,得到MAC值。
相应的,步骤23具体为:OBU根据第三信息与得到的MAC值生成所需播发的消息。
本发明实施例中,OBU使用BCC生成的用于生成MAC的消息密钥,对包括步骤22得到的消息密文的第三信息进行MAC计算,得到MAC值,并根据第三信息与得到的MAC值生成所需播发的消息,使得接收到该消息的OBU或BCC可以根据消息密钥,对该消息进行MAC验证,以证明该消息在传输过程中没有发生改变,并且,由于本发明实施例引入了对称加密算法进行验证(即MAC验证),验证效率高,且成本低。
在实施中,OBU使用BCC生成的用于生成MAC的消息密钥,对包括消息密文的第三信息进行MAC计算之前,该方法还包括:
OBU接收BCC发送的用于生成消息认证码MAC的消息密钥。
具体的,OBU在接收到BCC发送的消息密钥后,存储该消息密钥,并在需要播发消息时,使用所存储的消息密钥对数据进行加密。
需要说明的是,BCC发送的消息密钥的数量为至少一个,每个消息密钥有对应的使用条件,包括有效期限、适用区域等。
需要说明的是,该方法还包括:
OBU在接收到其他OBU发送的消息后,根据该消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对该消息进行MAC验证,以验证该消息是否可信;以及
OBU在验证出该消息可信后,从该消息中获取消息明文,以确定发送该消息的OBU所在车辆的当前行驶状态。
由于该OBU无法获知到其他OBU发送的消息中的消息密文的解密密钥,因此,该OBU无法解密该消息中的消息密文,从而保护了发送消息的OBU所在车辆的隐私信息。另外,由于引入了对称加密算法进行验证(即MAC验证),验证效率高,且成本低。
具体的,OBU采用确定出的消息密钥对该消息进行MAC验证,以验证所述消息是否可信,包括:
OBU采用确定出的消息密钥,对接收到的消息中除OBU生成的MAC值之外的其他信息进行MAC计算,得到MAC’值;
若得到的MAC’值与发送该消息的其他OBU生成的MAC值相同,则该OBU验证出该消息可信;
若得到的MAC’值与发送该消息的其他OBU生成的MAC值不同,则该OBU验证出该消息不可信。
基于同一发明构思,如图3所示,本发明实施例还提供了一种车联网系统中的消息验证方法,该方法包括:
步骤31、BCC在接收到OBU播发的消息之后,从该消息中获取消息明文,以确定OBU所在车辆的当前行驶状态;
步骤32、在需要跟踪该OBU所在的车辆时,BCC根据该消息中携带的加密公钥的标识信息,确定出与加密公钥对应的私钥,并使用确定出的私钥对该消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与该OBU所在车辆相关的信息。
本发明实施例中,BCC在接收到OBU播发的消息之后,从该消息中获取消息明文,以确定OBU所在车辆的当前行驶状态;在需要跟踪该OBU所在的车辆时,BCC根据该消息中携带的加密公钥的标识信息,确定出与加密公钥对应的私钥,并使用确定出的私钥对该消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与该OBU所在车辆相关的信息,从而能够根据与该OBU所在车辆相关的信息,跟踪该OBU所在的车辆。由于OBU使用获取到的BCC的加密公钥进行加密处理得到消息密文,若想解密该消息密文,需要使用与加密公钥对应的私钥进行解密,而与加密公钥对应的私钥只有BCC能够获知,因此,只有BCC可以解密该消息密文,而其他OBU在接收到该消息后,无法解密其中的消息密文,从而保护了发送消息的OBU所在车辆的隐私信息。
在实施中,步骤31之前,该方法还包括:
BCC将生成用于对数据进行加密所用的密钥对中的加密公钥通知给OBU。
较佳地,BCC将生成用于对数据进行加密所用的密钥对中的加密公钥通知给OBU,包括以下两种优选的实现方式:
1、BCC将CA颁发的加密公钥证书通知给OBU,该加密公钥证书中包含加密公钥。
该方式下,BCC生成用于对数据进行加密所用的密钥对,该密钥对包括加密公钥及其对应的私钥;BCC利用加密公钥向CA申请加密公钥证书,并接收CA颁发的加密公钥证书;以及BCC将该加密公钥证书通知给OBU。
2、BCC通过签名消息将自身生成的用于加密数据的加密公钥通知给OBU。
该方式下,BCC生成用于对数据进行加密所用的密钥对,该密钥对包括加密公钥及其对应的私钥;以及BCC通过签名消息将自身生成的用于加密数据的加密公钥通知给OBU。
其中,为了保证签名消息的安全性,该签名消息使用CA颁发的签名公钥证书进行数字签名处理,以防止该签名消息在传输过程中发生改变。
具体的,BCC生成用于申请签名公钥证书所用的密钥对,该密钥对包括用于签名验证的公钥及用于签名处理的私钥;该BCC利用该公钥向CA申请签名公钥证书,并接收CA颁发的公钥公钥证书。CA将颁发给BCC的签名公钥证书存储于服务器中,OBU可以从服务器下载该签名公钥证书,以对该BCC发送的签名消息进行验证。
在实施中,步骤31中,BCC在接收到OBU播发的消息之后,且从该消息中获取消息明文之前,还包括:
BCC根据该消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对该消息进行MAC验证,以验证该消息是否可信。
相应的,步骤31中,BCC从接收到的消息中获取消息明文,包括:BCC在验证出该消息可信后,从该消息中获取消息明文。
本发明实施例中,BCC根据该消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对该消息进行MAC验证,以验证该消息是否可信,以证明该消息在传输过程中没有发生改变,并且,由于本发明实施例引入了对称加密算法进行验证(即MAC验证),验证效率高,且成本低。
在实施中,步骤31之前,该方法还包括:
BCC生成至少一个用于进行MAC验证的消息密钥,并将所生成的消息密钥通知给OBU。
具体的,BCC所生成的消息密钥的数量为至少一个,每个消息密钥有对应的使用条件,包括有效期限、适用区域等。
基于上述任一实施例,BCC采用确定出的消息密钥对该消息进行MAC验证,以验证所述消息是否可信,包括:
BCC采用确定出的消息密钥,对接收到的消息中除OBU生成的MAC值之外的其他信息进行MAC计算,得到MAC’值;
若得到的MAC’值与OBU生成的MAC值相同,则BCC验证出该消息可信;
若得到的MAC’值与OBU生成的MAC值不同,则BCC验证出该消息不可信。
基于上述任一实施例,步骤32中,BCC使用确定出的私钥对接收到的消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与该OBU所在车辆相关的信息之前,还包括:
BCC从解密处理后的消息密文中获取该OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出签名公钥证书;以及
BCC根据该签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证。
相应的,步骤32中,BCC从解密处理后的消息密文中获取与OBU所在车辆相关的信息,包括:BCC在验证出解密处理后的消息密文中的数字签名值正确后,从解密处理后的消息密文中获取与OBU所在车辆相关的信息。
较佳地,该数字签名值是OBU使用与签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理得到的;
其中,第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、消息密钥的标识信息、加密公钥的标识信息、与OBU所在车辆相关的信息、签名公钥证书的标识信息。
基于上述任一实施例,与OBU所在车辆相关的信息至少包括:该车辆的标识信息。
下面从OBU、BCC、CA之间的交互,对本发明实施例提供的车联网系统中的消息生成和验证方法进行说明。
参见图4所示,该交互过程如下:
1.1:CA向BCC颁发用于加密公钥发布的加密公钥证书;
1.2:CA向OBU颁发用于数字签名的签名公钥证书。
本实施例不限定上述步骤1.1和步骤1.2的执行步骤,可以先执行步骤1.1,再执行步骤1.2,也可以先执行步骤1.2,再执行步骤1.1,还可以同时执行步骤1.1和步骤1.2。
1.3:BCC可以使用加密公钥证书发布加密公钥,或者使用由签名公钥证书签发的受数字签名保护的签名消息发布加密公钥。
2.1:BCC生成用于生成消息认证码MAC的消息密钥,并将该密钥通过密钥分发系统安全地发送给OBU。
BCC将存档其所分发的消息密钥,以便将来在需要的时候能够对OBU播发的消息进行认证。BCC采用什么机制将消息密钥安全地分发给OBU不属于本专利所关心的泛围。
3.1:OBU生成消息中的各种消息明文;
其中,该消息明文包括:当前时间,当前地理位置,车辆行驶方向,车辆行驶速度等车辆主动安全系统所需要的信息。
3.2:OBU利用私钥对需要签名的相关字段进行数字签名,得到数字签名值;
其中,用于生成数字签名的数据项包括:
消息类型,该字段的值使接收者能够判断接收到的消息是安全行驶消息,还是用于其他目的的消息;
消息明文;
消息密钥标识,用于描述生成MAC时所用的密钥,以便接收者使用相同的密钥验证该消息;
加密公钥标识,用于描述OBU使用哪个加密公钥对数据进行加密;若该加密公钥保存在一个公钥证书中,则该标识是该公钥证书的标识;若该加密公钥是以其他形式提供给OBU,则该标识字段内保存着相应的标识;
车辆信息,包含有车辆标识(如车牌号)或其他属于用户隐私的信息;
签名证书标识,用于验证OBU所生成的用于数字签名的签名公钥证书的唯一标识,该标识可以使用签名公钥证书序列号,或其他可以唯一标识该签名公钥证书的信息。
3.3:OBU利用加密公钥对需要加密的相关字段进行加密,得到消息密文;
其中,需要进行加密的数据项包括:车辆信息、签名证书标识、数字签名值。
3.4:OBU利用消息密钥对需要播发的相关字段进行MAC计算,并最终生成用于播发的安全行驶消息(即广播消息)。
其中,用于MAC计算的数据项包括:消息类型、消息明文、消息密钥标识、加密公钥标识、消息密文。
上述OBU生成安全行驶消息的过程如图5所示。
4.1:OBU将生成的安全行驶消息广播出去。
其中,周围的OBU和BCC都是可能的消息接收者。BCC通常可通过设置在路边的RSU实时获得OBU播发的安全行驶消息,BCC也可以通过OBU间接地非实时地获取其他OBU播发的安全行驶消息。
其他OBU接收到该安全行驶消息后的处理过程如下:
5.1:其他OBU接收到该安全行驶消息后,利用消息密钥对其接收到的安全行驶消息进行基于MAC的认证;
5.2:其他OBU提取该消息中与安全行驶相关的消息明文,以便为本车的安全行驶提供参考。
因为其他OBU没有与数据加密相对应的私钥,所以其他OBU没有能力对消息中的密文进行解密,也就无法对消息源的身份进行识别或跟踪。
上述OBU进行MAC验证的过程如图6所示。
BCC接收到该安全行驶消息后的处理过程如下:
6.1:BCC利用其所拥有的消息密钥对安全行驶消息进行MAC认证,具体参见图6所示。
6.2:BCC利用其所拥有的与数据加密相对应的私钥对消息密文进行解密,具体参见图7所示;
6.3:BCC利用OBU的公钥验证该消息中的数字签名,从而对消息的播发者进行认证,具体参见图8所示;
6.4:BCC从消息密文中提取与该OBU所在车辆相关的信息(即私密信息)。
下面通过几个具体实施例对本发明提供的车联网系统中的消息生成和验证方法进行说明。
实施例一、本实施例主要用于描述BCC的加密公钥证书的颁发过程,具体如下:
1、BCC生成用于非对称加解密的密钥对:[BCC-Public-Key,BCC-Private-Key],其中BCC-Public-Key为用于加密的公钥,BCC-Private-Key为用于解密的私钥;BCC生成用于申请证书的密钥对[BCC-Public-Key-S,BCC-Private-Key-S],其中BCC-Public-Key-S为用于验证数字签名的公钥,BCC-Private-Key-S为用于进行数字签名的私钥。
2、BCC保持其私钥BCC-Private-Key和BCC-Private-Key-S的私密性,而利用BCC-Public-Key和BCC-Public-Key-S向CA申请一个加密公钥证书,也即该加密公钥证书中含有用于数据加密的加密公钥。
3、CA向BCC颁发一个包含有加密公钥BCC-Public-Key的加密公钥证书:BCC-ECert。
4、BCC采用安全手段确保将BCC-ECert正确写入OBU中。BCC可能会向OBU中写入多个含有不同加密公钥的加密公钥证书,并规定如何使用这些加密公钥证书,即如何使用该些加密公钥证书中的加密公钥。
实施例二、本实施例主要用于描述BCC的加密公钥的发布过程,具体如下:
1、BCC生成用于申请签名公钥证书的密钥对[BCC-Public-Key-S,BCC-Private-Key-S],其中BCC-Public-Key-S为用于验证数字签名的公钥,BCC-Private-Key-S为用于进行数字签名的私钥。
2、BCC保持其私钥BCC-Private-Key-S的私密性,而利用BCC-Public-Key-S向CA申请一个签名公钥证书。
3、CA向BCC颁发一个签名公钥证书:BCC-SCert。
4、BCC利用签名消息将加密公钥BCC-Public-Key正确地写入OBU中,并赋予该加密公钥一个唯一标识该加密公钥的标识BCC-EPK。BCC可能会向OBU中写入多个不同的加密公钥,并规定如何使用这些加密公钥。
实施例三、本实施例主要用于描述OBU的签名公钥证书的颁发过程,具体如下:
1、OBU-X生成用于数字签名的密钥对:[OBUX-Public-Key,OBUX-Private-Key],其中OBUX-Public-Key为用于验证数字签名的公钥,OBUX-Private-Key为用于进行数字签名的私钥。
2、OBU-X保持其私钥OBUX-Private-Key的私密性,而利用OBUX-Public-Key向CA申请一个签名公钥证书。
3、CA向OBU-X颁发签名公钥证书:OBUX-SCert。
4、BCC保存OBUX-SCert,因此OBU-X不需要在其广播消息中携带用于验证数字签名的签名公钥证书,而只是提供签名公钥证书的标识即可。
实施例四、本实施例主要用于描述BCC分发消息密钥的过程,具体如下:
1、BCC生成一系列的用于生成消息验证码MAC的消息密钥:MAC-Key1,MAC-Key2,…,MAC-Keyn。
2、BCC将这些消息密钥安全地分发给OBU,并规定了这些消息密钥的使用条件,例如消息密钥MAC-Key1的应用条件是:适用区域为AREA-1;有效期限为[T1,T2],其中T1为有效期起始时间,T2为有效期终止时间。
实施例五、本实施例主要用于描述OBU生成并广播车辆安全行驶消息的过程,具体如下:
1、OBU-X根据车辆当前行驶状态生成消息明文(Plaintext),该消息明文中包含有车联网安全系统所规定的播发内容,例如当前时间,当前地理位置,车辆行驶方向和速度等信息。
2、OBU-X生成用于数字签名的输入信息,并利用其私钥对该输入信息进行数字签名操作,具体为:
(1)用于生成数字签名的输入信息包括:
消息类型:MessageCode;
消息明文:Plaintext;
消息密钥标识:MAC-Key1-ID;
加密公钥标识:BCC-Ecert-ID(或BCC-EPK-ID);
车辆信息:VehicleInfo;
签名公钥证书标识:OBUX-Scert-ID。
(2)OBUX利用与签名公钥证书对应的私钥对上述输入信息执行数字签名过程,并生成数字签名值:OBUX-Signature=Sign(MessageCode+Plaintext+MAC-Key1-ID+BCC-ECert-ID(或BCC-EPK-ID)+VehicleInfo+OBUX-SCert-ID)。
3、OBU-X生成用于公钥加密的输入信息,并利用BCC的加密公钥证书中的加密公钥或BCC通过签名消息提供的加密公钥对其进行数据加密,具体为:
(1)用于公钥加密的输入信息包括:
车辆信息:VehicleInfo;
签名公钥证书标识:OBUX-Scert-ID;
数字签名值:OBUX-Signature。
(2)OBU-X利用消息密钥对上述输入信息执行公钥加密过程,并生成消息密文:
OBUX-Ciphertext=Encrypt(VehicleInfo+OBUX-SCert-ID+OBUX-Signature)。
4、OBU-X生成用于MAC计算的输入信息,并利用BCC规定的消息密钥生成消息验证码,具体为:
(1)用于生成MAC的输入信息包括:
消息类型:MessageCode;
消息明文:Plaintext;
消息密钥标识:MAC-Key1-ID;
加密公钥标识:BCC-ECert-ID(或BCC-EPK-ID);
消息密文:OBUX-Ciphertext。
(2)OBU-X利用消息密钥对上述输入信息执行MAC计算过程,并生成MAC值:OBUX-MAC=MACCalculate(MessageCode+Plaintext+MAC-Key1-ID+BCC-Ecert-ID(或BCC-EPK-ID)+OBUX-Ciphertext)。
5、OBU-X将用于MAC计算的输入信息与得到的MAC值连接成最终的车辆安全行驶消息,即:
OBUX-BMess=MessageCode+Plaintext+MAC-Key1-ID+BCC-Ecert-ID(或BCC-EPK-ID)+OBUX-Ciphertext+OBUX-MAC。
6、OBU-X向周围广播上述车辆安全行驶消息OBUX-BMess。
实施例六、本实施例主要用于描述OBU接收并验证其他OBU播发的车辆安全行驶消息的过程,具体如下:
1、OBU-Y接收其他OBU广播发送的消息。
2、OBU-Y解析接收到的消息,利用该消息中的MessageCode确定该消息的类型,若属于车辆安全行驶消息(即OBUX-BMess)则继续进行下面的操作,若为其他类型的消息则进行其他相应的操作。
3、OBU-Y对接收到的消息进行MAC验证,具体为:
(1)读取消息中的消息验证码OBUX-MAC和消息密钥标识MAC-Key1-ID;
(2)利用MAC-Key1-ID对应的消息密钥(即MAC-Key1)对该消息中除OBUX-MAC之外其他内容进行MAC计算,并获得MAC’的值。若接收到的消息验证码OBUX-MAC与计算获得的消息验证码MAC’的值相等,则证明接收到的消息(OBUX-BMess)是正确的。
(3)若OBUX-BMess正确,则读取消息明文Plaintext,从而获得OBU-X所在车辆的行驶信息,例如车辆当前地理位置,车辆行驶方向和行驶速度等信息。
实施例七、本实施例主要用于描述BCC对车辆安全行驶消息的认证过程,具体如下:
1、BCC对车辆安全行驶消息的认证,认证的具体过程与一个OBU验证其他OBU播发的车辆安全行驶消息的过程相同。
2、BCC对该车辆安全行驶消息进行解密,具体为:
(1)BCC根据该车辆安全行驶消息中的加密公钥标识确定应该使用哪个私钥对消息密文进行解密。
(2)BCC利用与加密公钥对应的私钥对消息密文进行解密,从而获得解密信息:VehicleInfo,OBUX-SCert-ID,OBUX-Signature。
3、BCC对数字签名进行验证,具体为:
(1)BCC根据解密信息中的签名公钥证书标识OBUX-SCert-ID获取相应的签名公钥证书(即OBUX-SCert),并验证该签名公钥证书的可用性。
(2)BCC利用签名公钥证书中的公钥验证该车辆安全行驶消息中的数字签名值(OBUX-Signature)的正确性;若数字签名验证通过,则证明接收消息中如下信息的正确性:
MessageCode,Plaintext,MAC-Key1-ID,BCC-Ecert-ID(或BCC-EPK-ID),VehicleInfo,OBUX-SCert-ID。
(3)BCC通过解析VehicleInfo中信息,可获得其中包含的车辆标识,从而可以跟踪该车辆。
上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被调用时,执行上述方法步骤。
基于同一发明构思,本发明实施例还提供了一种车载设备OBU,如图9所示,该OBU包括:
第一处理模块91,用于使用与已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,所述消息明文为所述OBU根据自身所在车辆的当前行驶状态生成的信息;
第二处理模块92,用于使用获取到的后台控制中心BCC的加密公钥,对包括所述数字签名值的第二信息进行加密处理,得到消息密文;
第三处理模块93,用于根据包括所述消息密文的第三信息,生成所需播发的消息,并发送所生成的消息。
较佳地,该OBU还包括:
第四处理模块94,用于使用所述BCC生成的用于生成消息认证码MAC的消息密钥,对包括所述消息密文的第三信息进行MAC计算,得到MAC值;
所述第三处理模块93具体用于:根据所述第三信息与所述MAC值生成所需播发的消息。
较佳地,所述第一信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、所述加密公钥的标识信息、与所述车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,所述第二信息中还包括以下信息中的至少一种信息:与所述车辆相关的信息、所述签名公钥证书的标识信息。
较佳地,所述第三信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息明文、所述消息密钥的标识信息、所述加密公钥的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
基于同一发明构思,本发明实施例还提供了一种后台控制中心BCC,如图10所示,该BCC包括:
第一控制模块101,用于在接收到车载设备OBU发送的消息之后,从所述消息中获取消息明文,以确定所述OBU所在车辆的当前行驶状态;
第二控制模块102,用于在需要跟踪所述OBU所在的车辆时,根据所述消息中携带的加密公钥的标识信息,确定出与所述加密公钥对应的私钥,并使用确定出的私钥对所述消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述BCC还包括:
第三控制模块103,用于在接收到OBU发送的消息后,根据所述消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对所述消息进行MAC验证,以验证所述消息是否可信;
所述第一控制模块101具体用于:在所述第三控制模块验证出所述消息可信后,从所述消息中获取消息明文。
较佳地,所述第二控制模块102使用确定出的私钥对所述消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息之前,还用于:
从解密处理后的消息密文中获取所述OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出所述签名公钥证书;根据所述签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证;以及在验证出所述数字签名值正确后,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述数字签名值是所述OBU使用与所述签名公钥证书中的签名公钥对应的私钥,对包括所述消息明文的第一信息进行数字签名处理得到的;
其中,所述第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、加密公钥的标识信息、与所述OBU所在车辆相关的信息、签名公钥证书的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
基于同一发明构思,本发明实施例还提供了另一种车载设备OBU,如图11所示,该OBU包括:收发信机111、与该收发信机111连接的至少一个处理器112,其中:
处理器112被配置用于:使用与已申请的签名公钥证书中的签名公钥对应的私钥,对包括消息明文的第一信息进行数字签名处理,得到数字签名值,所述消息明文为所述OBU根据自身所在车辆的当前行驶状态生成的信息;使用获取到的后台控制中心BCC的加密公钥,对包括所述数字签名值的第二信息进行加密处理,得到消息密文;以及根据包括所述消息密文的第三信息,生成所需播发的消息;
收发信机111被配置用于:发送处理器112所生成的消息。
较佳地,处理器112还被配置用于:
使用所述BCC生成的用于生成消息认证码MAC的消息密钥,对包括所述消息密文的第三信息进行MAC计算,得到MAC值;以及根据所述第三信息与所述MAC值生成所需播发的消息。
较佳地,所述第一信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、所述加密公钥的标识信息、与所述车辆相关的信息、包含用于验证数字签名所用的公钥的签名公钥证书的标识信息。
较佳地,所述第二信息中还包括以下信息中的至少一种信息:与所述车辆相关的信息、所述签名公钥证书的标识信息。
较佳地,所述第三信息中还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息明文、所述消息密钥的标识信息、所述加密公钥的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
基于同一发明构思,本发明实施例还提供了另一种后台控制中心BCC,如图12所示,该BCC包括:收发信机121、以及与该收发信机121连接的至少一个处理器122,其中:
收发信机121被配置用于:接收车载设备OBU发送的消息;
处理器122被配置用于:从收发信机121接收到的消息中获取消息明文,以确定所述OBU所在车辆的当前行驶状态;在需要跟踪所述OBU所在的车辆时,根据所述消息中携带的加密公钥的标识信息,确定出与所述加密公钥对应的私钥,并使用确定出的私钥对所述消息中携带的消息密文进行解密处理,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,处理器122还被配置用于:在收发信机121接收到OBU发送的消息后,根据所述消息中携带的用于生成消息认证码MAC的消息密钥的标识信息,确定出相应的消息密钥,并采用确定出的消息密钥对所述消息进行MAC验证,以验证所述消息是否可信;并在验证出所述消息可信后,从所述消息中获取消息明文。
较佳地,处理器122使用确定出的私钥对所述消息中携带的消息密文进行解密处理之后,且从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息之前,还用于:
从解密处理后的消息密文中获取所述OBU已申请的签名公钥证书的标识信息,并根据获取到的标识信息确定出所述签名公钥证书;根据所述签名公钥证书中的签名公钥,对解密处理后的消息密文中的数字签名值进行验证;以及在验证出所述数字签名值正确后,从解密处理后的消息密文中获取与所述OBU所在车辆相关的信息。
较佳地,所述数字签名值是所述OBU使用与所述签名公钥证书中的签名公钥对应的私钥,对包括所述消息明文的第一信息进行数字签名处理得到的;
其中,所述第一信息还包括以下信息中的至少一种信息:所要播发的消息的类型信息、所述消息密钥的标识信息、加密公钥的标识信息、与所述OBU所在车辆相关的信息、签名公钥证书的标识信息。
较佳地,与所述车辆相关的信息至少包括:所述车辆的标识信息。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。