本公开的实施例涉及车辆工程技术领域,尤其涉及一种接入认证方法、装置、相关设备及计算机可读存储介质。
背景技术:
随着车辆工程技术领域的迅速发展,车辆的使用越来越普遍,车辆已经成为了人们日常工作和生活中的重要交通工具。
在许多情况下,车辆需要与云服务器进行数据交互。在进行数据交互之前,车辆与云服务器进行接入认证,在接入认证通过的情况下,车辆与云服务器再进行数据通信,以保证数据交互的安全性。这样,车辆数据可以安全可靠地上传至云服务器,云服务器可以安全可靠地派发信息至车辆。
然而,现有的接入认证方式并不够安全,车辆有可能连接上攻击者伪造的云服务器,这样轻则会造成车辆数据的泄漏,重则会造成车辆被非法控制。
技术实现要素:
第一方面,本公开的实施例提供一种接入认证方法,应用于车辆,所述方法包括:
接收云服务器发送的签名证书;
在确定出所述签名证书合法的情况下,在所述车辆与所述云服务器之间构建加密连接通道;
通过所述加密连接通道,与所述云服务器进行接入认证。
在一些实施例中,所述通过所述加密连接通道,与所述云服务器进行接入认证,包括:
通过所述加密连接通道,与所述云服务器进行双向接入认证。
在一些实施例中,所述车辆存储有私钥;
所述通过所述加密连接通道,与所述云服务器进行双向接入认证,包括:
生成第一接入认证请求;其中,所述第一接入认证请求中携带第一认证基础数据和第一签名数据,所述第一签名数据为所述车辆根据所述第一认证基础数据和所述私钥进行签名得到的;
通过所述加密连接通道,向所述云服务器发送所述第一接入认证请求;
在发送所述第一接入认证请求之后,通过所述加密连接通道,接收所述云服务器发送的第二接入认证请求;其中,所述第二接入认证请求中携带第二认证基础数据和第二签名数据;
根据所述第二接入认证请求中的第二认证基础数据和第二签名数据,以及所述私钥进行验签,并根据验签结果,确定所述车辆对所述云服务器的接入认证是否通过。
在一些实施例中,所述第一认证基础数据中包括第一随机数和第一时间戳,所述第二认证基础数据中包括第二随机数和第二时间戳;
所述通过所述加密连接通道,接收所述云服务器发送的第二接入认证请求之后,所述方法还包括:
根据所述第二随机数和所述第二时间戳进行防重放校验,在防重放校验通过的情况下,执行所述根据所述第二接入认证请求中的第二认证基础数据和第二签名数据,以及所述私钥进行验签的步骤。
在一些实施例中,所述第二认证基础数据中包括加密结果;
所述根据验签结果,确定所述车辆对所述云服务器的接入认证是否通过之后,所述方法还包括:
在所述车辆对所述云服务器的接入认证通过的情况下,从所述第二认证基础数据中获取所述加密结果;
使用所述私钥对所述加密结果进行解密,得到密钥套件;
通过所述加密连接通道,使用所述密钥套件与所述云服务器进行数据通信。
在一些实施例中,所述第一认证基础数据中包括所述车辆的车辆标识。
在一些实施例中,所述车辆包括安全芯片,所述车辆标识和所述私钥存储于所述安全芯片中。
第二方面,本公开的实施例提供一种接入认证方法,应用于云服务器,所述方法包括:
生成签名证书;
向车辆发送所述签名证书;
在所述车辆确定出所述签名证书合法的情况下,在所述云服务器与所述车辆之间构建加密连接通道;
通过所述加密连接通道,与所述车辆进行接入认证。
在一些实施例中,所述通过所述加密连接通道,与所述车辆进行接入认证,包括:
通过所述加密连接通道,与所述车辆进行双向接入认证。
在一些实施例中,所述云服务器存储有公钥;
所述通过所述加密连接通道,与所述车辆进行双向接入认证,包括:
通过所述加密连接通道,接收所述车辆发送的第一接入认证请求;其中,所述第一接入认证请求中携带第一认证基础数据和第一签名数据;
根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所述公钥进行验签,并根据验签结果,确定所述云服务器对所述车辆的接入认证是否通过;
在所述云服务器对所述车辆的接入认证通过的情况下,生成第二接入认证请求;其中,所述第二接入认证请求中携带第二认证基础数据和第二签名数据,所述第二签名数据为所述车辆根据所述第二认证基础数据和所述公钥进行签名得到的;
通过所述加密连接通道,向所述云服务器发送所述第二接入认证请求。
在一些实施例中,所述第一认证基础数据中包括第一随机数和第一时间戳,所述第二认证基础数据中包括第二随机数和第二时间戳;
所述通过所述加密连接通道,接收所述车辆发送的第一接入认证请求之后,所述方法还包括:
根据所述第一随机数和所述第一时间戳进行防重放校验,在防重放校验通过的情况下,执行所述根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所述公钥进行验签的步骤。
在一些实施例中,所述生成第二接入认证请求,包括:
生成密钥套件;
使用所述公钥对所述密钥套件进行加密,得到加密结果;其中,所述第二接入认证请求的第二认证基础数据中包括所述加密结果;
所述通过所述加密连接通道,向所述云服务器发送所述第二接入认证请求之后,所述方法还包括:
在所述车辆对所述云服务器的接入认证通过的情况下,通过所述加密连接通道,使用所述密钥套件与所述车辆进行数据通信。
在一些实施例中,所述第一认证基础数据中包括所述车辆的车辆标识,所述云服务器中存储有多个公钥;
所述根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所述公钥进行验签,包括:
确定所述云服务器存储的公钥中,与所述车辆标识对应的公钥;
根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
第三方面,本公开的实施例提供一种接入认证装置,应用于车辆,所述装置包括:
接收模块,用于接收云服务器发送的签名证书;
构建模块,用于在确定出所述签名证书合法的情况下,在所述车辆与所述云服务器之间构建加密连接通道;
认证模块,用于通过所述加密连接通道,与所述云服务器进行接入认证。
在一些实施例中,所述认证模块,具体用于:
通过所述加密连接通道,与所述云服务器进行双向接入认证。
在一些实施例中,所述车辆存储有私钥;
所述认证模块,包括:
生成单元,用于生成第一接入认证请求;其中,所述第一接入认证请求中携带第一认证基础数据和第一签名数据,所述第一签名数据为所述车辆根据所述第一认证基础数据和所述私钥进行签名得到的;
发送单元,用于通过所述加密连接通道,向所述云服务器发送所述第一接入认证请求;
接收单元,用于在发送所述第一接入认证请求之后,通过所述加密连接通道,接收所述云服务器发送的第二接入认证请求;其中,所述第二接入认证请求中携带第二认证基础数据和第二签名数据;
处理单元,用于根据所述第二接入认证请求中的第二认证基础数据和第二签名数据,以及所述私钥进行验签,并根据验签结果,确定所述车辆对所述云服务器的接入认证是否通过。
在一些实施例中,所述第一认证基础数据中包括第一随机数和第一时间戳,所述第二认证基础数据中包括第二随机数和第二时间戳;
所述装置还包括:
校验模块,用于在通过所述加密连接通道,接收所述云服务器发送的第二接入认证请求之后,根据所述第二随机数和所述第二时间戳进行防重放校验,在防重放校验通过的情况下,触发所述处理单元。
在一些实施例中,所述第二认证基础数据中包括加密结果;
所述装置还包括:
获取模块,用于在根据验签结果,确定所述车辆对所述云服务器的接入认证是否通过之后,在所述车辆对所述云服务器的接入认证通过的情况下,所述第二认证基础数据中获取所述加密结果;
解密模块,用于使用所述私钥对所述加密结果进行解密,得到密钥套件;
通信模块,用于通过所述加密连接通道,使用所述密钥套件与所述云服务器进行数据通信。
在一些实施例中,所述第一认证基础数据中包括所述车辆的车辆标识。
在一些实施例中,所述车辆包括安全芯片,所述车辆标识和所述私钥存储于所述安全芯片中。
第四方面,本公开的实施例提供一种接入认证装置,应用于云服务器,所述装置包括:
生成模块,用于生成签名证书;
发送模块,用于向车辆发送所述签名证书;
构建模块,用于在所述车辆确定出所述签名证书合法的情况下,在所述云服务器与所述车辆之间构建加密连接通道;
认证模块,用于通过所述加密连接通道,与所述车辆进行接入认证。
在一些实施例中,所述认证模块,具体用于:
通过所述加密连接通道,与所述车辆进行双向接入认证。
在一些实施例中,所述云服务器存储有公钥;
所述认证模块,包括:
接收单元,用于通过所述加密连接通道,接收所述车辆发送的第一接入认证请求;其中,所述第一接入认证请求中携带第一认证基础数据和第一签名数据;
处理单元,用于根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所述公钥进行验签,并根据验签结果,确定所述云服务器对所述车辆的接入认证是否通过;
生成单元,用于在所述云服务器对所述车辆的接入认证通过的情况下,生成第二接入认证请求;其中,所述第二接入认证请求中携带第二认证基础数据和第二签名数据,所述第二签名数据为所述车辆根据所述第二认证基础数据和所述公钥进行签名得到的;
发送单元,用于通过所述加密连接通道,向所述云服务器发送所述第二接入认证请求。
在一些实施例中,所述第一认证基础数据中包括第一随机数和第一时间戳,所述第二认证基础数据中包括第二随机数和第二时间戳;
所述装置还包括:
校验模块,用于在通过所述加密连接通道,接收所述车辆发送的第一接入认证请求之后,根据所述第一随机数和所述第一时间戳进行防重放校验,在防重放校验通过的情况下,触发所述处理单元。
在一些实施例中,所述生成单元,包括:
生成子单元,用于生成密钥套件;
获得子单元,用于使用所述公钥对所述密钥套件进行加密,得到加密结果;其中,所述第二接入认证请求的第二认证基础数据中包括所述加密结果;
所述装置还包括:
通信模块,用于在通过所述加密连接通道,向所述云服务器发送所述第二接入认证请求之后,在所述车辆对所述云服务器的接入认证通过的情况下,通过所述加密连接通道,使用所述密钥套件与所述车辆进行数据通信。
在一些实施例中,所述第一认证基础数据中包括所述车辆的车辆标识,所述云服务器中存储有多个公钥;
所述处理单元,包括:
确定子单元,用于确定所述云服务器存储的公钥中,与所述车辆标识对应的公钥;
验签子单元,用于根据所述第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
第五方面,本公开的实施例提供一种相关设备,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述应用于车辆的接入认证方法的步骤,或者实现上述应用于云服务器的接入认证方法的步骤。
第六方面,本公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述应用于车辆的接入认证方法的步骤,或者实现上述应用于云服务器的接入认证方法的步骤。
附图说明
图1是本公开的实施例提供的接入认证方法的流程图之一;
图2是车辆与云服务器的数据通信过程示意图;
图3是本公开的实施例提供的接入认证方法的流程图之二;
图4是本公开的实施例提供的接入认证方法的流程图之三;
图5是本公开的实施例提供的接入认证装置的结构框图之一;
图6是本公开的实施例提供的接入认证装置的结构框图之二;
图7是本公开的实施例提供的接入认证方法的流程图之四;
图8是本公开的实施例提供的相关设备的结构示意图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本公开保护的范围。
参见图1,图中示出了本公开的实施例提供的接入认证方法的流程图。如图1所示,该方法应用于车辆,该方法包括如下步骤:
步骤101,接收云服务器发送的签名证书。
需要说明的是,云服务器中可以预先存储有根证书,该根证书为云服务器的自有根证书。其中,根证书可以包括root-key和root-crt两部分,root-key为证书私钥,root-crt中包括根证书持有人信息、证书公钥,以及签名信息。云服务器可以利用根证书中的证书私钥生成签名证书,并向车辆发送签名证书。
具体地,为了实现签名证书的发送,车辆与云服务器之间可以构建传输控制协议(transmissioncontrolprotocol,tcp)连接通道,云服务器可以通过tcp连接通道,向车辆发送签名证书。这样,车辆可以通过tcp连接通道,接收云服务器发送的签名证书。
需要指出的是,由于签名证书采用云服务器的自有根证书生成,其并不是直接购买的商业证书(普遍较为昂贵),故签名证书的成本较低。
步骤102,在确定出签名证书合法的情况下,在车辆与云服务器之间构建加密连接通道。
需要说明的是,车辆中可以预先存储有云服务器的自有根证书中的root-crt,root-crt,具体可以在工厂产线上存储至车辆中。在通过tcp连接通道,接收到云服务器发送的签名证书之后,车辆可以利用自身存储的root-crt对签名证书进行验证,以确定签名证书是否合法。
在确定出签名证书不合法的情况下,可以认为发送签名证书的可能是攻击者伪造的云服务器,为了保证安全性,车辆可以主动断开自身与云服务器之间的tcp连接通道,整个接入认证方法的流程结束。
在确定出签名证书合法的情况下,可以认为发送签名证书的是可信的云服务器,车辆可以在自身与云服务器之间构建加密连接通道。具体地,加密连接通道可以为安全传输层协议(transportlayersecurity,tls)连接通道。可以理解的是,tls具有三大优点:
一、所有信息都是加密传播,第三方无法窃取;
二、具有校验机制,一旦被篡改,通信双方会立刻发现;
三、配备身份证书,防止身份被冒充。
需要指出的是,安全连接通道的类型并不局限于tls连接通道,具体可以根据实际情况来确定,本公开的实施例对此不做任何限定。为了便于本领域技术人员理解本方案,本公开的实施例中均以安全连接通道为tls连接通道的情况为例进行说明。
步骤103,通过加密连接通道,与云服务器进行接入认证。
在一些实施例中,通过加密连接通道,与云服务器进行接入认证,包括:
通过加密连接通道,与云服务器进行双向接入认证。
需要指出的是,在车辆与云服务器进行双向接入认证的情况下,认证结果的可靠性能够得到有效的保证。当然,车辆与云服务器也可以仅进行单向接入认证,这也是可行的。
本公开的实施例中,在车辆与云服务器进行接入认证之前,云服务器可以向车辆发送签名证书。接下来,车辆可以确定签名证书是否合法,以对云服务器进行证书认证。在签名证书合法的情况下,这说明云服务器的证书认证通过,这时,车辆与云服务器之间可以构建加密连接通道,车辆与云服务器可以通过加密连接通道进行接入认证。可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
在一些实施例中,车辆存储有私钥;
通过加密连接通道,与云服务器进行双向接入认证,包括:
生成第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据,第一签名数据为车辆根据第一认证基础数据和私钥进行签名得到的;
通过加密连接通道,向云服务器发送第一接入认证请求;
在发送第一接入认证请求之后,通过加密连接通道,接收云服务器发送的第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据;
根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,并根据验签结果,确定车辆对云服务器的接入认证是否通过。
本公开的实施例中,为了实现车辆与云服务器的双向接入认证,云服务器中可以存储有公钥,云服务器存储的公钥与车辆存储的私钥可组成非对称密钥(属于非对称密钥体系)。
在车辆与云服务器之间构建好tls连接通道之后,车辆可以获取第一认证基础数据。接下来,车辆可以根据第一认证基础数据和私钥进行签名,以得到第一签名数据,从而生成携带第一认证基础数据和第一签名数据的第一接入认证请求。之后,车辆可以通过tls连接通道,向云服务器发送第一接入认证请求。
在接收到第一接入认证请求之后,云服务器可以根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,以得到验签结果。
如果云服务器得到的验签结果为不通过,云服务器可以确定自身对车辆的接入认证不通过,云服务器可以直接拒绝第一接入认证请求,整个接入认证方法的流程结束。
如果云服务器得到的验签结果为通过,云服务器可以确定自身对车辆的接入认证通过,云服务器可以获取第二认证基础数据。接下来,云服务器可以根据第二认证基础数据和公钥进行签名,以得到第二签名数据,从而生成携带第二认证基础数据和第二签名数据的第二接入认证请求。之后,云服务器可以通过tls连接通道,向车辆发送第二接入认证请求。
在接收到第二接入认证请求之后,车辆可以根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,以得到验签结果。
如果车辆得到的验签结果为不通过,车辆可以确定自身对云服务器的接入认证不通过,车辆可以主动断开自身与云服务器之间的tls连接通道,整个接入认证方法的流程结束。
如果车辆得到的验签结果为通过,车辆可以确定自身对云服务器的接入认证通过,至此,车辆与云服务器成功完成了双向接入认证。
可见,本公开的实施例中,云服务器可以根据第一接入认证请求对云服务器进行接入认证,车辆可以根据第二接入认证请求对云服务器进行接入认证,这样,车辆与云服务器能够非常便捷地实现双向接入认证,并且,双向接入认证结果的可靠性能够得到有效地保证。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
通过加密连接通道,接收云服务器发送的第二接入认证请求之后,该方法还包括:
根据第二随机数和第二时间戳,对第二接入认证请求进行防重放校验,在防重放校验通过的情况下,执行根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签的步骤。
本公开的实施例中,第一认证基础数据中可以包括第一随机数(假设为nonce1)和第一时间戳(假设为timestamp1)。在云服务器通过tls连接通道,接收到车辆发送的第一接入认证请求之后,云服务器可以从第一接入认证请求携带的第一认证基础数据中提取nonce1和timestamp1。之后,云服务器可以根据nonce1和timestamp1进行防重放校验。可以理解的是,根据nonce1和timestamp1进行防重放校验具体为验证nonce1的有效性,或者确定单位时间内nonce1是否被使用过。
如果云服务器确定防重放校验通过,这说明nonce1是有效的,单位时间内nonce1并未被使用过,这时,云服务器可以根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,从而根据验签结果,确定云服务器对车辆的接入认证是否通过。
如果云服务器确定防重放校验不通过,这说明nonce1是无效的,单位时间内nonce1被使用过,这时,云服务器可以确定自身对车辆的接入认证不通过,云服务器可以直接拒绝第一接入认证请求,云服务器不执行验签操作,整个接入认证方法的流程结束。
类似地,第二认证基础数据中可以包括第二随机数(假设为nonce2)和第二时间戳(假设为timestamp2)。在车辆通过tls连接通道,接收到云服务器发送的第二接入认证请求之后,车辆可以从第二接入认证请求携带的第二认证基础数据中提取nonce2和timestamp2。之后,车辆可以根据nonce2和timestamp2进行防重放校验。
如果车辆确定防重放校验通过,这说明nonce2是有效的,单位时间内nonce2并未被使用过,这时,车辆可以根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,以根据验签结果,确定车辆对云服务器的接入认证是否通过。
如果车辆确定防重放校验不通过,这说明nonce2是无效的,单位时间内nonce2被使用过,这时,车辆可以确定自身对云服务器的接入认证不通过,车辆不执行验签操作,车辆还可以主动断开自身与云服务器之间的tls连接通道,整个接入认证方法的流程结束。
可以看出,本公开的实施例中,在车辆和云服务器的双向接入认证过程中,云服务器会根据nonce1和timestamp1进行防重放校验,车辆会根据nonce2和timestamp2进行防重放校验,即车辆和云服务器可以进行双向防重放校验,这样能够识别出攻击者通过网络抓包(例如对车辆数据进行网络抓包)而发起的重放攻击,从而进一步保证双向接入认证结果的可靠性。
在一些实施例中,第二认证基础数据中包括加密结果;
根据验签结果,确定车辆对云服务器的接入认证是否通过之后,该方法还包括:
在车辆对云服务器的接入认证通过的情况下,从第二认证基础数据中获取加密结果;
使用私钥对加密结果进行解密,得到密钥套件;
通过加密连接通道,使用密钥套件与云服务器进行数据通信。
本公开的实施例中,在生成第二接入认证请求的过程中,云服务器可以生成密钥套件。其中,密钥套件可以用于车辆与云服务器的数据通信,密钥套件能够定义车辆与云服务器进行通信时所使用的各种算法,例如身份验证算法、加密算法、密钥交换算法等。具体地,密钥套件定义的加密算法可以为高级加密标准(advancedencryptionstandard,aes)算法,可以理解的是,aes算法是一种对称加密算法。
接下来,云服务器可以使用公钥对密钥套件进行加密,得到加密结果,并将得到的加密结果作为第二认证基础数据中的数据。
这样,在车辆对云服务器的接入认证通过的情况下,车辆可以从第二接入认证请求携带的第二认证基础数据中获取加密结果。在车辆使用私钥对加密结果进行解密后,车辆即可得到密钥套件。这时,车辆和云服务器均具有密钥套件,车辆和云服务器可以使用密钥套件进行数据通信,例如使用密钥套件对传输数据进行加密解密、签名验签等,以保证车辆与云服务器之间传输的数据的安全性。
具体实施时,如图2所示,车辆210中可以包括车机网关211和车机应用212;云服务器220中可以包括云端网关221和云端业务系统222;车机网关211与云端网关221可以通过tls连接通道230进行连接。可以理解的是,云端网关221是云服务器210最外层的模块,其负责与车辆210建立并保存连接,接收车机网关211上报的数据,以及下发消息(例如用于控制车辆210执行具体事件的车控指令)至车机网关211。
假设车辆210需要向云服务器220发送数据,车机应用212可以在使用密钥套件,对待发送数据进行加密和签名后,将加密和签名结果通过车机网关211发出。这样,云端网关211能够通过tls连接通道230接收到相应的数据,并将接收到的数据传输至云端业务系统222。之后,云端业务系统222可以使用密钥套件,对接收到的数据进行解密和验签。云服务器220向车辆210发送数据的过程参照车辆210向云服务器220发送数据的过程即可,在此不再赘述。
可以看出,本公开的实施例中,在车辆与云服务器进行数据通信的过程中,传输数据的安全性一方面可以通过密钥套件进行保证,另一方面可以通过加密连接通道进行保证,即传输数据的安全性能够使用双层安全策略进行保证。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识。其中,车辆的车辆标识可以为设备身份标识(即deviceid)。
需要说明的是,云服务器中可以存储有多个公钥,每一公钥与一车辆标识对应。在根据第一随机数和第一时间戳进行防重放校验,且防重放校验通过的情况下,云服务器可以根据车辆标识与公钥之间的对应性,确定云服务器存储的公钥中,与第一认证基础数据中的车辆标识对应的公钥。之后,云服务器可以根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
在一些实施例中,第一认证基础数据中还可以包括车辆所存储的私钥的私钥id(即privatekeyid)。
本公开的实施例中,云服务器可以针对不同车辆存储不同的公钥,并根据第一认证基础数据中的车辆标识获取相应的公钥以进行验签及执行后续操作,即使某一车辆对应的公钥被攻击者获取也不会对其他车辆造成影响,这样能够保证双向接入认证过程的安全性。
在一些实施例中,车辆包括安全芯片,车辆标识和私钥存储于安全芯片中。
具体地,车辆标识和私钥可以在车辆制造环节注入到车辆的安全芯片中。可以理解的是,安全芯片也可以称之为加密芯片,安全芯片是专门用来存储保密信息的存储芯片,其同时支持执行加密解密指令。
本公开的实施例中,由于车辆标识和私钥存储于车辆的安全芯片中,攻击者将无法获取到车辆标识和私钥,这样能够防止私钥外泄,以保证私钥的安全性,同时避免攻击者获取到车辆标识后伪装成车辆向云服务器发送信息。
下面结合图3,以一个具体的例子,对本公开的实施例的具体实施过程进行说明。
如图3所示,云服务器首先针对车辆(该车辆为需要与云服务器进行数据通信的任一车辆)生成身份标识deviceid,以及相应的公钥和私钥。云服务器针对车辆生成的deviceid和私钥可以在车辆制造环节注入车辆的安全芯片。另外,云服务器还存储针对车辆生成的公钥,并删除生成的私钥,以避免由于云服务器遭到攻击而导致车辆的私钥泄漏。
在车辆与云服务器进行双向接入认证之前,车辆与云服务器之间可以构建tcp连接通道,云服务器可以通过tcp连接通道,向车辆发送签名证书;其中,签名证书基于云服务器的自有根证书生成。
在接收到签名证书之后,车辆确定签名证书是否合法。如果签名证书不合法,车辆主动断开自身与云服务器之间的tcp连接通道;如果签名证书合法,车辆在自身与云服务器之间构建tls连接通道。接下来,车辆通过tls连接通道,向云服务器发送第一接入认证请求。其中,第一接入认证请求中携带第一认证基础数据和第一签名数据,第一认证基础数据中包括deviceid、privatekeyid、nonce1和timestamp1,第一签名数据是使用私钥对第一认证基础数据进行签名(例如rsa签名)得到的。
在接收到第一接入认证请求之后,云服务器根据nonce1和timestamp1进行防重放校验。在防重放校验不通过的情况下,云服务器拒绝第一接入认证请求;在防重放校验通过的情况下,云服务器根据第一认证基础数据和第一签名数据,以及公钥进行验签。在验签不通过的情况下,云服务器拒绝第一接入认证请求;在验签通过的情况下,云服务器生成密钥套件,使用公钥对密钥套件进行加密,得到加密结果,并通过tls连接通道,向车辆发送第二接入认证请求。其中,第二接入认证请求中携带第二认证基础数据和第二签名数据,第二认证基础数据中包括加密结果、nonce2和timestamp2,第二签名数据是使用公钥对第二认证基础数据进行签名(例如rsa签名)得到的。
在接收到第二接入认证请求之后,车辆根据nonce2和timestamp2进行防重放校验。在防重放校验不通过的情况下,车辆拒绝第二接入认证请求;在防重放校验通过的情况下,为了避免云服务器的自有根证书的泄漏带来的安全隐患,车辆可以根据第二认证基础数据和第二签名数据,以及私钥进行验签。在验签不通过的情况下,车辆拒绝第二接入认证请求;在验签通过的情况下,车辆从第二接入认证请求携带的第二认证基础数据中获取加密结果,使用私钥对加密结果进行解密,以得到密钥套件。之后,车辆与云服务器通过tls连接通道,使用密钥套件进行数据通信。
综上,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据的泄漏,以及避免车辆被非法控制。
参见图4,图中示出了本公开的实施例提供的接入认证方法的流程图。如图4所示,该方法应用于云服务器,该方法包括如下步骤:
步骤401,生成签名证书;
步骤402,向车辆发送签名证书;
步骤403,在车辆确定出签名证书合法的情况下,在云服务器与车辆之间构建加密连接通道;
步骤404,通过加密连接通道,与车辆进行接入认证。
在一些实施例中,通过加密连接通道,与车辆进行接入认证,包括:
通过加密连接通道,与车辆进行双向接入认证。
在一些实施例中,云服务器存储有公钥;
通过加密连接通道,与车辆进行双向接入认证,包括:
通过加密连接通道,接收车辆发送的第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据;
根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,并根据验签结果,确定云服务器对车辆的接入认证是否通过;
在云服务器对车辆的接入认证通过的情况下,生成第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据,第二签名数据为车辆根据第二认证基础数据和公钥进行签名得到的;
通过加密连接通道,向车辆发送第二接入认证请求。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
通过加密连接通道,接收车辆发送的第一接入认证请求之后,该方法还包括:
根据第一随机数和第一时间戳进行防重放校验,在防重放校验通过的情况下,执行根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签的步骤。
在一些实施例中,生成第二接入认证请求,包括:
生成密钥套件;
使用公钥对密钥套件进行加密,得到加密结果;其中,第二接入认证请求的第二认证基础数据中包括加密结果;
通过加密连接通道,向云服务器发送第二接入认证请求之后,该方法还包括:
在车辆对云服务器的接入认证通过的情况下,通过加密连接通道,使用密钥套件与车辆进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识,云服务器中存储有多个公钥;
根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,包括:
确定云服务器存储的公钥中,与车辆标识对应的公钥;
根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
本公开的实施例中,在车辆与云服务器进行接入认证之前,云服务器可以向车辆发送签名证书。接下来,车辆可以确定签名证书是否合法,以对云服务器进行证书认证。在签名证书合法的情况下,这说明云服务器的证书认证通过,这时,车辆与云服务器之间可以构建加密连接通道,车辆与云服务器可以通过加密连接通道进行接入认证。可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
参见图5,图中示出了本公开的实施例提供的接入认证装置500的结构框图。如图5所示,接入认证装置500应用于车辆,接入认证装置500包括:
接收模块501,用于接收云服务器发送的签名证书;
构建模块502,用于在确定出签名证书合法的情况下,在车辆与云服务器之间构建加密连接通道;
认证模块503,用于通过加密连接通道,与云服务器进行接入认证。
在一些实施例中,认证模块,具体用于:
通过加密连接通道,与云服务器进行双向接入认证。
在一些实施例中,车辆存储有私钥;
认证模块,包括:
生成单元,用于生成第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据,第一签名数据为车辆根据第一认证基础数据和私钥进行签名得到的;
发送单元,用于通过加密连接通道,向云服务器发送第一接入认证请求;
接收单元,用于在发送第一接入认证请求之后,通过加密连接通道,接收云服务器发送的第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据;
处理单元,用于根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,并根据验签结果,确定车辆对云服务器的接入认证是否通过。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
接入认证装置500还包括:
校验模块,用于在通过加密连接通道,接收云服务器发送的第二接入认证请求之后,根据第二随机数和第二时间戳进行防重放校验,在防重放校验通过的情况下,触发处理单元。
在一些实施例中,第二认证基础数据中包括加密结果;
接入认证装置500还包括:
获取模块,用于在根据验签结果,确定车辆对云服务器的接入认证是否通过之后,在车辆对云服务器的接入认证通过的情况下,从第二认证基础数据中获取加密结果;
解密模块,用于使用私钥对加密结果进行解密,得到密钥套件;
通信模块,用于通过加密连接通道,使用密钥套件与云服务器进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识。
在一些实施例中,车辆包括安全芯片,车辆标识和私钥存储于安全芯片中。
可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
参见图6,图中示出了本公开的实施例提供的接入认证装置600的结构框图。如图6所示,接入认证装置600应用于云服务器,接入认证装置600包括:
生成模块601,用于生成签名证书;
发送模块602,用于向车辆发送签名证书;
构建模块603,用于在车辆确定出签名证书合法的情况下,在云服务器与车辆之间构建加密连接通道;
认证模块604,用于通过加密连接通道,与车辆进行接入认证。
在一些实施例中,认证模块,具体用于:
通过加密连接通道,与车辆进行双向接入认证。
在一些实施例中,云服务器存储有公钥;
认证模块,包括:
接收单元,用于通过加密连接通道,接收车辆发送的第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据;
处理单元,用于根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,并根据验签结果,确定云服务器对车辆的接入认证是否通过;
生成单元,用于在云服务器对车辆的接入认证通过的情况下,生成第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据,第二签名数据为车辆根据第二认证基础数据和公钥进行签名得到的;
发送单元,用于通过加密连接通道,向车辆发送第二接入认证请求。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
接入认证装置600还包括:
校验模块,用于在通过加密连接通道,接收车辆发送的第一接入认证请求之后,根据第一随机数和第一时间戳进行防重放校验,在防重放校验通过的情况下,触发处理单元。
在一些实施例中,生成单元,包括:
生成子单元,用于生成密钥套件;
获得子单元,用于使用公钥对密钥套件进行加密,得到加密结果;其中,第二接入认证请求的第二认证基础数据中包括加密结果;
接入认证装置600还包括:
通信模块,用于在通过加密连接通道,向云服务器发送第二接入认证请求之后,在车辆对云服务器的接入认证通过的情况下,通过加密连接通道,使用密钥套件与车辆进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识,云服务器中存储有多个公钥;
处理单元,包括:
确定子单元,用于确定云服务器存储的公钥中,与车辆标识对应的公钥;
验签子单元,用于根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
参见图7,图中示出了本公开的实施例提供的接入认证方法的流程图。如图7所示,该方法包括如下步骤:
步骤701,云服务器生成签名证书;
步骤702,云服务器向车辆发送签名证书;
步骤703,车辆接收云服务器发送的签名证书;
步骤704,在车辆确定出签名证书合法的情况下,车辆与云服务器之间构建加密连接通道;
步骤705,通过加密连接通道,车辆与云服务器进行接入认证。
在一些实施例中,通过加密连接通道,车辆与云服务器进行接入认证,包括:
通过加密连接通道,车辆与云服务器进行双向接入认证。
在一些实施例中,车辆存储有私钥,云服务器存储有公钥;
通过加密连接通道,车辆与云服务器进行接入认证,包括:
车辆生成第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据,第一签名数据为车辆根据第一认证基础数据和私钥进行签名得到的;
车辆通过加密连接通道,向云服务器发送第一接入认证请求;
云服务器通过加密连接通道,接收车辆发送的第一接入认证请求;
云服务器根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,并根据验签结果,确定云服务器对车辆的接入认证是否通过;
在云服务器对车辆的接入认证通过的情况下,云服务器生成第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据,第二签名数据为车辆根据第二认证基础数据和公钥进行签名得到的;
云服务器通过加密连接通道,向车辆发送第二接入认证请求;
车辆通过加密连接通道,接收云服务器发送的第二接入认证请求;
车辆根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,并根据验签结果,确定车辆对云服务器的接入认证是否通过。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
云服务器通过加密连接通道,接收车辆发送的第一接入认证请求之后,该方法还包括:
云服务器根据第一随机数和第一时间戳进行防重放校验,在防重放校验通过的情况下,执行云服务器根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签的步骤;
车辆通过加密连接通道,接收云服务器发送的第二接入认证请求之后,该方法还包括:
车辆根据第二随机数和第二时间戳进行防重放校验,在防重放校验通过的情况下,执行车辆根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签的步骤。
在一些实施例中,云服务器生成第二接入认证请求,包括:
云服务器生成密钥套件;
云服务器使用公钥对密钥套件进行加密,得到加密结果;其中,第二接入认证请求的第二认证基础数据中包括加密结果;
车辆根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,并根据验签结果,确定车辆对云服务器的接入认证是否通过之后,该方法还包括:
在车辆对云服务器的接入认证通过的情况下,车辆从第二认证基础数据中获取加密结果;
车辆使用私钥对加密结果进行解密,得到密钥套件;
通过加密连接通道,车辆与云服务器使用密钥套件进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识,云服务器中存储有多个公钥;
云服务器根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,包括:
云服务器确定云服务器存储的公钥中,与车辆标识对应的公钥;
云服务器根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
在一些实施例中,车辆包括安全芯片,车辆标识和私钥存储于安全芯片中。
可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
本公开的实施例还提供一种接入认证系统,该接入认证系统包括上述的接入认证装置500和上述的接入认证装置600。
本公开的实施例中的相关概念以及具体实施方式可以参考上述任一项实施例描述的接入认证方法中的相关描述,在此不再赘述。
可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
参见图8,图中示出了本公开的实施例提供的相关设备800的结构示意图。需要说明的是,相关设备800可以为车辆或云服务器。如图8所示,相关设备800包括:处理器801、收发机802、存储器803、用户接口804和总线接口。
相关设备800为车辆时,处理器801,用于读取存储器803中的程序,执行下列过程:
接收云服务器发送的签名证书;
在确定出签名证书合法的情况下,在车辆与云服务器之间构建加密连接通道;
通过加密连接通道,与云服务器进行接入认证。
在一些实施例中,处理器801,具体用于:
通过加密连接通道,与云服务器进行双向接入认证。
在一些实施例中,车辆存储有私钥;
处理器801,具体用于:
生成第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据,第一签名数据为车辆根据第一认证基础数据和私钥进行签名得到的;
通过加密连接通道,向云服务器发送第一接入认证请求;
在发送第一接入认证请求之后,通过加密连接通道,接收云服务器发送的第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据;
根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签,并根据验签结果,确定车辆对云服务器的接入认证是否通过。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
处理器801,还用于:
在通过加密连接通道,接收云服务器发送的第二接入认证请求之后,根据第二随机数和第二时间戳进行防重放校验,在防重放校验通过的情况下,执行根据第二接入认证请求中的第二认证基础数据和第二签名数据,以及私钥进行验签的步骤。
在一些实施例中,第二认证基础数据中包括加密结果;
处理器801,还用于:
在根据验签结果,确定车辆对云服务器的接入认证是否通过之后,在车辆对云服务器的接入认证通过的情况下,从第二认证基础数据中获取加密结果;
使用私钥对加密结果进行解密,得到密钥套件;
通过加密连接通道,使用密钥套件与云服务器进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识。
在一些实施例中,车辆包括安全芯片,车辆标识和私钥存储于安全芯片中。
相关设备800为云服务器时,处理器801,用于读取存储器803中的程序,执行下列过程:
生成签名证书;
向车辆发送签名证书;
在车辆确定出签名证书合法的情况下,在云服务器与车辆之间构建加密连接通道;
通过加密连接通道,与车辆进行接入认证。
在一些实施例中,处理器801,具体用于:
通过加密连接通道,与车辆进行双向接入认证。
在一些实施例中,云服务器存储有公钥;
处理器801,具体用于:
通过加密连接通道,接收车辆发送的第一接入认证请求;其中,第一接入认证请求中携带第一认证基础数据和第一签名数据;
根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签,并根据验签结果,确定云服务器对车辆的接入认证是否通过;
在云服务器对车辆的接入认证通过的情况下,生成第二接入认证请求;其中,第二接入认证请求中携带第二认证基础数据和第二签名数据,第二签名数据为车辆根据第二认证基础数据和公钥进行签名得到的;
通过加密连接通道,向云服务器发送第二接入认证请求。
在一些实施例中,第一认证基础数据中包括第一随机数和第一时间戳,第二认证基础数据中包括第二随机数和第二时间戳;
处理器801,还用于:
根据第一随机数和第一时间戳进行防重放校验,在防重放校验通过的情况下,执行根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及公钥进行验签的步骤。
在一些实施例中,处理器801,具体用于:
生成密钥套件;
使用公钥对密钥套件进行加密,得到加密结果;其中,第二接入认证请求的第二认证基础数据中包括加密结果;
处理器801,还用于:
在通过加密连接通道,向云服务器发送第二接入认证请求之后,在车辆对云服务器的接入认证通过的情况下,通过加密连接通道,使用密钥套件与车辆进行数据通信。
在一些实施例中,第一认证基础数据中包括车辆的车辆标识,云服务器中存储有多个公钥;
处理器801,具体用于:
确定云服务器存储的公钥中,与车辆标识对应的公钥;
根据第一接入认证请求中的第一认证基础数据和第一签名数据,以及所确定的公钥进行验签。
在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器801代表的一个或多个处理器和存储器803代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机802可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口804还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器801负责管理总线架构和通常的处理,存储器803可以存储处理器801在执行操作时所使用的数据。
可见,本公开的实施例中,车辆与云服务器并不是直接进行接入认证的,在接入认证之前,车辆会对云服务器进行证书认证,并且,接入认证过程是通过加密连接通道实现的,接入认证过程的安全性能够得到有效地保证,因此,与现有技术相比,本公开的实施例提供的接入认证方式的安全性能够得到有效地保证,这样可以有效地避免车辆数据(例如车速数据、车门状态数据、网络信号强度数据、全球定位系统数据等)的泄漏,以及避免车辆被非法控制。
本公开的实施例还提供一种相关设备,包括处理器801,存储器803,存储在存储器803上并可在所述处理器801上运行的计算机程序,该计算机程序被处理器801执行时实现上述应用于车辆的接入认证方法实施例中的各个过程,或执行上述应用于云服务器的接入认证方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本公开的实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器801执行时实现上述应用于车辆的接入认证方法实施例中的各个过程,或执行上述应用于云服务器的接入认证方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。