CN116032532A - 空中下载服务的授权方法、装置、设备及计算机存储介质 - Google Patents
空中下载服务的授权方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN116032532A CN116032532A CN202211488182.2A CN202211488182A CN116032532A CN 116032532 A CN116032532 A CN 116032532A CN 202211488182 A CN202211488182 A CN 202211488182A CN 116032532 A CN116032532 A CN 116032532A
- Authority
- CN
- China
- Prior art keywords
- block
- encryption
- authorization file
- encrypted
- file
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了空中下载服务的授权方法、装置、设备及计算机存储介质,基于加密授权文件结构对原始授权文件进行加密,生成加密授权文件,将加密授权文件发送至宿主机,以供宿主机进行授权校验,从而提高授权文件的安全性。根据本申请实施例,相比于采用文本或Json等格式的授权文本进行授权,安全性更高,相比于硬件加密锁的方式,无需挂载硬锁存储空间,更无需进行授权信息的烧写,更易实现,相比于采用单一密钥加密算法进行授权的方式,采用加盐加密对原始授权文件进行加密,使得破解难度更大,而且通过加入签名加密块,能够通过签名验证进一步对授权文件进行验证,有效防止授权文件被篡改,进一步提高了授权文件的安全性。
Description
技术领域
本申请属于空中下载技术领域,尤其涉及一种空中下载服务的授权方法、装置、设备及计算机存储介质。
背景技术
随着OTA(Over-the-Air Technology,空中下载技术)和容器化技术越来越普及,很多OTA宿主机采用了容器的方式运行OTA服务。为了提高数据安全性宿主机在运行OTA服务前往往需要先授权。
现有的授权方式主要包括采用文本或Json等格式的授权文本进行授权,采用硬件加密锁进行授权和采用单一密钥加密算法进行授权。其中,采用授权文本进行授权时,授权文件容易被捕获和篡改,安全性太低。采用硬件加密锁进行授权,虽然提高了授权文件的安全性,但是在docker容器这种虚拟机环境下,无法直接获取烧写在硬件加密锁中的授权信息,需要额外挂载硬锁存储空间,将硬件加密锁中的授权信息烧写到硬锁存储空间中,因为需要重新烧写授权信息,过于繁琐,不易实现。而采用单一密钥加密算法进行授权,容易被计算机暴力破解,安全性较低。
因此,现在需要一种安全性更高,更易实现的空中下载服务的授权方法。
发明内容
本申请实施例提供一种空中下载服务的授权方法、装置、设备及计算机存储介质,能够提高授权文件的安全性。
第一方面,本申请实施例提供一种空中下载服务的授权方法,方法包括:
获取配置的原始授权文件和加密授权文件结构,其中,加密授权文件结构包括加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,加密块种类包括随机密钥加密块、密码盐加密块和签名加密块,
根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数,
将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块,
对第一随机数和第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块,
利用预设的签名算法对原始授权文件进行签名,获得签名加密块,
根据加密块顺序,对获得的随机密钥加密块、密码盐加密块和签名加密块进行组合,得到组合加密块,
将文件头部、组合加密块和加密授权文件块基于文件字节流的形式顺序合成加密授权文件,其中文件头部包含说明字段,说明字段用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数,
向空中下载服务运行的宿主机发送加密授权文件。
作为一种可能的实现方式,加密块种类还包括混淆密钥加密块,根据加密块顺序,对获得的随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块进行组合,得到组合加密块之前,方法还包括:
根据混淆密钥加密块的位数生成第三随机数,
对第三随机数进行加密,获得混淆密钥加密块,
根据加密块顺序,对获得的随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块进行组合,得到组合加密块,包括:
根据加密块顺序,对获得的随机密钥加密块、混淆密钥加密块、密码盐加密块、签名加密块和加密授权文件块进行组合,得到组合加密块。
作为一种可能的实现方式,将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块,包括:
将第一随机数和第二随机数分别作为密钥和密码盐,采用PBKDF2算法对原始授权文件进行加密,获得加密授权文件块。
作为一种可能的实现方式,将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块,包括:
按照预先配置的数据块分块规则,将原始授权文件分割为多个子数据块,
将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对多个子数据块分别进行加密,获得多个加密子数据块,
根据多个加密子数据块生成加密授权文件块。
作为一种可能的实现方式,根据多个加密子数据块生成加密授权文件块之前,方法还包括:
分别生成每个子数据块的哈希值,
根据多个加密子数据块生成加密授权文件块,包括:
针对多个加密子数据块中的每个加密子数据块,在加密子数据块的尾部添加对应的哈希值,
将多个尾部添加有哈希值的加密子数据块组成加密授权文件块。
作为一种可能的实现方式,原始授权文件包括硬件检验信息和软件校验信息,
硬件检验信息包括多个硬件检验项的校验信息,
软件校验信息包括多个软件校验项的校验信息。
作为一种可能的实现方式,原始授权文件采用二进制字节流格式。
作为一种可能的实现方式,在启动空中下载服务运行的宿主机的情况下,方法包括:
利用宿主机中的空中下载应用服务容器,获取加密授权文件,
对加密授权文件的文件头部进行解析,获得用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数的说明字段,其中,加密块种类包括随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块,
根据说明字段,从加密授权文件中分别获取随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块,
对随机密钥加密块和密码盐加密块分别进行解密,获得对应的第一随机数和第二随机数,
利用第一随机数和第二随机数对加密授权文件块进行解密,获得原始授权文件,
利用签名加密块对原始授权文件进行签名校验,
响应于原始授权文件通过签名校验,利用原始授权文件对宿主机进行授权校验。
作为一种可能的实现方式,加密授权文件块中包括多个加密子数据块,利用第一随机数和第二随机数对加密授权文件块进行解密,获得原始授权文件,包括:
利用第一随机数和第二随机数,对多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,
响应于有任意加密子数据块解密失败,确定宿主机授权校验未通过,
响应于多个加密子数据块全部解密成功,将解密获得的多个子数据块合并成原始授权文件。
作为一种可能的实现方式,加密子数据块尾部添加有对应子数据块的哈希值,对多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,包括:
针对多个加密子数据块中的每个加密子数据块,对加密子数据块进行解密,
响应于通过解密获得加密子数据块对应的子数据块,利用加密子数据块尾部添加的哈希值对子数据块进行校验,
响应于子数据块通过校验,确定加密子数据块解密成功,
响应于通过解密未获得加密子数据块对应的子数据块,或子数据块未通过校验,确定加密子数据块解密失败。
作为一种可能的实现方式,原始授权文件包括硬件校验信息和软件校验信息,硬件检验信息包括多个硬件检验项的校验信息,软件校验信息包括多个软件校验项的校验信息,利用原始授权文件对宿主机进行授权校验,包括:
将硬件校验信息中的多个硬件校验项的校验信息,与从空中下载应用服务容器内获取的对应硬件信息一一进行匹配,以对空中下载服务的硬件环境进行校验,
将软件校验信息中多个软件检验项的校验信息与从空中下载应用服务容器内获取的对应软件信息一一进行匹配,以对空中下载服务的软件信息进行校验,
响应于存在任意硬件校验项的校验信息与对应的硬件信息不匹配,和/或任意软件校验项的校验信息与对应的软件信息不匹配,确定授权校验未通过,并提示校验项异常,
响应于所有硬件校验项的校验信息与对应的硬件信息均匹配,且所有软件校验项的校验信息与对应的软件信息均匹配,确定授权校验通过并运行空中下载服务。
作为一种可能的实现方式,原始授权文件采用二进制字节流格式,利用原始授权文件对宿主机进行授权校验之前,方法还包括:
对原始授权文件进行格式转换,获得可操作的授权文件,
利用原始授权文件对宿主机进行授权校验,包括,
利用可操作的授权文件对宿主机进行授权校验。
作为一种可能的实现方式,利用原始授权文件对宿主机进行授权校验之后,方法包括:
检测是否到达授权校验时间,
响应于到达授权检验时间,利用原始授权文件对宿主机再次进行授权校验。
作为一种可能的实现方式,检测是否到达授权校验时间,包括:
检测预设的定时器是否到达预设的定时时间,
响应于定时器到达定时时间,确定到达授权校验时间。
作为一种可能的实现方式,对随机密钥加密块和密码盐加密块分别进行解密,包括:
对随机密钥加密块和密码盐加密块进行并行解密。
第二方面,本申请实施例还提供了一种空中下载服务的授权装置,装置包括:
配置信息获取模块,用于获取配置的原始授权文件和加密授权文件结构,其中,加密授权文件结构用于指示加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,加密块种类包括随机密钥加密块、密码盐加密块和签名加密块,
随机数生成模块,用于根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数,
授权文件加密模块,用于将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块,
随机数加密模块,用于对第一随机数和第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块,
签名模块,用于利用预设的签名算法对原始授权文件进行签名,获得签名加密块,
组合加密块模块,用于根据加密块顺序,对获得的随机密钥加密块、密码盐加密块和签名加密块进行组合,得到组合加密块,
加密授权文件生成模块,用于将文件头部、组合加密块和加密授权文件块基于文件字节流的形式顺序合成加密授权文件,其中文件头部包含说明字段,说明字段用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数,
发送模块,用于向空中下载服务运行的宿主机发送加密授权文件。
第四方面,本申请实施例还提供了一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器,
所述处理器执行所述计算机程序指令时实现如第一方面所述的空中下载服务的授权方法。
第六方面,本申请实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的空中下载服务的授权方法。
第五方面,本申请实施例还提供了一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的空中下载服务的授权方法。
本申请实施例的空中下载服务的授权方法、装置、设备及计算机存储介质,基于加密授权文件结构对原始授权文件进行加密,生成加密授权文件,将加密授权文件发送至宿主机,以供宿主机进行授权校验,从而提高授权文件的安全性。根据本申请实施例,相比于采用文本或Json等格式的授权文本进行授权,安全性更高,相比于硬件加密锁的方式,无需挂载硬锁存储空间,更无需进行授权信息的烧写,更易实现,相比于采用单一密钥加密算法进行授权的方式,采用加盐加密对原始授权文件进行加密,使得破解难度更大,而且通过加入签名加密块,能够通过签名验证进一步对授权文件进行验证,有效防止授权文件被篡改,进一步提高了授权文件的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的OTA远程升级场景的示意图;
图2是本申请一个实施例提供的空中下载服务的授权方法的流程示意图;
图3是本申请一个实施例提供的确定加密块顺序的示意图;
图4是本申请一个实施例提供的加密授权文件块的结构示意图;
图5是本申请一个实施例提供的加密授权文件的结构示意图;
图6是本申请另一个实施例提供的空中下载服务的授权方法的流程示意图;
图7是本申请一个实施例提供的宿主机解密加密授权文件,以及验证OTA服务是否满足校验项的整体流程的示意图;
图8是本申请一个实施例提供的授权系统的示意图;
图9是本申请一个实施例提供的rest接口的配置界面示意图;
图10是本申请一个实施例提供的原始授权文件的结构示意图;
图11是本申请一个实施例提供的空中下载服务的授权装置的示意图;
图12是本申请另一个实施例提供的空中下载服务的授权装置的示意图;
图13是本申请一个实施例提供的电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
鉴于现有的OTA服务的授权方法存在安全性低、不易实现等问题,本申请实施例提供的了一种新型的空中下载服务的授权方法、装置、设备、存储介质和程序,可以应用于OTA远程升级场景,用于实现对OTA服务的授权。
参见图1,为本申请实施例提供的一种OTA远程升级场景的示意图,如图1所示,包括:OTA服务运行的宿主机110和OTA云端服务器120,宿主机110和OTA云端服务器120之间通信连接,OTA云端服务器120为宿主机110提供升级所需的相关内容。
其中,宿主机110中设置有OTA应用服务容器,OTA服务在OTA应用服务容器中运行。宿主机110可以是计算机、服务器、车载控制器等设备。
在本申请实施例中,OTA云端服务器120能够提供加密授权文件,宿主机110中的OTA服务嵌入有能够解析加密授权文件的代码块。OTA实际运行环境依赖加密授权文件,必须授权文件中的信息全部校验通过,宿主机110中的OTA服务才能正常运行。
下面分别以OTA云端服务器和宿主机为执行主体,对本申请实施例提供的空中下载服务的授权方法进行说明。
参见图2,为本申请实施例提供的一种空中下载服务的授权方法的流程示意图,可以由OTA云端服务器执行。如图2所示,本申请实施例提供的空中下载服务的授权方法可以包括如下步骤:
S21.获取配置的原始授权文件和加密授权文件结构。
其中,原始授权文件即为最终用于对宿主机进行授权校验的文件。加密授权文件结构包括加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,加密块种类包括随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。加密块的顺序指多个加密块在加密授权文件中的相对位置关系,各加密块的位数指各加密块占有的数位的个数。
在本申请实施例中,可以在确定需要生成加密授权文件的情况下,执行步骤S21。
在一个示例中,可以在接收到空中下载服务运行的宿主机发送的授权签发请求或授权更新请求的情况下,确定需要生成加密授权文件。其中,授权签发请求用于指示OTA云端服务器向宿主机签发加密授权文件,授权更新请求用于指示OTA云端服务器对向宿主机签发的加密授权文件进行更新。
在一个示例中,也可以在接收到用户输入的用于指示生成加密授权文件的情况下,确定需要生成加密授权文件。
S22.根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数。
其中,根据加密授权文件结构确定随机密钥加密块的位数,根据该位数生成第一随机数。
根据加密授权文件结构确定密码盐加密块的位数,根据该位数生成第二随机数。
在一个示例中,OTA云端服务器中可以预先设置有随机数生成器,基于此,可以利用随机数生成器生成第一随机数和第二随机数。
S23.将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块。
在对原始授权文件进行加密时,将第一随机数作为密钥,将第二随机数作为密码盐,利用密钥和密码盐生成加盐密钥,利用加盐密钥对原始授权文件进行加密,从而实现对原始授权文件的加盐加密。
在本实施例,采用加盐加密的方式对原始授权文件进行加密,有效增大了攻击者破解的难度,提升了授权文件的安全性。
S24.对第一随机数和第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块。
其中,随机密钥加密块和密码盐加密块用于解密后对加密授权文件块进行解密。
在对第一随机数和第二随机数进行加密时,可以获取预设的加密算法,然后采用预设的加密算法对第一随机数进行加密,获得随机密钥加密块。采用预设的加密算法对第二随机数进行加密,获得密码盐加密块。
在本实施例中,对原始授权文件进行加密时,并非采用预先协商好的密钥,而是采用随机数进行加密,大大增大了破译难度,并且通过对第一随机数和第二随机数进行加密,使得在对原始授权文件进行解密时,要先对随机密钥加密块和密码盐加密块进行解密,相当于对原始授权文件采用了双重加密,如此进一步提升了授权文件的安全性。
S25.利用预设的签名算法对原始授权文件进行签名,获得签名加密块。
其中,签名加密块用于解密后对原始授权文件的完整性进行校验。
预设的签名算法可以是由用户根据实际请求设置。
S26.根据加密块顺序,对获得的随机密钥加密块、密码盐加密块和签名加密块进行组合,得到组合加密块。
在获得随机密钥加密块、密码盐加密块和签名加密块后,按照加密块顺序对获得的多个加密块进行排序后组合,从而得到组合加密块。
S27.将文件头部、组合加密块和加密授权文件块基于文件字节流的形式顺序合成加密授权文件。
其中,文件头部包含说明字段,说明字段用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数。
文件字节流的形式顺序为文件头部+组合加密块+加密授权文件块,也即文件头部在最顶部,加密授权文件块在最底部,组合加密块在中间。
S28.向空中下载服务运行的宿主机发送加密授权文件。
将生成的加密授权文件发送至空中下载服务运行的宿主机,如此,宿主机便可以获取到加密授权文件,从而通过对加密授权文件进行解密获取其中的原始授权文件,进而根据原始授权文件进行授权校验。
本申请实施例提供的一种空中下载服务的授权方法,基于加密授权文件结构对原始授权文件进行加密,生成加密授权文件,将加密授权文件发送至OTA服务运行的宿主机,以供宿主机进行授权校验,从而提高授权文件的安全性。根据本申请实施例,相比于采用文本或Json等格式的授权文本进行授权,安全性更高,相比于硬件加密锁的方式,无需挂载硬锁存储空间,更无需进行授权信息的烧写,更易实现,相比于采用单一密钥加密算法进行授权的方式,采用加盐加密对原始授权文件进行加密,使得破解难度更大,而且通过加入签名加密块,能够通过签名验证进一步对授权文件进行验证,有效防止授权文件被篡改,进一步提高了授权文件的安全性。
在一些实施例中,加密授权文件的加密块种类还可以包括混淆密钥加密块,相应的,在上述步骤S26之前,还可以先执行以下步骤:
根据混淆密钥加密块的位数生成第三随机数,对第三随机数进行加密,获得混淆密钥加密块。
其中,第三随机数也可以采用随机数生成器生成。
可以采用预设的加密算法对第三随机数进行加密,其中预设的加密算法可以为与对第一随机数进行加密时采用的加密算法。
基于此,上述步骤S26的具体实现方式如下:
根据加密块顺序,对获得的随机密钥加密块、混淆密钥加密块、密码盐加密块和签名加密块进行组合,得到组合加密块。
如此,最终生成的加密授权文件中包含文件头部、随机密钥加密块、混淆密钥加密块、密码盐加密块和签名加密块以及加密授权文件块。
根据本实施例,通过在加密授权文件中增加混淆密钥加密块,可以将其与随机密钥加密块进行混淆,进而增加加密授权文件的破译难度,提高授权文件的安全性。
在一些实施例中,上述步骤S21需要获取配置的原始授权文件和加密授权文件结构,因此,在上述步骤S21之前,可以先对原始授权文件和加密授权文件结构进行配置。
其中,原始授权文件、加密授权文件包含的加密块种类和加密块对应位数可以由用户根据实际情况动态配置,加密块顺序可以由OTA云端服务器根据宿主机中空中下载应用服务容器,也即OTA服务容器的id(Identity document,身份证标识号)经过运算得到。
在一个示例中,在配置加密块顺序时,可以采用预设的用于获取容器id的命令,获取宿主机中OTA服务容器的id,然后从OTA服务容器的id字串中按顺序取到最大的N位字符,并依次对应转化为加密块的顺序,其中N的值为加密授权文件中包含的加密块种类的数量,若加密块种类包括随机密钥加密块、混淆密钥加密块、密码盐加密块和签名加密块,则N的值就是4。
例如图3所示,以加密块种类包括随机密钥加密块、混淆密钥加密块、密码盐加密块和签名加密块为例,在通过release-deploy/backend/keys/verify#docker ps等用于获取OTA服务容器id的命令获取到的OTA服务容器的id为b0648f566803的情况下,从中依次提取到的4位字符为b/6/8/f,将4位字符依次对应转换为C/A/B/D,也即加密块的顺序为表示密码盐加密块-表示随机密钥加密块-混淆密钥加密块-签名加密块。
通过本实施例,可以实现原始授权文件和加密授权文件结构的动态配置,多个加密块的顺序由OTA服务容器的id经过运算得到,使得具体的文件排列顺序相对隐藏。
在一些实施例中,上述步骤S23的具体实现方式可以包括:
将第二随机数作为密码盐与第一随机数组成密钥串,采用PBKDF2算法对原始授权文件进行加密,获得加密授权文件块。
PBKDF2算法的原理大致相当于在HASH算法基础上增加密码盐,并进行多次迭代的HASH运算,从而得到最终的加盐密钥,然后利用加盐密钥进行加密,此种方式可以大幅增加破解的难度。使用PBKDF2算法时,HASH算法一般选用sha1或者sha256。
在一个示例中,用户根据实际情况设置迭代次数,将密钥也即第一随机数、密码盐也即第二随机数和迭代次数输入PBKDF2算法,PBKDF2算法对密钥和密码盐进行HASH运算,然后将运算结果作为新的密码盐再与密钥进行HASH运算,多次重复直至达到迭代次数,生成最终的加盐密钥,利用加盐密钥对原始授权文件进行加密,得到加密授权文件块。
在本实施例中,采用PBKDF2算法对原始授权文件进行加密,相比于简单的将密钥与密码盐进行拼接生成的加盐密钥,采用PBKDF2算法生成的加盐密钥破解难度更大,基于此加密后的文件安全性也就更高。
在一些实施例中,上述步骤S23的具体实现方式还可以包括:
按照预先配置的数据块分块规则,将原始授权文件分割为多个子数据块,将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对多个子数据块分别进行加密,获得多个加密子数据块,根据多个加密子数据块生成加密授权文件块。
其中,数据块分块规则可以包括子数据块的大小,基于此,可以根据数据分块规则将原始授权文件划分为多个大小一致的子数据块。
在一个示例中,子数据块的大小可以由用户根据实际情况预先在OTA云端服务器中配置,如此使得分块具有很高的灵活性。
在本实施例中,通过将原始授权文件划分为多个子数据块,分别对各子数据块进行加密,使得在后续对加密授权文件块进行解密时,可以以块为单位对加密子数据块逐块进行解密,在有加密子数据块解密失败时,便可以直接确定解密失败,无需再对其他未解密完成的加密子数据块进行解密,效率更高。
在一些实施例中,上述步骤S23的具体实现方式还可以包括:
在根据多个加密子数据块生成加密授权文件块之前,可以分别生成每个子数据块的哈希值,针对多个加密子数据块中的每个加密子数据块,在加密子数据块的尾部添加对应的哈希值,然后将多个尾部添加有哈希值的加密子数据块组成加密授权文件块。
其中,各子数据块的哈希值可以通过对子数据块进行哈希计算得到,具体的,可以预先设置用于对子数据块进行哈希计算的哈希函数,利用哈希函数对子数据块进行计算,得到子数据块的哈希值。其中,采用的哈希函数可以为密码散列函数sha256。
例如图4所示,为本申请实施例提供的一种加密授权文件块的结构示意图,其中以子数据块的哈希值为采用sha256计算得出的sha256值为例,如图4所示,每个加密子数据块后面都添加有对应的sha256值,其中原块指未加密的子数据块。多个添加有sha256值的加密子数据块共同组成了加密授权文件块。
通过本实施例,在生成加密授权文件块时,对每一个加密子数据块尾部放入对应的哈希值混合,使得在解密时,针对每个解密出的子数据块可以利用对应的哈希值进行实时校验比较,进而及时发现与原数据不一致的子数据块,能够及时结束解密进程,无需全部解密完成,才能判断解密失败。
在一些实施例中,上述步骤S24的具体实现方式可以包括:
采用RSA非对称加密算法使用预设的OTA服务公钥对第一随机数进行加密,得到随机密钥加密块。
采用DES(Data Encryption Standard,数据加密标准)对称加密算法对第二随机数进行加密,得到密码盐加密块。
在一个示例中,RSA非对称加密算法使用的OTA服务公钥和OTA服务私钥,可以由OTA云端服务器和空中下载服务运行的宿主机(以下简称宿主机)预先协商好,协商好后,将OTA服务公钥保存在OTA云端服务器中,用于对第一随机数进行加密,将OTA服务私钥保存在宿主机中用于对采用OTA服务公钥加密的随机密钥加密块进行解密。
在一个示例中,DES对称加密算法使用的密钥,可以由OTA云端服务器和空中下载服务运行的宿主机(以下简称宿主机)预先协商好,协商好后,将协商好的密钥分别保存在OTA云端服务器和宿主机中,OTA云端服务器使用该密钥对第二随机数进行加密,宿主机则可以利用该密钥对用于采用该密钥加密的密码盐加密块进行解密。
在本实施例中,对第一随机数和第二随机数采用不同加密算法进行加密,如此,实现采用多种加密算法的混合加密,相比于采用单一加密算法,混合加密可以有效增大破译难度,进而提升授权文件安全性。
在一些实施例中,上述步骤S25的具体实现方式可以包括:
采用ECDSA数字签名算法也即椭圆曲线数字签名算法,对原始授权文件进行签名,获得签名加密块。
ECDSA数字签名算法是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。
在本实施中,采用ECDSA数字签名算法对原始授权文件进行签名,可以保证在已知公钥的情况下,无法推导出该公钥对应的私钥,而且可以通过某些方法来证明某对象拥有一个公钥所对应的私钥,并且在此过程不会暴露关于私钥的任何信息。如此,采用ECDSA数字签名算法进行签名,可以有效提高数据安全性。
在一些实施例中,上述步骤S21中获取的原始授权文件中可以包括硬件检验信息和软件校验信息,其中,硬件检验信息包括多个硬件检验项的校验信息,软件校验信息包括多个软件校验项的校验信息。
具体的硬件校验项和软件校验项可以由用户根据实际情况配置。
在一个示例中,以宿主机为车辆的控制器为例,硬件校验项可以包括授权有效起止时间、主板号、容器地址、副本数等,软件校验项可以包括车辆数、零件数、活动数、OTA用户数等。
通过本实施例,通过在原始授权文件中添加硬件校验信息和软件校验信息,可以使得基于原始授权文件实现对宿主机中硬件和软件的校验。
在一些实施例中,在上述步骤S21中获取的原始授权文件可以采用二进制字节流格式,也即protobuf格式。
在本实施例中,使用protobuf二进制字节流格式对原始授权文件进行序列化,可以降低原始授权文件的可读性,并且可以提高传输性能。
为便于理解,参见图5,为本申请实施例提供的一种加密授权文件的结构示意图,如图5所示,其中包括文件头部、组合加密块和加密授权文件块,其中组合加密块中各加密块的顺序依次为随机密钥加密块A,签名加密块D,密码盐加密块C和混淆密钥加密块B。
图5中还示出了文件头部的结构,如图5所示,文件头部中包含的内容为A032 D684C016 B032 F512 K,其代表的意思是A块为32位长度,D块是684位长度,C块是16位长度,B块是32位,原始授权文件是以512kb每块大小进行分割加密的,ADCB代表各加密块在加密授权文件内部的组成顺序。
以上,为以OTA云端服务器为执行主体的空中下载服务的授权方法,其只要涉及对原始授权文件的加密,在生成加密授权文件之后,接收到加密授权文件的宿主机便可以基于加密授权文件进行授权校验,下面对以OTA服务运行的宿主机为执行主体的空中下载服务的授权方法进行说明,其中主要涉及对加密授权文件的解密。
参见图6,为本申请实施例提供的一种空中下载服务的授权方法的流程示意图,可以由OTA服务运行的宿主机执行。如图6所示,本申请实施例提供的空中下载服务的授权方法可以包括如下步骤:
S61.利用宿主机中的空中下载应用服务容器,获取加密授权文件。
宿主机中的OTA服务运行在空中下载应用服务容器中。
在需要进行授权校验时,启动宿主机中的空中下载应用服务容器,通过容器docker映射卷的方式,使加密授权文件被运行的OTA服务获取并解析。
OTA云端服务器在生成加密授权文件后会将加密授权文件发送给宿主机,宿主机在接收到OTA云端服务器发送的加密授权文件后,可以将加密授权文件预置到指定目录,如此,在启动空中下载应用服务容器时,宿主机可以直接从指定目录中获取。
通过将加密授权文件预置到指定目录中,可以方便对加密授权文件进行替换,使得OTA服务可以停止/续约等操作。
S62.对加密授权文件的文件头部进行解析,获得用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数的说明字段。
其中,加密块种类包括随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。
宿主机中可以预先设置用于对加密授权文件进行解密的解密模块,在获取到加密授权文件后,利用预置的解密模块对其进行解密。
S63.根据说明字段,从加密授权文件中分别获取随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。
根据加密授权文件中每个块的位数和顺序便可以计算出每个块在加密授权文件中的起止位置,如此,基于起止位置便可以从加密授权文件中截取出对应的部分,从而获得随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。
S64.对随机密钥加密块和密码盐加密块分别进行解密,获得对应的第一随机数和第二随机数。
宿主机预先知道第一随机数和第二随机数采用的加密算法,且保存有对应的解密密钥,因此直接利用预先保存的密钥进行解密即可。
比如,在第一随机数采用采用RSA非对称加密算法使用OTA服务公钥加密的情况下,宿主机直接采用预先存储的OTA服务私钥对随机密钥加密块进行解密即可。
通过对随机密钥加密块进行解密可以得到第一随机数,对密码盐加密块进行解密可以得到第二随机数。
S65.利用第一随机数和第二随机数对加密授权文件块进行解密,获得原始授权文件。
同理,宿主机是知道加密授权文件块采用的加密方式的,基于此,直接利用对应的解密方式进行解密即可得到原始授权文件。
S66.利用签名加密块对原始授权文件进行签名校验。
采用与OTA云端服务器生成签名加密块时采用的签名算法一致的算法,对S65中获得原始授权文件进行签名,将得到的签名结果与签名加密块进行比较,确定是否一致,若一致,则确定原始授权文件通过签名校验,否则,确定原始授权文件未通过签名校验。
S67.响应于原始授权文件通过签名校验,利用原始授权文件对宿主机进行授权校验。
本申请实施例提供的一种空中下载服务的授权方法,加密授权文件由OTA云端服务器发送给宿主机,并可以通过容器映射卷的方式,被宿主机中运行的OTA服务获取和解析,如此,可以动态的替换加密授权文件,不用通过替换OTA服务的方式,更新授权文件。原始授权文件采用第一随机数和第二随机数进行加密,第一随机数和第二随机数又分别加密,相当于对原始授权文件采用了双重加密,有效提升了授权文件的安全性,此外,在通过解密得到原始授权文件后,通过签名校验对原始授权为文件进一步验证,保证了原始授权文件的完整性,在签名校验通过后再基于原始授权文件进行授权校验。此种授权方式,相比于现有的授权方式,安全性更高、更易实现,且更难被破解。
在一些实施例中,加密授权文件块中包括多个加密子数据块,基于此,上述步骤S65的具体实现方式可以包括:
利用第一随机数和第二随机数,对多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,
响应于有任意加密子数据块解密失败,确定宿主机授权校验未通过,
响应于多个加密子数据块全部解密成功,将解密获得的多个子数据块合并成原始授权文件。
其中,对多个加密子数据块中的加密子数据块逐块进行解密也即以块单位加密子数据块进行解密。
在一个示例中,在对多个加密子数据块中的加密子数据块逐块进行解密时,可以对多个加密子数据块并行解密,以便提高解密效率。
在本实施例中,对每个加密子数据块逐块进行解密,在有任意一个加密子数据块解密失败时,确定加密授权文件解密失败,进而直接确定宿主机授权校验未通过,同时停止对其他未解密完成的加密子数据块进行解密,相比于全部数据解密完成后,才能判断解密失败,大大提高了校验效率。
在一些实施例中,加密子数据块尾部添加有对应子数据块的哈希值,基于此,上述步骤S65在依次对多个加密子数据块中的每个加密子数据块进行解密,获得每个加密子数据块对应的子数据块时,可以包括:
针对多个加密子数据块中的每个加密子数据块,对加密子数据块进行解密,响应于通过解密获得加密子数据块对应的子数据块,利用加密子数据块尾部添加的哈希值对子数据块进行校验,响应于子数据块通过校验,确定加密子数据块解密成功,响应于通过解密未获得加密子数据块对应的子数据块,或子数据块未通过校验,确定加密子数据块解密失败。
其中,针对每个子数据块,利用加密子数据块尾部添加的哈希值对子数据块进行校验可以包括,采用与OTA云端服务器生成子数据块的哈希值时采用的哈希函数一致的哈希函数,对通过解密获得子数据块进行哈希计算,得到哈希值,将计算得到的哈希值与加密子数据块尾部添加的哈希值进行比较,若两个哈希值一致,则确定子数据块通过校验,否则,确定子数据块未通过校验。
在本实施例中,基于哈希值对子数据块进行校验,可以保证子数据块的准确性,进而保证最终解密得到的原始授权文件的准确性。
在一些实施例中,原始授权文件包括硬件校验信息和软件校验信息,硬件检验信息包括多个硬件检验项的校验信息,软件校验信息包括多个软件校验项的校验信息,基于此,上述步骤S67的具体实现方式可以包括:
将硬件校验信息中的多个硬件校验项的校验信息,与从空中下载应用服务容器内获取的对应硬件信息一一进行匹配,以对空中下载服务的硬件环境进行校验,将软件校验信息中多个软件检验项的校验信息与从空中下载应用服务容器内获取的对应软件信息一一进行匹配,以对空中下载服务的软件信息进行校验,响应于存在任意硬件校验项的校验信息与对应的硬件信息不匹配,和/或任意软件校验项的校验信息与对应的软件信息不匹配,确定授权校验未通过,并提示校验项异常,响应于所有硬件校验项的校验信息与对应的硬件信息均匹配,且所有软件校验项的校验信息与对应的软件信息均匹配,确定授权校验通过并运行空中下载服务。
其中,对空中下载服务的软件信息进行校验可以包括验证空中下载服务的可操作数量是否在授权的实际阈值内,比如软件校验项包括注册车辆数量,则在注册车辆数小于授权文件中配置的车辆数的情况下,确定注册车辆数在授权的实际阈值内,否则确定注册车辆数不在实际阈值内。
其中,空中下载应用服务容器内获取的硬件信息和软件信息,即为容器docker系统映射卷内的信息。
通过本实施例,利用docker系统映射卷信息进行授权校验,运行时代码层面可以无感比较宿主机特征信息。并且通过对校验项异常进行提示,可以便于用户及时,有针对性的进行异常处理。
在一些实施例中,原始授权文件采用二进制字节流格式,基于此,在执行上述步骤S67之前,可以先执行如下步骤:
对原始授权文件进行格式转换,获得可操作的授权文件,利用可操作的授权文件对宿主机进行授权校验。
在一个示例中,原始授权文件为采用protobuf二进制字节流格式序列化得到的二进制字节流格式的文件,则可以采用反protobuf序列化的方式对原始授权文件进行格式转换,从而得到可操作的授权文件。
通过本实施例,可以保证授权文件的可操作性。
在一些实施例中,在上述步骤S67之后,还可以执行如下步骤:
检测是否到达授权校验时间,响应于到达授权检验时间,利用原始授权文件对宿主机再次进行授权校验。
在一个示例中,可以预设设置多个授权校验时间,每到达一个授权校验时间,就执行一次授权校验。
通过本实施例,能够定期检测/重点监控授权文件中的信息,便于及时了解宿主机的授权情况,一旦确定不符合授权文件中信息,OTA服务便会自动停止工作。
在一些实施例中,宿主机中可以预置定时器和定时线程检查模块,基于此,在检测是否到达授权校验时间时,可以采用下述方式:
检测预设的定时器是否到达预设的定时时间,响应于定时器到达定时时间,确定到达授权校验时间。
通过此种方式,可以实现每隔一段时间就会自动重复一次授权校验。
在一些实施例中,上述步骤S64可以对随机密钥加密块和密码盐加密块进行并行解密。
通过本实施例,通过并行解密可以提高解密效率。
参见图7,为本申请实施例提供的宿主机解密加密授权文件,以及验证OTA服务是否满足校验项的整体流程的示意图,如图7所示,其中主要包括以下步骤:
S70:预置/替换加密授权文件。
启动OTA服务前,将接收的由OTA云端服务器发送的加密授权文件预置到指定目录。
S71:OTA服务运行。
宿主机上运行启动OTA应用服务容器。
S72:解密加密授权文件。
利用OTA应用代码层预置的解密模块对加密授权文件进行解密。
S73:解析加密授权文件的文件头部。
解析文件头部中的21位数据,解析出ABCD块的位置长度以及加密授权文件块中各加密子数据块大小。
S74:按照S73解析的块位数和顺序,依次获取各加密块和加密授权文件块,并解密随机密钥加密块和密码盐加密块。
由于每块位数固定,可以直接计算出各块的起止位置,直接从整体文件中截取对应部分。
并行解密随机密钥加密块和密码盐加密块,准备进行原始授权文件还原。
S75:基于S74解密得到的数据对加密授权文件块中各加密子数据块逐块进行解密。
S76:针对解密完成的加密子数据块,对解密出的子数据块进行校验,针对解密失败的加密子数据块,结束OTA服务并退出。
对解密出的子数据块进行校验,可以为采用加密子数据块尾部添加的哈希值,例如sha256值进行匹配校验,完全一致则表示该块解密成功,否则解密失败。
S77:解密完所有加密子数据块后,将解密获得所有子数据块合并成原始授权文件,并进行签名校验,校验通过后执行S78。
可以基于文件流合并的方式把所有子数据块合并成完成的原始授权文件,并与D块进行数字签名校验。
S78:序列化原始授权文件。
将原始授权文件进行反protobuf序列化,得到可操作的授权文件。
S79:校验授权文件中校验信息,出现校验信息不一致的情况,确定校验失败,OTA服务结束退出,并提示用户哪项校验失败,校验信息全部校验成功的情况下,OTA服务正常运行。
将授权文件中的硬件校验信息与OTA服务运行环境中docker容器内获取的硬件信息一一匹配,确保运行的硬件环境是正确的;将授权文件中的软件校验信息与OTA服务内部数据库软件信息一一匹配,确保OTA可操作的数据在授权的实际阈值内(比如注册车辆数要小于授权文件中配置的车辆数)。就会提示用户哪些校验项异常,OTA服务处于不可用状态,这时用户可以请求OTA云端授权服务器重新生成新的授权文件,替换掉旧的授权文件即可。
S710:OTA服务内部定时器定期检查校验信息。
OTA服务还内置了定时线程检查模块,每隔一段时间就会重复校验这些信息。
本申请实施例提供了一种可以实现上述空中下载服务的授权方法的授权系统,如图8所示,该授权系统中包括通信连接的OTA服务运行的宿主机810和OTA云端服务器820,以下将OTA服务运行的宿主机810简称为宿主机810,将OTA云端服务器820简称为云端服务器820。
如图8所示,其中云端服务器820中包括授权文件配置模块、protobuf序列化模块、证书私钥管理模块和授权文件加密模块。
其中,授权文件配置模块用于配置生成加密授权文件所需的相关信息,比如原始授权文件、加密授权文件结构、数据块分块规则等。授权文件配置模块可以包括rest接口,用户可以测试工具对rest接口进行相关信息的配置,配置后的信息会通过rest接口传递到云端服务器820。
参见图9,为本申请实施例提供的一种采用Postman工具对rest接口进行配置时的配置界面示意图。Postman是一种简单方便的接口调试工具,具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server,接口文档,接口监控等功能。
如图9所示,主要为Postman界面中接口设计区的示意图,其中主要包括四个功能块,分别为“encrypt Type”、“checkHwData”、“checkOtaData”以及位于“encrypt Type”和“checkHwData”之间没有标题的分块功能块。
其中,“encrypt Type”用于配置加密授权文件中包含的各加密块的位数。其中,A表示随机密钥加密块,B表示混淆密钥加密块,C表示密码盐加密块,D表示签名加密块。
分块功能块,用于配置数据块分块规则,其中F表示分块后各子数据块的大小,type则表示数据块大小的单位。
“checkHwData”用于配置原始申请文件中的硬件校验信息,其中的硬件校验项可以包括:issuedTime也即授权开始时间,expiryTime也即授权终止时间,mainBoardSerial也即主板号,docker-ip也即容器地址,copy-num也即副本数量等。
“checkOtaData”用于配置原始申请文件中的软件校验信息,其中软件校验项可以包括:vehicelNum也即车辆数,ecuNum也即零件数,canpaignNum也即活动数,userId也即注册用户等。
需要说明的时,图中配置的各项信息均只是示例性的,各项内容均可以根据实际情况动态配置。
参见图10为本实施例通过的一种原始授权文件的结构示意图,如图10所示,其中可以的可以包括授权有效时间、容器副本数校验、限定升级零件、部署主机指纹、限定升级车系、限定升级用户等。
protobuf序列化模块用于对原始授权文件进行序列化处理,从而将原始授权文件转换为二进制字节流格式。
证书私钥管理模块主要用于对生成加密授权文件所需的加密算法和数据签名算法、密钥等进行管理。
授权文件加密模块则主要用于基于配置的相关信息利用加密算法、数据签名算法和密钥等生成加密授权文件。
云端服务器820生成的加密授权文件可以签发给宿主机810。
宿主机810中可以运行多个OTA服务,例如图8所示,其中包含三个OTA服务,不同的OTA服务对应的加密授权文件不同,但是不同的OTA服务对应的加密授权文件均可以由云端服务器820签发。
基于上述实施例提供的空中下载服务的授权方法,相应地,本申请还提供了空中下载服务的授权装置的具体实现方式。请参见以下实施例。
参见图11,本申请实施例提供的空中下载服务的授权装置的示意图,该装置可以应用于OTA云端服务器,其中可以包括以下模块:
配置信息获取模块1101,用于获取配置的原始授权文件和加密授权文件结构,其中,加密授权文件结构用于指示加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,加密块种类包括随机密钥加密块、密码盐加密块和签名加密块。
随机数生成模块1102,用于根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数。
授权文件加密模块1103,用于将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对原始授权文件进行加密,获得加密授权文件块。
随机数加密模块1104,用于对第一随机数和第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块。
签名模块1105,用于利用预设的签名算法对原始授权文件进行签名,获得签名加密块。
组合加密块模块1106,用于根据加密块顺序,对获得的随机密钥加密块、密码盐加密块和签名加密块进行组合,得到组合加密块。
加密授权文件生成模块1107,用于将文件头部、组合加密块和加密授权文件块基于文件字节流的形式顺序合成加密授权文件,其中文件头部包含用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数的说明字段。
发送模块1108,用于向空中下载服务运行的宿主机发送加密授权文件。
本申请实施例的空中下载服务的授权装置,由空中下载云端服务器基于加密授权文件结构对原始授权文件进行加密,生成加密授权文件,将加密授权文件发送至宿主机,以供宿主机进行授权校验,从而提高授权文件的安全性。根据本申请实施例,相比于采用文本或Json等格式的授权文本进行授权,安全性更高,相比于硬件加密锁的方式,无需挂载硬锁存储空间,更无需进行授权信息的烧写,更易实现,相比于采用单一密钥加密算法进行授权的方式,采用加盐加密对原始授权文件进行加密,使得破解难度更大,而且通过加入签名加密块,能够通过签名验证进一步对授权文件进行验证,有效防止授权文件被篡改,进一步提高了授权文件的安全性。
在一些实施例中,加密块种类还包括混淆密钥加密块,
随机数生成模块1102还用于根据混淆密钥加密块的位数生成第三随机数。
随机数加密模块1104还用于对第三随机数进行加密,获得混淆密钥加密块。
组合加密块模块1106还用于根据加密块顺序,对获得的随机密钥加密块、混淆密钥加密块、密码盐加密块、签名加密块和加密授权文件块进行组合,得到组合加密块。
在一些实施例中,授权文件加密模块1103具体用于:
将第一随机数和第二随机数分别作为密钥和密码盐,采用PBKDF2算法对原始授权文件进行加密,获得加密授权文件块。
在一些实施例中,授权文件加密模块1103可以包括:
分块子模块,用于按照预先配置的数据块分块规则,将原始授权文件分割为多个子数据块。
加密子模块,用于将第一随机数和第二随机数分别作为密钥和密码盐,采用加盐加密的方式对多个子数据块分别进行加密,获得多个加密子数据块,
组合子模块,用于根据多个加密子数据块生成加密授权文件块。
在一些实施例中,授权文件加密模块1103还可以包括:哈希子模块,用于在根据多个加密子数据块生成加密授权文件块之前,分别生成每个子数据块的哈希值,在加密子数据块的尾部添加对应的哈希值。
组合子模块,用于将多个尾部添加有哈希值的加密子数据块组成加密授权文件块。
在一些实施例中,原始授权文件包括硬件检验信息和软件校验信息,
硬件检验信息包括多个硬件检验项的校验信息,
软件校验信息包括多个软件校验项的校验信息。
在一些实施例中,原始授权文件采用二进制字节流格式。
参见图12,本申请实施例提供的空中下载服务的授权装置的示意图,该装置可以应用于OTA服务运行的宿主机,其中可以包括以下模块:
加密授权文件获取模块1201,用于利用空中下载应用服务容器,获取由空中下载云端服务器生成的加密授权文件。
解析模块1202,用于对加密授权文件的文件头部进行解析,获得用于说明加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数的说明字段,其中,加密块种类包括随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。
块截取模块1203,用于根据说明字段,从加密授权文件中分别获取随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块。
随机数解密模块1204,用于对随机密钥加密块和密码盐加密块分别进行解密,获得对应的第一随机数和第二随机数。
授权文件解密模块1205,用于利用第一随机数和第二随机数对加密授权文件块进行解密,获得原始授权文件。
签名校验模块1206,用于利用签名加密块对原始授权文件进行签名校验。
授权校验模块1207,用于响应于原始授权文件通过签名校验,利用原始授权文件对宿主机进行授权校验。
本申请实施例提供的一种空中下载服务的授权方法,加密授权文件由OTA云端服务器发送给宿主机,并可以通过容器映射卷的方式,被宿主机中运行的OTA服务获取和解析,如此,可以动态的替换加密授权文件,不用通过替换OTA服务的方式,更新授权文件。原始授权文件采用第一随机数和第二随机数进行加密,第一随机数和第二随机数又分别加密,相当于对原始授权文件采用了双重加密,有效提升了授权文件的安全性,此外,在通过解密得到原始授权文件后,通过签名校验对原始授权为文件进一步验证,保证了原始授权文件的完整性,在签名校验通过后再基于原始授权文件进行授权校验。此种授权方式,相比于现有的授权方式,安全性更高、更易实现,且更难被破解。
在一些实施例中,加密授权文件块中包括多个加密子数据块,授权文件解密模块1205包括:
解密子模块,用于利用第一随机数和第二随机数,对多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,
响应子模块,用于响应于有任意加密子数据块解密失败,确定宿主机授权校验未通过,
响应子模块,还用于响应于多个加密子数据块全部解密成功,将解密获得的多个子数据块合并成原始授权文件。
在一些实施例中,解密子模块具体用于:
针对多个加密子数据块中的每个加密子数据块,对加密子数据块进行解密,
响应于通过解密获得加密子数据块对应的子数据块,利用加密子数据块尾部添加的哈希值对子数据块进行校验,
响应于子数据块通过校验,确定加密子数据块解密成功,
响应于通过解密未获得加密子数据块对应的子数据块,或子数据块未通过校验,确定加密子数据块解密失败。
在一些实施例中,原始授权文件包括硬件校验信息和软件校验信息,硬件检验信息包括多个硬件检验项的校验信息,软件校验信息包括多个软件校验项的校验信息,授权校验模块1207可以包括:
硬件校验子模块,用于将硬件校验信息中的多个硬件校验项的校验信息,与从空中下载应用服务容器内获取的对应硬件信息一一进行匹配,以对空中下载服务的硬件环境进行校验,
软件校验子模块,用于将软件校验信息中多个软件检验项的校验信息与从空中下载应用服务容器内获取的对应软件信息一一进行匹配,以对空中下载服务的软件信息进行校验,
异常提示子模块,用于响应于存在任意硬件校验项的校验信息与对应的硬件信息不匹配,和/或任意软件校验项的校验信息与对应的软件信息不匹配,确定授权校验未通过,并提示校验项异常,
响应子模块还用于响应于所有硬件校验项的校验信息与对应的硬件信息均匹配,且所有软件校验项的校验信息与对应的软件信息均匹配,确定授权校验通过并运行空中下载服务。
在一些实施例中,原始授权文件采用二进制字节流格式,装置还可以包括:格式转换模块,用于利用原始授权文件对宿主机进行授权校验之前,对原始授权文件进行格式转换,获得可操作的授权文件。
授权校验模块1207具体用于:
利用可操作的授权文件对宿主机进行授权校验。
在一些实施例中,装置还可以包括:定时校验模块,用于利用原始授权文件对宿主机进行授权校验之后,检测是否到达授权校验时间,响应于到达授权检验时间,利用原始授权文件对宿主机再次进行授权校验。
在一些实施例中,检测是否到达授权校验时间,包括:
检测预设的定时器是否到达预设的定时时间,
响应于定时器到达定时时间,确定到达授权校验时间。
在一些实施例中,随机数解密模块1204具体用于:
对随机密钥加密块和密码盐加密块进行并行解密。
图13示出了本申请实施例提供的电子设备的硬件结构示意图。
电子设备可以包括处理器1301以及存储有计算机程序指令的存储器1302。
具体地,上述处理器1301可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器1302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1302可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器1302可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1302可在综合网关容灾设备的内部或外部。在特定实施例中,存储器302是非易失性固态存储器。存储器1302可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器1302包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可执行上述实施例中的任意一种空中下载服务的授权方法所描述的操作。
处理器1301通过读取并执行存储器1302中存储的计算机程序指令,以实现上述实施例中的任意一种空中下载服务的授权方法。
在一个示例中,电子设备还可包括通信接口1303和总线1310。其中,如图13所示,处理器1301、存储器1302、通信接口1303通过总线1310连接并完成相互间的通信。
通信接口1303,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线1310包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的空中下载服务的授权方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述实施例中的任意一种空中下载服务的授权方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (19)
1.一种空中下载服务的授权方法,其特征在于,所述方法包括:
获取配置的原始授权文件和加密授权文件结构,其中,所述加密授权文件结构包括加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,所述加密块种类包括随机密钥加密块、密码盐加密块和签名加密块,
根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数,
将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用加盐加密的方式对所述原始授权文件进行加密,获得加密授权文件块,
对所述第一随机数和所述第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块,
利用预设的签名算法对所述原始授权文件进行签名,获得签名加密块,
根据所述加密块顺序,对获得的所述随机密钥加密块、所述密码盐加密块和所述签名加密块进行组合,得到组合加密块,
将文件头部、所述组合加密块和所述加密授权文件块基于文件字节流的形式顺序合成加密授权文件,其中,所述文件头部包含说明字段,所述说明字段用于说明所述加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数,
向空中下载服务运行的宿主机发送所述加密授权文件。
2.根据权利要求1所述的方法,其特征在于,所述加密块种类还包括混淆密钥加密块,所述根据所述加密块顺序,对获得的所述随机密钥加密块、所述密码盐加密块、所述签名加密块和所述加密授权文件块进行组合,得到组合加密块之前,所述方法还包括:
根据所述混淆密钥加密块的位数生成第三随机数,
对所述第三随机数进行加密,获得混淆密钥加密块,
所述根据所述加密块顺序,对获得的所述随机密钥加密块、所述密码盐加密块、所述签名加密块和所述加密授权文件块进行组合,得到组合加密块,包括:
根据所述加密块顺序,对获得的所述随机密钥加密块、所述混淆密钥加密块、所述密码盐加密块、所述签名加密块和所述加密授权文件块进行组合,得到组合加密块。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用加盐加密的方式对所述原始授权文件进行加密,获得加密授权文件块,包括:
将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用PBKDF2算法对所述原始授权文件进行加密,获得加密授权文件块。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用加盐加密的方式对所述原始授权文件进行加密,获得加密授权文件块,包括:
按照预先配置的数据块分块规则,将所述原始授权文件分割为多个子数据块,
将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用加盐加密的方式对所述多个子数据块分别进行加密,获得多个加密子数据块,
根据所述多个加密子数据块生成加密授权文件块。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多个加密子数据块生成加密授权文件块之前,所述方法还包括:
分别生成每个所述子数据块的哈希值,
所述根据所述多个加密子数据块生成加密授权文件块,包括:
针对所述多个加密子数据块中的每个加密子数据块,在所述加密子数据块的尾部添加对应的哈希值,
将多个尾部添加有哈希值的加密子数据块组成加密授权文件块。
6.根据权利要求1所述的方法,其特征在于,所述原始授权文件包括硬件检验信息和软件校验信息,
所述硬件检验信息包括多个硬件检验项的校验信息,
所述软件校验信息包括多个软件校验项的校验信息。
7.根据权利要求1所述的方法,其特征在于,所述原始授权文件采用二进制字节流格式。
8.根据权利要求1-7任一项所述的方法,其特征在于,在启动空中下载服务运行的宿主机的情况下,所述方法包括:
利用所述宿主机中的空中下载应用服务容器,获取所述加密授权文件,
对所述加密授权文件的文件头部进行解析,获得用于说明所述加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数的说明字段,其中,所述加密块种类包括随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块,
根据所述说明字段,从所述加密授权文件中分别获取随机密钥加密块、密码盐加密块、签名加密块和加密授权文件块,
对所述随机密钥加密块和所述密码盐加密块分别进行解密,获得对应的第一随机数和第二随机数,
利用所述第一随机数和所述第二随机数对所述加密授权文件块进行解密,获得原始授权文件,
利用所述签名加密块对所述原始授权文件进行签名校验,
响应于所述原始授权文件通过所述签名校验,利用所述原始授权文件对所述宿主机进行授权校验。
9.根据权利要求8所述的方法,其特征在于,所述加密授权文件块中包括多个加密子数据块,所述利用所述第一随机数和所述第二随机数对所述加密授权文件块进行解密,获得原始授权文件,包括:
利用所述第一随机数和所述第二随机数,对所述多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,
响应于有任意加密子数据块解密失败,确定所述宿主机授权校验未通过,
响应于所述多个加密子数据块全部解密成功,将解密获得的多个子数据块合并成原始授权文件。
10.根据权利要求9所述的方法,其特征在于,所述加密子数据块尾部添加有对应子数据块的哈希值,所述对所述多个加密子数据块中的加密子数据块逐块进行解密,获得加密子数据块对应的子数据块,包括:
针对所述多个加密子数据块中的每个加密子数据块,对所述加密子数据块进行解密,
响应于通过解密获得所述加密子数据块对应的子数据块,利用所述加密子数据块尾部添加的哈希值对所述子数据块进行校验,
响应于所述子数据块通过校验,确定所述加密子数据块解密成功,
响应于通过解密未获得所述加密子数据块对应的子数据块,或所述子数据块未通过校验,确定所述加密子数据块解密失败。
11.根据权利要求8所述的方法,其特征在于,所述原始授权文件包括硬件校验信息和软件校验信息,所述硬件检验信息包括多个硬件检验项的校验信息,所述软件校验信息包括多个软件校验项的校验信息,所述利用所述原始授权文件对所述宿主机进行授权校验,包括:
将所述硬件校验信息中的多个硬件校验项的校验信息,与从空中下载应用服务容器内获取的对应硬件信息一一进行匹配,以对空中下载服务的硬件环境进行校验,
将所述软件校验信息中多个软件检验项的校验信息与从所述空中下载应用服务容器内获取的对应软件信息一一进行匹配,以对空中下载服务的软件信息进行校验,
响应于存在任意硬件校验项的校验信息与对应的硬件信息不匹配,和/或任意软件校验项的校验信息与对应的软件信息不匹配,确定授权校验未通过,并提示校验项异常,
响应于所有硬件校验项的校验信息与对应的硬件信息均匹配,且所有软件校验项的校验信息与对应的软件信息均匹配,确定授权校验通过并运行空中下载服务。
12.根据权利要求8所述的方法,其特征在于,所述原始授权文件采用二进制字节流格式,所述利用所述原始授权文件对所述宿主机进行授权校验之前,所述方法还包括:
对所述原始授权文件进行格式转换,获得可操作的授权文件,
所述利用所述原始授权文件对所述宿主机进行授权校验,包括,
利用所述可操作的授权文件对所述宿主机进行授权校验。
13.根据权利要求8所述的方法,其特征在于,所述利用所述原始授权文件对所述宿主机进行授权校验之后,所述方法包括:
检测是否到达授权校验时间,
响应于到达所述授权检验时间,利用所述原始授权文件对所述宿主机再次进行授权校验。
14.根据权利要求13所述的方法,其特征在于,所述检测是否到达授权校验时间,包括:
检测预设的定时器是否到达预设的定时时间,
响应于所述定时器到达所述定时时间,确定到达授权校验时间。
15.根据权利要求8所述的方法,其特征在于,所述对所述随机密钥加密块和所述密码盐加密块分别进行解密,包括:
对所述随机密钥加密块和所述密码盐加密块进行并行解密。
16.一种空中下载服务的授权装置,其特征在于,所述装置包括:
配置信息获取模块,用于获取配置的原始授权文件和加密授权文件结构,其中,所述加密授权文件结构包括加密授权文件包含的加密块种类、加密块顺序和加密块对应位数,所述加密块种类包括随机密钥加密块、密码盐加密块和签名加密块,
随机数生成模块,用于根据随机密钥加密块的位数和密码盐加密块的位数,分别生成第一随机数和第二随机数,
授权文件加密模块,用于将所述第一随机数和所述第二随机数分别作为密钥和密码盐,采用加盐加密的方式对所述原始授权文件进行加密,获得加密授权文件块,
随机数加密模块,用于对所述第一随机数和所述第二随机数分别进行加密,获得随机密钥加密块和密码盐加密块,
签名模块,用于利用预设的签名算法对所述原始授权文件进行签名,获得签名加密块,
组合加密块模块,用于根据所述加密块顺序,对获得的所述随机密钥加密块、所述密码盐加密块和所述签名加密块进行组合,得到组合加密块,
加密授权文件生成模块,用于将文件头部、所述组合加密块和所述加密授权文件块基于文件字节流的形式顺序合成加密授权文件,其中所述文件头部包含说明字段,所述说明字段用于说明所述加密授权文件中包含的加密块种类、加密块顺序以及加密块对应位数,
发送模块,用于向空中下载服务运行的宿主机发送所述加密授权文件。
17.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器,
所述处理器执行所述计算机程序指令时实现如权利要求1-15任意一项所述的空中下载服务的授权方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-15任意一项所述的空中下载服务的授权方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-15任意一项所述的空中下载服务的授权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488182.2A CN116032532A (zh) | 2022-11-25 | 2022-11-25 | 空中下载服务的授权方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488182.2A CN116032532A (zh) | 2022-11-25 | 2022-11-25 | 空中下载服务的授权方法、装置、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116032532A true CN116032532A (zh) | 2023-04-28 |
Family
ID=86080320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211488182.2A Pending CN116032532A (zh) | 2022-11-25 | 2022-11-25 | 空中下载服务的授权方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116032532A (zh) |
-
2022
- 2022-11-25 CN CN202211488182.2A patent/CN116032532A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110519260B (zh) | 一种信息处理方法及信息处理装置 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
US10708062B2 (en) | In-vehicle information communication system and authentication method | |
EP2659373B1 (en) | System and method for secure software update | |
JP4638912B2 (ja) | ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法 | |
CN110519309B (zh) | 数据传输方法、装置、终端、服务器及存储介质 | |
CN110149209B (zh) | 物联网设备及其提高数据传输安全性的方法和装置 | |
CN111181928B (zh) | 车辆诊断方法、服务器及计算机可读存储介质 | |
TWI809292B (zh) | 資料的加解密方法、裝置、存儲介質及加密文件 | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
CN110099064A (zh) | 一种基于物联网的文件处理方法、装置、设备和存储介质 | |
CN112187544A (zh) | 固件升级方法、装置、计算机设备及存储介质 | |
CN103269271A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
CN109446831B (zh) | 基于硬件装置的密钥生成和验证方法及系统 | |
CN112241527B (zh) | 物联网终端设备的密钥生成方法、系统及电子设备 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN114793184B (zh) | 一种基于第三方密钥管理节点的安全芯片通信方法及装置 | |
CN115664655A (zh) | 一种tee可信认证方法、装置、设备及介质 | |
CN109257381A (zh) | 一种密钥管理方法、系统及电子设备 | |
CN105873043B (zh) | 一种用于移动终端的网络私匙的生成及应用方法及其系统 | |
CN103281188A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
CN113872769B (zh) | 基于puf的设备认证方法、装置、计算机设备及存储介质 | |
CN115442046A (zh) | 签名方法、装置、电子设备和存储介质 | |
CN116032532A (zh) | 空中下载服务的授权方法、装置、设备及计算机存储介质 | |
CN110210189B (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 |