基于软件的写保护装置及方法与流程

文档序号:32393772发布日期:2022-11-30 09:25阅读:130来源:国知局
基于软件的写保护装置及方法与流程

1.本技术涉及存储技术领域,尤其涉及一种基于软件的写保护装置及方法。


背景技术:

2.随着技术的发展,嵌入式设备也逐步普遍起来,与之而来的是嵌入式设备的安全问题,在这其中对嵌入式设备的安全性影响最大的就是其操作系统中的关键区域会被篡改,从而出现系统崩溃的情况,继而导致嵌入式设备“变砖”,无法继续使用。对此,为了解决操作系统中关键区域被篡改的情况,一般都是利用对关键区域预先设置写保护,从而避免关键区域中的数据、参数被写入操作所篡改。
3.目前,在常规的写保护方式一般是硬件写保护,也就是说基于操作系统所在的闪存硬件的支持下实现对写操作行为的规避,从而实现写保护的功能,例如最常见的emmc闪存。其中,emmc闪存(embedded multi media card,简称emmc)相当于闪存与主控的组合,emmc闪存采用统一的mmc标准接口,把高密度存储单元以及主控器封装在一颗芯片中。也就是说基于emmc闪存自带的主控器硬件结构,就能够支持硬件写保护的方式对写入行为进行控制。但在实际应用中,对于普通的nand闪存而言,由于其硬件结构上并不涉及主控器之类的器件,这就导致常规的写保护方式基于硬件设置的不同,难以实现对写操作行为的控制,也就是说常规的硬件写保护方式与nand闪存并不匹配,因此,对于类似于nand闪存这种不支持硬件写保护的存储设备,如何实现一种能够适配的写保护功能,成为领域内亟待解决的问题。


技术实现要素:

4.本技术实施例提供一种基于软件的写保护装置及方法,主要目的在于实现一种适配nand闪存的写保护功能,满足用户对于nand闪存的写入行为的控制需求。
5.为解决上述技术问题,本技术实施例提供如下技术方案:
6.第一方面,本技术提供了一种基于软件的写保护装置,所述装置包括:
7.获取单元,用于从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;
8.确定单元,用于当接收到写入操作指令时,从所述写入操作指令确定写入地址信息;
9.判断单元,用于判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;
10.执行单元,用于若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,则拦截所述写入操作指令。
11.可选的,所述写入地址信息包含至少一个写入地址,所述写保护区域信息包括一个或多个分区信息,所述分区信息用于表征在检测到写入操作时相应的分区是否允许执行
所述写入操作;
12.所述判断单元包括:
13.第一确定模块,用于根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,所述写保护分区包括至少一个保护地址;
14.判断模块,用于判断所述写入地址与所述保护地址是否匹配;
15.所述执行单元,具体用于若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令。
16.可选的,所述分区信息包括起始地址、长度信息以及分区属性;所述长度信息用于表征与所述起始地址开始的地址长度;所述分区属性用于表征对应所述分区属性的分区是否允许执行所述写入操作;
17.所述第一确定模块,具体用于根据所述起始地址信息以及所述长度信息确定每个分区的分区范围,并根据所述分区属性从多个所述分区范围中确定所述分区属性为不允许执行所述写入操作的分区范围,作为所述写保护分区;
18.所述判断模块,具体用于判断所述写入地址是否位于所述写保护分区的分区范围中;
19.所述执行单元,还具体用于若所述写入地址位于所述写保护分区的分区范围中,则拦截所述写入操作指令。
20.可选的,所述判断单元还包括:
21.第二确定模块,用于若所述写入地址并未位于所述写保护分区的分区范围中,则确定所述写入地址对应的非保护分区;
22.第一执行模块,用于对所述非保护分区执行所述写入操作。
23.可选的,所述分区属性还包括阶段信息,所述阶段信息用于表征允许执行所述写入操作的操作系统阶段;
24.所述判断单元还包括:
25.获取模块,用于获取所述非保护分区的阶段信息,并判断所述写入操作的执行时刻与所述非保护分区的阶段信息是否一致;
26.第二执行模块,用于若所述写入操作的执行时刻与所述非保护分区的阶段信息不一致,则拦截所述写入操作指令。
27.可选的,所述预设存储区域为基于nand闪存构建的用于存储操作系统的区域,所述预设存储区域设置有用于控制所述写入操作的硬件器件;所述预设存储区域包括rpmb区域。
28.第二方面,本技术还提供了一种基于软件的写保护方法,所述方法包括:
29.从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;
30.当接收到写入操作指令时,从所述写入操作指令确定写入地址信息;
31.判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;
32.若匹配,则拦截所述写入操作指令。
33.可选的,所述写入地址信息包含至少一个写入地址,所述写保护区域信息包括一
个或多个分区信息,所述分区信息用于表征在检测到写入操作时相应的分区是否允许执行所述写入操作;
34.所述判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配包括:
35.根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,所述写保护分区包括至少一个保护地址;
36.判断所述写入地址与所述保护地址是否匹配;
37.所述若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,则拦截所述写入操作指令,包括:
38.若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令。
39.可选的,所述分区信息包括起始地址、长度信息以及分区属性;所述长度信息用于表征与所述起始地址开始的地址长度;所述分区属性用于表征对应所述分区属性的分区是否允许执行所述写入操作;
40.所述根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,包括:
41.根据所述起始地址信息以及所述长度信息确定每个分区的分区范围,并根据所述分区属性从多个所述分区范围中确定所述分区属性为不允许执行所述写入操作的分区范围,作为所述写保护分区;
42.所述判断所述写入地址与所述保护地址是否匹配,包括:
43.判断所述写入地址是否位于所述写保护分区的分区范围中;
44.所述若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令,包括:
45.若所述写入地址位于所述写保护分区的分区范围中,则拦截所述写入操作指令。
46.可选的,在所述判断所述写入地址是否位于所述写保护分区的分区范围中之后,所述方法还包括:
47.若所述写入地址并未位于所述写保护分区的分区范围中,则确定所述写入地址对应的非保护分区;
48.对所述非保护分区执行所述写入操作。
49.可选的,所述分区属性还包括阶段信息,所述阶段信息用于表征允许执行所述写入操作的操作系统阶段;
50.在所述对所述非保护分区执行所述写入操作之前,所述方法还包括:
51.获取所述非保护分区的阶段信息,并判断所述写入操作的执行时刻与所述非保护分区的阶段信息是否一致;
52.若不一致,则拦截所述写入操作指令。
53.可选的,所述预设存储区域为基于nand闪存构建的用于存储操作系统的区域,所述预设存储区域设置有用于控制所述写入操作的硬件器件;所述预设存储区域包括rpmb区域。
54.第三方面,本技术还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第二方面所述的基于软件的写保护方法。
55.第四方面,本技术还提供了一种基于软件的写保护设备,所述设备包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行第二方面中任一项所述的基于软件的写保护方法。
56.借由上述技术方案,本技术提供的技术方案至少具有下列优点:
57.本技术提供一种基于软件的写保护装置及方法,本技术能够首先通过获取单元从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;然后,当接收到写入操作指令时,通过确定单元从所述写入操作指令确定写入地址信息;之后,通过判断单元判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;最后若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,通过执行单元拦截所述写入操作指令,从而实现基于软件的写保护功能,满足了用户对于nand闪存的写入行为的控制。相较于现有技术,在本技术的基于软件的写保护方法在执行时,由于获取单元获取的写保护区域信息包含了对写入操作执行控制操作的保护范围,也就是说确定了nand闪存中哪些区域是不能执行写入行为的,因此在判断单元判断写入操作指令中的写入地址信息与写保护区域信息中的地址信息匹配后,就可以确定该写入操作指令实际上需要在被保护的保护范围内进行,这时基于执行单元拦截该写入操作指令就避免了对保护范围内的数据执行写入操作的情况,实现了对nand闪存中需要执行写保护的区域进行保护的功能,同时,由于上述过程都是基于软件层面实现的,无需硬件层面的支持,因此对于诸如nand闪存之类不具备主控器等硬件支持的闪存,具有较好的适配性。此外,由于现有的硬件写保护方案执行过程中还需要对闪存内部的地址执行对齐操作,在对齐操作完成后,其中未对齐部分的地址的存储空间就不会被分配以存储数据,导致该部分存储空间被浪费,而本技术上述方案并不需要执行地址对齐的操作,就节省了闪存中的存储空间。此外,在本技术中,对于不需要保护的区域,直接可以基于写保护区域信息进行设置,也就是说当需要对某个区域重新设置是否需要执行写保护时,直接基于该写保护区域信息进行设置即可,避免了现有技术中基于硬件的硬件写保护在解除过程中需要额外设置解除代码的过程,减少了工程师的代码编译量,尤其是当存在多个不同硬件形式的多种闪存时,不用编译不同种类的写保护解除代码,可以大大减少工程师的代码编译数量。
58.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
59.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
60.图1示出了本技术实施例提供的一种基于软件的写保护装置的组成框图;
61.图2示出了本技术实施例提供的另一种基于软件的写保护装置的组成框图;
62.图3示出了本技术实施例提供的一种基于软件的写保护方法流程图。
具体实施方式
63.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
64.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
65.本技术实施例提供了一种基于软件的写保护装置的框图,如图1所示,该装置包括:
66.获取单元11,可以用于从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;
67.确定单元12,可以用于当接收到写入操作指令时,从所述写入操作指令确定写入地址信息;
68.判断单元13,可以用于判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;
69.执行单元14,可以用于若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,则拦截所述写入操作指令。
70.nand闪存是一种比常规磁头式硬盘驱动器更为便捷、高效的存储设备,在不超过4gb的低容量应用中表现得尤为明显。而随着人们持续追求功耗更低、重量更轻和性能更佳的产品,nand闪存与常规的存储设备相比,具有较大的发展前景。由于nand闪存是一种非易失性存储技术,即断电后仍能保存数据,因此其发展目标就是降低每比特存储成本、提高存储容量。基于nand闪存本身只具备存储单元,不同于emmc闪存等具备主控器件的闪存,因此常规的硬件写保护对无法在其实现。
71.有鉴于此,在本实施例中,可以基于本实施例的装置执行写保护方法,该基于软件的写保护装置可以设置于操作系统框架中的驱动层之上,也就是说在常规的写入操作被下达后,常规系统框架中驱动层会基于写入操作执行对应的写入行为,而在本实施例中,当写入操作被下达后,系统框架中的驱动层并不会直接响应,而是基于本实施例的装置按照上述单元执行上述方法。
72.因此,在本实施例中,为了实现写保护的功能,首先需要确定操作系统所在的区域中哪些部分是需要写保护的,哪些部分是不需要写保护的。由此可以基于获取单元11首先从预设存储区域中获取写保护区域信息。由于写保护区域信息是体现写入操作执行时操作系统中哪些部分是需要控制该写入行为的信息,也就是保护范围,而该保护范围中包括至少一个地址信息,这样获取单元11获取到的写保护区域信息实际上就是操作系统所在区域中的哪个或哪些地址是不允许执行写入操作的。
73.与此同时,还可以基于确定单元12从写入操作指令中确定该指令实际上需要执行写入操作的地址,也就是写入地址信息,其中该写入地址信息可以为具体的一个地址,也可以是多个地址,具体的还是根据写入操作指令来确定,也就是说基于用户具体的操作进行确定。
74.当确定了写入地址信息和保护范围对应的地址信息后,则可基于判断单元13对二者进行判断,确认二者之间是否匹配。也就是说确定写入操作所针对的地址是否是执行了写保护对应的地址,当二者匹配时,就说明当前的写入操作是要对被保护的地址进行篡改,反之,则说明对不用保护的地址进行修改。
75.基于前述描述可知,当所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,实际上就可以理解为写入操作是要对操作系统中的重要部分,即保护范围内的数据进行修改,而这种行为应该是被禁止的,因此可以基于执行单元14对该写入操作指令进行拦截,从而避免基于该写入操作指令对操作系统的关键区域或重要部分进行修改的情况,继而实现了基于软件的写保护功能。
76.基于此,本实施例提供一种基于软件的写保护装置,相较于现有技术,在本技术的基于软件的写保护方法在执行时,由于获取单元获取的写保护区域信息包含了对写入操作执行控制操作的保护范围,也就是说确定了nand闪存中哪些区域是不能执行写入行为的,因此在判断单元判断写入操作指令中的写入地址信息与写保护区域信息中的地址信息匹配后,就可以确定该写入操作指令实际上需要在被保护的保护范围内进行,这时基于执行单元拦截该写入操作指令就避免了对保护范围内的数据执行写入操作的情况,实现了对nand闪存中需要执行写保护的区域进行保护的功能,同时,由于上述过程都是基于软件层面实现的,无需硬件层面的支持,因此对于诸如nand闪存之类不具备主控器等硬件支持的闪存,具有较好的适配性。此外,由于现有的硬件写保护方案执行过程中还需要对闪存内部的地址执行对齐操作,在对齐操作完成后,其中未对齐部分的地址的存储空间就不会被分配以存储数据,导致该部分存储空间被浪费,而本技术上述方案并不需要执行地址对齐的操作,就节省了闪存中存储空间。此外,在本技术中,对于不需要保护的区域,直接可以基于写保护区域信息进行设置,也就是说当需要对某个区域重新设置是否需要执行写保护时,直接基于该写保护区域信息进行设置即可,避免了现有技术中基于硬件的硬件写保护在解除过程中需要额外设置解除代码的过程,减少了工程师的代码编译量,尤其是当存在多个不同硬件形式的多种闪存时,不用编译不同种类的写保护解除代码,可以大大减少工程师的代码编译数量。
77.在一些实施例中,如图2所示,所述写入地址信息包含至少一个写入地址,所述写保护区域信息包括一个或多个分区信息,所述分区信息用于表征在检测到写入操作时相应的分区是否允许执行所述写入操作;
78.所述判断单元13包括:
79.第一确定模块131,可以用于根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,所述写保护分区包括至少一个保护地址;
80.判断模块132,可以用于判断所述写入地址与所述保护地址是否匹配;
81.所述执行单元14,具体可以用于若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令。
82.由于在实际应用中,操作系统所在区域中有些部分是允许执行写入操作的,而另外一些部分是不允许执行写入操作。因此在本实施例中,可以将写保护区域信息具体细化为分区信息,该分区信息表征了检测到写入操作时目标分区是否允许执行写入操作,因此
本实施例中的每个分区就对应了前述操作系统中的各个部分。这样,在判断单元13判断写入地址信息与写保护区域信息中的地址信息是否匹配时,具体的执行过程可以首先基于第一确定模块131通过分区信息在操作系统中确定哪个或哪些分区是不允许执行写入操作的分区,也就是需要进行写保护的分区,记作写保护分区,而该写保护分区包含的地址则是需要执行写保护的保护地址,然后通过判断模块132判断写入地址与保护地址是否一致。
83.基于此,在执行单元14具体执行的过程中,则需要在确定写入地址与保护地址一致时,说明写入操作需要对执行写保护的地址进行操作,这是不允许的,因此执行单元14在这种情况下就可以拦截写入操作指令。
84.通过分区信息来确定目标分区是否允许执行写入操作,确保了在进行写保护的过程中,能够基于用户的需求通过自行设定分区信息的方式实现在操作系统中的多个地址内自由选取需要保护的保护地址的功能,从而确保了对操作系统所在区域的各个地址是否需要执行写保护的灵活控制的功能。
85.在一些实施例中,如图2所示,所述分区信息包括起始地址、长度信息以及分区属性;所述长度信息用于表征与所述起始地址开始的地址长度;所述分区属性用于表征对应所述分区属性的分区是否允许执行所述写入操作;
86.所述第一确定模块131,具体可以用于根据所述起始地址信息以及所述长度信息确定每个分区的分区范围,并根据所述分区属性从多个所述分区范围中确定所述分区属性为不允许执行所述写入操作的分区范围,作为所述写保护分区;
87.所述判断模块132,具体可以用于判断所述写入地址是否位于所述写保护分区的分区范围中;
88.所述执行单元14,还具体可以用于若所述写入地址位于所述写保护分区的分区范围中,则拦截所述写入操作指令。
89.在实际应用中,分区的设置方式可以如本实施例所述,通过确定每个分区的起始地址和长度信息,就能够确定该分区具体终止于哪一个地址,同时基于分区属性就能够实现对目标分区是否允许执行写入操作进行设置,也就是说能够基于分区属性确定哪个或哪些分区是需要执行写保护的。基于此,在本实施例中可以基于第一确定模块131根据起始地址和长度信息来确定每个分区的具体范围,即分区范围。然后根据分区属性确定这些分区中哪些是需要执行写保护的分区,即所述写保护分区。由于每个分区都对应其分区范围,而该分区范围可以理解为一个包含起始地址和终止地址的连续的范围集合,因此通过判断模块132判断的过程中,就可以基于写入地址是否在写保护分区的分区范围来进行,当该写入地址位置该写保护分区的分区范围时,就说明该写入操作对应的是需要执行写保护的区域,那么该写入操作就需要被禁止,那么在执行单元14就可以在确定写入地址位于该写保护分区的分区范围时,拦截该写入操作指令。
90.通过起始地址、长度信息以及分区属性的方式设置分区信息,就能够确保以一种分区对应分区范围的方式确定每个分区范围的“属性”,也就是确定了各个连续的地址的范围是否允许执行写保护,这样通过判断模块132判断时,可以直接确定写入地址信息是否位于该写保护分区的分区范围内即可,提高了判断过程的准确性。
91.在一些实施例中,如图2所示,所述判断单元13还包括:
92.第二确定模块133,可以用于若所述写入地址并未位于所述写保护分区的分区范
围中,则确定所述写入地址对应的非保护分区;
93.第一执行模块134,可以用于对所述非保护分区执行所述写入操作。
94.基于前述实施例的描述可知,在判断模块132判断写入地址是否位于所述写保护分区的分区范围时,还可能存在一种情况,即写入地址并未位于写保护分区的分区范围,那么说明写入操作针对的地址是需要执行写保护之外的地址,对于这种写入操作,实际上是允许执行的。因此在本实施例中,在确定写入地址并未位置写保护分区的分区范围时,可以基于第二确定模块133确定写入地址对应的非保护分区,该非保护分区实际上可以理解为在前述实施例中所述的写保护分区之外的分区属性为允许执行写入操作的分区。然后利用第一执行模块134在非保护分区来执行该写入操作。
95.由此,可以在确定写入地址并未位于写保护分区的分区范围时,能够基于第二确定模块133确定写入地址对应的非保护分区,这样就能够根据第一执行模块134在非保护分区执行写入操作,实现了在写入操作针对是不需要执行写保护的分区时的写入操作的顺利执行。
96.在一些实施例中,如图2所示,所述分区属性还包括阶段信息,所述阶段信息用于表征允许执行所述写入操作的操作系统阶段;
97.所述判断单元13还包括:
98.获取模块135,可以用于获取所述非保护分区的阶段信息,并判断所述写入操作的执行时刻与所述非保护分区的阶段信息是否一致;
99.第二执行模块136,可以用于若所述写入操作的执行时刻与所述非保护分区的阶段信息不一致,则拦截所述写入操作指令。
100.在实际应用中,由于操作系统在运行时是存在不同的阶段的,而不同阶段因其引导的驱动、调用的服务和功能是不同的,因此在每个阶段下允许用户执行的行为也是不同的。对于写入操作而言,由于写入操作会对某些重要信息和数据进行修改,因此对于写入操作,也需要基于阶段的情况进行分析,从而避免某些不允许执行写入操作的阶段发生写入操作可能导致系统被篡改的问题。
101.有鉴于此,在本实施例中,判断单元13在判断写入地址信息是否与保护区域信息中的地址信息相匹配的过程中,在具体执行时还可以进一步的利用获取模块135来获取每个非保护分区的阶段信息,然后判断该写入操作的执行时刻与该阶段信息是否一致,这样就能够在确定写入操作对应的是允许执行写入操作的非保护分区时,能够进一步的基于阶段信息确定该分区允许执行写入操作的阶段和该写入操作的具体执行时刻之间是否匹配。当写入操作的执行时刻与所述非保护分区的阶段信息不一致时,此时可基于第二执行模块136拦截该写入操作执行。
102.例如,当写入操作执行时刻为操作系统处于b阶段时,若该写入操作对应的非保护分区的阶段信息为a阶段,那么即便该写入操作对应的地址不是写保护分区中的地址,那么也会因执行时刻不符合允许修改的阶段。
103.例如,当写入操作对应的地址为a区域时,且基于本实施例的方法确定a区域内数据只能在系统的引导加载阶段修改,即在uboot阶段允许写入操作的执行,且确定当前的写入操作执行的执行时刻为系统实时操作阶段,即kernel阶段,由于二者阶段并不一致,那么可以理解为当前写入操作的执行时刻并不符合a区域允许执行写入操作的阶段,该写入操
作极有可能为篡改行为,那么该写入操作就应该被拦截。
104.这样,基于阶段信息对写入操作的进一步限制,变相实现了对非保护分区的写保护功能,同时也避免某些不应该执行写入操作时可能对操作系统中的数据和信息进行篡改的问题。
105.在一些实施例中,如图2所示,所述预设存储区域为基于nand闪存构建的用于存储操作系统的区域,所述预设存储区域设置有用于控制所述写入操作的硬件器件;所述预设存储区域包括rpmb区域。
106.在本实施例中,由于前述实施例所述的方法都是基于写保护区域信息实现的,因此写保护区域信息的安全性将直接影响后续的整体的基于软件的写保护的实现效果,为了确保该写保护区域信息的安全性,在本实施例中,所述预设存储区域可以设置在一个具备从硬件层面实现对写入操作进行限制的存储器件,在具体的应用中改预设存储区域可以是rpmb区域(replay protected memory block,重放保护内存块,简称rpmb)是存储器件中的一个具有安全特性的分区。当存在对rpmb区域的写入操作时,rpmb区域会校验操作行为的合法性,只有指定的host,即管理员,才能够执行写入操作,同时在读数据时,也提供了签名机制,保证host读取到的数据是rpmb区域中的真实数据,而不是攻击者伪造的数据。rpmb在实际应用中,通常用于存储一些有防止非法篡改需求的数据,例如手机上指纹支付相关的公钥、序列号等。rpmb可以对写入操作进行鉴权,但是读取并不需要鉴权,任何人都可以进行读取操作,因此存储到rpmb的数据通常会进行加密后再存储。
107.这样,通过将将预设存储区域具体应用rpmb区域,能够确保写保护区域信息的安全性,避免该写保护区域信息篡改从而影响写保护的准确性,为后续的写保护的准确执行奠定了基础。
108.进一步的,作为对上述图1及图2所示装置的实现,本技术另一实施例还提供了一种基于软件的写保护方法。该方法实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的方法能够对应实现前述装置实施例中的全部内容。该方法为了实现一种适配nand闪存的写保护功能,满足用户对于nand闪存的写入行为的控制需求,具体如图3所示,该装置包括:
109.301、从预设存储区域中获取写保护区域信息。
110.其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息。
111.302、当接收到写入操作指令时,从写入操作指令确定写入地址信息。
112.303、判断写入地址信息与写保护区域信息中的地址信息是否匹配。
113.304、若写入地址信息与写保护区域信息中的地址信息匹配,则拦截写入操作指令。
114.在上述步骤中,所述写入地址信息包含至少一个写入地址,所述写保护区域信息包括一个或多个分区信息,所述分区信息用于表征在检测到写入操作时相应的分区是否允许执行所述写入操作;
115.前述步骤303判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配包括:
116.根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写
入操作的分区,作为写保护分区,所述写保护分区包括至少一个保护地址;
117.判断所述写入地址与所述保护地址是否匹配;
118.前述步骤304若写入地址信息与所述写保护区域信息中的所述地址信息匹配,则拦截所述写入操作指令,包括:
119.若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令。
120.在上述步骤中,所述分区信息包括起始地址、长度信息以及分区属性;所述长度信息用于表征与所述起始地址开始的地址长度;所述分区属性用于表征对应所述分区属性的分区是否允许执行所述写入操作;
121.前述步骤中根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,包括:
122.根据所述起始地址信息以及所述长度信息确定每个分区的分区范围,并根据所述分区属性从多个所述分区范围中确定所述分区属性为不允许执行所述写入操作的分区范围,作为所述写保护分区;
123.前述步骤中判断所述写入地址与所述保护地址是否匹配,包括:
124.判断所述写入地址是否位于所述写保护分区的分区范围中;
125.前述步骤中若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令,包括:
126.若所述写入地址位于所述写保护分区的分区范围中,则拦截所述写入操作指令。
127.在上述步骤中,在所述步骤中判断所述写入地址是否位于所述写保护分区的分区范围中之后,所述方法还包括:
128.若所述写入地址并未位于所述写保护分区的分区范围中,则确定所述写入地址对应的非保护分区;
129.对所述非保护分区执行所述写入操作。
130.在上述步骤中,所述分区属性还包括阶段信息,所述阶段信息用于表征允许执行所述写入操作的操作系统阶段;
131.在前述步骤中,对所述非保护分区执行所述写入操作之前,所述方法还包括:
132.获取所述非保护分区的阶段信息,并判断所述写入操作的执行时刻与所述非保护分区的阶段信息是否一致;
133.若不一致,则拦截所述写入操作指令。
134.在上述步骤中,所述预设存储区域为基于nand闪存构建的用于存储操作系统的区域,所述预设存储区域设置有用于控制所述写入操作的硬件器件;所述预设存储区域包括rpmb区域。
135.为了实现上述目的,根据本技术的另一方面,本技术实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的基于软件的写保护方法。
136.为了实现上述目的,根据本技术的另一方面,本技术实施例还提供了一种基于软件的写保护装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述所述的基于软件的写保护方法。
137.本技术实施例提供一种基于软件的写保护装置及方法,本技术能够首先通过获取单元从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;然后,当接收到写入操作指令时,通过确定单元从所述写入操作指令确定写入地址信息;之后,通过判断单元判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;最后若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,通过执行单元拦截所述写入操作指令,从而实现基于软件的写保护功能,满足了用户对于nand闪存的写入行为的控制。相较于现有技术,在本技术的基于软件的写保护方法在执行时,由于获取单元获取的写保护区域信息包含了对写入操作执行控制操作的保护范围,也就是说确定了nand闪存中哪些区域是不能执行写入行为的,因此在判断单元判断写入操作指令中的写入地址信息与写保护区域信息中的地址信息匹配后,就可以确定该写入操作指令实际上需要在被保护的保护范围内进行,这时基于执行单元拦截该写入操作指令就避免了对保护范围内的数据执行写入操作的情况,实现了对nand闪存中需要执行写保护的区域进行保护的功能,同时,由于上述过程都是基于软件层面实现的,无需硬件层面的支持,因此对于诸如nand闪存之类不具备主控器等硬件支持的闪存,具有较好的适配性。此外,由于现有的硬件写保护方案执行过程中还需要对闪存内部的地址执行对齐操作,在对齐操作完成后,其中未对齐部分的地址的存储空间就不会被分配以存储数据,导致该部分存储空间被浪费,而本技术上述方案并不需要执行地址对齐的操作,就节省了闪存中存储空间。此外,在本技术中,对于不需要保护的区域,直接可以基于写保护区域信息进行设置,也就是说当需要对某个区域重新设置是否需要执行写保护时,直接基于该写保护区域信息进行设置即可,避免了现有技术中基于硬件的硬件写保护在解除过程中需要额外设置解除代码的过程,减少了工程师的代码编译量,尤其是当存在多个不同硬件形式的多种闪存时,不用编译不同种类的写保护解除代码,可以大大减少工程师的代码编译数量。
138.所述基于软件的写保护装置包括处理器和存储器,上述获取单元、确定单元、判断单元、执行单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
139.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现一种适配nand闪存的写保护功能,满足用户对于nand闪存的写入行为的控制需求。
140.本技术实施例提供了一种基于软件的写保护设备,所述设备包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行前述任一项所述的基于软件的写保护方法。
141.本技术实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的基于软件的写保护方法。
142.存储介质可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
143.本技术实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可
在处理器上运行的程序,处理器执行程序时实现以下步骤:从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;当接收到写入操作指令时,从所述写入操作指令确定写入地址信息;判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;若匹配,则拦截所述写入操作指令。
144.进一步的,所述写入地址信息包含至少一个写入地址,所述写保护区域信息包括一个或多个分区信息,所述分区信息用于表征在检测到写入操作时相应的分区是否允许执行所述写入操作;
145.所述判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配包括:
146.根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,所述写保护分区包括至少一个保护地址;
147.判断所述写入地址与所述保护地址是否匹配;
148.所述若所述写入地址信息与所述写保护区域信息中的所述地址信息匹配,则拦截所述写入操作指令,包括:
149.若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令。
150.进一步的,所述分区信息包括起始地址、长度信息以及分区属性;所述长度信息用于表征与所述起始地址开始的地址长度;所述分区属性用于表征对应所述分区属性的分区是否允许执行所述写入操作;
151.所述根据所述分区信息,在所述操作系统区域中的多个分区中确定不允许执行所述写入操作的分区,作为写保护分区,包括:
152.根据所述起始地址信息以及所述长度信息确定每个分区的分区范围,并根据所述分区属性从多个所述分区范围中确定所述分区属性为不允许执行所述写入操作的分区范围,作为所述写保护分区;
153.所述判断所述写入地址与所述保护地址是否匹配,包括:
154.判断所述写入地址是否位于所述写保护分区的分区范围中;
155.所述若所述写入地址与所述保护地址匹配,则拦截所述写入操作指令,包括:
156.若所述写入地址位于所述写保护分区的分区范围中,则拦截所述写入操作指令。
157.进一步的,在所述判断所述写入地址是否位于所述写保护分区的分区范围中之后,所述方法还包括:
158.若所述写入地址并未位于所述写保护分区的分区范围中,则确定所述写入地址对应的非保护分区;
159.对所述非保护分区执行所述写入操作。
160.进一步的,所述分区属性还包括阶段信息,所述阶段信息用于表征允许执行所述写入操作的操作系统阶段;
161.在所述对所述非保护分区执行所述写入操作之前,所述方法还包括:
162.获取所述非保护分区的阶段信息,并判断所述写入操作的执行时刻与所述非保护分区的阶段信息是否一致;
163.若不一致,则拦截所述写入操作指令。
164.进一步的,所述预设存储区域为基于nand闪存构建的用于存储操作系统的区域,所述预设存储区域设置有用于控制所述写入操作的硬件器件;所述预设存储区域包括rpmb区域。
165.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:从预设存储区域中获取写保护区域信息,其中,所述写保护区域信息中包含对写入操作执行控制操作的保护范围,所述保护范围包含需保护的至少一个地址信息;当接收到写入操作指令时,从所述写入操作指令确定写入地址信息;判断所述写入地址信息与所述写保护区域信息中的所述地址信息是否匹配;若匹配,则拦截所述写入操作指令。
166.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
167.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
168.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
169.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
170.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
171.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
172.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
173.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
174.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
175.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1