本发明涉及汽车,尤其涉及一种nfc钥匙验证方法、装置、系统及计算机可读存储介质。
背景技术:
1、目前,汽车已经成为人们生活中不可或缺的一部分,而随着科技的快速发展以及消费需求的不断提升,各厂商逐渐开始采用nfc卡对车辆进行解闭锁,为了实现nfc卡对车辆进行解闭锁,需要对nfc卡和车辆之间进行绑定认证,现有技术中对nfc卡和车辆之间的绑定认证一般是在nfc卡片中绑定车辆的钥匙数据,当用nfc卡对车辆进行刷卡交易时,nfc卡将存储的钥匙数据加密后发送给车辆,车辆对加密的钥匙数据进行解密并验证是否正确后执行解锁、闭锁、启动、关闭等,刷卡时仅对钥匙数据进行了单层加密,且车辆仅验证钥匙数据是否正确,nfc卡片容易被外部攻击破解,难以保证刷卡的安全性和可靠性。
技术实现思路
1、本发明的目的是为解决上述技术问题的不足而提供一种nfc钥匙验证方法、装置、系统及存储介质,能够提高nfc钥匙和车辆验证的安全性和可靠性。
2、为了实现上述目的,本发明提供了一种nfc钥匙验证方法,用于验证nfc钥匙与车辆是否匹配,所述验证方法由车辆执行,包括:
3、向所述nfc钥匙发送第一请求,所述第一请求包括第一随机数;
4、接收所述nfc钥匙基于所述第一请求发出的第一应答,所述第一应答包括第一数据和校验码,所述第一数据包括第一标识和第二随机数,所述校验码由所述nfc钥匙根据第二数据计算获得,所述第二数据包括所述第一标识和钥匙密文,所述第一标识为所述nfc钥匙的标识码,所述钥匙密文由所述nfc钥匙对预置的钥匙数据加密生成;
5、对所述第一应答进行解析以提取所述第一数据和所述校验码;
6、获取车端钥匙数据,并对所述车端钥匙数据进行加密生成钥匙验证密文,所述车端钥匙数据与所述nfc钥匙的钥匙数据相同,所述钥匙验证密文和所述钥匙密文的加密方式相同;
7、根据第三数据计算得到验证码,所述第三数据包括提取的所述第一标识和所述钥匙验证密文,所述验证码和所述校验码的算法相同;
8、根据所述验证码校验所述校验码;
9、若所述验证码和所述校验码相同,查询标识数据库中是否预存有所述第一标识;
10、若所述标识数据库中预存有所述第一标识,则执行所述第一应答对应的指令。
11、可选的,所述第一请求还包括第二标识,所述第二标识为内置于所述车辆的车端安全芯片的识别码,所述第二数据和所述第三数据还包括所述第二标识。
12、可选的,所述nfc钥匙内置有卡端安全芯片,所述卡端安全芯片基于所述第一请求生成第一应答,所述第一数据、所述第二数据和所述第三数据均包括第三标识,所述第三标识为所述卡端安全芯片的标识码。
13、可选的,所述第二数据和所述第三数据还包括车辆识别号,所述车辆识别号预置于所述nfc钥匙。
14、可选的,所述车端钥匙数据根据预置的钥匙参数和提取的所述第一标识计算获得。
15、可选的,所述车辆包括主模块、车端安全芯片和nfc从模块,所述主模块通过所述nfc从模块与所述nfc钥匙通信连接,向所述nfc钥匙发送所述第一请求之前,所述nfc钥匙验证方法还包括:
16、所述主模块向所述车端安全芯片发起数据请求;
17、所述车端安全芯片根据所述数据请求向所述主模块发送所述第一请求;
18、所述主模块通过所述nfc从模块向所述nfc钥匙发送所述第一请求。
19、可选的,所述主模块向所述车端安全芯片发起数据请求之前,所述nfc钥匙验证方法还包括:
20、所述nfc从模块接收所述nfc钥匙发出的连接请求;
21、所述nfc从模块根据所述连接请求选择启动与所述nfc钥匙对应的应用程序;
22、若启动成功,所述nfc从模块向所述主模块发送表示启动成功的信号。
23、为了实现上述目的,本发明还提供了一种nfc钥匙验证装置,包括:
24、收发模块,用于向nfc钥匙发送第一请求,以及接收所述nfc钥匙基于所述第一请求发出的第一应答,所述第一请求包括第一随机数,所述第一应答包括第一数据和校验码,所述第一数据包括第一标识和第二随机数,所述校验码由所述nfc钥匙根据第二数据计算获得,所述第二数据包括所述第一标识和钥匙密文,所述第一标识为所述nfc钥匙的标识码,所述钥匙密文由所述nfc钥匙对预置的钥匙数据加密生成;
25、解析模块,用于对所述第一应答进行解析以提取所述第一数据和所述校验码;
26、第一计算模块,用于获取车端钥匙数据并对所述车端钥匙数据进行加密生成钥匙验证密文,所述车端钥匙数据与所述nfc钥匙的钥匙数据相同,所述钥匙验证密文和所述钥匙密文的加密方式相同;
27、第二计算模块,用于根据第三数据计算验证码,所述第三数据包括提取的所述第一标识和所述钥匙验证密文,所述验证码和所述校验码的算法相同;
28、校验模块,用于根据所述验证码校验所述校验码;
29、查询模块,用于在所述验证码和所述校验码相同时,查询标识数据库中是否预存有所述第一标识;
30、控制模块,用于根据所述查询模块的查询结果执行所述第一应答对应的指令。
31、为了实现上述目的,本发明还提供了一种nfc钥匙验证系统,包括:
32、处理器;以及
33、存储器,用于存储所述处理器的可执行指令;
34、其中,所述处理器被配置为经由执行所述可执行指令来执行权利要求1至6任一项所述的nfc钥匙验证方法。
35、为了实现上述目的,本发明又提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的nfc钥匙验证方法。
36、本发明还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如前所述的nfc钥匙验证方法。
37、本发明提供的nfc钥匙验证方法中,通过车辆向nfc钥匙发送第一请求,对nfc钥匙发出的第一应答进行解析提取出第一数据和校验码,对车端钥匙数据进行加密生成钥匙验证密文,根据提取的第一数据和钥匙验证密文计算验证码,用验证码对校验码进行校验,验证码和校验码相同时,说明nfc钥匙预先绑定了车辆,查询标识数据库中是否预存有第一标识,若有,则说明车辆预先绑定了nfc钥匙,nfc钥匙和车辆验证成功,再执行第一应答对应的指令;向车辆发送第一数据和校验码能够防止外部攻击破解钥匙数据,车辆和nfc钥匙验证通信过程中加入随机数,能够进一步防止外部攻击,从而有效提高nfc钥匙和车辆之间信息传输的安全性和可靠性,而且车辆无需从接收的第一应答的校验码中解密出钥匙数据,能够加快车辆响应第一应答执行对应的指令,减少车辆响应时间,提高验证速度,从而提升用户体验感。