首页 / 专利库 / 电脑零配件 / 嵌入式系统 / 防止通过软件降级进行攻击的方法、嵌入式系统

防止通过软件降级进行攻击的方法、嵌入式系统

阅读:1031发布:2020-06-18

专利汇可以提供防止通过软件降级进行攻击的方法、嵌入式系统专利检索,专利查询,专利分析的服务。并且本 发明 提供 嵌入式系统 中基于trustzone防止通过 软件 降级进行攻击的方法、嵌入式系统,方法包括:系统上电后,加载待启动系统的版本数据至安全内存区;在安全内存区中对所述版本数据进行签名校验;若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。能实现对待启动系统的主版本信息以及各个子系统组件的版本信息的等级进行判断,禁止 系统软件 降级而存在针对已知漏洞进行攻击的 风 险,从而确保系统运行环境的安全可靠性。,下面是防止通过软件降级进行攻击的方法、嵌入式系统专利的具体信息内容。

1.嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,其特征在于,包括:
系统上电后,加载待启动系统的版本数据至安全内存区;
在安全内存区中对所述版本数据进行签名校验;
若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
2.如权利要求1所述的嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,其特征在于,还包括:
若所述安全存储区域中并未预存储有第一主版本信息,则将所述第一主版本信息存储至所述安全存储区域。
3.如权利要求1所述的嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,其特征在于,还包括:
若第二主版本信息高于第一主版本信息,则将所述第二主版本信息替换第一主版本信息,写入所述安全存储区域中。
4.如权利要求1所述的嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,其特征在于,还包括:
加载待启动的一子系统组件至安全内存区;
若在安全内存区中对所述一子系统组件的签名校验通过;
则从所述一子系统组件中读取对应的子组件版本信息;
比较所述子组件版本信息是否低于所述版本数据中对应所述一子系统组件的子版本信息,若是,则拒绝启动所述一子系统组件;若否,则同意启动所述一子系统组件,同时触发对下一子系统组件的版本验证。
5.如权利要求1所述的嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,其特征在于,所述版本数据包括第二主版本信息、各个子系统组件对应的子版本信息、以及对所述第二主版本信息和各子版本信息的签名数据。
6.一种基于trustzone的嵌入式系统,其特征在于,包括片上不可篡改的ROM区域、安全存储区域以及安全内存区;
所述ROM区域上存储有计算机程序,该计算机程序在所述系统出厂前固化到所述ROM区域中;所述程序被处理器执行时实现以下步骤:
系统上电后,加载待启动系统的版本数据至安全内存区;
在安全内存区中对所述版本数据进行签名校验;
若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
7.如权利要求6所述的一种基于trustzone的嵌入式系统,其特征在于,所述程序还执行包括:
若所述安全存储区域中并未预存储有第一主版本信息,则将所述第一主版本信息存储至所述安全存储区域。
8.如权利要求6所述的一种基于trustzone的嵌入式系统,其特征在于,所述程序还执行包括:
若第二主版本信息高于第一主版本信息,则将所述第二主版本信息替换第一主版本信息,写入所述安全存储区域中。
9.如权利要求6所述的一种基于trustzone的嵌入式系统,其特征在于,还包括位于普通存储区域中的flash区,所述flash区中存储有待启动系统的版本数据,所述版本数据包括第二主版本信息、各个子系统组件对应的子版本信息、以及对所述第二主版本信息和各子版本信息的签名数据;
所述程序还执行包括:
从flash区中加载待启动的一子系统组件至安全内存区;
若在安全内存区中对所述一子系统组件的签名校验通过;
则从所述一子系统组件中读取对应的子组件版本信息;
比较所述子组件版本信息是否低于所述安全内存区中的所述版本数据中对应所述一子系统组件的子版本信息,若是,则拒绝启动所述一子系统组件;若否,则同意启动所述一子系统组件,同时触发对下一子系统组件的版本验证。
10.如权利要求6所述的一种基于trustzone的嵌入式系统,其特征在于,所述安全存储区域为片上熔丝位。

说明书全文

防止通过软件降级进行攻击的方法、嵌入式系统

技术领域

[0001] 本发明涉及嵌入式系统安全领域,具体说的是防止通过软件降级进行攻击的方法、嵌入式系统。

背景技术

[0002] 在嵌入式系统中,现有的技术方案通过可信启动(启动过程中每一阶段被加载的模在加载运行之前都进行安全校验,如果校验通过则运行,否则拒绝执行)虽然可以保证加载启动的所有系统组件都是授权验证过的,但是没有考虑软件版本替换的问题。也就是现有的高版本软件版本可以被替换为旧的低版本的软件,因为旧版本的软件所带有的签名也是合法的,也能在现有的系统合法的加载启动,如果旧版本的软件存在安全漏洞,这样就可以被攻击者利用,先替换为旧的版本程序在利用旧版本的漏洞进行攻击。
[0003] 如现在公司发布的最新的嵌入式系统的主版本是2.0的版本,同时公司官网上也可以下载到主版本是1.0的旧版本,但是这个1.0的版本是有安全漏洞的,而2.0的版本已经修复过相应的安全漏洞。这时攻击者拿到2.0版本的设备是无法进行攻击的,因此他就会把2.0版本的设备进行降级,通过下载1.0版本的软件并烧录到现在2.0版本的设备中,这样就可以利用1.0版本的漏洞进行攻击了。
[0004] 因此,有必要提供一种能防止攻击者通过软件降级来进行攻击的保护措施。

发明内容

[0005] 本发明所要解决的技术问题是:提供一种防止通过软件降级进行攻击的方法、嵌入式系统,有效防止攻击者通过软件降级进行攻击,从而提高系统安全性。
[0006] 为了解决上述技术问题,本发明采用的技术方案为:
[0007] 嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,包括:
[0008] 系统上电后,加载待启动系统的版本数据至安全内存区;
[0009] 在安全内存区中对所述版本数据进行签名校验;
[0010] 若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
[0011] 从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
[0012] 本发明提供的另一个技术方案为:
[0013] 一种基于trustzone的嵌入式系统,包括片上不可篡改的ROM区域、安全存储区域以及安全内存区;
[0014] 所述ROM区域上存储有计算机程序,该计算机程序在所述系统出厂前固化到所述ROM区域中;所述程序被处理器执行时实现以下步骤:
[0015] 系统上电后,加载待启动系统的版本数据至安全内存区;
[0016] 在安全内存区中对所述版本数据进行签名校验;
[0017] 若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
[0018] 从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
[0019] 本发明的有益效果在于:本发明基于ARM的trustzone硬件架构,通过在嵌入式系统上电后,在可信的安全内存区中判断通过签名验证的待启动系统的主版本信息是否低于安全内存区中存储的主版本信息,若是,则拒绝启动。以此拒绝低于当前系统版本的相关程序启动,确保嵌入式系统相关组件无法被刷入旧版本的组件,从而阻止攻击者通过刷入带有已知漏洞的旧版本的组件,再利用旧版本的已知漏洞进行攻击。本发明能确保嵌入式系统运行在安全、可靠的环境中。附图说明
[0020] 图1为本发明嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法的流程示意图;
[0021] 图2为本发明中版本数据的数据结构示意图;
[0022] 图3为本发明实施例中验证主版本信息过程的信息交互示意图;
[0023] 图4为本发明中子系统组件的数据结构示意图;
[0024] 图5为本发明实施例中验证前后级子系统组件版本信息的信息交互示意图;
[0025] 图6为本发明实施例中验证各子系统组件版本信息的信息交互示意图;
[0026] 图7为本发明实施例中签名流程的示意图;
[0027] 图8为本发明实施例中签名验证流程的示意图。

具体实施方式

[0028] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0029] 本发明最关键的构思在于:在嵌入式系统上电后,在可信的安全内存区中判断通过签名验证的待启动系统的主版本信息是否低于安全内存区中存储的主版本信息,若是,则拒绝启动。能有效防止非法分子通过将系统版本降级再利用已知漏洞攻击的问题。
[0030] 本发明涉及的技术术语解释:
[0031]
[0032] 请参照图1以及图2,本发明提供一种嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法,包括:
[0033] 系统上电后,加载待启动系统的版本数据至安全内存区;
[0034] 在安全内存区中对所述版本数据进行签名校验;
[0035] 若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
[0036] 从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
[0037] 从上述描述可知,本发明的有益效果在于:只有待启动系统的主版本信息是高于或者等于当前系统的主版本信息才能运行,以此防止软件降级到旧版本,而后被攻击者利用旧版本的已知漏洞对系统进行攻击,威胁系统安全。
[0038] 进一步的,还包括:
[0039] 若所述安全存储区域中并未预存储有第一主版本信息,则将所述第一主版本信息存储至所述安全存储区域。
[0040] 由上述描述可知,若安全存储区域中未存储有现有的最高系统主版本信息,则将通过验证校验的版本数据中读取到的主版本信息写入,为下一次的版本比较提供依据。
[0041] 进一步的,还包括:
[0042] 若第二主版本信息高于第一主版本信息,则将所述第二主版本信息替换第一主版本信息,写入所述安全存储区域中。
[0043] 由上述描述可知,若待启动的系统主版本信息等级高于现有系统的主版本信息,则将等级更高的主版本信息替换原有写入安全存储区域中,确保每次版本信息比对的准确性。
[0044] 进一步的,还包括:
[0045] 加载待启动的一子系统组件至安全内存区;
[0046] 若在安全内存区中对所述一子系统组件的签名校验通过;
[0047] 则从所述一子系统组件中读取对应的子组件版本信息;
[0048] 比较所述子组件版本信息是否低于所述版本数据中对应所述一子系统组件的子版本信息,若是,则拒绝启动所述一子系统组件;若否,则同意启动所述一子系统组件,同时触发对下一子系统组件的版本验证。
[0049] 由上述描述可知,由于安全存储区域的存储空间有限,只记录主版本信息,其他待加载启动的子系统组件对应的子版本信息的判断依据是从普通存储区域中已加载到安全内存区中通过签名校验过的版本数据。且各子系统组件的子版本信息的验证环环相扣,只有前一个子系统组件通过验证后才能触发对下一子系统组件的判断,由此确保嵌入式系统上运行的各个系统组件版本无法被替换为可能带有安全漏洞的旧版本组件,同时保证系统验证的全面性。
[0050] 进一步的,所述版本数据包括第二主版本信息、各个子系统组件对应的子版本信息、以及对所述第二主版本信息和各子版本信息的签名数据。
[0051] 由上述描述可知,只有通过签名验证,才能获取其中的第一主版本信息和各子版本信息,由此确保版本数据的合法安全性。
[0052] 本发明提供的另一个技术方案为:
[0053] 一种基于trustzone的嵌入式系统,包括片上不可篡改的ROM区域、安全存储区域以及安全内存区;
[0054] 所述ROM区域上存储有计算机程序,该计算机程序在所述系统出厂前固化到所述ROM区域中;所述程序被处理器执行时实现以下步骤:
[0055] 系统上电后,加载待启动系统的版本数据至安全内存区;
[0056] 在安全内存区中对所述版本数据进行签名校验;
[0057] 若验证通过,则从安全存储区域中获取预存储的第一主版本信息至安全内存区;
[0058] 从所述版本数据中读取第二主版本信息,并与所述第一主版本信息进行比较;若第二主版本信息低于第一主版本信息,则拒绝系统启动。
[0059] 从上述描述可知,本方案基于ARM的trustzone硬件架构、片上不可篡改ROM区域,(嵌入式系统上电启动后的第一片程序是从此运行起来的,出厂之前把程序固化到里面之后便不可修改,以此作为系统的可信根),安全存储区域、以及可信启动(启动过程中每一阶段被加载的模块在加载运行之前都进行了安全校验,如果校验通过则运行,否则拒绝执行)。事先在两个地方记录版本信息,一个是安全存储区域存入可信的主版本信息,另外一个在普通存储区域(一般放在FLASH上)的相应区域存入整个系统的主版本信息及待加载的各个子系统组件的子版本信息。通过将版本信息加载到安全内存区进行可信验证,并判断其级别是否高于现有系统,只有二者通过验证,才能运行。能够在现有可信验证的基础上,有效防止非法的降级攻击,显著提高系统运行环境的安全等级。
[0060] 进一步的,所述程序还执行包括:
[0061] 若所述安全存储区域中并未预存储有第一主版本信息,则将所述第一主版本信息存储至所述安全存储区域。
[0062] 进一步的,所述程序还执行包括:
[0063] 若第二主版本信息高于第一主版本信息,则将所述第二主版本信息替换第一主版本信息,写入所述安全存储区域中。
[0064] 进一步的,还包括位于普通存储区中的flash区,所述flash区中存储有待启动系统的版本数据,所述版本数据包括第二主版本信息、各个子系统组件对应的子版本信息、以及对所述第二主版本信息和各子版本信息的签名数据;
[0065] 所述程序还执行包括:
[0066] 从flash区中加载待启动的一子系统组件至安全内存区;
[0067] 若在安全内存区中对所述一子系统组件的签名校验通过;
[0068] 则从所述一子系统组件中读取对应的子组件版本信息;
[0069] 比较所述子组件版本信息是否低于所述安全内存区中的所述版本数据中对应所述一子系统组件的子版本信息,若是,则拒绝启动所述一子系统组件;若否,则同意启动所述一子系统组件,同时触发对下一子系统组件的版本验证。
[0070] 进一步的,所述安全存储区域为片上熔丝位。
[0071] 实施例
[0072] 请参照图2至图8,本实施例提供一种运用于嵌入式系统中,基于ARM的trustzone硬件架构,实现防止攻击者通过软件降级进行攻击的方法和系统。该架构提供一个硬件隔离的安全内存区(trustzone区域)来处理安全性要求较高的任务。
[0073] 本实施例中方法的实现,基于支持trustzone的嵌入式系统;如图3所示,该系统包括片上不可篡改的ROM区域、安全存储区域以及安全内存区。具体的,片上不可篡改的ROM区域是嵌入式系统上电启动后,系统的第一片程序运行起来的地方。一般比较复杂的嵌入式系统分好几个组件,比如第一级加载程序,第二级加载程序,内核程序,文件系统,应用程序等,这里的第一片程序指上电之后启动的第一级加载程序。同时,本实施例中,通过将对应实现本实施例方法的程序固化到这里之后便不可修改,以此作为系统的可信根。进一步的,本实施例中,优选将片上熔丝位作为安全存储区域,具有物理上的不可更改特性,下述将以此为例进行说明。
[0074] 本实施例提供一种在现有的可信启动技术的前提上,进一步加强实现防止软件降级到旧版本的方法。所述可信启动,为启动过程中每一阶段被加载的模块在加载运行之前都进行了安全校验,如果校验通过则运行,否则拒绝执行。
[0075] 本实施例的方法,具体包括:
[0076] S1:预先在片上熔丝位上存入当前系统的主版本信息。当然,若当前系统还未安装过软件,则片上熔丝位上将不存储有主版本信息。
[0077] S2:将待启动更新安装的系统软件对应的版本数据下载至普通存储区内,优选存储在相应的flash区域,下述也将以此为例进行说明。具体的,flash区域中存储有版本数据,以及各待加载启动的子系统组件1至子系统组件N。
[0078] 所述版本数据的格式如图2所示,包括待启动系统的主版本信息、待加载的各个子版本信息1至子版本信息N,以及对应这两部分信息的签名数据。
[0079] S3:系统上电后,可信根程序先从flash区域加载待启动系统的版本数据至trustzone区域的安全内存区;
[0080] S4:在安全内存区中,对上述版本数据进行签名验证,若签名验证通过,则从片上熔丝位中获取预存储的当前系统的最高系统主版本信息,即S1预存储的主版本信息,至安全内存区。
[0081] S5:从上述通过签名验证的版本数据中读取出待启动系统的主版本信息;
[0082] S6:若熔丝位中还没有存储主版本信息,则将从签名验证通过的版本数据中读取到的主版本信息写入熔丝位中。由于已经通过可信验证,同时又不存在更高等级的版本信息,因此可确保当前待启动系统的安全性。而后执行S9;
[0083] S7:若熔丝位中存储有当前系统的主版本信息,则读取至安全内存区中;
[0084] S8:比较S5读取到的待启动系统的主版本信息和S7读取到的当前系统的主版本信息;
[0085] 若待启动系统的主版本信息低于当前系统的主版本信息,则拒绝加载待启动系统的第一级启动加载程序,比如子系统组件1;
[0086] 若二者版本号相同,则正常启动,继续执行步骤S9;
[0087] 若待启动系统的主版本信息高于熔丝位中的主版本信息,则在熔丝位中写入待启动系统的主版本信息,作为新的主版本信息;然后正常启动,执行步骤S9。
[0088] 因为熔丝位区域有限,只记录当前系统的主版本信息。因此,其他待加载启动的子系统组件的版本判断的依据是从flash中已加载到安全内存中,通过签名校验的版本数据。
[0089] 子系统组件的内部数据格式如图4所示,包括该子系统组件的主数据、该子系统组件的版本信息以及对前两部分内容的签名数据。
[0090] 请参阅图5,依据编号①②③④的顺序,其他待加载启动的子系统组件的版本合法性判断流程为:比如要加载执行第N个子系统组件,需要通过已经签名校验和版本确认合法的第N-1个子系统组件来进行,第N-1个子系统组件运行到最后阶段,会把下一级组件加载到内存,并向运行在trustzone的可信根发起对下一级组件的签名校验和版本确认请求,可信根会对加载到内存中的下一级组件进行签名校验,如果校验通过则比较已经加载到安全内存区的版本数据中该级组件的版本信息和普通内存中该组件版本信息,如果普通内存中的版本比安全内存中的版本低则拒绝执行,如果高于或相同则加载运行。
[0091] 具体的,请参阅图6,可以包括:
[0092] S9:加载待启动的第一个子系统组件(子系统组件1)至安全内存区;
[0093] S10:若在安全内存区中对该子系统组件的签名校验通过;则从该子系统组件中读取对应的子组件版本信息;
[0094] S11:比较该子组件版本信息是否低于S4步骤中通过签名验证的所述版本数据中存储的对应该子系统组件的子版本信息;若是,则拒绝启动该子系统组件;若否,则同意启动所述一子系统组件,同时触发对下一子系统组件的版本验证,即向可信根发起对下一级子系统组件的签名验证和版本确认请求;加载下一级组件(子系统组件2)至安全内存区,依序判断,直至完成对子系统组件N的判断。由此环环相扣的完成对逐级子系统组件的签名验证和版本确认,确保嵌入式系统上运行的各个系统组件版本无法被替换为可能带有安全漏洞的旧版本组件。
[0095] 本实施例整个嵌入式设备在启动的每一阶段成功启动的流程是:设备上电->启动片上不可篡改的可信根程序->加载版本数据,签名校验,主版本信息确认->加载子系统组件1&签名校验,子系统组件1版本确认,执行->...->加载子系统组件N&签名校验,子系统组件版本确认,执行。
[0096] 需要说明的是,本实施例中的签名和签名验证过程,如图7所示,签名过程为:对待加载启动的系统的版本数据以及其他各个子系统组件的版本数据分别进行单向安全散列算法计算得到对应的摘要值,再分别对摘要值使用对应私钥进行加密后得到对应的签名数据。如图8所示,签名验证过程:签名数据使用对应的公钥进行解密生成一个摘要值,同时待签名验证的数据使用单向安全散列函数进行计算也生成一个摘要值,在两个摘要值进行对比如果一致的话签名验证成功,不一致则签名验证失败。
[0097] 通过本实施例的方法可以确保嵌入式系统相关组件无法被刷入旧版本的组件,从而阻止攻击者通过刷入带有已知漏洞的旧版本的组件,从而利用旧版本的已知漏洞进行攻击。
[0098] 本实施例还提供一对应实现上述方法的基于trustzone的嵌入式系统,包括片上不可篡改的ROM区域、安全存储区域(片上熔丝位)以及trustzone区域内的安全内存区;
[0099] 所述ROM区域在出厂前固化一计算机程序至此,作为系统的可信根。该计算机程序在设备上电后便被处理器启动执行上述方法中的S2至S11步骤。
[0100] 优选的,如图3所示,本实施例的嵌入式系统的trustzone可信执行环境中包括安全内存区、加载模块、签名校验模块以及版本确认模块;对应实现上述方法的S2至S8步骤。
[0101] 可信根包括签名校验模块和版本确认模块,对应实现待加载启动的子系统组件的版本合法性判断流程。
[0102] 综上所述,本发明提供的嵌入式系统中基于trustzone防止通过软件降级进行攻击的方法及其系统,能实现对待启动系统的主版本信息以及各个子系统组件的版本信息的等级进行判断,禁止系统软件降级而存在针对已知漏洞进行攻击的险,从而确保系统运行环境的安全可靠性。
[0103] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈