一种地址隐藏方法及基于地址隐藏技术的嵌入式设备的制作方法

文档序号:6522496阅读:285来源:国知局
一种地址隐藏方法及基于地址隐藏技术的嵌入式设备的制作方法
【专利摘要】本发明公开了一种地址隐藏方法及基于地址隐藏技术的嵌入式设备,基于嵌入式设备,在Boot?loader启动程序中,对指定的物理地址区段进行隐藏,使该物理地址区段不参与Linux操作系统的内存建立过程,当Linux操作系统启动后,内存管理单元MMU将不能看到该隐藏的物理地址区段,从而阻止任何其他内核及应用程序对该段隐藏的物理地址区段的直接访问;该嵌入式设备自带的Linux操作系统本身通过指定的驱动程序对该段隐藏的物理地址进行访问。该地址隐藏方法及基于地址隐藏技术的嵌入式设备采用地址隐藏技术,能有效保障数据的安全性。
【专利说明】一种地址隐藏方法及基于地址隐藏技术的嵌入式设备
【技术领域】
[0001]本发明涉及一种地址隐藏方法及基于地址隐藏技术的嵌入式设备。
【背景技术】
[0002]随着手持移动终端设备的技术发展,嵌入式设备(如平板)已被广泛应用。目前嵌入式设备主要应用在民用及其通用化领域,多采用通用化的硬件设计,然后再辅之以配套软件。这种嵌入式设备比较适合大众化需求及其批量生产。
[0003]在特殊应用领域,尤其是在对关键信息或重要数据的存储、访问等操作有安全性要求的应用领域,这种通用化嵌入式设备并不适合,此时需要提供一些特殊的软硬件技术来满足这些数据的安全要求。因此,有必要设计一种地址隐藏方法及基于地址隐藏技术的嵌入式设备。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种地址隐藏方法及基于地址隐藏技术的嵌入式设备,该地址隐藏方法及基于地址隐藏技术的嵌入式设备采用地址隐藏技术,能有效保障数据的安全性。
[0005]发明的技术解决方案如下:
[0006]一种地址隐藏方法,基于嵌入式设备,在Boot loader启动程序中,对指定的物理地址区段进行隐藏,使该物理地址区段不参与Linux操作系统的内存建立过程,当Linux操作系统启动后,内存管理单元MMU将不能看到该隐藏的物理地址区段,从而阻止任何其他内核及应用程序对该段隐藏的物理地址区段的直接访问;
[0007]该嵌入式设备自带的Linux操作系统本身通过指定的驱动程序对该段隐藏的物理地址进行访问。
[0008]该物理地址区段对应独立的存储器件的整体或独立存储器的一部分。
[0009]当受信任的程序需要访问该段隐藏的物理地址时,只能先通知操作系统进程管理模块,再由操作系统进程管理模块激活该指定的驱动程序完成访问。
[0010]对指定的物理地址区段进行隐藏的方法为:
[0011]步骤1:通过Boot Loader启动程序对存储器的物理地址空间进行分配,即分为被隐藏的地址区段和不受限制的地址区段;隐藏地址区段又称为受限制的地址区段;
[0012]步骤2:在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定驱动程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段。
[0013]通过指定的驱动程·序对该段隐藏的物理地址进行访问的实现方法为:该驱动程序不通过MMU的地址映射而是采用物理地址(实地址)对该被隐藏的地址区段进行操作【对于不同的存储器件,该驱动程序实现的方法会不同】
[0014]采用NAND FLASH存储器件作为隐藏地址的载体,该驱动程序针对NAND FLASH存储器件实现底层读写操作;【在具体编程时,需要参考每个存储器件的芯片手册,只要注意块或扇区操作的地址范围与被隐藏的地址区段匹配即可】所述的嵌入式设备中的处理器为Exynos4412处理器,所述的Boot Loader启动程序为UBOOT程序。
[0015]一种基于地址隐藏技术的嵌入式设备,存储器的一个物理地址区段被Bootloader启动程序指定为被隐藏的物理地址区段,该物理地址区段不参与Linux操作系统的内存建立过程,当Linux操作系统启动后,内存管理单元MMU将不能看到该物理地址区段,从而阻止任何其他内核及应用程序对该段隐藏的物理地址区段的直接访问;该嵌入式设备自带的Linux操作系统本身通过指定的驱动程序对该段隐藏的物理地址进行访问;
[0016]所述的嵌入式平板包括对存储器的物理地址空间进行分配的装置;即分为被隐藏的地址区段和不受限制的地址区段;隐藏地址区段又称为受限制的地址区段;
[0017]还包括对不受限制的地址区段进行MMU管理的装置:用于在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定驱动程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段;
[0018]还包括访问该被隐藏地址区段的装置,不通过MMU的地址映射而是采用物理地址(实地址)对该被隐藏的地址区段进行操作【对于不同的存储器件,该驱动程序实现的方法会不同】。
[0019]采用NAND FLASH存储器件作为隐藏地址的载体,所述的嵌入式设备中的处理器为Exynos4412处理器,通过FPGA实现NAND FLASH与处理器的连接,FPGA用于地址译码和NAND FLASH的读写时序控制;
[0020]所述的嵌入式设备为嵌入式平板,所述的嵌入式平板集成有触摸屏、串口和USB□。
[0021]1.在Boot Loader启动程序中划出一段物理地址区段(实地址),该区段地址需要被隐藏。该区段地址可以对应独立的存储器件,也可以是独立存储器的一部分。该地址不参与Linux操作系统的内存建立。
[0022]2.当操作系统启动后,该隐藏地址区段是不受MMU管理的,对MMU不可见,因此也就不参与物理地址与虚拟地址的映射,此时操作系统不能直接访问该段隐藏地址。
[0023]3.在操作系统中,必须实现一个驱动程序可通过物理地址(实地址)直接访问该段隐藏地址,其是唯一能够访问该段隐藏地址的程序。该驱动程序可被操作系统进程管理调度,但对其它程序是不可见的,且不能被其它内核及应用程序调用。当受信任的程序需要操作该段隐藏地址时,只能先通知操作系统进程管理,再由操作系统进程管理激活该指定的驱动程序完成访问。
[0024]本发明提供了一种地址隐藏技术,可对平板应用中的重要数据或关键信息进行保护,确保这些数据或信息在存储、访问等操作时的安全,从而增加了平板系统的安全特性。
[0025]有益效果:[0026]本发明的地址隐藏方法及基于地址隐藏技术的嵌入式设备,硬件系统包含一块部分或全部物理地址被隐藏的存储器;该段隐藏地址在Linux操作系统的MMU中不可见,不参与物理地址与虚拟地址的映射;该段隐藏地址只接受指定的驱动程序访问。地址的隐藏特性由软件系统来实现。在Boot loader启动程序中,对指定物理地址区段进行隐藏,使之不参与Linux操作系统的内存建立过程,当操作系统启动后,内存管理单元(MMU)将不能看到该段隐藏的物理地址,从而阻止任何其他内核及应用程序对该段隐藏地址的访问;甚至可以说,操作系统本身除了指定驱动程序外,也不能对该段隐藏地址进行访问,由此具有了安全特性。
[0027]该段隐藏地址只接受指定的驱动程序访问,操作系统也必须通过该指定驱动程序访问该段地址,此时实现了这种地址隐藏技术的Linux操作系统就是一种具有安全特性的操作系统。基于这种安全操作系统实现的嵌入式平板可以为重要数据或关键数据的存储、访问等操作提供保护,增加了该平板的系统安全。
[0028]在本发明中,关键物理地址区段被隐藏了,对操作系统和应用程序不可见,只接受指定的驱动程序访问,此时该隐藏地址区段中保存的数据或信息也受到了保护,防止其他内核及应用程序对这些数据或信息的操作,增加了平板系统的安全特性,因此在对数据或信息安全性有要求的应用领域,可以使用本发明。
[0029]地址隐藏技术不同于一般的存储器保护技术。存储器保护技术是建立在操作系统的MMU可见地址空间的基础上,通过软件控制访问规则或算法达到保护作用;而地址隐藏技术是建立在操作系统的MMU不可见地址空间基础上,由更底层的Boot Loader程序先划分好隐藏地址空间,等操作系统启动后,再由专门的程序或手段访问。这样做可使得除了指定的程序外,没有其他程序知道该隐藏地址的存在,就能更好的保护隐藏地址中保存的数据。这种安全特性也就更为有效。
【专利附图】

【附图说明】
[0030]图1为基于地址隐藏技术的嵌入式设备的硬件框图;
[0031]图2为地址隐藏方法的程序执行机制。
【具体实施方式】
[0032]以下将结合附图和具体实施例对本发明做进一步详细说明:
[0033]实施例1:
[0034]如图1-2,硬件系统包括一块部分或全部地址被隐藏的存储器、Exynos4412处理器、触摸屏、串口、USB 口、电源等组成。软件系统是在Boot loader启动程序中,对指定物理地址区段进行隐藏,使之不参与Linux操作系统的内存建立过程,当操作系统启动后,内存管理单元(MMU)将不能看到该段隐藏地址,从而阻止任何其他内核及应用程序对该隐藏地址的访问;甚至可以说,操作系统本身除了指定驱动程序外,也不能对该段隐藏地址进行访问,由此具有了安全特性。
[0035]该段隐藏地址只接受指定的驱动程序访问,操作系统也必须通过该指定驱动程序访问该段地址,此时实现了这种地址隐藏技术的Linux操作系统就是一种具有安全特性的操作系统。基于这种安全操作系统实现的嵌入式平板可以为重要数据或关键数据的存储、访问等操作提供保护,增加了该平板的系统安全。
[0036]本发明选用EXynos4412作为处理器,该处理器在平板领域有很好的应用,其不仅处理能力及性能强,而且接口丰富,可外挂各种类型的储存器。串口可用于对平板的调试。USB 口用于平板的数据传输,也可用作平板初始化时的系统加载。包含隐藏地址区段的存储器采用独立的NAND FLASH存储器件实现,与其它存储器件分开。此处FPGA只用于地址译码和NAND FLASH的读写时序控制,没有其他特别用途。
[0037]在软件实施中,主要完成以下三个部分代码的实现:1)本嵌入式平板采用UBOOT作为Boot Loader启动程序。在UBOOT程序中,对Exynos4412处理器的物理地址空间进行分配,取16MB物理地址作为被隐藏的地址区段(可根据实际应用调整该地址大小),剩余的物理地址空间不受限制。2)在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立。这样在Linux系统启动后,MMU只能管理不受限制的物理地址区段(包括地址映射、页表建立等);而被隐藏地址区段对MMU不可见,换而言之MMU根本不知道。经过以上处理后,Linux操作系统及其上运行的程序都不能直接访问该被隐藏的地址区段,甚至不知道有这段地址的存在。3)实现一个特定的驱动程序,只有该驱动程序能够操作该段隐藏地址。该驱动程序采用物理地址(实地址)对这段地址区域进行操作,类似于UB00T程序中的地址操作方式,不考虑MMU的地址映射。对于不同的存储器件,该驱动程序实现的方法会不同,本发明采用了 NAND FLASH存储器件作为隐藏地址的载体,因此该驱动程序必须针对NAND FLASH实现块设备的底层读写操作。在具体编程时,需要参考每个存储器件的芯片手册,只要注意块或扇区操作的地址范围与被隐藏的地址区段匹配即可。
[0038]完成以上三部分软件程序后,软件程序的执行机制按图2所示:1)不受限制的地址空间由MMU管理,可被操作系统和应用程序使用;2)被隐藏的地址区段不受MMU管理,是不可见的,因此操作系统和应用程序不知道这部分地址区段,也就不能直接使用它;3)只有指定的驱动程序才能访问该段隐藏的地址区段。该驱动程序不能被应用程序调用,也不作为标准10驱动设备挂载到操作系统上,其只在需要时被操作系统进程管理激活。当程序需要操作隐藏地址区段存放的数据时,必须先通知操作系统,再由操作系统决定是否调度或激活该驱动程序,去读写该段隐藏地址。
[0039]本发明还可以应用在像ARM7、ARM9、MPC82XX、MPC83XX、MPC84XX、龙芯2F、辉腾等处理器上,因为地址隐藏技术的实现对处理器没有特殊要求,关键在BootLoader程序对地址的划分。Boot Loader程序可以自己编写,也可以米用开源程序(如UB00T)。在BootLoader程序中,必须对地址进行划分,通过配置处理器的基地址寄存器以及地址映射关系来达成,编程时可建立一个地址表来实现这个划分工作。地址隐藏技术可以使用NANDFLASH存储器作为载体,也可以使用NOR FLASH存储器作为载体,如果不考虑掉电数据丢失问题,还可以采用SDRAM、DDR等存储器作为载体。编写以FLASH存储器作为隐藏地址载体的驱动程序时,必须实现FLASH芯片的读写指令流,该FLASH芯片手册中会提供详细的指令流编写方法,此时只需注意读写的基地址应采用物理地址(实地址),并对应到隐藏地址范围内即可。以SDRAM/DDR存储器作为隐藏地址载体时,读写指令流是由硬件接口保证的,程序只需注意读写的基地址应采用物理地址(实地址),并对应到隐藏地址范围内即可。
【权利要求】
1.一种地址隐藏方法,其特征在于,基于嵌入式设备,在Boot leader启动程序中,对指定的物理地址区段进行隐藏,使该物理地址区段不参与Linux操作系统的内存建立过程,当Linux操作系统启动后,内存管理单元MMU将不能看到该隐藏的物理地址区段,从而阻止任何其他内核及应用程序对该段隐藏的物理地址区段的直接访问; 该嵌入式设备自带的Linux操作系统本身通过指定的驱动程序对该段隐藏的物理地址进行访问。
2.根据权利要求1所述的地址隐藏方法,其特征在于,该物理地址区段对应独立的存储器件的整体或独立存储器的一部分。
3.根据权利要求1所述的地址隐藏方法,其特征在于,当受信任的程序需要访问该段隐藏的物理地址时,只能先通知操作系统进程管理模块,再由操作系统进程管理模块激活该指定的驱动程序完成访问。
4.根据权利要求1所述的地址隐藏方法,其特征在于,对指定的物理地址区段进行隐藏的方法为: 步骤1:通过Boot Loader启动程序对存储器的物理地址空间进行分配,即分为被隐藏的地址区段和不受限制的地址区段;隐藏地址区段又称为受限制的地址区段; 步骤2:在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定驱动程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段。
5.根据权利要求1-4任一项所述的地址隐藏方法,其特征在于,通过指定的驱动程序对该段隐藏的物理地址进行访问的实现方法为:该驱动程序不通过MMU的地址映射而是采用物理地址对该被隐藏的地址区段进行操作。
6.根据权利要求5所述的地址隐藏方法,其特征在于,采用NANDFLASH存储器件作为隐藏地址的载体,该驱动程序针对NAND FLASH存储器件实现底层读写操作;所述的嵌入式设备中的处理器为ExynoS4412处理器,所述的Boot Loader启动程序为UBOOT程序。
7.一种基于地址隐藏技术的嵌入式设备,其特征在于,存储器的一个物理地址区段被Boot loader启动程序指定为被隐藏的物理地址区段,该物理地址区段不参与Linux操作系统的内存建立过程,当Linux操作系统启动后,内存管理单元MMU将不能看到该物理地址区段,从而阻止任何其他内核及应用程序对该段隐藏的物理地址区段的直接访问;该嵌入式设备自带的Linux操作系统本身通过指定的驱动程序对该段隐藏的物理地址进行访问; 所述的嵌入式平板包括对存储器的物理地址空间进行分配的装置;即分为被隐藏的地址区段和不受限制的地址区段;隐藏地址区段又称为受限制的地址区段; 还包括对不受限制的地址区段进行MMU管理的装置:用于在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定驱动程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段;还包括访问该被隐藏地址区段的装置,不通过MMU的地址映射而是采用物理地址(实地址)对该被隐藏的地址区段进行操作。
8.根据权利要求7所述的基于地址隐藏技术的嵌入式设备,其特征在于,采用NANDFLASH存储器件作为隐藏地址的载体,所述的嵌入式设备中的处理器为EXynos4412处理器,通过FPGA实现NAND FLASH与处理器的连接,FPGA用于地址译码和NAND FLASH的读与时序控制;所述的嵌入式设备为嵌入式平板,所述的嵌入式平板集成有触摸屏、串口和USB 口。
【文档编号】G06F12/14GK103678175SQ201310653277
【公开日】2014年3月26日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】刘智臣, 肖弱, 谭永祥, 孙文德, 聂世刚, 黄波 申请人:长城信息产业股份有限公司, 长沙湘计海盾科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1