安全通信的方法和装置与流程

文档序号:26013598发布日期:2021-07-23 21:34阅读:137来源:国知局
安全通信的方法和装置与流程

本申请涉及通信领域,尤其涉及一种安全通信的方法和装置。



背景技术:

在多个终端之间进行加密通信的场景下,每个终端具有各自的通信密钥,通信的多个终端需要基于相同版本的通信密钥对消息进行加解密,以实现消息的成功传输。示例性地,在基于车联网(vehicletoeverything,v2x)通信的场景下,车辆(也可称为车联网终端)需要随时通过v2x广播消息广播自身的位置坐标、以及车辆基于某个参考点的历史轨迹。为了防止恶意车辆或专门伪造的恶意路侧监听设备有意监听收集周围车辆的广播,获得连续坐标等数据,需要对上述v2x广播消息中的坐标数据进行加密保护。此外,为了提高通信密钥的安全性,降低密钥泄露所造成的影响,需要对消息加密密钥进行周期性更新。

目前,终端获取通信密钥的方式主要有两种:一种是所有终端在通信过程中临时从云端密钥管理平台处获取通信密钥,保证通信双方的密钥标识一致;另一种是云端密钥管理平台定期为多个终端下发更新的通信密钥,保证多个终端之间的密钥标识一致。

上述方式需要终端随时具备联网能力,对终端联网要求苛刻。一旦终端无法连接云端密钥管理平台(例如终端处于山区、桥洞等无网环境中),则无法更新通信密钥,通信将无法正常进行。



技术实现要素:

本申请提供一种安全通信的方法和装置,能够在终端无法连接云端密钥管理平台的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

第一方面,提供了一种安全通信的方法,包括:第二终端接收来自第一终端的第一消息,该第一消息包括第一密钥的标识信息;获得第一结果,该第一结果用于指示上述第一密钥的标识信息与上述第二终端的第二密钥的标识信息是否匹配;根据该第一结果,发送第二消息,该第二消息包括第一密钥更新信息,该第一密钥更新信息用于更新上述第一终端的密钥或上述第二终端的密钥。

应理解,上述第一消息还包括第一加密消息、第一终端的证书(包括第一终端的公钥)、第一终端的签名或者其他信息,本申请对此不作限定。其中,该第一加密消息是采用该第一密钥进行加密的。在v2x通信的场景下,该第一加密消息可以包括车辆历史轨迹信息、车辆的位置坐标或者其他隐私信息等。

还应理解,上述第一消息和第二消息可以采用广播的方式进行传输,但本申请实施例对此不作限定。

本申请实施例的安全通信的方法,通过终端与终端之间的消息交互检查密钥标识,从而基于检查结果,进行终端和终端之间的密钥更新过程,整个过程基于终端与终端之间的消息,不依赖于终端与网络之间的连接,能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

结合第一方面,在第一方面的某些实现方式中,上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值时,上述第一密钥更新信息用于更新第一终端的密钥。

应理解,本申请实施例中的第一值和第二值可以为密钥的标识大小,版本号的大小,或者时间的先后顺序等等,例如,上述第一值可以为20210228,第二值可以为20210305。本申请对此不作限定。

结合第一方面,在第一方面的某些实现方式中,上述第一密钥更新信息包括第二密钥的标识信息、第一终端的标识、不小于上述第二值对应的第一更新密钥以及该第一更新密钥的标识信息。

结合第一方面,在第一方面的某些实现方式中,在根据上述第一结果,发送第二消息之前,该方法还包括:第二终端采用第一终端的证书的公钥对上述第一更新密钥进行加密。

本申请实施例通过对第一更新密钥进行加密,可以进一步确保第一更新密钥的安全传输。

结合第一方面,在第一方面的某些实现方式中,上述第一更新密钥信息还包括临时公钥;在根据上述第一结果,发送第二消息之前,该方法还包括:第二终端随机生成临时私钥对和上述临时公钥;第二终端使用该临时私钥和第一终端的证书的公钥生成第一临时加密密钥;第二终端采用该第一临时加密密钥对上述第一更新密钥进行加密。

可选地,上述第一临时加密密钥和第二临时加密密钥可以采用密钥协商算法进行计算。

应理解,解密算法需要与加密算法相对应,才能完成解密操作。例如,加密算法为公钥加密,则解密算法为私钥解密。

本申请实施例的更新密钥采用终端双方计算得到的临时加密密钥进行加密,具有前向安全性,攻击者即使截取了第一消息并破解了第一终端的证书的私钥,也无法解密得到更新密钥,进一步提高了系统安全性。

结合第一方面,在第一方面的某些实现方式中,在根据第一结果,发送第二消息之后,该方法还包括:第二终端接收来自第一终端的第三消息,该第三消息包括上述第二密钥的标识信息。

结合第一方面,在第一方面的某些实现方式中,上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识信息对应的第一值时,该第二消息包括第二加密消息和第一密钥更新信息,该第一密钥更新信息用于更新第二终端的密钥。

结合第一方面,在第一方面的某些实现方式中,上述第一密钥更新信息包括第二终端的本地存储的任一密钥的标识信息;在根据第一结果,发送第二消息之前,该方法还包括:第二终端确定本地存储的密钥中是否存在与上述第一值相同的密钥;若本地存储的密钥中不存在与该第一值相同的密钥,第二终端从本地存储的密钥中选择任一密钥;第二终端采用选择的任一密钥加密上述第二加密消息。

本申请实施例中,若第二终端采用本地存储的最高标识的密钥对第二消息进行加密,可以避免第二终端获取到的更新密钥中存在与第二终端本地存储的密钥相同的密钥标识,有效的减少了资源的开销。

结合第一方面,在第一方面的某些实现方式中,在根据第一结果,发送第二消息之后,该方法还包括:第二终端接收来自第一终端的第四消息,该第四消息包括第二密钥更新信息,其中,该第二密钥更新信息包括上述第一密钥的标识信息、第二终端的标识、不小于上述第一值对应的第二更新密钥以及该第二更新密钥的标识信息;第二终端根据上述第二密钥更新信息,对第二终端的密钥进行更新。

应理解,上述第一终端接收到第二消息后,会验证消息的合法性。具体地,验证过程包括验证第二终端的证书的合法性、有效性以及根据第二终端的公钥验证第一消息中的签名的正确性。

还应理解,上述密钥更新方式可以是将第二终端本地存储的密钥替换为第一更新密钥。也可以是在第二终端本地存储的密钥基础上增加第一更新密钥。具体更新方式本申请对此不作限定。

结合第一方面,在第一方面的某些实现方式中,上述第二更新密钥是采用第二终端的证书的公钥或第三临时加密密钥加密的,其中,第三临时加密密钥是第一终端使用第一终端随机生成的临时私钥和上述第二终端的证书的公钥生成的;该方法还包括:第二终端采用第二终端的证书的私钥或第四临时加密密钥解密该第二更新密钥,其中,第四临时加密密钥是第二终端使用上述第一终端随机生成的临时公钥和第二终端的证书的私钥生成的。

综上所述,本申请提供的安全通信的方法,通过终端与终端之间的消息交互检查密钥标识,一旦发现所使用的密钥标识不匹配,则进行终端和终端之间的密钥更新过程,整个过程基于终端与终端之间的消息交互(即在交互的消息中携带密钥更新信息),不依赖于终端与网络之间的连接,能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

第二方面,提供了另一种安全通信的方法,包括:第一终端发送第一消息,该第一消息包第一密钥的版本;该第一终端接收来自第二终端的第二消息,该第二消息是根据第一结果确定的,该第一结果用于指示该第一密钥的标识信息与该第二终端的第二密钥的标识信息是否匹配,该第二消息包括第一密钥更新信息,该第一密钥更新信息用于更新该第一终端的密钥或该第二终端的密钥。

结合第二方面,在第二方面的某些实现方式中,上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值时,该第一密钥更新信息用于更新上述第一终端的密钥。

结合第二方面,在第二方面的某些实现方式中,上述第一密钥更新信息包括第二密钥的标识信息、第一终端的标识、不低于上述第二值对应的第一更新密钥以及该第一更新密钥的标识信息。

结合第二方面,在第二方面的某些实现方式中,上述第一更新密钥是采用上述第一终端的证书的公钥加密的;该方法还包括:该第一终端采用第一终端的证书的私钥对该第一更新密钥进行解密。

结合第二方面,在第二方面的某些实现方式中,上述第一更新密钥是采用第一临时加密密钥加密的,该第一临时加密密钥是第二终端使用第二终端随机生成的临时私钥和上述第一终端的证书的公钥生成的,该第一更新密钥信息还包括临时公钥;该方法还包括:第一终端使用该临时公钥和第一终端的证书的私钥生成第二临时加密密钥;该第一终端采用该第二临时加密密钥对该第一更新密钥进行解密。

结合第二方面,在第二方面的某些实现方式中,在第一终端接收来自第二终端的第二消息之后,该方法还包括:第一终端根据第一密钥更新信息,对该第一终端的密钥进行更新;该第一终端发送第三消息,该第三消息包括上述第二密钥的标识信息。

结合第二方面,在第二方面的某些实现方式中,上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识信息对应的第一值时,该第一密钥更新信息用于更新上述第二终端的密钥。

结合第二方面,在第二方面的某些实现方式中,该第一密钥更新信息包括上述第二终端本地存储的任一密钥的标识信息。

结合第二方面,在第二方面的某些实现方式中,在上述第一终端接收来自第二终端的第二消息之后,该方法还包括:获得第二结果,该第二结果为上述第一密钥的标识信息对应的第一值大于上述任一密钥的标识信息对应的第三值;该第一终端发送第四消息,该第四消息包括第二密钥更新信息,其中,第二密钥更新信息包括上述第一密钥的标识信息、第二终端的标识、不小于上述第一值对应的第二更新密钥以及该第二更新密钥的标识信息。

结合第二方面,在第二方面的某些实现方式中,上述第二更新密钥是采用上述第二终端的证书的公钥或第三临时加密密钥加密的,其中,第三临时加密密钥是上述第一终端使用第一终端随机生成的临时私钥和上述第二终端的证书的公钥生成的;该方法还包括:上述第二终端采用第二终端的证书的私钥或第四临时加密密钥解密该第二更新密钥,其中,第四临时加密密钥是上述第二终端使用上述第一终端随机生成的临时公钥和第二终端的证书的私钥生成的。

第三方面,提供了一种安全通信的装置,包括:用于执行上述第一方面中任一种可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面中任一种可能的实现方式中的方法的模块。

在一种设计中,该装置可以包括执行上述第一方面中所描述的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。

在另一种设计中,该装置为通信芯片,通信芯片可以包括用于发送信息或数据的输入电路或者接口,以及用于接收信息或数据的输出电路或者接口。

在另一种设计中,该装置为通信设备,通信设备可以包括用于发送信息或数据的发射机,以及用于接收信息或数据的接收机。

在另一种设计中,该装置用于执行上述第一方面或第一方面任意可能的实现方式中的方法,该装置可以配置在第二终端中,或者该通信装置本身即为上述第二终端。

第四方面,提供了另一种安全通信的装置,包括:用于执行上述第二方面中任一种可能的实现方式中的方法。具体地,该通信装置包括用于执行上述第二方面中任一种可能的实现方式中的方法的模块。

在一种设计中,该装置可以包括执行上述第二方面中所描述的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。

在另一种设计中,该装置为通信芯片,通信芯片可以包括用于发送信息或数据的输入电路或者接口,以及用于接收信息或数据的输出电路或者接口。

在另一种设计中,该装置为通信设备,通信设备可以包括用于发送信息或数据的发射机,以及用于接收信息或数据的接收机。

在另一种设计中,该装置用于执行上述第二方面或第二方面任意可能的实现方式中的方法,该通信装置可以配置在第一终端中,或者该装置本身即为上述第一终端。

第五方面,提供了另一种安全通信的装置,包括,处理器,存储器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该装置执行上述任一方面中任一种可能实现方式中的方法。

可选地,所述处理器为一个或多个,所述存储器为一个或多个。

可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。

可选地,该装置还包括,发射机(发射器)和接收机(接收器),发射机和接收机可以分离设置,也可以集成在一起,称为收发机(收发器)。

第六方面,提供了一种通信系统,包括用于实现上述第一方面或第一方面的任一种可能实现的方法的装置,以及用于实现上述第二方面或第二方面的任一种可能实现的方法的装置。

在一个可能的设计中,该通信系统还可以包括本申请实施例所提供的方案中与第一终端和/或第二终端进行交互的其他设备。

第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述任一方面中任一种可能实现方式中的方法。

第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述任一方面中任一种可能实现方式中的方法。

第九方面,本申请提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面至第二方面中的任一方面中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。

在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和数据,存储器位于处理器之内或处理器之外。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

附图说明

图1是本申请提供的一种通信场景的示意图;

图2是本申请提供的一种加密通信场景的示意图;

图3是本申请实施例提供的安全通信的方法的示意性流程图;

图4是本申请实施例的一种v2x消息格式;

图5是本申请实施例提供的一种安全通信的方法的示意性流程图;

图6是本申请实施例提供的另一种安全通信的方法的示意性流程图;

图7是本申请实施例提供的一种安全通信的装置的示意性框图;

图8是本申请实施例提供的另一种安全通信的装置的示意性框图;

图9是本申请实施例提供的再一种安全通信的装置的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

本申请实施例的技术方案可以应用于各种通信系统,例如:长期演进(longtermevolution,lte)系统、lte频分双工(frequencydivisionduplex,fdd)系统、lte时分双工(timedivisionduplex,tdd)、通用移动通信系统(universalmobiletelecommunicationsystem,umts)、第五代(5thgeneration,5g)系统或新无线(newradio,nr)或者其他演进的通信系统等。

本申请实施例中的终端也可以称为:用户设备(userequipment,ue)、移动台(mobilestation,ms)、移动终端(mobileterminal,mt)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。

终端可以是一种向用户提供语音/数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例为:手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备,虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remotemedicalsurgery)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端、蜂窝电话、无绳电话、会话启动协议(sessioninitiationprotocol,sip)电话、无线本地环路(wirelesslocalloop,wll)站、个人数字助理(personaldigitalassistant,pda)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5g网络中的终端或者未来演进的公用陆地移动通信网络(publiclandmobilenetwork,plmn)中的终端等,本申请实施例对此并不限定。

作为示例而非限定,在本申请实施例中,该终端还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。

此外,在本申请实施例中,终端还可以是物联网(internetofthings,iot)系统中的终端,iot是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。

本申请的终端还可以是作为一个或多个部件或者单元而内置于车辆的车载模块、车载模组、车载部件、车载芯片或者车载单元,车辆通过内置的所述车载模块、车载模组、车载部件、车载芯片或者车载单元可以实施本申请的方法。因此,本申请实施例可以应用于车联网,例如车辆外联(vehicletoeverything,v2x)、车间通信长期演进技术(longtermevolution-vehicle,lte-v)、车到车(vehicle-to-vehicle,v2v)等。本申请实施例所涉及的第一终端和第二终端以车辆为例,进行示例性说明,当然,也可以替换为上述其它终端,例如第一终端为车辆,第二终端为手机,本申请实施例对此不作限定。

在本申请实施例中,终端包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessingunit,cpu)、内存管理单元(memorymanagementunit,mmu)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。并且,本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可,例如,本申请实施例提供的方法的执行主体可以是终端,或者是终端中能够调用程序并执行程序的功能模块。

另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compactdisc,cd)、数字通用盘(digitalversatiledisc,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。

为便于理解本申请实施例,首先介绍本申请涉及到的相关术语。

1、车联网(vehicle-to-everything,v2x):是将汽车和其他车辆或是可能影响汽车的设备所进行的通信。车联网是包括其他种类通信的汽车通信系统,其他的通信有车与路边设施(vehicle-to-infrastructure,v2i)通信、车与网络通信(vehicle-to-network,v2n)、车与车(vehicle-to-vehicle,v2v)通信、车与行人(vehicle-to-pedestrian,v2p)通信、车与设备(vehicle-todevice,v2d)通信。

2、v2x消息:车联网通信过程中的交互信息,示例性地,v2x消息可以为v2v或v2i过程中的广播消息。

3、路侧单元(roadsideunit,rsu):安装在路侧,采用专用短程通信技术与车载通信单元进行通讯,实现车辆身份识别,电子扣分等业务的装置。rsu是由高增益定向束控读写天线和射频控制器组成。高增益定向束控读写天线是一个微波收发模块,负责信号和数据的发送/接收、调制/解调、编码/解码、加密/解密;射频控制器是控制发射和接收数据以及处理向上位机收发信息的模块。

4、迪菲-赫尔曼密钥交换(diffie–hellmankeyexchange,dh)协议:是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。椭圆曲线迪菲-赫尔曼秘钥交换(ellipticcurvediffie–hellmankeyexchange,ecdh)协议使用椭圆曲线密码算法完成类似dh协议的交互过程并创建密钥。

5、椭圆曲线密码学(ellipticcurvecryptography,ecc):是一种基于椭圆曲线数学的公开密钥加密算法,包括一系列椭圆曲线上的点坐标运算(如点加、倍点、点乘等),以及公钥加密、签名、验签、数字信封等密码算法。

6、sm2算法:是一种公钥密码算法,基于更加安全先进的椭圆曲线密码机制,在国际标准的ecc椭圆曲线密码理论基础上进行自主研发设计,具备ecc算法的性能特点并实现优化改进。

7、密钥派生函数(keyderivationfunctions,kdf):使用伪随机函数从诸如主密钥或密码的秘密值中派生出一个或多个密钥。kdf可用于将密钥扩展为更长的密钥或获取所需格式的密钥,例如,将作为迪菲-赫尔曼密钥交换结果的组元素转换为对称加密密钥。

下面结合图1对适用于本申请实施例的通信场景进行详细介绍。

图1示出了本申请提供的一种通信场景100。在图1所示的通信场景100中,第一终端110与第二终端120之间可以通过无线通信技术进行通信。该无线通信技术可以为上述4g或5g等,本申请实施例对此不作限定。

一般情况下,第一终端110和第二终端120之间的距离较短。此外,第一终端110和第二终端120之间的通信链路可以称为侧行链路(sidelink,sl)或其他名称,本申请实施例对此也不作限定。

在一种可能的场景中,上述图1中的第一终端110和第二终端120可以均为车载设备(也可以为车辆或车联网终端),其对应的通信可以称为v2v通信。在另一种可能的场景中,上述图1中的第一终端110可以为车载设备(也可以为车辆或车联网终端),第二终端120可以为rsu,其对应的通信可以称为v2i通信。

应理解,图1仅为便于理解而示出的简化示意图,在其他可能的场景中,该通信场景中还可以包括其他设备,图1中未予以画出。

结合上述图1所示的场景,当图1中所示的第一终端110和第二终端120之间进行通信时,为了防止恶意设备监听收集相关数据,第一终端110和第二终端120可以对传输消息进行加密传输。因此,第一终端110和第二终端120需要从云端密钥管理平台获取通信密钥,消息的发送端采用该通信密钥对消息进行加密并发送,消息的接收端需要基于相同版本的密钥对该消息进行解密,从而获取消息中的内容,完成通信。

图2示出了本申请提供的一种加密通信场景200。如图2所示,该场景200中包括第一终端、第二终端以及云端密钥管理平台。其中,云端密钥管理平台负责统一管理各个通信终端进行消息加密通信时的密钥。云端密钥管理平台可以定期向第一终端和第二终端下发通信密钥(或更新通信密钥),或者,云端密钥管理平台在接收到第一终端和/或第二终端发送的密钥请求消息时,向该第一终端和/或第二终端下发通信密钥(或更新通信密钥)。第一终端和/或第二终端从云端密钥管理平台获取通信密钥之后,可以将通信密钥在本地保存,并在后续加密通信的过程中使用通信密钥对部分信息进行加密保护(例如,v2x消息中的坐标、历史轨迹等信息)。

应理解,上述云端密钥管理平台可以是服务器,第一终端和第二终端具备联网能力,能够通过互联网连接至云端密钥管理平台。本申请实施例对此不作限定。

示例性地,在基于v2x通信的场景下,车辆(也可称为车联网终端)需要随时通过v2x广播消息广播自身的位置坐标、以及车辆基于某个参考点的历史轨迹,使得车辆能够判断与他车之间的相对位置,结合车辆传感器对车道,周边物体的感知和定位,从而实现包括前向碰撞预警、盲区/变道辅助、紧急制动预警、逆向超车碰撞预警、交叉路口碰撞预警、左转辅助等多种功能。根据现行国家测绘管理条例《测绘管理工作国家秘密范围的规定》的解读,这些位置坐标信息需要加密保护。车辆历史轨迹信息数据属于用户个人隐私数据。因此,为了防止恶意车辆或专门伪造的恶意路侧监听设备有意监听收集周围车辆的广播,获得连续坐标等数据,需要对上述v2x广播消息中的坐标数据进行加密保护。此外,为了提高通信密钥的安全性,降低密钥泄露所造成的影响,需要对消息加密密钥进行周期性更新。由于v2x广播消息需要各设备之间互联互通,v2x广播消息中的坐标信息加密所需的密钥也需要实现互联互通。密钥不匹配会导致加密信息无法正常解析,从而影响v2x通信相关业务。

目前,终端获取通信密钥的方式主要有两种:一种是所有终端在通信过程中临时从云端密钥管理平台处获取通信密钥,保证通信双方的密钥标识一致,完成终端之间的正常通信;另一种是云端密钥管理平台定期为多个终端下发更新的通信密钥,保证多个终端之间的密钥标识一致,完成终端之间的正常通信。

但是,上述两种方式均需要终端随时具备联网能力,对终端联网要求苛刻。一旦终端无法连接云端密钥管理平台(例如终端处于山区、桥洞等无网环境中),无法更新通信密钥,通信将无法正常进行。

有鉴于此,本申请提供了一种安全通信的方法和装置,通过终端与终端之间的消息交互检查密钥的标识,一旦发现所使用的密钥的标识不匹配,则进行终端与终端之间的密钥更新过程,整个过程基于终端与终端之间的消息,不依赖于终端与网络之间的连接,能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

在介绍本申请实施例提供的安全通信的方法和装置之前,先做出以下几点说明。

第一,在下文示出的实施例中,各术语及英文缩略语,如加密消息,密钥的标识信息等,均为方便描述而给出的示例性举例,不应对本申请构成任何限定。本申请并不排除已有或未来定义其它能够实现相同或相似功能的术语的可能。

第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的消息、区分不同的密钥标识等。需要说明的是,本申请实施例使用“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或重要程度。例如,第一消息、第二消息等,只是为了区分不同的消息类型,而并不是表示这两种消息的结构、重要程度等不同。

第三,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。

下面结合图3,对本申请实施例提供的安全通信的方法300进行详细说明。该方法300可以应用于图1所示的通信场景100,也可以应用于图2所示的通信场景200,还可以应用于其他通信场景,但本申请实施例不限于此。

本申请实施例中,在进行端到端的安全通信的方法之前,终端可以通过联网的方式执行云端注册过程或云端密钥更新过程,从云端密钥管理平台获取通信密钥,用于后续消息的加密通信。终端从云端密钥管理平台获取的密钥个数可以为一个或多个,本申请对此不作限定。

应理解,上述每一个通信密钥对应一个密钥标识,每一个标识都有唯一对应的值,与该标识对应的值可以称为标识号,且每一个密钥都具有一定的有效期限。在某个密钥到达有效期之前,终端需要更换成新的密钥用于后续的消息通信。例如,终端当前使用的通信密钥的标识对应的值为n,在该密钥到期截止时间或到期之前某个时间点(如提前一天),该终端使用标识对应的值为n+1的密钥作为新的通信密钥。本申请实施例将密钥标识号简称为密钥的标识。还应理解,密钥的标识还可以称为密钥的版本、或者密钥的索引等,用于指示唯一的通信密钥,本申请实施例仅以密钥的标识为例进行说明。

图3是本申请实施例提供的安全通信的方法300的示意性流程图。如图3所示,该方法300包括以下步骤:

s301、第一终端发送第一消息,该第一消息包括第一密钥的标识信息。相应地,第二终端接收该第一消息。

应理解,上述第一消息还包括第一加密消息、第一终端的证书(包括第一终端的公钥)、第一终端的签名或者其他信息,本申请对此不作限定。其中,该第一加密消息是采用该第一密钥进行加密的。在v2x通信的场景下,该第一加密消息可以包括车辆历史轨迹信息、车辆的位置坐标或者其他隐私信息等。

还应理解,上述第二终端接收到第一消息后,可以验证消息的合法性。示例性地,验证过程可以包括验证第一终端的证书的合法性、有效性以及根据第一终端的公钥验证第一消息中的签名正确性。

s302、获得第一结果,该第一结果用于指示上述第一密钥的标识信息与上述第二终端的第二密钥的标识信息是否匹配。

示例性地,上述第一消息的合法性验证通过后,第二终端读取第一消息中的第一密钥的标识(记为n),将该第一密钥的标识与第二终端当前使用的第二密钥的标识(记为m)进行比较,获得比较结果。本申请实施例将获得的比较结果称为第一结果。

s303、第二终端根据上述第一结果,发送第二消息,该第二消息包括第一密钥更新信息,该第一密钥更新信息用于更新第一终端的密钥或第二终端的密钥。相应地,第一终端接收该第二消息。

应理解,在多个终端之间进行加密通信时,通信的多个终端需要基于相同标识的通信密钥对消息进行加解密,以实现消息的成功传输。因此,为了保证通信双方的通信密钥标识一致,通信双方需要对密钥进行更新。在本申请实施例中,第二终端可以根据上述比较结果确定是由第一终端更新密钥还是由第二终端更新密钥,具体更新过程后续将会进行详细说明。

还应理解,上述第一消息和第二消息可以采用广播的方式进行传输,但本申请实施例对此不作限定。

本申请实施例的安全通信的方法,通过终端与终端之间的消息交互检查密钥标识,从而基于检查结果,进行终端和终端之间的密钥更新过程,整个过程基于终端与终端之间的消息,不依赖于终端与网络之间的连接,能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

在本申请实施例中,上述第一密钥更新信息中包括的信息是根据上述s302中的第一结果确定的。该第一结果存在以下三种可能的情况。

情况一:上述第二密钥的标识信息对应的第二值等于上述第一密钥的标识信息对应的第一值,即m=n,则第二终端可以采用当前使用的密钥对第一消息中的加密信息进行解密,从而进行后续的通信,无需执行s303。

应理解,本申请实施例中的第一值和第二值可以为密钥的标识大小,版本号的大小,或者时间的先后顺序等等,例如,上述第一值可以为n=4,第二值可以为m=6或者n=20210228,m=20210305,本申请对此不作限定。

情况二:上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值,即m>n,则上述第一密钥更新信息包括上述第二密钥的标识信息、上述第一终端的标识、不低于第二密钥的标识对应的更新密钥以及该更新密钥的标识。

本申请实施例将不小于第二密钥的标识对应的更新密钥统称为第一更新密钥,将该第一更新密钥的标识称为第一更新密钥的标识。

应理解,上述第一更新密钥可以是一个也可以是多个,本申请对此不作限定。

结合上面的例子,m>n表明第一终端的密钥需要更新。上述第一密钥更新信息包括第二密钥的标识信息m、第一终端的标识、第二终端的本地存储的密钥标识不小于m的通信密钥(一个或多个,密钥标识分别为m、m+1、…、m+t)以及m、m+1、…、m+t。在本申请实施例中,t为大于或等于0的整数,且m+t为上述第二终端本地存储的最高密钥的标识。

可选地,本申请实施例中,在上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值的情况下,即m>n,在上述第二终端发送的第二消息中,还可以包括密钥标识小于m的通信密钥,此处不作限定。

示例性地,当第一终端为车联网终端时,上述第一终端的标识可以是第一终端的证书序列号、车辆识别号码等能够标识第一终端的数据等等。

作为一个可选的实施例,在上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值的情况下,上述第二终端发送第二消息之前,可以对上述第一更新密钥进行加密,进一步确保第一更新密钥的安全传输。相应地,该第一终端可以在接收到第二终端发送的第二消息之后,对该第一更新密钥进行解密。

本申请实施例示出了两种对上述第一更新密钥进行加密和解密的方式。

方式一:第二终端可以采用上述第一终端的证书的公钥对上述第一更新密钥进行加密。相应地,上述第一终端可以采用第一终端的证书的私钥对第一更新密钥进行解密。

方式二:第二终端可以采用第一临时加密密钥对上述第一更新密钥进行加密。若第二终端采用第一临时加密密钥对第一更新密钥进行加密,上述第一更新密钥信息还包括第二终端随机生成的临时公钥。相应地,第一终端可以采用第二临时加密密钥对第一更新密钥进行解密。

具体地,上述第一临时加密密钥是采用第二终端随机生成的临时私钥和第一终端的证书的公钥生成的;第二临时加密密钥是第一终端根据接收到的临时公钥和第一终端的证书的私钥生成的。

应理解,上述临时公钥和临时私钥为一对密钥,可以称为临时公私钥对。

可选地,上述第一临时加密密钥和第二临时加密密钥可以采用密钥协商算法进行计算。例如,dh算法和ecdh算法。

下面以ecdh算法为例,详细说明临时加密密钥k的计算过程。

示例性地,第二终端随机生成临时私钥(prikeyb),并根据第一终端中定义的公钥算法(如sm2算法)生成对应的公钥(pubkeyb)。第二终端计算第一临时加密密钥:

k1=kdf(prikeyb*pubkeya),

其中,kdf为密钥派生函数,*表示椭圆曲线点乘运算,pubkeya为第一终端的证书的公钥(包含在第一终端的证书中)。

第二终端使用加密密钥k1对本地存储的第一更新密钥进行加密计算:

enc_key=enc(keym||keym+1||…||keym+t,k1),

其中,enc为对称密码算法的加密操作。

相应地,第一终端计算第二临时加密密钥:

k2=kdf(prikeya*pubkeyb),

其中,kdf为密钥派生函数,*表示椭圆曲线点乘运算,prikeya为第一终端的证书的私钥,pubkeyb包含在第一更新密钥信息中。

第一终端使用k2解密enc_key,得到更新密钥:keym||keym+1||…||keym+t=dec(enc_key,k2),dec为对称密码算法的解密操作。

应理解,解密算法需要与加密算法相对应,才能完成解密操作。例如,加密算法为公钥加密,则解密算法为私钥解密。

本申请实施例对更新密钥采用终端双方计算得到的临时加密密钥进行加密,具有前向安全性,攻击者即使截取了第一消息并破解了第一终端的证书的私钥,也无法解密得到更新密钥,进一步提高了系统安全性。

作为一个可选的实施例,在上述第二密钥的标识信息对应的第二值大于上述第一密钥的标识信息对应的第一值的情况下,即m>n,在第一终端接收来自第二终端的第二消息之后,该方法还包括:第一终端根据该第一密钥更新信息,对第一终端的密钥进行更新。该第一终端发送第三消息,该第三消息包括上述第二密钥的标识信息。相应地,第二终端接收该第三消息。

应理解,上述第二消息还包括第二加密消息、第二终端的证书(包括第一终端的公钥)、第二终端的签名或者其他信息,本申请对此不作限定。其中,该第二加密消息是采用该第二密钥进行加密的。在v2x通信的场景下,该第二加密消息可以包括车辆历史轨迹信息、车辆的位置坐标或者其他隐私信息等。

应理解,上述第一终端接收到第二消息后,可以验证消息的合法性。示例性地,验证过程可以包括验证第二终端的证书合法性、有效性以及根据第二终端的公钥验证第一消息中的签名正确性。

还应理解,上述第一终端根据该第一密钥更新信息,对第一终端的密钥进行更新,可以指第一终端将第一终端本地存储的密钥替换为第一更新密钥,也可以指第一终端在第一终端本地存储的密钥基础上存储第一更新密钥。本申请实施例对具体的密钥更新方式不作限定。

本申请实施例在第一终端接收到第二消息后,查找第二消息中的标识信息,若发现自身的标识,则使用自身证书对应的私钥或第二临时加密密钥对第一更新密钥进行解密。在解密完成后,第一终端可以对本地存储的密钥更新进行更新,并将第二密钥(即上述标识为m的密钥)确定为当前使用的密钥。第一终端可以使用第二密钥对第一消息中的部分信息重新进行加密发送(即上述第三消息)。

本申请实施例提供的安全通信的方法,通过终端之间的消息通信,完成密钥的更新过程,能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥标识的匹配,有效地提高了通信效率。

情况三:上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识信息对应的第一值,即m<n,则上述第一密钥更新信息包括第二终端的本地存储的任一密钥的标识。

作为一个可选的实施例,在上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识信息对应的第一值的情况下,在第二终端发送第二消息之前,该方法还包括:第二终端确定本地存储的密钥中是否存在与第一值相同的密钥。

在一种可能的实现方式中,第二终端的本地存储的密钥中存在与第一值相同的密钥,则第二终端可以采用与第一值相同的密钥解密上述第一消息,从而进行后续的正常通信,无需执行s303。

在另一种可能的实现方式中,第二终端的本地存储的密钥中不存在与第一密钥的标识相同的密钥,第二终端可以从本地存储的密钥中选择任一密钥,并采用该任一密钥加密上述第二加密消息。

示例性地,第二终端可以从m开始,对大于m的密钥标识逐个递增进行比对(m为最高标识时不进行递增比对),即比对m+1和n,若n>m+1,继续比对m+2和n。若存在与n相等的标识,则停止比对,采用该标识的密钥解密第一消息,并将该标识的密钥作为当前密钥进行通信。若直至比对到本地存储的最高标识m’,都不存在标识与n相等的密钥,则表明第二终端的密钥需要更新。

可选地,上述任一密钥为第二终端的本地存储的最高标识的密钥。若第二终端采用本地存储的最高标识(即m’)的密钥对第二消息进行加密,可以避免第二终端获取到的更新密钥中存在与第二终端本地存储的密钥相同的密钥标识,有效地减少了资源的开销。

作为一个可选的实施例,在上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识对应的第一值的情况下,第一终端接收来自第二终端的第二消息之后,该方法还包括:获得第二结果,该第二结果为第一密钥的标识信息对应的第一值大于任一密钥的标识信息对应的第三值。上述第一终端发送第四消息,该第四消息包括第二密钥更新信息,其中,该第二密钥更新信息包括第一密钥的标识信息、第二终端的标识、不小于第一密钥的标识对应的更新密钥以及该更新密钥的标识信息。相应地,第二终端接收来自上述第一终端的第四消息,并根据第二密钥更新信息,对第二终端的密钥进行更新。

本申请实施例将第一终端本地存储的不小于第一密钥的标识对应的更新密钥称为第二更新密钥,该更新密钥的标识称为第二更新密钥的标识。

应理解,上述第四消息还包括第四加密消息、第一终端的证书(包括第一终端的公钥)、第一终端的签名或者其他信息,本申请对此不作限定。其中,该第四加密消息是采用该第一密钥进行加密的。

应理解,上述密钥更新方式可参照第二终端的密钥更新过程,此处不再赘述。

作为一个可选的实施例,在上述第二密钥的标识信息对应的第二值小于上述第一密钥的标识对应的第一值的情况下,第一终端可以对上述第二更新密钥进行加密,进一步确保第二更新密钥的安全传输。上述第二更新密钥可以采用第二终端的证书的公钥或第三临时加密密钥进行加密,其中,第三临时加密密钥是第一终端使用第一终端随机生成的临时私钥和第二终端的证书的公钥生成的。相应地,第二终端采用第二终端的证书的私钥或第四临时加密密钥解密上述第二更新密钥,其中,第四临时加密密钥是第二终端使用第一终端随机生成的临时公钥和第二终端的证书的私钥生成的。

应理解,上述临时公私钥对中的临时私钥是第一终端随机生成的,上述临时公私钥对中的临时公钥是第一终端根据第二终端中定义的公钥算法生成。上述第三临时加密密钥的计算过程可以参照上述第一临时加密密钥的计算过程,此处不再赘述。上述第四临时加密密钥的计算过程可以参照上述第二临时加密密钥的计算过程,此处不再赘述。

示例性地,在v2x消息通信的场景下,上述第一终端和第二终端为车联网终端,上述第一消息和第二消息为v2x消息。本申请实施例的v2x消息在现有v2x消息格式的基础上增加了相关字段用于承载上述方法中提到的密钥更新信息。下面,以密钥的版本为例,结合图4详细说明本申请实施例的v2x消息的格式。

图4示出了本申请实施例的一种v2x消息格式。如图4所示,当前密钥版本和密钥更新信息为本申请在待签名数据字段中的新增字段,剩余字段均为现有v2x消息的字段。其中,证书字段和签名值字段用于消息合法性校验。

上述新增的当前密钥版本字段,用于承载当前v2x消息数据加密所使用的密钥版本号(即上述第一密钥的版本、第二密钥的版本以及任一密钥的版本)。

上述新增的密钥更新信息字段,用于承载端侧密钥更新所需的相关信息。应理解,端侧密钥更新所需的相关信息可以是上述第一终端密钥更新所需的相关信息,也可以是上述第二终端密钥更新所需的相关信息。

该密钥更新信息字段包括下列子字段:

1、更新目标:用于标识更新密钥对应的主体(即上述第一终端的标识或第二终端的标识)。

2、更新密钥版本:用于承载更新密钥对应的版本号(即上述第一更新密钥的版本或上述第二更新密钥的版本)。

3、更新密钥封装:用于承载加密保护的更新密钥(即上述第一更新密钥或上述第二更新密钥)。

下面,以v2x消息通信的场景为例,结合两个具体的实施例,详细说明上述安全通信的方法。在图5和图6中,密钥的标识信息均以密钥的版本为例进行说明。其中,终端a可以为上述第一终端,终端b可以为上述第二终端。在终端a和终端b执行图5和图6所示出的步骤前,终端a和终端b通过联网的方式执行云端注册过程或云端密钥更新过程,具体过程可参照上述相关描述,此处不再赘述。

图5是本申请实施例提供的一种安全通信的方法500的示意性流程图。该方法500可以应用于图1所示的通信场景100,也可以应用于图2所示的通信场景200,还可以应用于其他通信场景,但本申请实施例不限于此。图5所示的具体流程如下:

s501、终端a使用当前版本的密钥(相当于上述第一密钥)对v2x消息中的信息进行加密后,将当前密钥的版本号写入v2x消息(相当于上述第一消息)中,将当前版本号记为n。

s502、终端a向外界广播发送包含版本号n的v2x消息,同时,v2x消息中携带了终端a的证书(包含终端a的公钥)和终端a的签名。

s503、终端b接收到该v2x消息后,首先验证消息的合法性,验证过程包含验证终端a的证书合法性及有效性、以及根据终端a的公钥验证v2x消息中的签名正确性。全部验证通过后执行下列步骤。

s504、消息合法性验证通过后,终端b读取v2x消息中的密钥版本号n,与当前使用的密钥(相当于上述第二密钥)的版本号(记为m)进行比对。若m=n,则进行消息解密过程,进行后续的正常v2x通信过程。若n<m,则说明终端a的密钥需要更新,终端b开始执行下列步骤。

s505、终端b将本地存储的所有密钥版本不小于m的通信密钥(一个或多个,密钥版本分别为m,m+1,…,m+t)使用终端a的公钥进行封装保护。具体的封装算法可以是公钥加密算法或者数字信封算法。

应理解,上述封装终端b本地存储的所有密钥版本不小于m的通信密钥(一个或多个,密钥版本分别为m,m+1,…,m+t)的方法,还可以通过终端b随机生成的临时加密密钥进行加密。临时加密密钥的具体计算过程可参照上述相关描述,此处不再赘述。

s506、终端b使用当前版本(m)的密钥对v2x消息中的信息进行加密后,将m写入v2x消息(相当于上述第二消息)中,同时在v2x消息中写入终端a的标识信息(可以是终端a的证书序列号、车辆识别号码等能够标识终端a的数据)、更新密钥的版本号(m,m+1,…,m+t)(相当于上述第一更新密钥的版本)以及封装保护后的通信密钥(相当于上述加密的第一更新密钥)。

s507、终端b向外界广播发送v2x消息(包含了版本号m、终端a的标识信息、更新密钥版本号以及封装保护后的更新密钥等信息),同时,v2x消息中携带了终端b的证书(包含终端b的公钥)和终端b的签名。

s508、终端a接收到该v2x消息后,首先验证消息的合法性,验证过程包含验证终端b的证书合法性及有效性、以及根据终端b的公钥验证v2x消息中的签名正确性。全部验证通过后执行后续步骤。

s509、终端a查找v2x消息中的标识信息,若发现自身的标识,则使用自身证书对应的私钥对封装后的更新密钥进行解封装。解封装完成后对本地存储的v2x通信密钥进行更新,并将当前使用的密钥版本号切换成m。

应理解,终端a对s505中对封装后的更新密钥进行解封装的方式,同样可以采用临时加密密钥进行解密。用于解密操作的临时加密密钥的具体计算过程可参照上述相关描述,此处不再赘述。

s510、终端a使用版本号m的密钥对s501的v2x消息中的信息进行重新加密后,将密钥版本号m写入v2x消息(相当于上述第三消息)中重新发送。

本申请提供的安全通信的方法,通过终端与终端之间的消息交互检查密钥版本,一旦发送端(即终端a)的密钥版本小于接收端(即终端b)所使用的密钥版本时,则采用接收端(即终端b)进行密钥更新过程,且更新密钥是进行加密传输的,进一步保证了更新密钥的安全传输。由于整个密钥更新过程是基于终端与终端之间的消息完成的,不依赖于终端与网络之间的连接。因此,该方法能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥版本的匹配,有效地提高了通信效率。

图6是本申请实施例提供的另一种安全通信的方法600的示意性流程图。该方法600可以应用于图1所示的通信场景100,也可以应用于图2所示的通信场景200,还可以应用于其他通信场景,但本申请实施例不限于此。图6所示的具体流程如下:

s601至s603与上述方法500中的s501至s503相同,此处不再赘述。

s604、终端b对v2x消息(相当于上述第一消息)的合法性验证通过后,读取v2x消息中的密钥版本(相当于上述第一密钥的版本)号n,与当前使用的密钥版本(相当于上述第二密钥的版本)号m进行比对。若n>m,终端b可以从m开始,对大于m的密钥版本逐个递增进行比对(m为最高版本时不进行递增比对),即比对m+1和n,若n>m+1,继续比对m+2和n。若存在与n相等的版本,则停止比对,采用该版本的密钥解密第一消息,并将该版本的密钥作为当前密钥进行通信。若直至比对到本地存储的最高版本m’,都不存在版本与n相等的密钥,则终端b开始执行后续步骤。

应理解,终端b读取v2x消息中的密钥版本号n,与当前使用的密钥版本号m进行比对,若发现n≠m时,可以尝试从云端密钥管理平台获取更新密钥。

s605、终端b使用版本号为m’的密钥对v2x消息数据进行加密,并将m’写入v2x消息(相当于上述第二消息)中。

可选地,终端b也可以使用本地存储的任一密钥对v2x消息数据进行加密,本申请对此不作限定。

s606、终端b向外界广播发送包含版本号m’的v2x消息,同时,v2x消息中携带了终端b的证书(包含终端b的公钥)和终端b的签名。

s607、终端a收到包含版本号m’的v2x消息后,首先验证消息的合法性,验证过程包含验证终端b的证书合法性及有效性、以及根据终端b的公钥验证v2x消息中的签名正确性。全部验证通过后执行后续步骤:由终端a为终端b进行密钥更新(s608至s613的具体过程可参照方法500的s504至s509的相关描述,此处不再赘述)。

本申请实施例以两个终端为例,详细描述了终端之间的密钥更新流程。应理解,该密钥更新流程不仅仅限于两个终端之间,也可以是三个终端之间的密钥更新,本申请对进行通信的终端数量以及类型均不作限定。例如,上述s607中的终端a也可以是其他能够收到上述s606中终端b发送的v2x消息的终端。

本申请提供的安全通信的方法,通过终端与终端之间的消息交互检查密钥版本,一旦发现发送端(即终端a)的密钥版本大于接收端(即终端b)所使用的密钥版本时,则采用发送端(非终端b)进行密钥更新过程,整个过程基于终端与终端之间的消息,不依赖于终端与网络之间的连接,且接收端(即终端b)采用本地存储的最高版本的密钥对第二消息进行加密,可以避免第二终端获取到的更新密钥中存在与第二终端本地存储的密钥相同的密钥版本,有效的减少了资源的开销,而且该方法能够在终端无法连接至网络侧(例如上述云端密钥管理平台)的情况下,实现通信密钥的更新,保证了通信双方通信密钥版本的匹配,有效提高了通信效率。

应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上文中结合图3至图6,详细描述了本申请实施例的安全通信的方法,下面将结合图7至图9,详细描述本申请实施例的安全通信的装置。

图7示出了本申请实施例提供的一种安全通信的装置700,该装置700包括:接收模块710、处理模块720以及发送模块730。

其中,接收模块710,用于接收来自第一终端的第一消息,所述第一消息包括第一密钥的标识信息;处理模块720,用于获得第一结果;发送模块730还用于:根据所述第一结果,发送第二消息,所述第二消息包括第一密钥更新信息,所述第一密钥更新信息用于更新所述第一终端的密钥或所述第二终端的密钥。

可选地,所述第二密钥的标识信息对应的第二值大于所述第一密钥的标识信息对应的第一值时,所述第一密钥更新信息用于更新所述第一终端的密钥。

可选地,所述第一密钥更新信息包括所述第二密钥的标识信息、所述第一终端的标识、不小于所述第二值对应的第一更新密钥以及所述第一更新密钥的标识信息。

可选地,处理模块720还用于:采用所述第一终端的证书的公钥对所述第一更新密钥进行加密。

可选地,所述第一更新密钥信息还包括临时公钥;处理模块720还用于:随机生成临时私钥和所述临时公钥;使用所述临时公私钥对中的临时私钥和所述第一终端的证书的公钥生成第一临时加密密钥;以及,采用所述第一临时加密密钥对所述第一更新密钥进行加密。

可选地,接收模块710还用于:接收来自所述第一终端的第三消息,所述第三消息包括所述第二密钥的标识信息。

可选地,所述第二密钥的标识信息对应的第二值小于所述第一密钥的标识信息对应的第一值时,所述第二消息包括第二加密消息和所述第一密钥更新信息,所述第一密钥更新信息用于更新所述第二终端的密钥。

可选地,所述第一密钥更新信息包括所述第二终端本地存储的任一密钥的标识信息;处理模块720还用于:确定本地存储的密钥中是否存在与所述第一值相同的密钥;若所述本地存储的密钥中不存在与所述第一值相同的密钥,所述第二终端从所述本地存储的密钥中选择任一密钥;以及,采用所述任一密钥加密所述第二加密消息。

可选地,接收模块710还用于:接收来自所述第一终端的第四消息,所述第四消息包括第二密钥更新信息,其中,所述第二密钥更新信息包括所述第一密钥的标识信息、所述第二终端的标识、所述第一终端本地存储的不小于所述第一密钥的标识信息的第二更新密钥、以及所述第二更新密钥的标识信息;处理模块720还用于:根据所述第二密钥更新信息,对所述第二终端本地存储的密钥进行更新。

可选地,所述第二更新密钥是采用所述第二终端的证书的公钥或第三临时加密密钥加密的,其中,所述第三临时加密密钥是所述第一终端使用所述第一终端随机生成的临时私钥和所述第二终端的证书的公钥生成的;处理模块720还用于:采用所述第二终端的证书的私钥或第四临时加密密钥解密所述第二更新密钥,其中,所述第四临时加密密钥是所述第二终端使用所述第一终端随机生成的临时公钥和所述第二终端的证书的私钥生成的。

在一个可选的例子中,本领域技术人员可以理解,装置700可以具体为上述实施例中的第二终端,该装置700可以用于执行上述方法300中与第二终端对应的各个流程和/或步骤,为避免重复,此处不再赘述。

图8示出了本申请实施例提供的另一种安全通信的装置800,该装置800包括:发送模块830和接收模块820。

其中,发送模块830,用于发送第一消息,所述第一消息包括第一密钥的标识信息;接收模块820,用于接收来自第二终端的第二消息,所述第二消息是根据第一结果确定的,所述第一结果用于指示所述第一密钥的标识信息与所述第二终端的第二密钥的标识信息是否匹配,所述第二消息包括第一密钥更新信息,所述第一密钥更新信息用于更新所述第一终端的密钥或所述第二终端的密钥。

可选地,所述第二密钥的标识信息对应的第二值大于所述第一密钥的标识信息对应的第一值时,所述第一密钥更新信息用于更新所述第一终端的密钥。

可选地,所述第一密钥更新信息包括所述第二密钥的标识信息、所述第一终端的标识、不小于所述第二值对应的第一更新密钥以及所述第一更新密钥的标识信息。

可选地,所述第一更新密钥是采用所述第一终端的证书的公钥加密的;所述装置800还包括:处理模块,用于采用所述第一终端的证书的私钥对所述第一更新密钥进行解密。

可选地,所述第一更新密钥是采用第一临时加密密钥加密的,所述第一临时加密密钥是所述第二终端使用所述第二终端随机生成的临时私钥和所述第一终端的证书的公钥生成的,所述第一密钥更新信息还包括临时公钥,所述第一更新密钥信息还包括临时公钥;所述装置800还包括:处理模块,用于使用所述临时公钥和所述第一终端的证书的私钥生成第二临时加密密钥;以及,采用所述第二临时加密密钥对所述第一更新密钥进行解密。

可选地,所述处理模块还用于:根据所述第一密钥更新信息,对所述第一终端的密钥进行更新;发送模块830还用于:发送第三消息,所述第三消息包括所述第二密钥的标识信息。

可选地,所述第二密钥的标识信息对应的第二值小于所述第一密钥的标识信息对应的第一值时,所述第一密钥更新信息用于更新所述第二终端的密钥。

可选地,所述第一密钥更新信息包括所述第二终端本地存储的任一密钥的标识信息。

可选地,上述处理模块还用于:获得第二结果,所述第二结果为所述第一密钥的标识信息对应的第一值大于所述任一密钥的标识信息对应的第三值;发送模块830还用于:发送第四消息,所述第四消息包括第二密钥更新信息,所述第二密钥更新信息用于更新所述第二终端的密钥,所述第二密钥更新信息包括所述第一密钥的标识信息、所述第二终端的标识、不小于所述第一值对应的第二更新密钥以及所述第二更新密钥的标识信息。

可选地,所述第二更新密钥是采用所述第二终端的证书的公钥或第三临时加密密钥加密的,其中,所述第三临时加密密钥是所述第一终端使用所述第一终端随机生成的临时私钥和所述第二终端的证书的公钥生成的。

在一个可选的例子中,本领域技术人员可以理解,装置800可以具体为上述实施例中的第一终端,该装置800可以用于执行上述方法300中与第一终端对应的各个流程和/或步骤,为避免重复,此处不再赘述。

应理解,这里的装置700和装置800以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(applicationspecificintegratedcircuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。

上述装置700和装置800具有实现上述方法300中的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

在本申请的实施例,装置700和装置800也可以是芯片或者芯片系统,例如:片上系统(systemonchip,soc)。本申请在此不作限定。

图9示出了本申请实施例提供的再一种安全通信的装置900。该装置900包括处理器910、收发器920和存储器930。其中,处理器910、收发器920和存储器930通过内部连接通路互相通信,该存储器930用于存储指令,该处理器910用于执行该存储器930存储的指令,以控制该收发器920发送信号和/或接收信号。

应理解,装置900可以具体为上述实施例中的第一终端或者第二终端,或者,上述实施例中的第一终端或第二终端的功能可以集成在装置900中,装置900可以用于执行上述实施例中的第一终端或第二终端对应的各个步骤和/或流程。可选地,该存储器930可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器910可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与第一终端或第二终端对应的各个步骤和/或流程。

应理解,在本申请实施例中,该处理器910可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在实现过程中,上述方法300的各步骤可以通过处理器910中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器910执行完成,或者用处理器910中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器910执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本申请实施还提供了一种通信系统,该通信系统可以包括上述图7所示的第二终端(即装置700)和上述图8所示的第一终端(即装置800)。

本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述实施例中各种可能的实现方式所示的第二终端对应的方法。

本申请提供另一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述实施例中各种可能的实现方式所示的第一终端对应的方法。

本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述实施例中各种可能的实现方式所示的第二终端对应的方法。

本申请提供另一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述实施例中各种可能的实现方式所示的第一终端对应的方法。

本申请提供一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面至第二方面中的任一方面中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。

在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和数据,存储器位于处理器之内或处理器之外。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1