CN109359440A - 一种目标数据合法性验证方法及装置 - Google Patents
一种目标数据合法性验证方法及装置 Download PDFInfo
- Publication number
- CN109359440A CN109359440A CN201811309385.4A CN201811309385A CN109359440A CN 109359440 A CN109359440 A CN 109359440A CN 201811309385 A CN201811309385 A CN 201811309385A CN 109359440 A CN109359440 A CN 109359440A
- Authority
- CN
- China
- Prior art keywords
- logic area
- data
- block
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013500 data storage Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 238000003860 storage Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种目标数据合法性验证方法及装置。所述方法包括将数据存储空间划分为引导程序数据存储区和程序数据存储区;将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;获取目标数据;根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。本发明实施例通过完备的完整性和兼容性校验提升了程序代码加载的成功率。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种目标数据合法性验证方法及装置。
背景技术
控制器中程序代码的完整性检查用于确保下载到控制器的软件是完整的,程序代码的兼容性检查用于确保软件各个部分可以相互兼容从而能够有效运行,程序代码的完整性检查和兼容性检查都是为了防止程序代码被破坏和修改,只有经过验证的程序才允许运行。控制器中的程序代码可能分为好几部分,在控制器代码更新的时候,不用每次都全部更新。这就需要保证控制器中的代码是相互兼容的,不兼容的代码会为程序的运行会带来安全隐患。控制器的引导程序在每次启动时都会检测程序代码是否完整和兼容,如果失败就不会运行程序代码。
然而,目前的程序完整性检查的方法是在下载完代码后校验控制器内部的代码是否和诊断仪下载的内容一致,防止传输出错或者写存储器出错。但是这种方法无法识别程序代码不完整、被破坏和被修改的情况。
发明内容
为了解决上述技术问题,本发明提供一种目标数据合法性验证方法及装置。
本发明是以如下技术方案实现的:
一种目标数据合法性验证方法,所述方法用于验证待启动程序的目标数据的合法性,所述方法包括:
将数据存储空间划分为引导程序数据存储区和程序数据存储区;
将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;
获取目标数据;
根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;
若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
进一步地,所述引导程序数据存储区用于存储引导程序及其相关数据;所述引导程序为BootLoader;所述程序数据存储区用于存储被BootLoader加载的程序代码及其相关数据。
进一步地,所述引导程序数据存储区包括引导程序块和引导程序信息块两部分;引导程序信息块中包含Bootloader版本号、程序代码有效位和逻辑区管理数据;所述逻辑区管理数据包括逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区信息块地址和逻辑区有效位。
进一步地,还包括:
逻辑区信息块与逻辑区程序代码块一一对应,所述逻辑区信息块中包含逻辑区编号、逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区版本号、其对应的逻辑区程序代码块数字签名和逻辑区信息块数字签名。
进一步地,对于初次使用的控制器存储器,直接下载目标数据;对于已经投入使用的控制器存储器,首先擦除用于存储目标数据的目标逻辑区的数据,然后下载目标数据。
进一步地,还提供一种目标逻辑区中数据的擦除方法,包括:
响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址;
判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同;
若否,则不响应所述数据擦除指令;
若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
进一步地,所述判断目标数据是否具备完整性包括:
根据预设数字签名算法和所述目标逻辑区的逻辑区程序代码块中的数据计算目标逻辑区的数字签名;
判断所述目标逻辑区的数字签名与所述目标逻辑区的逻辑区信息块中存储的逻辑区信息块数字签名是否相同;
若相同,则设置引导程序信息块中目标逻辑区有效位为有效;若不同,则判定目标数据不具备完整性。
进一步地,所述判断目标数据是否具备兼容性包括:
获取第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性,所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性分别为引导程序信息块中目标逻辑区的逻辑区起始地址、逻辑区终止地址和逻辑区属性;
获取第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性,所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性分别为目标逻辑区的逻辑区信息块中存储的逻辑区起始地址、逻辑区终止地址和逻辑区属性;
判断所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性是否分别与所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性相同;
若是,则验证引导程序信息块中的Bootloader版本号与各个逻辑区的逻辑区信息块中存储的逻辑区版本号是否均兼容;
若是,则设置引导程序信息块的程序代码有效位为有效。
一种目标数据合法性验证装置,所述装置用于验证待启动程序的目标数据的合法性,所述装置包括:
第一划分模块,用于将数据存储空间划分为引导程序数据存储区和程序数据存储区;
第二划分模块,用于将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;
目标数据获取模块,用于获取目标数据;
合法性检查模块,用于根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;
合法性判定模块,用于若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
进一步地,还包括擦除模块,所述擦除模块包括:
指令响应单元,用于响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址;
目标逻辑区查找单元,用于判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同;
响应单元,用于若否,则不响应所述数据擦除指令;若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
本发明的有益效果是:
本发明提供的一种目标数据合法性验证方法及装置,其具有如下有益效果:通过验证数字签名可以更好的防止程序代码被未授权的更改,更加安全可靠。通过验证逻辑区信息块的地址和属性信息,以及引导程序信息块中存储的逻辑区信息,可以确保逻辑区的存储位置和属性正确。通过验证引导程序信息块中的BootLoader版本号与各个逻辑区的版本号可以确保程序代码各个部分以及其与BootLoader的兼容,本发明实施例通过完备的完整性和兼容性校验提升了程序代码加载的成功率。
附图说明
图1是本发明实施例提供的一种目标数据合法性验证方法流程图;
图2是本发明实施例提供的一种目标逻辑区中数据的擦除方法流程图;
图3是本发明实施例提供的一种目标数据完整性判断方法流程图;
图4是本发明实施例提供的一种目标数据兼容性判断方法流程图;
图5是本发明实施例提供的一种目标数据合法性验证装置框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明实施例提供了一种目标数据合法性验证方法,所述方法用于验证待启动程序的目标数据的合法性,如图1所示,所述方法包括:
S101.将数据存储空间划分为引导程序数据存储区和程序数据存储区。
具体地,所述数据可以存放于某个或某几个控制器存储器中,具体地,所述控制器存储器可以是控制器内部的Flash存储器。
所述引导程序数据存储区用于存储引导程序及其相关数据。引导程序可以为BootLoader。在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中整个系统的加载启动任务由BootLoader来完成。
Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。
相应的,程序数据存储区用于存储被BootLoader加载的程序代码及其相关数据。
S102.将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系。
具体地,所述引导程序数据存储区包括引导程序块和引导程序信息块两部分。引导程序信息块中可以包含Bootloader版本号、程序代码有效位和逻辑区管理数据。具体地,所述逻辑区管理数据包括逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区信息块地址和逻辑区有效位。
逻辑区信息块与逻辑区程序代码块一一对应,所述逻辑区信息块中可以包含逻辑区编号、逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区版本号、其对应的逻辑区程序代码块数字签名和逻辑区信息块数字签名。
S103.获取目标数据。
本发明实施例中所述的目标数据首先必须是存储于所述数据存储空间中的数据,其次所述目标数据优选是完整的逻辑区程序代码块中的数据。
S104.根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性。
S105.若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
本发明实施例支持对于逻辑区程序代码块中的数据的擦除、修改和覆盖等动态操作,在进行目标数据的合法性判断之前,首先要获取目标数据。具体地,对于初次使用的控制器存储器而言,直接下载目标数据即可。对于已经投入使用的控制器存储器而言,应当首先擦除用于存储目标数据的目标逻辑区的数据,然后下载目标数据。
本发明实施例中目标数据存储于目标逻辑区,本发明实施例中使用引导程序信息块的程序代码有效位和目标逻辑区的有效位标识程序代码和目标逻辑区的状态,若目标逻辑区的数据未经过合法性校验,则引导程序信息块的程序代码有效位和目标逻辑区的有效位均为无效;反之,目标逻辑区的有效位有效,若全部逻辑区中的代码均经过合法性校验,则引导程序信息块的程序代码有效位也有效。
对于已经投入使用的控制器存储器,本发明实施例提供一种目标逻辑区中数据的擦除方法,如图2所示,包括:
S110.响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址。
S120.判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同。
S130.若否,则不响应所述数据擦除指令。
S140.若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
在本发明实施例中,若存在无效的逻辑区有效位,则引导程序信息块的程序代码有效位也必然是无效的。在控制器正常启动时,Bootloader首先检查引导程序信息块的程序代码有效位是否有效,如果是,则引导程序加载,否则并不加载引导程序,通过设置引导程序信息块的程序代码有效位,避免对于非法的程序进行加载,提升控制器启动成功率。
进一步地,在目标逻辑区被擦除的基础上,本发明实施例可以获取目标数据,将目标数据存储于所述目标逻辑区。本发明实施例进一步提供一种目标数据完整性判断方法,如图3所示,所述方法包括:
S1041.根据预设数字签名算法和所述目标逻辑区的逻辑区程序代码块中的数据计算目标逻辑区的数字签名。
S1043.判断所述目标逻辑区的数字签名与所述目标逻辑区的逻辑区信息块中存储的逻辑区信息块数字签名是否相同。
S1045.若相同,则设置引导程序信息块中目标逻辑区有效位为有效;若不同,则判定目标数据不具备完整性。
只有在目标数据通过完整性判断的基础上,本发明才进一步执行一种目标数据兼容性判断方法,如图4所示,所述方法包括:
S1040.获取第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性,所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性分别为引导程序信息块中目标逻辑区的逻辑区起始地址、逻辑区终止地址和逻辑区属性。
S1042.获取第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性,所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性分别为目标逻辑区的逻辑区信息块中存储的逻辑区起始地址、逻辑区终止地址和逻辑区属性。
S1044.判断所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性是否分别与所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性相同。
S1046.若是,则验证引导程序信息块中的Bootloader版本号与各个逻辑区的逻辑区信息块中存储的逻辑区版本号是否均兼容。
S1048.若是,则设置引导程序信息块的程序代码有效位为有效。
在经历上述完整性检验和兼容性检验后,若目标数据通过完整性检验和兼容性检验,则引导程序信息块的程序代码有效位重新被置为有效,BootLoader即可引导程序进行正常加载。
本发明实施例提供的一种目标数据合法性验证方法,通过验证数字签名可以更好的防止程序代码被未授权的更改,更加安全可靠。通过验证逻辑区信息块的地址和属性信息,以及引导程序信息块中存储的逻辑区信息,可以确保逻辑区的存储位置和属性正确。通过验证引导程序信息块中的BootLoader版本号与各个逻辑区的版本号可以确保程序代码各个部分以及其与BootLoader的兼容,本发明实施例通过完备的完整性和兼容性校验提升了程序代码加载的成功率。
本发明实施例提供一种目标数据合法性验证装置,所述装置用于验证待启动程序的目标数据的合法性,如图5所示,所述装置包括:
第一划分模块201,用于将数据存储空间划分为引导程序数据存储区和程序数据存储区;
第二划分模块202,用于将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;
目标数据获取模块203,用于获取目标数据;
合法性检查模块204,用于根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;
合法性判定模块205,用于若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
进一步地,还包括擦除模块,所述擦除模块206包括:
指令响应单元,用于响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址;
目标逻辑区查找单元,用于判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同;
响应单元,用于若否,则不响应所述数据擦除指令;若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
本发明装置实施例与方法实施例基于相同的发明构思。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如本发明的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(如计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,也可以在载体信号上提供,或者以任何其他形式提供。
应该注意的是,上述实施例是对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤等。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
Claims (10)
1.一种目标数据合法性验证方法,所述方法用于验证待启动程序的目标数据的合法性,其特征在于,所述方法包括:
将数据存储空间划分为引导程序数据存储区和程序数据存储区;
将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;
获取目标数据;
根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;
若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
2.根据权利要求1所述的方法,其特征在于:
所述引导程序数据存储区用于存储引导程序及其相关数据;所述引导程序为BootLoader;所述程序数据存储区用于存储被BootLoader加载的程序代码及其相关数据。
3.根据权利要求2所述的方法,其特征在于:
所述引导程序数据存储区包括引导程序块和引导程序信息块两部分;引导程序信息块中包含Bootloader版本号、程序代码有效位和逻辑区管理数据;所述逻辑区管理数据包括逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区信息块地址和逻辑区有效位。
4.根据权利要求3所述的方法,其特征在于,还包括:
逻辑区信息块与逻辑区程序代码块一一对应,所述逻辑区信息块中包含逻辑区编号、逻辑区起始地址、逻辑区终止地址、逻辑区属性、逻辑区版本号、其对应的逻辑区程序代码块数字签名和逻辑区信息块数字签名。
5.根据权利要求1所述的方法,其特征在于:
对于初次使用的控制器存储器,直接下载目标数据;对于已经投入使用的控制器存储器,首先擦除用于存储目标数据的目标逻辑区的数据,然后下载目标数据。
6.根据权利要求5所述的方法,其特征在于,还提供一种目标逻辑区中数据的擦除方法,包括:
响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址;
判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同;
若否,则不响应所述数据擦除指令;
若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
7.根据权利要求6所述的方法,其特征在于,所述判断目标数据是否具备完整性包括:
根据预设数字签名算法和所述目标逻辑区的逻辑区程序代码块中的数据计算目标逻辑区的数字签名;
判断所述目标逻辑区的数字签名与所述目标逻辑区的逻辑区信息块中存储的逻辑区信息块数字签名是否相同;
若相同,则设置引导程序信息块中目标逻辑区有效位为有效;若不同,则判定目标数据不具备完整性。
8.根据权利要求7所述的方法,其特征在于,所述判断目标数据是否具备兼容性包括:
获取第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性,所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性分别为引导程序信息块中目标逻辑区的逻辑区起始地址、逻辑区终止地址和逻辑区属性;
获取第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性,所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性分别为目标逻辑区的逻辑区信息块中存储的逻辑区起始地址、逻辑区终止地址和逻辑区属性;
判断所述第一逻辑区起始地址、第一逻辑区终止地址和第一逻辑区属性是否分别与所述第二逻辑区起始地址、第二逻辑区终止地址和第二逻辑区属性相同;
若是,则验证引导程序信息块中的Bootloader版本号与各个逻辑区的逻辑区信息块中存储的逻辑区版本号是否均兼容;
若是,则设置引导程序信息块的程序代码有效位为有效。
9.一种目标数据合法性验证装置,所述装置用于验证待启动程序的目标数据的合法性,其特征在于,所述装置包括:
第一划分模块,用于将数据存储空间划分为引导程序数据存储区和程序数据存储区;
第二划分模块,用于将所述引导程序数据存储区划分为引导程序块和引导程序信息块,将所述程序数据存储区划分为多个逻辑区,每个逻辑区均包括逻辑区程序代码块和逻辑区信息块;所述引导程序信息块中的数据与各个逻辑区的逻辑区信息块中的数据存在预设映射关系;
目标数据获取模块,用于获取目标数据;
合法性检查模块,用于根据引导程序块中的数据、逻辑区程序代码块中的数据和逻辑区信息块中的数据判断目标数据是否具备完整性和兼容性;
合法性判定模块,用于若所述目标数据被判定为具备完整性且具备兼容性,则判定目标数据合法。
10.根据权利要求9所述的装置,其特征在于:
还包括擦除模块,所述擦除模块包括:
指令响应单元,用于响应于数据擦除指令,获取所述数据擦除指令的数据擦除始地址和数据擦除终地址;
目标逻辑区查找单元,用于判断所述引导程序信息块中是否记录有目标逻辑区,所述目标逻辑区的逻辑区起始地址与所述数据擦除始地址相同,所述目标逻辑区的逻辑区终止地址与所述数据擦除终地址相同;
响应单元,用于若否,则不响应所述数据擦除指令;若是,则设置引导程序信息块的程序代码有效位和目标逻辑区的有效位为无效,擦除所述目标逻辑区的全部数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811309385.4A CN109359440B (zh) | 2018-11-05 | 2018-11-05 | 一种目标数据合法性验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811309385.4A CN109359440B (zh) | 2018-11-05 | 2018-11-05 | 一种目标数据合法性验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359440A true CN109359440A (zh) | 2019-02-19 |
CN109359440B CN109359440B (zh) | 2020-11-03 |
Family
ID=65344103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811309385.4A Active CN109359440B (zh) | 2018-11-05 | 2018-11-05 | 一种目标数据合法性验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359440B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631609A (zh) * | 2012-08-21 | 2014-03-12 | 广州汽车集团股份有限公司 | 一种车载ecu应用程序的刷新方法及系统 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN102708044B (zh) * | 2011-03-23 | 2016-01-06 | 沃尔沃汽车公司 | 完整性和兼容性验证装置和方法 |
CN108647040A (zh) * | 2018-05-10 | 2018-10-12 | 上海纳恩汽车技术有限公司 | 一种基于PEPS系统的Bootloader架构及刷写方法 |
-
2018
- 2018-11-05 CN CN201811309385.4A patent/CN109359440B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708044B (zh) * | 2011-03-23 | 2016-01-06 | 沃尔沃汽车公司 | 完整性和兼容性验证装置和方法 |
CN103631609A (zh) * | 2012-08-21 | 2014-03-12 | 广州汽车集团股份有限公司 | 一种车载ecu应用程序的刷新方法及系统 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN108647040A (zh) * | 2018-05-10 | 2018-10-12 | 上海纳恩汽车技术有限公司 | 一种基于PEPS系统的Bootloader架构及刷写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109359440B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101407835B1 (ko) | 플랫폼 독립적인 메모리 로직의 제공 | |
CN104008340B (zh) | 病毒查杀方法及装置 | |
US7313682B2 (en) | Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code | |
US9098300B2 (en) | Providing silicon integrated code for a system | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
EP2646913A1 (en) | Repairing corrupt software | |
CN106250192A (zh) | 上位机的软件升级方法及系统 | |
CN109960523A (zh) | 一种嵌入式设备的固件升级方法及装置 | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
CN106815051A (zh) | 一种嵌入式设备的固件升级方法、装置及验钞器 | |
CN105637521A (zh) | 一种数据处理方法及智能终端 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
KR102598510B1 (ko) | 소프트웨어의 무결성 검증 방법 및 그 장치 | |
CN102708044B (zh) | 完整性和兼容性验证装置和方法 | |
CN113238790B (zh) | 基于sd卡和eeprom的固件程序更新方法及系统 | |
CN113268366A (zh) | 内核运行方法、设备和系统 | |
US6401218B1 (en) | Method and system for functional kernel verification testing within a data processing system | |
CN109375953B (zh) | 一种操作系统启动方法及装置 | |
US7428635B2 (en) | Method of writing non-volatile memory that avoids corrupting the vital initialization code | |
CN109359440A (zh) | 一种目标数据合法性验证方法及装置 | |
CN116820528A (zh) | 固件版本升级方法、装置、芯片和电子设备 | |
KR101844095B1 (ko) | 부트로더 실행 방법 및 장치 | |
CN113535468B (zh) | Dsp芯片的启动方法和启动装置 | |
CN105278993B (zh) | 一种基于Linux系统的驱动模块升级方法及装置 | |
CN108958819B (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 |