发明内容
本发明实施例提供一种车辆数字钥匙密钥灌装方法及系统、车端以及云端,能够安全地远程从云端为车端灌装主密钥,有利于降低生产成本。
第一方面,本发明实施例提供了一种车辆数字钥匙密钥灌装方法,应用于灌装系统,所述系统包括:云端、智能终端以及车端,所述云端、智能终端以及所述车端之间依次相连形成通信链路,所述方法包括:
基于所述通信链路在所述云端和所述车端之间建立双向加密安全通道;
所述云端获取所述车端的密钥因子,并在基于所述双向加密安全通道确定所述车端满足预设灌装激活条件时,根据所述车端的密钥因子生成所述车端的密钥;
基于所述双向加密安全通道将所述车端的密钥灌装入所述车端。
作为一个实施例,所述基于所述通信链路在所述云端和所述车端之间建立双向加密安全通道,包括:
所述云端接收到所述智能终端发送的临时公钥激活请求后生成第一临时公私密钥对PK1/SK1,并采用所述云端的公私密钥对PK/SK中的私钥SK对所述第一临时公私密钥对中的公钥PK1进行签名得到签名值SP01,将所述签名值SP01经所述智能终端发送至所述车端;
所述车端根据所述云端的公私密钥对中的公钥PK对所述签名值SP01验签后得到所述PK1;所述车端生成第二临时公私密钥对PK2/SK2,并根据所述第二临时公私密钥对中的私钥SK2以及所述PK1协商得到所述双向加密安全通道的临时会话密钥TSK;
所述车端采用所述车端的蓝牙模块的公私密钥对中的公钥BPK对所述PK1、PK2以及所述蓝牙模块的蓝牙检索号的拼接值进行签名得到签名值SP12,并将所述签名值SP12返回所述云端;
所述云端采用所述车端的蓝牙模块的公私密钥对中的私钥BSK对所述签名值SP12进行验签后得到所述PK2,根据所述SK1、PK2协商得到所述双向加密安全通道的临时会话密钥TSK’。
作为一个实施例,确定所述车端满足预设灌装激活条件,包括:
所述云端向所述车端发送灌装激活条件获取请求,所述车端根据所述灌装激活条件获取请求采集所述车端当前的灌装激活条件信息;
所述车端采用所述TSK对所述灌装激活条件信息加密得到KA,将所述KA返回所述云端;
所述云端根据所述TSK’对所述KA解密后得到所述灌装激活条件信息,当根据所述灌装激活条件信息确定所述智能终端位于所述车端内且所述车端已点火启动时确定所述车端满足预设灌装激活条件。
作为一个实施例,所述根据所述车端的密钥因子生成所述车端的密钥,包括:
所述云端根据所述蓝牙检索号查找到所述蓝牙模块的序列号BLESN,将所述BLESN作为所述车端的密钥因子;所述云端根据所述车端的密钥因子采用对称摘要算法生成密钥数据Dkey,并根据所述Dkey生成所述车端的密钥K1,还根据数字钥匙的属性信息KR以及所述Dkey生成所述智能终端的钥匙KS;
所述云端还根据所述SK对所述Dkey签名得到签名值SDK,并采用所述TSK’对所述Dkey以及所述SDK的拼接值加密得到加密结果S。
作为一个实施例,所述基于所述双向加密安全通道将所述车端的密钥灌装入所述车端,包括:
所述云端将所述K1、KS以及S返回所述智能终端,所述智能终端存储所述KS以及KR;
所述智能终端将所述S发送至所述车端;
所述车端接收到所述S后采用TSK解密后得到所述Dkey,并采用所述PK对所述SDK验签,验签成功后根据所述Dkey得到所述车端的密钥K1后进行存储;
所述车端还根据所述Dkey对所述K1加密后存储加密结果;
所述车端还将所述K1的灌装结果采用所述TSK加密后返回所述智能终端。
作为一个实施例,所述方法还包括:
所述智能终端采集所述灌装方法的进度信息并显示所述灌装方法的执行进度。
作为一个实施例,所述方法还包括:所述智能终端在所述车端返回所述灌装激活条件信息的执行时长大于预设时长时生成提示信息。
第二方面,本发明实施例还提供了一种车辆数字钥匙密钥灌装系统,包括:云端、智能终端以及车端,所述云端、智能终端以及所述车端之间依次相连形成通信链路;
基于所述通信链路在所述云端和所述车端之间建立双向加密安全通道;
所述云端获取所述车端的密钥因子,并在基于所述双向加密安全通道确定所述车端满足预设灌装激活条件时,根据所述车端的密钥因子生成所述车端的密钥;
基于所述双向加密安全通道将所述车端的密钥灌装入所述车端。
第三方面,本发明实施例提供了一种车辆数字钥匙密钥灌装装置,配置于灌装系统,所述系统包括:云端、智能终端以及车端,所述云端、智能终端以及所述车端之间依次相连形成通信链路;所述密钥灌装装置包括:
安全通道建立模块,用于基于所述通信链路在所述云端和所述车端之间建立双向加密安全通道;
密钥生成模块,用于所述云端获取所述车端的密钥因子,并在基于所述双向加密安全通道确定所述车端满足预设灌装激活条件时,根据所述车端的密钥因子生成所述车端的密钥;
灌装模块,用于基于所述双向加密安全通道将所述车端的密钥灌装入所述车端。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的车辆数字钥匙密钥灌装方法。
本发明实施例提供的技术方案与现有技术相比至少具备以下积极效果:
本发明实施例通过在云端和车端之间建立双向加密安全通道,并且在确定车端满足预设灌装激活条件时由云端生成车端的密钥,并下发至车端,完成车端数字钥匙密钥的灌装,保障灌装过程的安全性,从而可替代传统硬件灌装方式,有利于节约成本。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例一提供的车辆数字钥匙密钥灌装方法的流程示意图,可实现车辆数字钥匙密钥的远程安全灌装。该方法可以由本发明实施例提供的一种车辆数字钥匙密钥灌装装置来执行,该装置可以采用软件方式实现,并配置于车辆数字钥匙密钥灌装系统,该灌装系统包括:云端、智能终端以及车端,云端、智能终端以及车端之间依次相连形成通信链路。本发明实施例具体包括如下步骤:
步骤102、基于通信链路在云端和车端之间建立双向加密安全通道。
云端可通过双向加密安全通道将生成的车端的密钥发送至车端,实现需灌装密钥的安全传输。
步骤104:云端获取车端的密钥因子,并在基于双向加密安全通道确定车端满足预设灌装激活条件时,根据车端的密钥因子生成车端的密钥。
预设灌装激活条件用于检测车端是否已经完成灌装的准备。
步骤106:基于双向加密安全通道将车端的密钥灌装入车端。
云端在确定车端满足预设灌装激活条件时,根据车端的密钥因子生成车端的密钥后即可传送至车端,供车端安全地接收到需要灌装的密钥,车端接收到需要灌装的密钥后执行灌装,将车端的密钥写入目标位置即可。
下面结合图2对本实施例的车辆数字钥匙密钥灌装方法详细说明如下:
本实施例的车辆数字钥匙灌装方法可以包括5个阶段:
阶段一:通道构建,用于构建车端和云端之间的通信链路;
阶段二:云端与车端之间安全通道构建;
阶段三:密钥生成;
阶段四:智能终端获取并存储密钥过程;
阶段五:车端获取并存储密钥过程。
阶段一中,用户可通过智能终端触发车辆数字钥匙密钥灌装请求,智能终端被触发后与云端建立安全通道,且智能终端蓝牙与车端蓝牙配对并建立连接,由此在云端和车端之间形成通信链路。
阶段二中,基于通信链路在云端和车端之间建立双向加密安全通道(即步骤102)具体可包括:智能终端向云端发送临时公钥激活请求,即请求激活云端临时公钥,云端接收到智能终端发送的临时公钥激活请求后生成第一临时公私密钥对PK1/SK1,云端预置有其生成的公私密钥对PK/SK,云端采用公私密钥对PK/SK中的私钥SK对第一临时公私密钥对中的公钥PK1进行签名得到签名值SP01,即云端采用SK对PK1进行签名生成SP01,将签名值SP01经智能终端发送至车端,云端将SP01返回智能终端后,智能终端将SP01转发至车端。车端内预置有PK,车端根据PK对签名值SP01验签后得到PK1,然后车端生成第二临时公私密钥对PK2/SK2,PK2、SK2可采用ECC算法生成,PK2,SK2的生成方式具体可以为(ECIES_v1(sep256r1),OID=1.2.840.10045.3.1.71),在此不做具体限制。然后,车端根据第二临时公私密钥对中的私钥SK2以及PK1协商得到双向加密安全通道的临时会话密钥TSK(TempSession Key,TSK),其中,临时会话密钥TSK=ECDH(SK2,PK1)。车端还预置有其蓝牙模块生成的非对称密钥对BPK/BSK,车端采用BPK对PK1、PK2以及蓝牙检索号的拼接值进行签名得到签名值SP12,并将签名值SP12返回云端。云端采用BSK对签名值SP12进行验签后得到PK2,根据SK1、PK2协商得到双向加密安全通道的临时会话密钥TSK’,云端的临时会话密钥TSK’=ECDH(SK1,PK2),TSK和TSK’相同且唯一,分别用于车端和云端的临时会话密钥,至此车端和云端建立起双向加密安全通道,并且可实现灌装过程一车一密,一次一密,有效确保灌装过程安全性。
阶段三中,双向加密安全通道建立完成后,云端确定车端是否满足预设灌装激活条件,具体包括:云端向车端发送灌装激活条件获取请求,车端根据灌装激活条件获取请求采集车端当前的灌装激活条件信息,激活条件信息例如包括:车端是否已点火启动以及智能终端是否位于车内。车端可以通过MCU获取到点火信号,根据蓝牙定位模块的定位结果得到智能终端是否位于车内。当车主使用自己的智能终端打开车辆进入车内并且点火时确定满足灌装激活条件,从而可以有效确保灌装的安全性。本实施例对于灌装激活条件不做具体限制。
车端采用临时会话密钥TSK对灌装激活条件信息加密得到KA,KA的计算方式例如为:KA=(AES256(激活条件|SK2对激活条件的签名值),secure.TSK),即采用TSK作为加密密钥、AES作为加密算法对激活条件以及利用SK2对激活条件签名得到的签名值的拼接值进行加密得到KA。将KA返回云端。
云端根据临时会话密钥TSK’对KA解密后得到灌装激活条件信息,例如是激活条件信息以及SK2对激活条件的签名值,云端采用PK2对激活条件的签名值进行验签,验签通过后继续确定灌装激活条件信息是否满足预设灌装激活条件。
当根据灌装激活条件信息确定智能终端位于车端内且车端已点火启动时确定车端满足预设灌装激活条件。然后云端即可生成需要灌装的密钥。
云端根据车端的密钥因子生成车端的密钥具体可包括:云端根据车端的密钥因子采用对称摘要算法HMAC生成密钥数据Dkey,Dkey的计算方式例如为:Dkey=HMAC SHA256(BLESN,secure.GMPK)。其中,BLESN为密钥因子,云端可以根据从车端接收的蓝牙检索号检索到车端蓝牙模块的序列号BLESN。GMPK为云端硬件加密模块HSM阵列中存储的密钥。
云端根据Dkey生成车端的密钥K1,K1的计算方式例如为:K1=LOW16(Dkey),Dkey的长度为32个字节,取Dkey低位16个字节的数据作为K1。
云端还根据数字钥匙的属性信息KR以及Dkey生成智能终端的钥匙KS,KS的计算方式例如为:KS=LOW16(HMAC SHA256(KR,secureK1))。KR为数字钥匙的属性值,属性值例如可包括:钥匙的起始时间、到期时间、权限以及激活者身份信息等,在此不做具体限制。
云端还根据SK对Dkey签名得到签名值SDK,并采用TSK’对Dkey以及SDK的拼接值加密得到加密结果S,S的计算方式例如为:S=AES256(Dkey|SDK,secure.TSK’)。至此,云端已经生成了数字钥匙,K1为存储车端侧的密钥,KS为存储于智能终端侧的密钥,智能终端可以基于KS访问车端。
阶段四中,云端向智能终端返回S,KS以及KR,智能终端获取到KS以及KR后进行存储。需要说明的是,智能终端需根据不同数字钥匙协议要求对KS进行存储,例如,可以将ICCE协议的KS存储在华为钱包中。KR存储于数字钥匙应用中。
阶段五中,智能终端将S发送至车端,车端接收到S后采用TSK解密后得到Dkey,并采用PK对SDK验签,验签成功后根据Dkey得到车端的密钥K1后进行存储,K1的计算方式例如为:K1=LOW16(Dkey)。
车端还根据Dkey对K1加密后存储加密结果,根据Dkey对K1加密的方式例如为:ReaderAuthParameter=HMACSHA256(K1,secure.High16(Dkey))。
车端还将K1的灌装结果采用TSK加密后返回智能终端,灌装结果Result的计算方式例如为:Result=AES256_CBC(00/01,secure.TSK) 00成功,01失败,供用户实时查看灌装结果。
在一些例子中,灌装方法还可包括:智能终端采集灌装方法的进度信息并显示灌装方法的执行进度,智能终端以可视化方式展示灌装进度,方便用户了解灌装进度。进一步地,智能终端在车端返回灌装激活条件信息的执行时长大于预设时长时生成提示信息,当车端采集并向云端返回灌装激活条件信息时,智能终端可以计时,从而可在返回时间较长时发出提示,提醒用户点火,便于灌装操作顺利进行。
本发明实施例的车辆数字钥匙密钥灌装方法与现有技术相比,通过在云端和车端之间建立双向加密安全通道,实现灌装过程一车一密,一次一密,确保灌装过程的安全性,并且在确定车端满足预设灌装激活条件时由云端生成车端的密钥,并下发至车端,完成车端数字钥匙密钥的灌装,从而可替代传统硬件灌装方式,有利于节约成本。
如图3所示,本发明实施例二提供一种车辆数字钥匙密钥灌装装置,配置于灌装系统。灌装系统包括:云端、智能终端以及车端,云端、智能终端以及车端之间依次相连形成通信链路。密钥灌装装置300包括:安全通道建立模块302、密钥生成模块304以及灌装模块306。
安全通道建立模块302用于基于通信链路在云端和车端之间建立双向加密安全通道。
密钥生成模块304用于云端获取车端的密钥因子,并在基于双向加密安全通道确定车端满足预设灌装激活条件时,根据车端的密钥因子生成车端的密钥。
灌装模块306用于基于双向加密安全通道将车端的密钥灌装入车端。
可选地,安全通道建立模块302具体包括:
第一临时公钥交换子模块,用于云端接收到智能终端发送的临时公钥激活请求后生成第一临时公私密钥对PK1/SK1,并采用云端的公私密钥对PK/SK中的私钥SK对第一临时公私密钥对中的公钥PK1进行签名得到签名值SP01,将签名值SP01经智能终端发送至车端;
第二临时公钥交换子模块,用于车端根据云端的公私密钥对中的公钥PK对签名值SP01验签后得到PK1;车端生成第二临时公私密钥对PK2/SK2,车端采用车端的蓝牙模块的公私密钥对中的公钥BPK对PK1、PK2以及蓝牙模块的蓝牙检索号的拼接值进行签名得到签名值SP12,并将签名值SP12返回云端。
车端TSK协商子模块,用于根据第二临时公私密钥对中的私钥SK2以及PK1协商得到双向加密安全通道的临时会话密钥TSK。
云端TSK’协商子模块,用于云端采用车端的蓝牙模块的公私密钥对中的私钥BSK对签名值SP12进行验签后得到PK2,根据SK1、PK2协商得到双向加密安全通道的临时会话密钥TSK’。
可选地,密钥生成模块304可包括:
激活条件确定子模块,用于云端向车端发送灌装激活条件获取请求,车端根据灌装激活条件获取请求采集车端当前的灌装激活条件信息;车端采用TSK对灌装激活条件信息加密得到KA,将KA返回云端;云端根据TSK’对KA解密后得到灌装激活条件信息,当根据灌装激活条件信息确定智能终端位于车端内且车端已点火启动时确定车端满足预设灌装激活条件。
密钥生成模块304还可包括:
密钥因子查找子模块,用于云端根据蓝牙检索号查找到蓝牙模块的序列号BLESN,将BLESN作为车端的密钥因子;
第一计算子模块,用于云端根据车端的密钥因子采用对称摘要算法生成密钥数据Dkey,并根据Dkey生成车端的密钥K1;
第二计算子模块,用于还根据数字钥匙的属性信息KR以及Dkey生成智能终端的钥匙KS;云端还根据SK对Dkey签名得到签名值SDK,并采用TSK’对Dkey以及SDK的拼接值加密得到加密结果S。
可选地,灌装模块306可包括:
传送子模块,用于云端将K1、KS以及S返回智能终端,智能终端存储KS以及KR;智能终端将S发送至车端;
车端存储子模块,用于车端接收到S后采用TSK解密后得到Dkey,并采用PK对SDK验签,验签成功后根据Dkey得到车端的密钥K1后进行存储;车端还根据Dkey对K1加密后存储加密结果;以及
结果反馈子模块,用于车端还将K1的灌装结果采用TSK加密后返回智能终端。
本发明实施例的车辆数字钥匙密钥灌装装置与现有技术相比,通过在云端和车端之间建立双向加密安全通道,实现灌装过程一车一密,一次一密,确保灌装过程的安全性,并且在确定车端满足预设灌装激活条件时由云端生成车端的密钥,并下发至车端,完成车端数字钥匙密钥的灌装,从而可替代传统硬件灌装方式,有利于节约成本。
本发明实施例三提供一种车辆数字钥匙密钥灌装系统,包括:云端、智能终端以及车端,云端、智能终端以及车端之间依次相连形成通信链路。基于通信链路在云端和车端之间建立双向加密安全通道;云端获取车端的密钥因子,并在基于双向加密安全通道确定车端满足预设灌装激活条件时,根据车端的密钥因子生成车端的密钥;基于双向加密安全通道将车端的密钥灌装入车端。该系统中车端、智能终端以及云端各自执行的方法与实施例一中对应端的方法对应相同,此处不再赘述。
本发明实施例四提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行任一方法实施例的技术方案。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。