CN112015455A - 固件升级方法、装置、电子设备和存储介质 - Google Patents

固件升级方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112015455A
CN112015455A CN202011177678.9A CN202011177678A CN112015455A CN 112015455 A CN112015455 A CN 112015455A CN 202011177678 A CN202011177678 A CN 202011177678A CN 112015455 A CN112015455 A CN 112015455A
Authority
CN
China
Prior art keywords
firmware
key
user equipment
vehicle
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011177678.9A
Other languages
English (en)
Other versions
CN112015455B (zh
Inventor
王颖
陈维鑫
王智
熊伟
丛建国
韩毅
单宏寅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ingeek Information Security Consulting Associates Co ltd
Original Assignee
Ingeek Information Security Consulting Associates Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ingeek Information Security Consulting Associates Co ltd filed Critical Ingeek Information Security Consulting Associates Co ltd
Priority to CN202011177678.9A priority Critical patent/CN112015455B/zh
Publication of CN112015455A publication Critical patent/CN112015455A/zh
Application granted granted Critical
Publication of CN112015455B publication Critical patent/CN112015455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种固件升级方法、装置、电子设备和存储介质,通过接收服务器发送的目标固件的第一加密文件,根据第一密钥对第一加密文件进行解密,得到目标固件的固件头信息、固件体数据和固件体数据签名;根据第二密钥对固件头信息、固件体数据和固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将固件头信息加密文件发送给车端;当接收到车端发送的升级确认消息时,将固件体数据加密文件和固件体数据签名加密文件发送给车端,实现了对车辆中目标固件的升级,保证了待升级固件包的安全,从而保证了对目标固件升级的可靠性和高效性,提高了用户体验。

Description

固件升级方法、装置、电子设备和存储介质
技术领域
本申请实施例涉及车辆技术领域,尤其涉及一种固件升级方法、装置、电子设备和存储介质。
背景技术
随着通信技术与互联网技术的快速发展,通过空中下载(over the air,OTA)技术进行产品缺陷修复和丰富产品功能等,成为当前大多数电子产品升级更新的主流方式。随着智能汽车时代的到来,为不断丰富和提升用户的使用体验,基于OTA的固件升级也逐渐成为了关注的焦点。
现有技术中,通过服务器接收到待升级的固件包后,根据升级需求获取目标车辆标识及对应的车载终端标识,向目标车辆的车载终端发送待升级的固件包,接收车端对固件包的校验结果,若校验结果为通过时,发送升级指令至目标车辆,从而实现车端固件的远程升级。
然而,由于现有技术中固件包在传送的过程中保密程度较低,易被篡改,因此,现有技术中存在安全性不高的问题。
发明内容
本申请实施例提供一种固件升级方法、装置、电子设备和存储介质,以解决现有技术中存在的安全性不高的问题。
第一方面,本申请实施例提供一种固件升级方法,应用于用户设备,所述方法包括:
接收服务器发送的目标固件的第一加密文件;
根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;
将所述固件头信息加密文件发送给车端;
当接收到所述车端发送的升级确认消息时,将所述固件体数据加密文件和所述固件体数据签名加密文件发送给所述车端。
可选地,在所述根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密之前,所述方法还包括:
当所述用户设备与所述车端建立连接时,根据握手协议生成第二密钥。
可选地,所述根据握手协议生成第二密钥,包括:
接收所述车端发送的车辆特征信息和车辆特征信息签名;
当对所述车辆特征信息签名验证通过后,根据所述车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成所述第二密钥。
可选地,所述车辆特征信息包括车辆临时公钥和车辆随机数,所述根据所述车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成所述第二密钥,包括:
根据所述用户设备临时私钥和所述车辆临时公钥,生成第一迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第一迪菲-赫尔曼密钥和所述分享信息,生成第二密钥。
可选地,在所述根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的固件头信息、固件体数据和固件体数据签名之前,所述方法还包括:
向所述服务器发送第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
接收所述服务器发送的第三加密文件;
根据客户端身份私钥对所述第三加密文件进行解密,得到第一密钥。
可选地,在所述接收所述车端发送的车辆特征信息和车辆特征信息签名之前,所述方法还包括:
生成用户设备随机数、用户设备临时公钥和用户设备临时私钥;
根据用户设备身份私钥、钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名;
将所述用户设备特征信息和所述用户设备特征信息签名发送给所述车端。
可选地,在所述根据用户设备身份私钥、钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名之前,所述方法还包括:
确定本地是否存在可用钥匙数据;
当确定本地不存在可用钥匙数据时,向所述服务器发送钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
接收所述服务器返回的第四加密文件;
根据第一密钥对所述第四加密文件进行解密,得到所述钥匙数据。
第二方面,本申请实施例提供一种固件升级方法,应用于车端,所述方法包括:
接收用户设备发送的目标固件的固件头信息加密文件;
根据第三密钥对所述固件头信息加密文件进行解密,得到固件头信息;
根据所述固件头信息,确定是否对所述目标固件进行升级;
当确定对所述目标固件进行升级时,向所述用户设备发送升级确认消息;
接收所述用户设备发送的所述目标固件的固件体数据加密文件和固件体数据签名加密文件;
根据第三密钥,对所述固件体数据加密文件和所述固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名;
当对所述固件体数据签名验证通过后,根据所述固件体数据,对所述目标固件进行升级。
可选地,在所述根据第三密钥对所述固件头信息加密文件进行解密之前,所述方法还包括:
当所述车端与所述用户设备建立连接时,根据握手协议生成第三密钥。
可选地,所述根据握手协议生成第三密钥包括:
接收所述用户设备发送的用户设备特征信息和用户设备特征信息签名;
当对所述用户设备特征信息签名验证通过后,生成车辆随机数、车辆临时公钥和车辆临时私钥;
根据所述用户设备特征信息、车辆临时公钥、车辆临时私钥和车辆随机数,生成所述第三密钥。
可选地,所述用户设备特征信息包括用户设备随机数和用户设备临时公钥,所述根据所述用户设备特征信息、车辆临时公钥、车辆临时私钥和车辆随机数,生成所述第三密钥,包括:
根据所述车辆临时私钥和所述用户设备临时公钥,生成第二迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第二迪菲-赫尔曼密钥和所述分享信息,生成第三密钥。
可选地,在所述生成车辆随机数、车辆临时公钥和车辆临时私钥之后,所述方法还包括:
根据车辆身份私钥、所述车辆随机数和所述车辆临时公钥,生成车辆特征信息和车辆特征信息签名;
将所述车辆特征信息和所述车辆特征信息签名发送给所述用户设备。
第三方面,本申请实施例提供一种固件升级方法,应用于服务器,所述方法包括:
接收用户设备发送的固件升级请求,所述固件升级请求包括用户信息和目标固件信息;
根据所述用户信息和所述目标固件信息,确定是否满足对目标固件进行升级的条件;
当确定满足对所述目标固件进行升级的条件时,生成所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
根据第一密钥对所述待升级固件包进行加密,得到第一加密文件;
将所述第一加密文件发送给所述用户设备。
可选地,所述生成所述目标固件的待升级固件包,包括:
从本地提取所述目标固件的升级版本对应的数据,作为固件体数据;
根据所述固件体数据,生成固件头信息,所述固件头信息包括所述固件体数据的版本号和大小;
根据服务器身份私钥,对所述固件体数据进行签名,得到固件体数据签名;
将所述固件体数据、所述固件头信息和所述固件体数据签名打包,得到所述待升级固件包。
可选地,在所述根据所述第一密钥对所述待升级固件包进行加密,得到第一加密文件之前,所述方法还包括:
接收用户设备发送的第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
根据随机数法,生成所述第一密钥;
根据所述客户端身份公钥,对所述第一密钥进行加密,得到第三加密文件;
将所述第三加密文件发送给所述用户设备。
可选地,所述方法还包括:
接收所述用户设备发送的钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
根据所述用户设备身份公钥和所述用户信息,生成钥匙数据;
利用第一密钥对所述钥匙数据进行加密,得到第四加密文件;
将所述第四加密文件发送给所述用户设备。
可选地,所述根据用户设备身份公钥和用户信息,生成钥匙数据,包括:
根据所述用户设备身份公钥和用户信息,生成钥匙特征数据;
利用服务器私钥对所述钥匙特征数据进行签名,得到钥匙特征数据签名;
将所述钥匙特征数据和所述钥匙特征数据签名打包,得到所述钥匙数据。
第四方面,本申请实施提供一种固件升级装置,包括:
第一处理模块,用于接收服务器发送的目标固件的第一加密文件;根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的固件头信息、固件体数据和固件体数据签名;
第二处理模块,用于根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将所述固件头信息加密文件发送给车端;当接收到所述车端发送的升级确认消息时,将所述固件体数据加密文件和所述固件体数据签名加密文件发送给所述车端。
第五方面,本申请实施例提供一种固件升级装置,包括:
第一处理模块,用于接收用户设备发送的目标固件的固件头信息加密文件;根据第三密钥对所述固件头信息加密文件进行解密,得到固件头信息;根据所述固件头信息,确定是否对所述目标固件进行升级;当确定对所述目标固件进行升级时,向所述用户设备发送升级确认消息;
第二处理模块,用于接收所述用户设备发送的所述目标固件的固件体数据加密文件和固件体数据签名加密文件;根据第三密钥,对所述固件体数据加密文件和所述固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名;当对所述固件体数据签名验证通过后,根据所述固件体数据,对所述目标固件进行升级。
第六方面,本申请实施例提供一种固件升级装置,包括:
第一处理模块,用于接收用户设备发送的固件升级请求,所述固件升级请求包括用户信息和目标固件信息;根据所述用户信息和所述目标固件信息,确定是否满足对目标固件进行升级的条件;当确定满足对所述目标固件进行升级的条件时,生成所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
第二处理模块,用于根据第一密钥对所述待升级固件包进行加密,得到第一加密文件;将所述第一加密文件发送给所述用户设备。
第七方面,本申请实施例提供一种用户设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述的固件升级方法。
第八方面,本申请实施例提供一种车端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第二方面所述的固件升级方法。
第九方面,本申请实施例提供一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第三方面所述的固件升级方法。
第十方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的固件升级方法。
第十一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第二方面所述的固件升级方法。
第十二方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第三方面所述的固件升级方法。
本申请实施例提供的固件升级方法、装置、电子设备和存储介质,通过接收服务器发送的目标固件的第一加密文件,根据第一密钥对第一加密文件进行解密,得到目标固件的待升级固件包,待升级固件包包括固件头信息、固件体数据和固件体数据签名;根据第二密钥对固件头信息、固件体数据和固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将固件头信息加密文件发送给车端;当接收到车端发送的升级确认消息时,将固件体数据加密文件和固件体数据签名加密文件发送给车端,实现了对车辆中目标固件的升级,在对目标固件的升级过程中,由于固件包在服务器与用户设备之间传输时,通过第一密钥进行加解密,固件包在用户设备与车端之间传输时,通过第二密钥和第三密钥进行加解密,保证了固件包的安全,从而保证了对目标固件升级的可靠性和高效性,提高了用户体验。
附图说明
图1为本申请实施例提供的固件升级系统的结构示意图;
图2为本申请实施例一提供的固件升级方法的流程示意图;
图3为本申请实施例二提供的固件升级方法的流程示意图;
图4为本申请实施例三提供的固件升级方法的流程示意图;
图5为本申请实施例四提供的固件升级方法的流程示意图;
图6为本申请实施例五提供的固件升级装置的结构示意图;
图7为本申请实施例六提供的固件升级装置的结构示意图;
图8为本申请实施例七提供的固件升级装置的结构示意图;
图9为本申请实施例八提供的用户设备的结构示意图;
图10为本申请实施例九提供的车端的结构示意图;
图11为本申请实施例十提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
下面首先对本申请实施例中涉及到的名词进行解释:
固件:指写入可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或电可擦写可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)中的程序,即设备内部保存的设备“驱动程序”,担任系统最基础、最底层工作的软件。对于车辆来说,固件是指具有数字钥匙功能的软件。
本申请实施例提供的固件升级方案,适用于固件升级系统,示例性地,图1为本申请实施例提供的固件升级系统的结构示意图,如图1所示,本实施例中的固件升级系统包括服务器、用户设备和车端,其中,服务器与用户设备之间通过网络进行连接,用户设备与车端之间通过网络或蓝牙进行连接,在车端固件的OTA升级过程中,服务器与用户设备之间以及用户设备与车端之间都需要进行信息交互,具体地,其中一个实体需要发送指示信息时,对应的另一个实体需要接收该指示信息,从而完成一次信息交互。
本申请技术方案的主要思路:由于现有技术中待升级固件包在传输过程中,数据信息容易被篡改,存在安全性不高的问题,进而容易导致升级失败,为此,本申请实施例提供一种固件升级的技术方案,通过使用一对密钥(第一密钥)对服务器与用户设备之间的传输的数据进行加密,并使用另一对密钥(第二密钥、第三密钥)对用户设备与车端之间传输的数据进行加密,提高了数据传输的安全性,进而提高了固件升级的可靠性,有助于提高用户体验。并且,为适应用户设备与服务器之间及用户设备与车端之间的通讯特点,对用户设备与服务器之间传输的数据进行加密的密钥(第一密钥)由服务器基于随机数法随机生成,这使得每次固件下载时生成的第一密钥均不相同,对用户设备与车端之间传输的数据进行加密的密钥(第二密钥、第三密钥)由用户设备和车端基于握手协议生成,这使每次固件升级时都会重新生成第二密钥、第三密钥,即每次固件升级时的第二密钥、第三密钥都与上次的不同。由此可见,本申请实施例中的第一密钥、第二密钥及第三密钥都是动态变化的,在保证数据安全性的同时,还提高了本申请技术方案的场景适应性。另外,本申请实施例还引入了用户设备,以用户设备作为车端与服务器之间信息交互的中间设备,能够帮助用户参与到固件升级过程中来,从而提供一种更能满足用户使用需求的固件升级方案,提高用户使用体验。此外,值得一提的是,本申请实施例的密钥体系采用的是RSA、ECC等非对称密钥以及AES对称密钥,是混合体系;校验算法采用的是ECC的ECDSA签名算法。
本实施例的固件升级方案主要包括准备阶段和正式升级阶段,其中,准备阶段涉及用户设备与服务器之间的信息交互,用户设备完成待升级固件包的获取,正式升级阶段涉及用户设备与车端之间的信息交互,车端根据待升级固件包,实现对目标固件的升级。
实施例一
图2为本申请实施例一提供的固件升级方法的流程示意图,如图2所示,本实施例的固件升级方法应用在服务器、用户设备及车端之间,具体可以包括如下步骤:
S101、向服务器发送固件升级请求,固件升级请求包括用户信息和目标固件信息。
本步骤中,用户设备可以根据用户在客户端(如具有固件升级功能APP)上执行的操作,向服务器发送固件升级请求,该固件升级请求中包括用户信息和目标固件信息,其中,用户信息可以包括用户身份信息(如用户的账户、标识等)和用户车辆信息(如该用户名下车辆的型号、车牌号等),目标固件信息即待升级固件的信息,如目标固件的名称、目标固件的当前版本(已安装版本)、目标固件的升级版本(请求安装版本)。
可以理解的,在固件升级请求发出之前,可选地,本步骤中为保证升级流程的安全性和顺利进行,用户设备还可以从以下方面进行自检:(1)确定用户设备与服务器是否建立连接;(2)确定用户是否有升级权限(即用户是否为车主);(3)确定用户设备电量是否大于电量需求阈值(如70%);(4)确定用户设备的蓝牙或网络连接是否处于稳定状态。若不满足上述条件,则向用户发出相应的提示,以使用户进行相应的调整,直到各方面均满足时再向服务器发送固件升级请求。
S102、根据用户信息和目标固件信息,确定是否满足对目标固件进行升级的条件。
本步骤中,服务器接收到固件升级请求后,根据固件升级请求中的用户信息和目标固件信息,进行自检,确定是否满足对目标固件进行升级的条件。示例性地,本步骤中,服务器自检可以包括:(1)校验用户(车主)身份是否合法;(2)确定目标固件的升级版本是否大于目标版本。若用户身份合法且目标固件的升级版本大于目标版本,则确定满足对目标固件进行升级的条件,否则,确定不满足对目标固件进行升级的条件。
可以理解是,若确定满足对目标固件进行升级的条件,则执行S103,若确定不满足对目标固件进行升级的条件,则中止本次升级流程。
S103、当确定满足对目标固件进行升级的条件时,生成目标固件的待升级固件包,待升级固件包包括固件头信息、固件体数据和固件体数据签名。
本步骤中,若根据S102确定满足对目标固件进行升级的条件时,服务器生成目标固件的待升级固件包,待升级固件包是指目标固件的升级版本对应的固件包,本步骤中,待升级固件包包括固件头信息、固件体数据和固件体数据签名,其中,固件头信息中可以包括版本信息、固件包大小等,固件体数据是指对目标固件进行升级的程序文件,固件体数据签名是服务器对固件体数据进行签名后得到的。
在一种可能的实现方式中,可以通过从本地提取目标固件的升级版本对应的数据,作为固件体数据,根据固件体数据,生成固件头信息,固件头信息包括固件体数据的版本号和大小,根据服务器身份私钥(server.SK),对固件体数据进行签名,得到固件体数据签名,将固件体数据、固件头信息和固件体数据签名打包,得到待升级固件包。
可以理解的是,本实施例中服务器中存储有各种固件的各种版本的数据,这些数据可以是第三方厂商预先上传到服务器中的,因此,根据目标固件信息的目标固件名称和升级版本,从服务器中提取出相应的数据,得到固件体数据,进而根据固件体数据,得到固件头信息和固件体数据签名。
S104、根据第一密钥对待升级固件包进行加密,得到第一加密文件。
本步骤中,在S103中生成待升级固件包后,服务器根据预先生成的第一密钥对待升级固件包进行加密,得到第一加密文件。可以理解的是,本步骤中,服务器可以利用第一密钥分别对固件头信息、固件体数据和固件体数据签名进行加密,并将加密后的文件进行打包,得到第一加密文件,也可以利用第一密钥对固件头信息、固件体数据和固件体数据签名的整体进行加密,得到第一加密文件,此处不做限制。
S105、将第一加密文件发送给用户设备。
本步骤中,服务器通过网络将第一加密文件发送给用户设备,相应地,用户设备接收第一加密文件。通过采用第一密钥对待升级固件包加密后,再发送给用户设备,提高了待升级固件包从服务器发送到用户设备过程中的安全性。
S106、根据第一密钥对第一加密文件进行解密,得到目标固件的固件头信息、固件体数据和固件体数据签名。
本实施例中,第一密钥为对称密钥,并且第一密钥分别存储在用户设备和服务器中,本步骤中,用户设备在接收到第一加密文件后,同样地,采用第一密钥对第一加密文件进行解密,得到目标固件的固件头信息、固件体数据和固件体数据签名。
S107、根据第二密钥对固件头信息、固件体数据和固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件。
本步骤中,为满足分次发送的场景,用户设备使用第二密钥分别对固件头信息、固件体数据和固件体数据签名分别进行加密,从而保证每次用户设备与车端之间数据传输的安全性。本步骤中,若固件体数据太大,还可以对固件体数据进行分片,并对每个固件体数据分片采用第二密钥进行加密,相应地,固件体数据加密文件为多个。
其中,第二密钥是用户设备与车端建立连接时,根据握手协议生成的,采用这种方式生成的第二密钥具有安全性高的特点,且适用于通过蓝牙进行信息交互的设备之间。
S108、将固件头信息加密文件发送给车端。
本步骤中,为减少不必要的信息传输,用户设备先将固件头信息加密文件发送给车端,以便车端根据固件头信息确定是否立即进行固件升级。
S109、根据第三密钥对固件头信息加密文件进行解密,得到固件头信息。
本实施例中,为便于区分,将用户设备与车端建立连接时,用户设备根据握手协议生成的密钥叫做第二密钥,车端根据握手协议生成的密钥叫做第三密钥,第二密钥和第三密钥是基于密钥交互算法生成的,是一对非对称密钥,因此,通过第二密钥加密得到的文件,可以通过第三密钥进解密,相反,通过第三密钥加密得到的文件,也可以通过第二密钥进行解密。后续将对第二密钥和第三密钥的生成过程进行详细的说明。
本步骤中,在利用第三密钥对固件头加密文件进行解密之后,车端就可以读取到固件头信息。
S110、根据固件头信息,确定是否对目标固件进行升级。
本步骤中,车端根据固件头信息中的文件大小、版本信息等,进行车端自检,以确定是否要对目标固件进行升级,示例性地,车端自检可以包括以下方面:(1)确定用户身份;(2)确定固件头信息中的版本信息与目标固件的升级版本信息是否匹配;(3)确认车辆点火开关是否处于关闭状态;(4)确认车辆电量是否满足升级电量需求(如是否介于9V至16V之间);若上述条件(1)-(4)均为“是”,则对目标固件进行升级,执行S111,否则,不对目标固件进行升级,本次升级流程结束。
S111、当确定对目标固件进行升级时,向用户设备发送升级确认消息。
本步骤中,当车端根据S110确定对目标固件进行升级时,通过网络或蓝牙向用户设备发送升级确认消息,以使用户设备根据接收到反馈消息,执行进一步的操作,保证升级流程的顺利进行。
S112、当接收到车端发送的升级确认消息时,将固件体数据加密文件和固件体数据签名加密文件发送给车端。
本步骤中,用户设备接收到车端发送的升级确认消息时,按照预设发送方式将固件体数据加密文件和固件体数据签名加密文件发送给车端,以使车端实现对目标固件的升级,其中,预设发送方式可以为分次发送,也可以为一次发送,具体根据实际情况确定,此处不做限制。
S113、根据第三密钥,对固件体数据加密文件和固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名。
本步骤中,车端根据第三密钥对固件体数据加密文件和固件体数据签名加密文件分别进行解密后,就可以得到固件体数据和固件体数据签名,再根据固件体数据和固件体数据签名的实际情况执行相应的操作。
具体地,车端可以先利用预先存储的服务器身份公钥(server.PK)对固件体数据签名进行验证,再根据验证结果,确定是否采用该固件体数据对目标固件进行升级。
需要说明的是,本步骤中,当固件体数据加密文件有多个时,车端会等待所有的固件体数据加密文件都被接收到以后,再对固件体数据签名进行验证,本实施例中,车端能够根据固件体数据分片,判断当前加密文件是否为最后一个加密文件。
S114、当对固件体数据签名验证通过后,根据固件体数据,对目标固件进行升级。
本步骤中,当对固件体数据签名验证通过后,车端根据固件体数据,对目标固件进行升级。可选地,本步骤中,在开始升级之前,车端还可以向用户设备发送提示信息,如“正在升级,请等待”。可选地,本步骤中,在升级完成后还可以向用户设备发送升级完成消息,以提高用户使用体验。
本实施例中,通过接收服务器发送的目标固件的第一加密文件,根据第一密钥对第一加密文件进行解密,得到目标固件的待升级固件包,待升级固件包包括固件头信息、固件体数据和固件体数据签名;根据第二密钥对固件头信息、固件体数据和固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将固件头信息加密文件发送给车端;当接收到车端发送的升级确认消息时,将固件体数据加密文件和固件体数据签名加密文件发送给车端,实现了对车辆中目标固件的升级,在对目标固件的升级过程中,由于固件包在服务器与用户设备之间传输时,通过第一密钥进行加解密,固件包在用户设备与车端之间传输时,通过第二密钥和第三密钥进行加解密,保证了固件包的安全,从而保证了对目标固件升级的可靠性和高效性,提高了用户体验。
实施例二
第二密钥和第三密钥对于用户设备与车端之间的数据安全发挥着重大作用,下面将以一个具体的实施例对第二密钥和第三密钥的生成过程进行详细介绍,本实施例中当用户设备与车端建立连接时,根据握手协议,在用户设备侧生成第二密钥,在车端侧生成第三密钥。示例性地,图3为本申请实施例二提供的固件升级方法的流程示意图,如图3所示,本实施例的固件升级方法具体包括如下步骤:
S201、生成用户设备随机数、用户设备临时公钥和用户设备临时私钥。
本步骤中,示例性地,用户设备采用随机数生成函数,生成用户设备随机数,并采用椭圆曲线加密算法(elliptic curve cryptography,ECC)生成用户设备临时公钥(device.ep.PK)和用户设备临时私钥(device.ep.SK)。
S202、根据用户设备身份私钥、钥匙数据、用户设备随机数和用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名。
本步骤中,用户设备根据S202中生成的用户设备随机数和用户设备临时公钥(device.ep.PK)以及用户设备身份私钥(device. SK)、钥匙数据,生成用户设备特征信息和用户设备特征信息签名。具体地,本步骤中,可以先根据钥匙数据、用户设备随机数和用户设备临时公钥(device.ep.PK),生成用户设备特征信息;再根据用户设备身份私钥(device. SK),对用户设备特征信息进行签名,得到用户设备特征信息签名。
可以理解的是,本步骤中可以通过将用户设备随机数、用户设备临时公钥(device.ep.PK)和钥匙数据按一定的格式组合到一个文件中,得到用户设备特征信息。通过提取用户设备特征信息的摘要,并利用用户设备身份私钥(device. SK)对该摘要进行签名,得到用户设备特征信息签名。
S203、将用户设备特征信息和用户设备特征信息签名发送给车端。
本步骤中,用户设备可以通过蓝牙或者网络将S202中生成的用户设备特征信息和用户设备特征信息签名发送给车端,相应地,车端进行用户设备特征信息和用户设备特征信息签名的接收。
S204、当对用户设备特征信息签名验证通过后,生成车辆随机数、车辆临时公钥和车辆临时私钥。
本步骤中,车端接收到用户设备特征信息和用户设备特征信息签名,并对用户设备特征信息签名验证通过后,生成车辆随机数、车辆临时公钥(vehicle.ep.PK)和车辆临时私钥(vehicle.ep.SK),其中,车辆随机数的生成与用户设备随机数的生成类似,车辆临时公钥(vehicle.ep.PK)和车辆临时私钥(vehicle.ep.SK)也是采用ECC生成。
可选地,在S204之前,本实施例的方法还包括:对用户设备特征信息进行验证的过程。在一种可能的实现方式中,用户设备特征信息包括钥匙数据,钥匙数据包括钥匙特征数据和钥匙特征数据签名,钥匙特征数据包括用户设备身份公钥(device. PK),钥匙特征数据签名是服务器根据服务器身份私钥(server.SK)对钥匙特征数据进行签名得到的,用户设备特征信息签名是用户设备根据用户设备身份私钥(device. SK)对用户设备特征信息进行签名得到的。对用户设备特征信息进行验证包括:
车端利用预先存储的服务器身份公钥(server.PK),对钥匙特征数据签名进行验证;当对钥匙特征数据签名验证通过后,从钥匙特征数据中提取用户设备身份公钥(device.PK);根据提取出来的用户设备身份公钥(device. PK),对用户设备特征信息签名进行验证。
S205、根据车辆身份私钥、车辆随机数和车辆临时公钥,生成车辆特征信息和车辆特征信息签名。
本步骤中,在S204之后,车端根据车辆身份私钥(vehicle.SK)及S204中生成的车辆随机数和车辆临时公钥(vehicle.ep.PK),生成车辆特征信息和车辆特征信息签名。在一种可能的实现方式中,本步骤中,根据车辆随机数和车辆临时公钥(vehicle.ep.PK),生成车辆特征信息;根据车辆身份私钥(vehicle.SK),对车辆特征信息的进行签名,得到车辆特征信息签名。
本步骤中,生成车辆特征信息和车辆特征信息签名的具体实现方式与S202生成用户设备特征信息和用户设备特征信息签名的具体实现方式类似,此处不再赘述。
S206、将车辆特征信息和车辆特征信息签名发送给用户设备。
本步骤中,车端通过网络或蓝牙将S205中生成的车辆特征信息和车辆特征信息签名发送给用户设备,相应地,用户设备接收车辆特征信息和车辆特征信息签名。
S207、当对车辆特征信息签名验证通过后,根据车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成第二密钥。
在通过S201-S206完成用户设备特征信息与车辆特征信息的交换以后,本步骤中,当对车辆特征信息签名验证通过后,用户设备根据车辆特征信息、用户设备临时公钥(device.ep.PK)、用户设备临时私钥(device.ep.SK)和用户设备随机数,生成第二密钥。
在一种可能的实现方式中,本步骤中,通过根据用户设备临时私钥(device.ep.SK)和车辆临时公钥(vehicle.ep.PK),通过椭圆曲线迪菲-赫尔曼(ellipticcurve Diffie–Hellman,ECDH)密钥交换算法,生成第一迪菲-赫尔曼密钥(Diffie–Hellmankey,简称DHkey);根据用户设备临时公钥(device.ep.PK)、用户设备随机数、车辆临时公钥(vehicle.ep.PK)和车辆随机数,生成分享信息ShareInfo;对第一迪菲-赫尔曼密钥和分享信息进行组合,生成第二密钥。
可选地,在S207之前,本实施例的方法还包括:用户设备利用预先存储的车辆身份公钥(vehicle.ep.PK),对车辆特征信息签名进行验证。
本步骤中,用户设备可以再次提取车辆特征信息的摘要,再利用车辆身份公钥(vehicle.ep.PK)对该摘要进行签名,通过判断用户设备生成的车辆特征信息签名与车端发送来的车辆特征信息是否一致,实现对车辆特征信息签名的验证。
S208、根据用户设备特征信息、车辆临时公钥、车辆临时私钥和车辆随机数,生成第三密钥。
本步骤中,车端根据用户设备特征信息、车辆临时公钥(vehicle.ep.PK)、车辆临时私钥(vehicle.ep.SK)和车辆随机数,生成第三密钥。在一种可能的实现方式中,本步骤中,通过根据车辆临时私钥(vehicle.ep.SK)和用户设备临时公钥(device.ep.PK),生成第二迪菲-赫尔曼密钥;根据用户设备临时公钥(device.ep.PK)、用户设备随机数、车辆临时公钥(vehicle.ep.PK)和车辆随机数生成分享信息;根据第二迪菲-赫尔曼密钥和分享信息,生成第三密钥。
本步骤的具体实现方式与S207中类似,此处不再赘述。
需要说明的是,本步骤也可以在S207之前执行或与S207同时执行,此处不做限制。
本实施例中,通过上述技术方案,实现了在用户设备与车端建立连接过程中,第二密钥和第三密钥的生成,为后续用户设备与车端之间的数据传输提供了安全保证,进而保证了固件升级的安全性和高效性,提高了用户体验。
可以理解的是,本实施例中,在每进行一次固件升级,都会生成一个新的第二密钥和一个新的第三密钥,使固件升级的安全性进一步提高。
实施例三
第一密钥对保证用户设备与服务器之间数据传输的安全性发挥着重要作用,下面将以一个具体的实施例将对第一密钥的生成进行详细介绍,图4为本申请实施例三提供的固件升级方法的流程示意图,本实施例主要用在用户设备与服务器之间,如图4所示,本实施例的固件升级方法具体包括如下步骤:
S301、向服务器发送第一密钥生成请求,第一密钥生成请求包括客户端身份公钥。
本步骤中,用户设备通过网络向服务器发送第一密钥生成请求,其中,第一密钥是固件升级过程中对用户设备与服务器之间传输的信息和数据进行加密的密钥。
需要说明的是,本实施例中,客户端身份公钥对(包括客户端身份公钥和客户端身份私钥)区别与用户设备身份公钥对(包括用户设备身份公钥和用户设备身份私钥),客户端身份公钥对是在客户端(APP)安装时生成的,用户设备身份公钥对是在用户设备出厂时生成的,相应地,车辆身份公私钥对(车辆身份公钥和车辆身份私钥)是车辆在出厂时生成,服务器身份公私钥对(服务器身份公钥和服务器身份私钥)是服务器在出厂时生成,这些身份公私钥对在生成后都是唯一确定的。区别在于,客户端身份公钥对为RSA(全称Rivest-Shamir-Adleman)公私钥对,是由RSA算法生成的,用户设备身份公钥对、车辆身份公私钥对和服务器身份公私钥对均是ECC公私钥对,是由ECC算法生成的。本步骤中,第一密钥生成请求包括客户端身份公钥(app.rsa.PK)。
S302、根据随机数法,生成第一密钥。
本步骤中,服务器在接收到第一密钥生成请求后,根据随机数法,生成第一密钥,其中,第一密钥为对称密钥。
S303、根据客户端身份公钥,对第一密钥进行加密,得到第三加密文件。
本步骤中,服务器在生成第一密钥之后,使第一密钥生成请求中的客户端身份公钥(app.rsa.PK)对第一密钥进行加密,得到第三加密文件。
S304、将第三加密文件发送给用户设备。
本步骤中,服务器通过将采用客户端身份公钥(app.rsa.PK)对第一密钥进行加密后,再发送给用户设备的方式,避免了由于第一密钥在传输过程中泄露,造成的安全性问题。
S305、根据客户端身份私钥对第三加密文件进行解密,得到第一密钥。
本步骤中,用户设备采用从客户端获取的客户端身份私钥(app.rsa.SK)对第三加密文件进行解密,得到第一密钥。
本实施例中,通过上述技术方案,实现了第一密钥的生成,为后续用户设备与服务器之间数据的传输提供了安全保证,进而保证了固件升级的安全性和高效性,提高了用户体验。
可以理解的是,本实施例中,在每进行一次固件升级,都会生成新的第一密钥,从而使固件升级的安全性进一步提高。
实施例四
钥匙数据在生成第二密钥和第三密钥的过程中是必不可少的,为此,本实施例将以一个具体的实施例,对钥匙数据的生成及钥匙数据在用户设备与服务器之间的传输过程进行详细介绍,图5为本申请实施例四提供的固件升级方法的流程示意图,如图5所示,本实施例的方法具体包括:
S401、确定本地是否存在可用钥匙数据。
本步骤中,用户设备确定本地是否存在可用的钥匙数据包括两个方面,一个方面,用户设备确定本地是否存在钥匙数据,另一个方面,用户确定本地存在的钥匙数据是否可用,即是否已过期,在同时满足本地存在钥匙数据且该钥匙数据可用时,才可确定本地存在可用的钥匙数据。若本地存在可用的钥匙数据,则使用该钥匙数据进行第二密钥和第三密钥的生成,若本地不存在可用的钥匙数据,则执行S402-S406进行钥匙数据的获取。
S402、当确定本地不存在可用钥匙数据时,向服务器发送钥匙数据获取请求,钥匙数据获取请求包括用户设备身份公钥和用户信息。
本步骤中,当根据S401确定当确定本地不存在可用钥匙数据时,用户设备通过网络向服务器发送钥匙数据获取请求,钥匙数据获取请求包括用户设备身份公钥和用户信息。
S403、根据用户设备身份公钥和用户信息,生成钥匙数据。
本步骤中,服务器在接收到钥匙数据获取请求后,根据钥匙数据获取请求中的用户设备身份公钥和用户信息,生成钥匙数据。在一种可能的实现方式中,本步骤中,通过根据用户设备身份公钥(device. PK)和用户信息,生成钥匙特征数据;利用服务器私钥(server.SK)对钥匙特征数据进行签名,得到钥匙特征数据签名;将钥匙特征数据和钥匙特征数据签名打包,得到钥匙数据。
类似地,本步骤中的用户信息也可以包括用户身份信息和车辆身份信息,服务器根据用户身份信息、车辆身份信息等用户信息及用户设备身份公钥,根据钥匙特征数据的生成规则,生成钥匙特征数据,进而根据签名规则,生成钥匙特征数据签名,并最终得到钥匙数据。
S404、利用第一密钥对钥匙数据进行加密,得到第四加密文件。
S405、将第四加密文件发送给用户设备。
S406、根据第一密钥对第四加密文件进行解密,得到钥匙数据。
在S404-S406中,为保证钥匙数据的安全,服务器先用第一密钥对钥匙数据进行加密,得到第四加密文件,并将第四加密文件发送给用户设备,由用户设备使用第一密钥对第四加密文件进行解密,得到钥匙数据,避免了钥匙数据在传输过程被篡改。
本实施例中,通过确定本地是否存在可用钥匙数据;当确定本地不存在可用钥匙数据时,向服务器发送钥匙数据获取请求,钥匙数据获取请求包括用户设备身份公钥和用户信息;接收服务器返回的第四加密文件;根据第一密钥对第四加密文件进行解密,得到钥匙数据,保证了钥匙数据获取过程中的安全性,为后续第二密钥和第三密钥的生成提供安全保证,进而提高了固件升级的安全性、高效性和可靠性,有利于提高用户体验。
实施例五
图6为本申请实施例五提供的固件升级装置的结构示意图,如图6所示,本实施例中固件升级装置10包括:
第一处理模块11和第二处理模块12。
第一处理模块11,用于接收服务器发送的目标固件的第一加密文件;根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的固件头信息、固件体数据和固件体数据签名;
第二处理模块12,用于根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将所述固件头信息加密文件发送给车端;当接收到所述车端发送的升级确认消息时,将所述固件体数据加密文件和所述固件体数据签名加密文件发送给所述车端。
可选地,第二处理模块12还用于:
当所述用户设备与所述车端建立连接时,根据握手协议生成的第二密钥。
可选地,第二处理模块12具体用于:
接收所述车端发送的车辆特征信息和车辆特征信息签名;
当对所述车辆特征信息签名验证通过后,根据所述车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成所述第二密钥。
可选地,第二处理模块12具体用于:
根据所述用户设备临时私钥和所述车辆临时公钥,生成第一迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第一迪菲-赫尔曼密钥和所述分享信息,生成第二密钥。
可选地,第二处理模块12具体用于:
生成用户设备随机数、用户设备临时公钥和用户设备临时私钥;
根据用户设备身份私钥、钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名;
将所述用户设备特征信息和所述用户设备特征信息签名发送给所述车端。
可选地,第二处理模块12具体用于:
根据所述钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息;
根据所述用户设备身份私钥,对所述用户设备特征信息进行签名,得到所述用户设备特征信息签名。
可选地,所述车辆特征信息签名是所述车端根据车辆身份私钥对所述车辆特征信息进行签名得到的,第二处理模块12还用于:
利用预先存储的车辆身份公钥,对所述车辆特征信息签名进行验证。
可选地,第一处理模块11还用于:
向所述服务器发送第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
接收所述服务器发送的第三加密文件;
根据客户端身份私钥对所述第三加密文件进行解密,得到第一密钥。
可选地,第一处理模块11还用于:
向所述服务器发送固件升级请求,所述固件升级请求包括用户信息和目标固件信息。
可选地,第一处理模块11还用于:
确定本地是否存在可用钥匙数据;
当确定本地不存在可用钥匙数据时,向所述服务器发送钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
接收所述服务器返回的第四加密文件;
根据第一密钥对所述第四加密文件进行解密,得到所述钥匙数据。
本实施例所提供的固件升级装置可执行上述方法实施例中用户设备侧的固件升级方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。
实施例六
图7为本申请实施例六提供的固件升级装置的结构示意图,如图7所示,本实施例中固件升级装置20包括:
第一处理模块21和第二处理模块22。
第一处理模块21,用于接收用户设备发送的目标固件的固件头信息加密文件;根据第三密钥对所述固件头信息加密文件进行解密,得到固件头信息;根据所述固件头信息,确定是否对所述目标固件进行升级;当确定对所述目标固件进行升级时,向所述用户设备发送升级确认消息;
第二处理模块22,用于接收所述用户设备发送的所述目标固件的固件体数据加密文件和固件体数据签名加密文件;根据第三密钥,对所述固件体数据加密文件和所述固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名;当对所述固件体数据签名验证通过后,根据所述固件体数据,对所述目标固件进行升级。
可选地,第一处理模块21还用于:
当所述车端与所述用户设备建立连接时,根据握手协议生成第三密钥。
可选地,第一处理模块21具体用于:
接收所述用户设备发送的用户设备特征信息和用户设备特征信息签名;
当对所述用户设备特征信息签名验证通过后,生成车辆随机数、车辆临时公钥和车辆临时私钥;
根据所述用户设备特征信息、车辆临时公钥、车辆临时私钥和车辆随机数,生成所述第三密钥。
可选地,第一处理模块21具体用于:
根据所述车辆临时私钥和所述用户设备临时公钥,生成第二迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第二迪菲-赫尔曼密钥和所述分享信息,生成第三密钥。
可选地,第一处理模块21还用于:
根据车辆身份私钥、所述车辆随机数和所述车辆临时公钥,生成车辆特征信息和车辆特征信息签名;
将所述车辆特征信息和所述车辆特征信息签名发送给所述用户设备。
可选地,第一处理模块21具体用于:
根据所述车辆随机数和所述车辆临时公钥,生成车辆特征信息;
根据所述车辆身份私钥,对所述车辆特征信息的进行签名,得到所述车辆特征信息签名。
可选地,所述用户设备特征信息包括钥匙数据,所述钥匙数据包括钥匙特征数据和钥匙特征数据签名,所述钥匙特征数据包括用户设备身份公钥,所述钥匙特征数据签名是服务器根据服务器身份私钥对所述钥匙特征数据进行签名得到的,所述用户设备特征信息签名是所述用户设备根据所述用户设备身份私钥对所述用户设备特征信息进行签名得到的;第一处理模块21还用于:
利用预先存储的服务器身份公钥,对所述钥匙特征数据签名进行验证;
当对所述钥匙特征数据签名验证通过后,从所述钥匙特征数据中提取所述用户设备身份公钥;
根据所述用户设备身份公钥,对所述用户设备特征信息签名进行验证。
本实施例所提供的固件升级装置可执行上述方法实施例中车端侧的固件升级方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。
实施例七
图8为本申请实施例七提供的固件升级装置的结构示意图,如图8所示,本实施例中固件升级装置30包括:
第一处理模块31和第二处理模块32。
第一处理模块31,用于接收用户设备发送的固件升级请求,所述固件升级请求包括用户信息和目标固件信息;根据所述用户信息和所述目标固件信息,确定是否满足对目标固件进行升级的条件;当确定满足对所述目标固件进行升级的条件时,生成所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
第二处理模块32,用于根据第一密钥对所述待升级固件包进行加密,得到第一加密文件;将所述第一加密文件发送给所述用户设备。
可选地,第一处理模块31具体用于:
从本地提取所述目标固件的升级版本对应的数据,作为固件体数据;
根据所述固件体数据,生成固件头信息,所述固件头信息包括所述固件体数据的版本号和大小;
根据服务器身份私钥,对所述固件体数据进行签名,得到固件体数据签名;
将所述固件体数据、所述固件头信息和所述固件体数据签名打包,得到所述待升级固件包。
可选地,第二处理模块32还用于:
接收用户设备发送的第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
根据随机数法,生成所述第一密钥;
根据所述客户端身份公钥,对所述第一密钥进行加密,得到第三加密文件;
将所述第三加密文件发送给所述用户设备。
可选地,第二处理模块32还用于:
接收所述用户设备发送的钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
根据所述用户设备身份公钥和所述用户信息,生成钥匙数据;
利用第一密钥对所述钥匙数据进行加密,得到第四加密文件;
将所述第四加密文件发送给所述用户设备。
可选地,第二处理模块32具体用于:
根据所述用户设备身份公钥和用户信息,生成钥匙特征数据;
利用服务器私钥对所述钥匙特征数据进行签名,得到钥匙特征数据签名;
将所述钥匙特征数据和所述钥匙特征数据签名打包,得到所述钥匙数据。
本实施例所提供的固件升级装置可执行上述方法实施例中服务器侧的固件升级方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。
实施例八
图9为本申请实施例八提供的用户设备的结构示意图,如图9所示,该用户设备40包括存储器41、处理器42及存储在存储器上并可在处理器上运行的计算机程序;所述处理器42执行所述计算机程序实现前述任一方法实施例中,用户设备侧的技术方案。
实施例九
图10为本申请实施例九提供的车端的结构示意图,如图10所示,该车端50包括存储器51、处理器52及存储在存储器上并可在处理器上运行的计算机程序;所述处理器52执行所述计算机程序实现前述任一方法实施例中车端侧的技术方案。
实施例十
图11为本申请实施例十提供的服务器的结构示意图,如图11所示,该服务器60包括存储器61、处理器62及存储在存储器上并可在处理器上运行的计算机程序;所述处理器62执行所述计算机程序实现前述任一方法实施例中服务器侧的技术方案。
需要说明的是,在上述实施例八至实施例十任一电子设备实施例中,处理器的数量可以是一个或多个,图9-11中以一个处理器为例;电子设备中的处理器、存储器可以通过总线或其他方式连接,图9-11中以通过总线连接为例。
存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如上述各电子设备实施例中的第一处理模块和第二处理模块对应的程序指令/模块。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行用户设备/车端/服务器的各种功能应用以及数据处理,即实现上述的固件升级方法。
存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网格连接至用户设备/车端/服务器。
实施例十一
本申请实施例十一还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行任一方法实施例中用户设备侧的技术方案。
实施例十二
本申请实施例十二还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行任一方法实施例中车端侧的技术方案。
实施例十三
本申请实施例十三还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行任一方法实施例中服务器侧的技术方案。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述固件升级装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (26)

1.一种固件升级方法,其特征在于,应用于用户设备,所述方法包括:
接收服务器发送的目标固件的第一加密文件;
根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;
将所述固件头信息加密文件发送给车端;
当接收到所述车端发送的升级确认消息时,将所述固件体数据加密文件和所述固件体数据签名加密文件发送给所述车端。
2.根据权利要求1所述的方法,其特征在于,在所述根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密之前,所述方法还包括:
当所述用户设备与所述车端建立连接时,根据握手协议生成第二密钥。
3.根据权利要求2所述的方法,其特征在于,所述根据握手协议生成第二密钥,包括:
接收所述车端发送的车辆特征信息和车辆特征信息签名;
当对所述车辆特征信息签名验证通过后,根据所述车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成所述第二密钥。
4.根据权利要求3所述的方法,其特征在于,所述车辆特征信息包括车辆临时公钥和车辆随机数,所述根据所述车辆特征信息、用户设备临时公钥、用户设备临时私钥和用户设备随机数,生成所述第二密钥,包括:
根据所述用户设备临时私钥和所述车辆临时公钥,生成第一迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第一迪菲-赫尔曼密钥和所述分享信息,生成第二密钥。
5.根据权利要求1所述的方法,其特征在于,在所述根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的固件头信息、固件体数据和固件体数据签名之前,所述方法还包括:
向所述服务器发送第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
接收所述服务器发送的第三加密文件;
根据客户端身份私钥对所述第三加密文件进行解密,得到第一密钥。
6.根据权利要求3所述的方法,其特征在于,在所述接收所述车端发送的车辆特征信息和车辆特征信息签名之前,所述方法还包括:
生成用户设备随机数、用户设备临时公钥和用户设备临时私钥;
根据用户设备身份私钥、钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名;
将所述用户设备特征信息和所述用户设备特征信息签名发送给所述车端。
7.根据权利要求6所述的方法,其特征在于,在所述根据用户设备身份私钥、钥匙数据、所述用户设备随机数和所述用户设备临时公钥,生成用户设备特征信息和用户设备特征信息签名之前,所述方法还包括:
确定本地是否存在可用钥匙数据;
当确定本地不存在可用钥匙数据时,向所述服务器发送钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
接收所述服务器返回的第四加密文件;
根据第一密钥对所述第四加密文件进行解密,得到所述钥匙数据。
8.一种固件升级方法,其特征在于,应用于车端,所述方法包括:
接收用户设备发送的目标固件的固件头信息加密文件;
根据第三密钥对所述固件头信息加密文件进行解密,得到固件头信息;
根据所述固件头信息,确定是否对所述目标固件进行升级;
当确定对所述目标固件进行升级时,向所述用户设备发送升级确认消息;
接收所述用户设备发送的所述目标固件的固件体数据加密文件和固件体数据签名加密文件;
根据第三密钥,对所述固件体数据加密文件和所述固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名;
当对所述固件体数据签名验证通过后,根据所述固件体数据,对所述目标固件进行升级。
9.根据权利要求8所述的方法,其特征在于,在所述根据第三密钥对所述固件头信息加密文件进行解密之前,所述方法还包括:
当所述车端与所述用户设备建立连接时,根据握手协议生成第三密钥。
10.根据权利要求9所述的方法,其特征在于,所述根据握手协议生成第三密钥包括:
接收所述用户设备发送的用户设备特征信息和用户设备特征信息签名;
当对所述用户设备特征信息签名验证通过后,生成车辆随机数、车辆临时公钥和车辆临时私钥;
根据所述用户设备特征信息、所述车辆临时公钥、所述车辆临时私钥和所述车辆随机数,生成所述第三密钥。
11.根据权利要求10所述的方法,其特征在于,所述用户设备特征信息包括用户设备随机数和用户设备临时公钥,所述根据所述用户设备特征信息、车辆临时公钥、车辆临时私钥和车辆随机数,生成所述第三密钥,包括:
根据所述车辆临时私钥和所述用户设备临时公钥,生成第二迪菲-赫尔曼密钥;
根据所述用户设备临时公钥、所述用户设备随机数、所述车辆临时公钥和所述车辆随机数生成分享信息;
根据所述第二迪菲-赫尔曼密钥和所述分享信息,生成第三密钥。
12.根据权利要求10所述的方法,其特征在于,在所述生成车辆随机数、车辆临时公钥和车辆临时私钥之后,所述方法还包括:
根据车辆身份私钥、所述车辆随机数和所述车辆临时公钥,生成车辆特征信息和车辆特征信息签名;
将所述车辆特征信息和所述车辆特征信息签名发送给所述用户设备。
13.一种固件升级方法,其特征在于,应用于服务器,所述方法包括:
接收用户设备发送的固件升级请求,所述固件升级请求包括用户信息和目标固件信息;
根据所述用户信息和所述目标固件信息,确定是否满足对目标固件进行升级的条件;
当确定满足对所述目标固件进行升级的条件时,生成所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
根据第一密钥对所述待升级固件包进行加密,得到第一加密文件;
将所述第一加密文件发送给所述用户设备。
14.根据权利要求13所述的方法,其特征在于,所述生成所述目标固件的待升级固件包,包括:
从本地提取所述目标固件的升级版本对应的数据,作为固件体数据;
根据所述固件体数据,生成固件头信息,所述固件头信息包括所述固件体数据的版本号和大小;
根据服务器身份私钥,对所述固件体数据进行签名,得到固件体数据签名;
将所述固件体数据、所述固件头信息和所述固件体数据签名打包,得到所述待升级固件包。
15.根据权利要求13或14所述的方法,其特征在于,在所述根据所述第一密钥对所述待升级固件包进行加密,得到第一加密文件之前,所述方法还包括:
接收用户设备发送的第一密钥生成请求,所述第一密钥生成请求包括客户端身份公钥;
根据随机数法,生成所述第一密钥;
根据所述客户端身份公钥,对所述第一密钥进行加密,得到第三加密文件;
将所述第三加密文件发送给所述用户设备。
16.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
接收所述用户设备发送的钥匙数据获取请求,所述钥匙数据获取请求包括用户设备身份公钥和用户信息;
根据所述用户设备身份公钥和所述用户信息,生成钥匙数据;
利用第一密钥对所述钥匙数据进行加密,得到第四加密文件;
将所述第四加密文件发送给所述用户设备。
17.根据权利要求16所述的方法,其特征在于,所述根据用户设备身份公钥和用户信息,生成钥匙数据,包括:
根据所述用户设备身份公钥和用户信息,生成钥匙特征数据;
利用服务器私钥对所述钥匙特征数据进行签名,得到钥匙特征数据签名;
将所述钥匙特征数据和所述钥匙特征数据签名打包,得到所述钥匙数据。
18.一种固件升级装置,其特征在于,包括:
第一处理模块,用于接收服务器发送的目标固件的第一加密文件;根据第一密钥对所述第一加密文件进行解密,得到所述目标固件的固件头信息、固件体数据和固件体数据签名;
第二处理模块,用于根据第二密钥对所述固件头信息、所述固件体数据和所述固件体数据签名分别进行加密,得到固件头信息加密文件、固件体数据加密文件和固件体数据签名加密文件;将所述固件头信息加密文件发送给车端;当接收到所述车端发送的升级确认消息时,将所述固件体数据加密文件和所述固件体数据签名加密文件发送给所述车端。
19.一种固件升级装置,其特征在于,包括:
第一处理模块,用于接收用户设备发送的目标固件的固件头信息加密文件;根据第三密钥对所述固件头信息加密文件进行解密,得到固件头信息;根据所述固件头信息,确定是否对所述目标固件进行升级;当确定对所述目标固件进行升级时,向所述用户设备发送升级确认消息;
第二处理模块,用于接收所述用户设备发送的所述目标固件的固件体数据加密文件和固件体数据签名加密文件;根据第三密钥,对所述固件体数据加密文件和所述固件体数据签名加密文件分别进行解密,得到固件体数据和固件体数据签名;当对所述固件体数据签名验证通过后,根据所述固件体数据,对所述目标固件进行升级。
20.一种固件升级装置,其特征在于,包括:
第一处理模块,用于接收用户设备发送的固件升级请求,所述固件升级请求包括用户信息和目标固件信息;根据所述用户信息和所述目标固件信息,确定是否满足对目标固件进行升级的条件;当确定满足对所述目标固件进行升级的条件时,生成所述目标固件的待升级固件包,所述待升级固件包包括固件头信息、固件体数据和固件体数据签名;
第二处理模块,用于根据第一密钥对所述待升级固件包进行加密,得到第一加密文件;将所述第一加密文件发送给所述用户设备。
21.一种用户设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的固件升级方法。
22.一种车端,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求8-12中任一项所述的固件升级方法。
23.一种服务器,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求13-17中任一项所述的固件升级方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的固件升级方法。
25.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求8-12中任一所述的固件升级方法。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求13-17中任一所述的固件升级方法。
CN202011177678.9A 2020-10-29 2020-10-29 固件升级方法、装置、电子设备和存储介质 Active CN112015455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011177678.9A CN112015455B (zh) 2020-10-29 2020-10-29 固件升级方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011177678.9A CN112015455B (zh) 2020-10-29 2020-10-29 固件升级方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112015455A true CN112015455A (zh) 2020-12-01
CN112015455B CN112015455B (zh) 2021-03-09

Family

ID=73527960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011177678.9A Active CN112015455B (zh) 2020-10-29 2020-10-29 固件升级方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112015455B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552497A (zh) * 2020-05-12 2020-08-18 飞天诚信科技股份有限公司 一种硬件钱包的固件更新方法及系统
CN112579125A (zh) * 2020-12-10 2021-03-30 四川虹微技术有限公司 一种固件升级方法、装置、电子设备和存储介质
CN113221149A (zh) * 2021-05-27 2021-08-06 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备
CN113734095A (zh) * 2021-10-18 2021-12-03 广东银基信息安全技术有限公司 车辆解锁方法、装置、无线钥匙端及介质
CN113806749A (zh) * 2021-09-23 2021-12-17 航天信息股份有限公司 一种升级方法、装置及存储介质
CN114024732A (zh) * 2021-10-29 2022-02-08 百度在线网络技术(北京)有限公司 升级包下载方法、设备、存储介质及程序产品
CN114143198A (zh) * 2021-11-30 2022-03-04 四川启睿克科技有限公司 固件升级的方法
CN114281379A (zh) * 2021-12-21 2022-04-05 上海银基信息安全技术股份有限公司 基于ota的软件更新方法及装置、设备端、服务端及存储介质
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552497A (zh) * 2020-05-12 2020-08-18 飞天诚信科技股份有限公司 一种硬件钱包的固件更新方法及系统
CN112579125B (zh) * 2020-12-10 2022-12-23 四川虹微技术有限公司 一种固件升级方法、装置、电子设备和存储介质
CN112579125A (zh) * 2020-12-10 2021-03-30 四川虹微技术有限公司 一种固件升级方法、装置、电子设备和存储介质
CN113221149A (zh) * 2021-05-27 2021-08-06 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备
CN113221149B (zh) * 2021-05-27 2024-02-09 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备
CN113806749B (zh) * 2021-09-23 2024-04-05 航天信息股份有限公司 一种升级方法、装置及存储介质
CN113806749A (zh) * 2021-09-23 2021-12-17 航天信息股份有限公司 一种升级方法、装置及存储介质
CN113734095B (zh) * 2021-10-18 2023-01-10 广东银基信息安全技术有限公司 车辆解锁方法、装置、无线钥匙端及介质
CN113734095A (zh) * 2021-10-18 2021-12-03 广东银基信息安全技术有限公司 车辆解锁方法、装置、无线钥匙端及介质
CN114024732A (zh) * 2021-10-29 2022-02-08 百度在线网络技术(北京)有限公司 升级包下载方法、设备、存储介质及程序产品
CN114143198A (zh) * 2021-11-30 2022-03-04 四川启睿克科技有限公司 固件升级的方法
CN114143198B (zh) * 2021-11-30 2023-06-13 四川启睿克科技有限公司 固件升级的方法
CN114281379A (zh) * 2021-12-21 2022-04-05 上海银基信息安全技术股份有限公司 基于ota的软件更新方法及装置、设备端、服务端及存储介质
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质

Also Published As

Publication number Publication date
CN112015455B (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112015455B (zh) 固件升级方法、装置、电子设备和存储介质
US10263961B2 (en) Security chip and application processor
CN102111265B (zh) 一种电力系统采集终端的安全芯片加密方法
KR101539448B1 (ko) 보안 키 생성
CN101828357B (zh) 用于证书提供的方法和装置
CN110621014B (zh) 一种车载设备及其程序升级方法、服务器
CN109560931B (zh) 一种基于无证书体系的设备远程升级方法
US10411904B2 (en) Method of authenticating devices using certificates
CN112913189B (zh) 一种ota升级方法及装置
CN114448644B (zh) 基于对称算法的数字证书实现方法、装置、设备及介质
EP1712992A1 (en) Updating of data instructions
EP3499793B1 (en) Data provision system, data security device, data provision method, and computer program
CN110688648B (zh) 安全芯片固件更新方法及装置
JP7497438B2 (ja) 証明書申請方法およびデバイス
US20140359295A1 (en) Method of transferring the control of a security module from a first entity to a second entity
CN111917710B (zh) Pci-e密码卡及其密钥保护方法、计算机可读存储介质
CN110998527A (zh) 对计算设备的远程控制
CN116847341A (zh) 一种网络连接方法及终端、待配网设备、存储介质
US10615986B2 (en) Authentication system and authentication method
US20220182248A1 (en) Secure startup method, controller, and control system
CN117220895A (zh) 用于车辆中可服务电子部件的公钥基础设施的方法和系统
Fuchs et al. HIP-20: Integration of vehicle-hsm-generated credentials into plug-and-charge infrastructure
CN104732138A (zh) 一种诊断设备的升级方法及设备
CN114449512A (zh) 一种车端安全通信方法及装置
CN110830243A (zh) 对称密钥分发方法、装置、车辆及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant