本发明涉及终端设备技术领域,具体而言,本发明涉及一种多操作系统的系统文件访问方法及装置。
背景技术:
目前,智能手机、平板电脑、智能穿戴设备、电子阅读器或行车记录仪等终端设备越来越普及。
相当一部分数量的终端设备中安装了两个操作系统。每个操作系统的系统文件通常存储于对应的物理存储设备中。现有的多操作系统的系统文件访问方法,包括:当内核接收到应用针对一个操作系统的系统文件的访问请求时,根据所述访问请求进行操作,例如从相应的物理存储设备中读取该操作系统相应的系统文件向该应用返回。
然而,本发明的发明人发现,一旦恶意程序通过非法手段侵入终端设备后,很可能恶意篡改该终端设备中的应用或者附着隐藏在应用中。操作系统启动后,恶意程序利用现有的多操作系统的系统文件访问方法,访问操作系统的系统文件,很容易导致操作系统或应用的运行遭到破坏、或终端设备的数据发生泄漏等严重后果;因此,现有的多操作系统的系统文件访问方法具有安全性低下的缺陷,容易给用户带来损失,导致用户体验不佳。
技术实现要素:
本发明针对现有方式的缺点,提出一种多操作系统的系统文件访问方法及装置,用以解决现有技术存在应用访问多操作系统的系统文件时安全性低下的问题。
本发明的实施例根据一个方面,提供了一种多操作系统的系统文件访问方法,包括:
内核创建两个以上操作系统各自的逻辑存储设备;
逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,对该访问请求涉及的操作系统的系统文件进行完整性校验;
当所述完整性校验结果表明该操作系统的系统文件完整时,根据所述访问请求进行操作。
本发明的实施例根据另一个方面,还提供了一种多操作系统的系统文件访问装置,包括:内核和两个以上操作系统;
所述内核包括:
逻辑存储设备创建模块,用于创建所述两个以上操作系统各自的逻辑存储设备;
逻辑存储设备,用于接收到针对操作系统的访问请求后,对该访问请求涉及的操作系统的系统文件进行完整性校验;当所述完整性校验结果表明该操作系统的系统文件完整时,根据所述访问请求进行操作。
本发明实施例中,为每个操作系统创建了对应的逻辑存储设备;在启动操作系统之后,逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,对应用待访问的系统文件所属操作系统的所有系统文件进行完整性校验;完整性校验结果为通过时,表明该操作系统的系统文件完整,未被恶意程序篡改或附着,是安全的;因此,根据访问请求进行操作;可以提升操作系统的安全性,进而提升在操作系统基础上运行的各种应用的安全性,可以大大降低操作系统的服务或应用涉及的数据泄露的几率,从而提升用户的数据的安全性,提升用户的体验。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的终端设备的内部结构的框架示意图;
图2为本发明实施例的一个操作系统的摘要值树的一个实例的示意图;
图3a、图3b分别为本发明实施例的两个以上操作系统的逻辑存储设备的两种创建方法的流程示意图;
图4a、图4b分别为本发明实施例的基于逻辑存储设备的多操作系统的两种启动方法的流程示意图;
图5为本发明实施例的多操作系统的系统文件访问装置的内部结构的框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明实施例中,内核创建两个以上操作系统各自的逻辑存储设备;逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,对该访问请求涉及的操作系统的系统文件进行完整性校验;当完整性校验结果表明该操作系统的系统文件完整时,根据访问请求进行操作。可见,本发明实施例中,为每个操作系统创建了对应的逻辑存储设备;在启动操作系统之后,逻辑存储设备对应用待访问的系统文件所属操作系统的所有系统文件进行完整性校验;完整性校验结果为通过时,表明该操作系统的系统文件完整,未被恶意程序篡改或附着,是安全的;因此,根据访问请求进行操作;可以提升操作系统的安全性,进而提升在操作系统基础上运行的各种应用的安全性,可以大大降低操作系统的服务或应用涉及的数据泄露的几率,从而提升用户的数据的安全性,提升用户的体验。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例的终端设备的内部结构的框架示意图如图1所示,包括:内核和两个以上操作系统。
其中,两个以上操作系统包括第一操作系统、第二操作系统、……、第N操作系统。N为2以上的正整数。
本发明实施例的操作系统包括容器系统。
较佳地,本发明实施例中的操作系统,可以是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统或Ubuntu系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的操作系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。为便于描述,下面以Android系统作为操作系统为例阐述本发明的技术方案。
较佳地,本发明实施例的操作系统包括:主控系统。
本发明实施例的终端设备中,还包括主控系统,该主控系统可以是上述传统的操作系统,也可以是对传统的操作系统进行改进得到的操作系统。内核为kernel,或者在kernel基础上增加功能模块之后得到的增强型kernel。较佳地,主控系统可以包括内核;上述操作系统通过主控系统调用或访问内核以实现各种功能。或者,操作系统和主控系统共享内核;本发明的操作系统和主控系统包含现有操作系统中kernel之外的部分,例如框架层和应用层的部分;操作系统和主控系统都可以独立调用或访问内核以实现各种功能。
主控系统主要用于对多个操作系统进行前后台管理,与各操作系统进行交互等。较佳地,主控系统可以通过容器通道与操作系统进行通信。同理,操作系统之间可以通过容器通道进行通信。进一步,容器通道可以是socket(套接字)通道。
本发明实施例的终端设备中安装或升级的操作系统,都是由服务方提供的。
服务方服务器中存储有用于终端设备的多个版本的操作系统。每个版本的操作系统在服务方服务器中的存储方式,与该版本的操作系统安装到终端设备中后的存储方式相一致。
具体地,服务方服务器中的物理存储设备按照终端设备中的物理存储设备的划分方式,划分出多个物理块存储设备Block;服务方服务器中每个物理块存储设备的容量大小与终端设备中的物理块存储设备的容量大小相一致。
每个版本的操作系统分块存储于服务方服务器的多个物理块存储设备中。每个版本的操作系统在服务方服务器中所占用的物理块存储设备的数量,与该版本的操作系统安装或升级到终端设备中所占用的物理块存储设备的数量相一致。每个版本的操作系统在服务方服务器的多个物理块存储设备中分别存储的系统文件,与该版本的操作系统在终端设备的多个物理块存储设备中分别存储的系统文件分别相一致。
服务方服务器确定出每个操作系统所分块存储的系统文件的摘要值树,作为每个操作系统的摘要值树。
具体地,服务方服务器对于存储在其中的每个操作系统,根据预设的消息摘要算法,确定出该操作系统分块存储于每个物理块存储设备中的系统文件的摘要值。较佳地,根据哈希算法,计算出一个操作系统存储于每个物理块存储设备中的系统文件的哈希值作为摘要值。
以一个操作系统存储在多个物理块存储设备中的系统文件的摘要值,作为多个叶子节点;基于多个叶子节点对应的摘要值,构建该操作系统的摘要值树。
确定出该操作系统的多个叶子节点中每组叶子节点的摘要值,作为该组叶子节点共同的父亲节点;进而确定出每组父亲节点的摘要值作为祖父节点;同理根据每组在下一层的节点对应的摘要值确定出摘要值作为在上一次的节点,直到确定出根节点。
图2示出了一个操作系统的摘要值树的一个实例。该操作系统的系统文件分块存储于物理块存储设备(Block)0至物理块存储设备(Block)32767中。
从下至上第一层(即最下层)左起第一个Block0是叶子节点,表示操作系统存储在物理块存储设备(Block)0中系统文件的哈希值。一旦物理块存储设备(Block)0中任一系统文件发生变化,会引起叶子节点层级的Block0所表示的哈希值发生对应变化。
从下至上第二层左起第一个Hash(哈希)0,0是Block0至Block127这组叶子节点的父亲节点,表示对Block0至Block127这组哈希值进行摘要值计算后得到的父亲节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)127中任一系统文件发生变化,会引起父亲节点层级的Hash0,0所表示的哈希值发生对应变化。
从下至上第三层左起第一个Hash0是Hash0,0至hash0,127这组父亲节点的父亲节点,即叶子节点Block0至Block16383的祖父节点,表示对Hash0,0至hash0,127这组哈希值进行摘要值计算后得到的祖父节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)16383中任一系统文件发生变化,会引起祖父节点层级的Hash0所表示的哈希值发生对应变化。
从下至上第三层(即最上层)的Root Hash是Hash0至Hash1的父亲节点,即叶子节点Block0至Block32767的根节点,表示对Hash0至hash1这组哈希值进行摘要值计算后得到的根节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)32767中任一系统文件发生变化,会引起根节点层级的Root Hash所表示的哈希值发生对应变化。
可以理解,当一个操作系统的摘要值树中任一层级(例如叶子节点层级、父亲节点层级、祖父节点层级或根节点层级)的所有节点的摘要值都保持不变,则可以认为该操作系统的系统文件没有发生变化。相反,当一个操作系统的摘要值树中任一节点的摘要值发生变化时,说明该操作系统的系统文件发生了变化。
服务方服务器确定出每个操作系统的摘要值树后,将该操作系统的系统文件以及摘要值树打包成该操作系统的安装包,供终端设备下载安装或升级。
较佳地,在每个操作系统的安全包中增加记载有摘要值树对应的消息摘要算法或算法标识的文件。
本发明实施例中,终端设备从服务方服务器获取到一个操作系统的安装包后,安装或升级该操作系统的系统文件,并从该安装包中解析出该操作系统所分块存的系统文件的摘要值树、以及对应的消息摘要算法或算法标识。
较佳地,终端设备中安装有多个操作系统,并对应存储多个操作系统的摘要值树、以及对应的消息摘要算法或算法标识。
较佳地,终端设备中存储操作系统的系统文件的物理块存储设备,仅用于存储系统文件,拒绝存储其它文件。进一步,存储操作系统的系统文件的物理块存储设备属于只读存储设备。
本发明的发明人考虑到,假设将操作系统的摘要值树存储在用以存储该操作系统系统文件的物理存储设备中,则很可能会在实际上改变该操作系统的系统文件,引起该操作系统的摘要值的变化,导致存储的摘要值树与实际的摘要值树不符,导致后续的摘要值完整性校验失败。
因此,终端设备在将每个操作系统安装或升级到该终端设备中时,将从安装包中解析出的(服务方服务器预先确定出的)每个操作系统所分块存储的系统文件的摘要值树,存储到该终端设备中用以存储操作系统系统文件的所有物理存储设备之外的物理存储设备中。从而保证存储一个操作系统的摘要值树,与根据该操作系统的安装包安装或升级的系统文件的实际的摘要值树相一致。
本发明实施例中多操作系统的系统文件访问方法,包括:两个以上操作系统的逻辑存储设备的创建方法、以及基于逻辑存储设备的多操作系统的系统文件访问方法。
在启动操作系统之后,两个以上操作系统的逻辑存储设备的一种创建方法的流程示意图如图3a所示,包括下述步骤:
S301:确定出每个操作系统对应的物理存储设备、物理块存储设备与逻辑块存储设备之间的映射关系。
每个操作系统中的服务或应用,确定出分配给该操作系统、用以存储该操作系统的系统文件的物理存储设备。
确定出该操作系统的逻辑存储设备的参数、以及物理存储设备与逻辑存储设备之间的映射关系。逻辑存设备的参数包括:逻辑存储设备的标识、起始地址、和终止地址等。
较佳地,可以利用Device-Mapper(设备映射)机制确定出物理存储设备与逻辑存储设备之间的映射关系。本发明实施例中的逻辑存储设备可以具体为dm-verity(设备映射验证)设备,可以实现对相应的操作系统的系统文件进行完整性校验的功能。
例如,操作系统在fs_mgr中初始化结构体(struct)dm_ioctl*io,然后调用ioctl(input output control,输如输出控制)创建dm(device-mapper,设备映射)设备的参数。由于传统的Device-Mapper机制仅支持单操作系统,创建逻辑存储设备的过程中,操作系统传递给内核的路径参数都是system(系统),内核会根据io(input output,输入输出)->name参数创建dm设备,name参数的值是字符串“system”,单一的system无法对不同的操作系统进行区分,容易造成冲突。因此,本发明实施例中,添加了dm_rename函数,在内核创建dm设备之前调用,作用是将io->name重命名,方法是将操作系统的标识(例如名称)与dm设备的标识(例如名称)相组合。这样就不会产生冲突了。
S302:基于每个操作系统对应的物理存储设备与逻辑存储设备之间的映射关系,生成该操作系统的逻辑存储设备的创建请求进行发送。
将上述步骤中确定出的每个操作系统对应的物理存储设备的路径、物理存储设备与逻辑存储设备之间的映射关系、逻辑存储设备的参数,携带于逻辑存储设备的创建请求中后,向内核进行发送。
较佳地,调用内核提供的Device-Mapper机制相关的API(Application Programming Interface,应用程序编程接口),将逻辑存储设备的创建请求通过该API向内核发送。
S303:内核根据接收的每个操作系统的逻辑存储设备的创建请求,在内核中创建该操作系统的逻辑存储设备。
内核接收到操作系统中的服务或应用发送的逻辑存储设备的创建请求后,根据该创建请求中的逻辑存储设备的参数,创建逻辑存储设备,为逻辑存储设备分配路径。
根据该创建请求中的物理存储设备与逻辑存储设备的映射关系,建立该逻辑存储设备的路径,与该创建请求中的物理存储设备的路径之间的映射关系。
较佳地,如图3b所示,两个以上操作系统的逻辑存储设备的另一种创建方法,在上述步骤S301至S303的基础上,还包括下述步骤:
S304:确定出该操作系统的逻辑存储设备的标识。
内核根据预设的多个操作系统与逻辑存储设备的多个标识范围的对应关系,在该操作系统对应的逻辑存储设备的标识范围内,确定出该操作系统的逻辑存储设备的标识。
具体地,内核为每个逻辑存储设备分配作为标识的编号;编号具体可以是ID。终端设备中的许多系统资源都用整数ID来标识,如进程ID、文件描述符ID、IPC ID等;具体的系统资源的信息通常存放在对应的数据结构中(如进程信息存放在task_struct中、ipc信息存放在ipc_perm中)。
逻辑存储设备包括其数据结构,可以采用多种方法(机制)关联ID与数据结构。
较佳地,采用linux内核的idr机制为作为逻辑存储设备的device mapper设备分配ID(IDentification,标识)号。
下面简单介绍一下传统的idr机制:idr是d radix(基数)的缩写。idr主要用于建立id与指针(指向对应的数据结构)之间的对应关系。idr用类基数树结构来构造一个稀疏数组,以id为索引找到对应数组元素,进而找到对应的数据结构指针。用到idr机制的主要有:IPC id(消息队列id、信号量id、共享内存id等),磁盘分区id等。
然而,本发明的发明人发现,传统的idr机制通常仅支持单操作系统。当利用传统的idr机制为两个以上操作系统的逻辑存储设备分配ID时,容易出现为不同操作系统的逻辑存储设备分配同一ID,而造成冲突的情况。
因此,本发明实施例中在传统的idr机制基础上,增加了dm_ns_minor函数,在内核中的dm.c调用idr_alloc申请逻辑存储设备的ID之前调用该函数;该函数的作用是,根据dm设备对应的操作系统,对dm设备的ID限定范围,以使得不同操作系统之间的dm设备的ID。
例如,第一、二、三操作系统对应的逻辑存储设备的ID范围分别为0-31、32-63、64-95。第一操作系统具体可以是主控系统,例如host域系统;第二操作系统具体可以是容器系统,例如内域容器系统;第三操作系统具体可以是容器系统,例如外域容器系统。其中,内域容器操作系统是高安全系统,具有较高的安全度,主要负责处理用户的个人隐私数据及安全级别较高的数据(例如金融数据操作);外域容器系统是开放系统,主要用于用户安全级别较低的数据处理,满足用户生活娱乐需要,可以直接将现有的操作系统(例如第三方操作系统)作为外域容器系统。
更优的,根据操作系统的编号和逻辑存储设备的编号,对每个操作系统的逻辑存储设备的编号进行稀疏化,以进一步降低不同操作系统的逻辑存储设备的编号相冲突的几率。
在每个容器系统的容器配置文件中增加了可访问的逻辑存设备的ID的限制参数,例如作为限制参数的device_block_allow(设备块允许)=253:([0:31]<<$id),253表示第一操作系统的ID,0:31表示逻辑存储设备本身的ID范围,该参数表示将操作系统的ID与逻辑存储设备的ID相乘后得到该操作系统的逻辑存储设备的ID范围。该限制参数会在lotusd(容器管理程序)创建容器是被传输到内核。
S305:建立该操作系统的标识与该操作系统的逻辑存储设备的标识之间的对应关系。
内核对于每个操作系统,建立上述步骤中确定出的该操作系统的逻辑存储设备的标识,与该操作系统的标识之间的对应关系。
较佳地,容器系统的标识与该容器系统的逻辑存储设备的标识相对应;主控系统的标识与主控系统以及所有容器系统的逻辑存储设备的标识相对应。
下面介绍本发明实施例中基于逻辑存储设备的多操作系统的一种系统文件访问方法,该方法的流程示意图如图4所示,包括下述步骤:
S401:逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,对该访问请求涉及的操作系统的系统文件进行完整性校验。
逻辑存储设备确定出访问请求涉及的操作系统对应的物理存储设备中的多个物理块存设备中系统文件的摘要值。其中,该操作系统的系统文件分块存储于该操作系统对应的物理存储设备中的多个物理块存设备中;
较佳地,逻辑存储设备对于访问请求涉及的操作系统,将确定出的该操作系统的多个物理块存储设备中系统文件的摘要值,作为多个叶子节点,构建该操作系统的摘要值树。
具体地,逻辑存储设备对于访问请求涉及的操作系统,确定出该操作系统的多个叶子节点中每组叶子节点的摘要值,作为该组叶子节点共同的父亲节点;进而确定出每组父亲节点的摘要值作为祖父节点;同理根据每组在下一层的节点对应的摘要值确定出摘要值作为在上一次的节点,直到确定出根节点。
例如,如图2所示的访问请求涉及的操作系统的摘要值树的一个实例。该操作系统的系统文件分块存储于物理块存储设备(Block)0至物理块存储设备(Block)32767中。
从下至上第一层(即最下层)左起第一个Block0是叶子节点,表示操作系统存储在物理块存储设备(Block)0中系统文件的哈希值。一旦物理块存储设备(Block)0中任一系统文件发生变化,会引起叶子节点层级的Block0所表示的哈希值发生对应变化。
从下至上第二层左起第一个Hash(哈希)0,0是Block0至Block127这组叶子节点的父亲节点,表示对Block0至Block127这组哈希值进行摘要值计算后得到的父亲节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)127中任一系统文件发生变化,会引起父亲节点层级的Hash0,0所表示的哈希值发生对应变化。
从下至上第三层左起第一个Hash0是Hash0,0至hash0,127这组父亲节点的父亲节点,即叶子节点Block0至Block16383的祖父节点,表示对Hash0,0至hash0,127这组哈希值进行摘要值计算后得到的祖父节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)16383中任一系统文件发生变化,会引起祖父节点层级的Hash0所表示的哈希值发生对应变化。
从下至上第三层(即最上层)的Root Hash是Hash0至Hash1的父亲节点,即叶子节点Block0至Block32767的根节点,表示对Hash0至hash1这组哈希值进行摘要值计算后得到的根节点层级的哈希值。一旦物理块存储设备(Block)0至物理块存储设备(Block)32767中任一系统文件发生变化,会引起根节点层级的Root Hash所表示的哈希值发生对应变化。
逻辑存储设备根据确定出的该操作系统的多个物理块存储设备中系统文件的摘要值,对该操作系统的系统文件进行完整性校验。
较佳地,根据预存的多个操作系统的摘要值树,对所构建的该操作系统的摘要值树进行完整性校验。
具体地,逻辑存储设备对于访问请求涉及的操作系统,从预存的多个操作系统的摘要值树中,确定出预存的该操作系统的摘要值树;将预存的该操作系统的摘要值树,与所构建的该操作系统的摘要值树进行比较。预存的每个操作系统的摘要树,具体为该操作系统所分块存储的系统文件的摘要值树。
进一步,根据预存的多个操作系统的摘要值树,对所构建的该操作系统的摘要值树中任一层级所有节点的摘要值进行完整性校验。
较佳地,根据预存的每个操作系统所分块存储的系统文件的摘要值树,对所构建的该操作系统的摘要值树中任一层级所有节点的摘要值进行完整性校验。
具体地,逻辑存储设备对于访问请求涉及的操作系统,将预存的该操作系统的摘要值树中的各叶子节点对应的摘要值,分别与所构建的该操作系统的摘要值树中的各叶子节点对应的摘要值进行比较。
或者,逻辑存储设备对于访问请求涉及的操作系统,将预存的该操作系统的摘要值树中的各父亲节点对应的摘要值,分别与所构建的该操作系统的摘要值树中的各父亲节点对应的摘要值进行比较。
或者,逻辑存储设备对于访问请求涉及的操作系统,将预存的该操作系统的摘要值树中的各祖父节点对应的摘要值,分别与所构建的该操作系统的摘要值树中的各祖父节点对应的摘要值进行比较。
或者,逻辑存储设备对于访问请求涉及的操作系统,将预存的该操作系统的摘要值树中的根节点对应的摘要值,分别与所构建的该操作系统的摘要值树中的根节点对应的摘要值进行比较。
或者,逻辑存储设备对于访问请求涉及的操作系统,将预存的该操作系统的摘要值树中的任一其它祖先层级的所有节点对应的摘要值,分别与所构建的该操作系统的摘要值树中的任一其它祖先层级的所有节点对应的摘要值进行比较。
可以理解,操作系统的摘要值树中任一层级的所有节点的摘要值涵盖了该操作系统的所有系统文件的摘要值。节点层级越接近根节点,节点数量越少,需要比较的节点对应的摘要值也越少,比较速度更快,效率更高,从而整个完整性校验的效率更高。
更优的,逻辑存储设备接收到访问请求后,逻辑存储设备确定出访问请求涉及的系统文件所在的物理块存储设备;进而确定出该物理块存储设备中的系统文件的摘要值;从预存的多个操作系统的摘要值树中,确定出预存的访问请求涉及的系统文件所属操作系统的摘要值树;根据预存的访问请求涉及的系统文件所属操作系统的摘要值树,对确定出的物理块存储设备中的系统文件的摘要值进行完整性校验。
具体地,从访问请求中解析出待访问的系统文件的标识和存储路径;根据解析出的系统文件的存储路径,确定出解析出的系统文件所在的物理块存储设备;进而确定出物理块存储设备中的系统文件的摘要值。
根据出解析出的系统文件的标识,确定出解析出的系统文件所属的系统文件;从预存的多个操作系统的摘要值树中,查找出访问请求涉及的系统文件所属操作系统的摘要值树。
从预存的访问请求涉及的系统文件所属操作系统的摘要值树中,查找出预存的该系统文件所在物理块存储设备中的系统文件的摘要值。
将预存的该系统文件所在物理块存储设备中的系统文件的摘要值,与确定出的系统文件所在的物理块存储设备中的系统文件的摘要值进行比较。
S402:当完整性校验结果表明该操作系统的系统文件完整时,根据访问请求进行操作。
逻辑存储设备对于访问请求涉及的操作系统,当预存的该操作系统的摘要值树,与所构建的该操作系统的摘要值树的比较结果为完全一致时,说明所构建的该操作系统的摘要值树完整性校验成功,该操作系统的系统文件未被修改、数据完整,根据访问请求进行操作;例如,当访问请求为读取请求时,读取相应的系统文件向发送该访问请求的应用返回。
较佳地,逻辑存储设备对于访问请求涉及的操作系统,当预存的该操作系统的摘要值树中任一层级所有节点对应的摘要值,与所构建的该操作系统的摘要值树中同一层级所有节点对应的摘要值的比较结果为完全一致时,说明所构建的该操作系统的摘要值树完整性校验成功,该操作系统的系统文件未被修改、数据完整,根据访问请求进行操作。
更优的,当预存的该系统文件所在物理块存储设备中的系统文件的摘要值,与确定出的系统文件所在的物理块存储设备中的系统文件的摘要值之间的比较结果为一致时,说明访问请求所涉及的系统文件(即应用所待访问的系统文件)的完整性校验成功,该系统文件未被修改、数据完整,根据访问请求进行操作;例如,当访问请求为读取请求时,读取相应的系统文件向发送该访问请求的应用返回。
S403:当完整性校验结果表明该操作系统的系统文件不完整时,忽略访问请求。
逻辑存储设备对于访问请求涉及的操作系统,当预存的该操作系统的摘要值树,与所构建的该操作系统的摘要值树的比较结果为不完全一致时,说明所构建的该操作系统的摘要值树完整性校验失败,该操作系统的系统文件已被修改、数据不完整,忽略接收到的访问请求。
较佳地,逻辑存储设备对于访问请求涉及的操作系统,任一层级任一节点对应的摘要值,与所构建的该操作系统的摘要值树中同一层级同一节点对应的摘要值的比较结果为不一致时,说明所构建的该操作系统的摘要值树完整性校验失败,该操作系统的系统文件已被修改、数据不完整,忽略接收到的访问请求。
更优的,当预存的该系统文件所在物理块存储设备中的系统文件的摘要值,与确定出的系统文件所在的物理块存储设备中的系统文件的摘要值之间的比较结果为不一致时,说明访问请求所涉及的系统文件(即应用所待访问的系统文件)的完整性校验失败,该系统文件已被修改、数据已不完整,忽略接收到的访问请求。
本发明实施例中基于逻辑存储设备的多操作系统的另一种启动方法,该方法的流程示意图如图4b所示,包括下述步骤:
S411:逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,检测访问请求涉及的操作系统与该逻辑存储设备对应的操作系统是否相一致;若是,则执行下述步骤S412;否则拒绝完整性校验并忽略该访问请求。
较佳地,逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,检测发送访问请求的应用是否属于访问请求涉及的系统文件所属的操作系统;若是,则继续检测访问请求涉及的操作系统与该逻辑存储设备对应的操作系统是否相一致;否则,拒绝完整性校验并忽略该访问请求。
逻辑存储设备根据接收到的应用针对操作系统的系统文件的访问请求,确定出该访问请求所涉及的操作系统的标识,例如编号。
逻辑存储设备根据本逻辑存储设备的标识,以及上述步骤S305中确定出的操作系统的逻辑存储设备的标识与该操作系统的标识之间的对应关系,确定出本逻辑存储设备的标识对应的操作系统的标识。
逻辑存储设备检测访问请求涉及的操作系统的标识,与该逻辑存储设备的标识对应的操作系统的标识是否相一致;若是,则说明该逻辑存储设备具有检验该操作系统的系统文件的完整性的权限,执行下述步骤S412;否则说明该逻辑存储设备不具有检验该操作系统的系统文件的完整性的权限,拒绝完整性校验并拒绝启动该访问请求涉及的操作系统。
相当于在逻辑存储设备的层面上,对不同的操作系统的操作进行了隔离。即使某一个逻辑存储设备被恶意程序侵入,也无法影响除了该逻辑存储设备对应的操作系统之外的其它操作系统的完整性校验,可以提升其它操作的完整性校验的安全性,从整体上提升各操作系统的完整性校验的安全性;从而可以使得用户可以在校验为完整安全的操作系统基础上,更为安全地使用操作系统的服务或应用的功能,大大降低用户数据泄露的几率,提升用户的体验。
S412:对访问请求涉及的操作系统的系统文件进行完整性校验。
本步骤的方法与上述步骤S401中对访问请求涉及的操作系统的系统文件进行完整性校验的方法相一致,此处不再赘述。
S413:当完整性校验结果表明操作系统的系统文件完整时,根据访问请求进行操作。
本步骤的方法与上述步骤S402的具体方法相一致,此处不再赘述。
S414:当完整性校验结果表明该操作系统的系统文件不完整时,忽略访问请求。
本步骤的方法与上述步骤S403的具体方法相一致,此处不再赘述。
基于上述多操作系统的系统文件访问方法,本发明实施例还提供了一种多操作系统的系统文件访问装置,该装置设置于本发明实施例的终端设备中,该装置的内部结构的框架示意图如图5所示,包括:内核和两个以上操作系统;
其中,内核包括:逻辑存储设备创建模块501和两个以上逻辑存储设备502。
逻辑存储设备创建模块501用于创建两个以上操作系统各自的逻辑存储设备;
逻辑存储设备502用于接收到应用针对操作系统的系统文件的访问请求后,对该访问请求涉及的操作系统的系统文件进行完整性校验;当完整性校验结果表明该操作系统的系统文件完整时,根据访问请求进行操作。
更优的,如图5所示,本发明实施例的多操作系统的启动装置中的每个操作系统,还包括:逻辑存储设备请求模块511。
逻辑存储设备请求模块,用于基于每个操作系统对应的物理存储设备与逻辑存储设备之间的映射关系,生成该操作系统的逻辑存储设备的创建请求进行发送。
以及,逻辑存储设备创建模块501具体用于根据接收的每个操作系统的逻辑存储设备的创建请求,在内核中创建该操作系统的逻辑存储设备。
较佳地,逻辑存储设备创建模块501还用于确定出该操作系统的逻辑存储设备的标识;建立该操作系统的标识与该操作系统的逻辑存储设备的标识之间的对应关系。
较佳地,逻辑存储设备创建模块501具体用于根据预设的多个操作系统与逻辑存储设备的多个标识范围的对应关系,在该操作系统对应的逻辑存储设备的标识范围内,确定出该操作系统的逻辑存储设备的标识。
较佳地,逻辑存储设备502具体用于检测访问请求涉及的操作系统与该逻辑存储设备对应的操作系统是否相一致;若是,则对该访问请求涉及的操作系统的系统文件进行完整性校验;否则拒绝完整性校验并忽略该访问请求。
较佳地,逻辑存储设备502具体用于确定出访问请求涉及的操作系统对应的物理存储设备中的多个物理块存设备中系统文件的摘要值;其中,该操作系统的系统文件分块存储于该操作系统对应的物理存储设备中的多个物理块存设备中;根据确定出的该操作系统的多个物理块存储设备中系统文件的摘要值,对该操作系统的系统文件进行完整性校验。
较佳地,逻辑存储设备502具体用于将确定出的该操作系统的多个物理块存储设备中系统文件的摘要值,作为多个叶子节点,构建该操作系统的摘要值树;根据预存的每个操作系统所分块存储的系统文件的摘要值树,对所构建的该操作系统的摘要值树进行完整性校验。
较佳地,逻辑存储设备502具体用于确定出该操作系统的多个叶子节点中每组叶子节点的摘要值,作为该组叶子节点共同的父亲节点;进而确定出每组父亲节点的摘要值作为祖父节点,直到确定出根节点;根据预存的每个操作系统的摘要值树,对所构建的该操作系统的摘要值树中任一层级所有节点的摘要值进行完整性校验。
较佳地,如图5所示,本发明实施例的多操作系统的启动装置中的内核,还包括:摘要值树预存模块503。
摘要值树预存模块503用于在将每个操作系统安装或升级到终端设备中时,将预先确定出的每个操作系统所分块存储的系统文件的摘要值树,存储到终端设备中用以存储操作系统系统文件的所有物理存储设备之外的物理存储设备中。
较佳地,逻辑存储设备502还用于确定出访问请求涉及的系统文件所在的物理块存储设备;进而确定出该物理块存储设备中的系统文件的摘要值;从预存的多个操作系统的摘要值树中,确定出预存的访问请求涉及的系统文件所属操作系统的摘要值树;根据预存的访问请求涉及的系统文件所属操作系统的摘要值树,对确定出的物理块存储设备中的系统文件的摘要值进行完整性校验。
上述内核中的逻辑存储设备创建模块501、逻辑存储设备502和摘要值树预存模块503,以及每个操作系统中的逻辑存储设备请求模块511功能的实现方法,可以参考上述如图3a、图3b、图4a和图4b的流程步骤的具体内容,此处不再赘述。
本发明实施例中,无需修改应用层的代码,就可以为每个操作系统创建了对应的逻辑存储设备;在启动操作系统之后,逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,对应用待访问的系统文件所属操作系统的所有系统文件进行完整性校验;完整性校验结果为通过时,表明该操作系统的系统文件完整,未被恶意程序篡改或附着,是安全的;因此,根据访问请求进行操作;可以提升操作系统的安全性,进而提升在操作系统基础上运行的各种应用的安全性,可以大大降低操作系统的服务或应用涉及的数据泄露的几率,从而提升用户的数据的安全性,提升用户的体验。
而且,本发明实施例中,建立操作系统的标识与该操作系统的逻辑存储设备的标识之间的对应关系,逻辑存储设备接收到应用针对操作系统的系统文件的访问请求后,仅具有相对应的操作系统的完整性校验的权限,而不具备其它操作系统的完整性校验的权限。相当于在逻辑存储设备的层面上,对不同的操作系统的操作进行了隔离。即使某一个逻辑存储设备被恶意程序侵入,也无法影响除了该逻辑存储设备对应的操作系统之外的其它操作系统的完整性校验,可以提升其它操作的完整性校验的安全性,从整体上提升各操作系统的完整性校验的安全性;从而可以使得用户可以在校验为完整安全的操作系统基础上,更为安全地使用操作系统的服务或应用的功能,大大降低用户数据泄露的几率,提升用户的体验。
进一步,本发明实施例中,在对操作系统的系统文件进行完整性校验过程中,可以根据预存的多个操作系统的摘要值树,对访问请求涉及的操作系统的摘要值树进行完整性校验;本发明实例中,校验的对象是摘要值,与校验系统文件本身相比,减少了校验的工作量,提升了校验的效率。而且,摘要值属于密文,系统文件属于明文,对摘要值进行校验,可以防止校验过程中操作系统的系统文件的泄露,提升了安全性。
此外,本发明实施例中,在对访问请求涉及的操作系统的摘要值树进行完整性校验的过程中,可以仅对一个祖先层级的所有节点对应的摘要值进行完整性校验,与对所有叶子节点对应的摘要值进行完整性校验相比,在不影响完整性校验效果的情况下,大大减少了检验的工作量,提升校验的效率。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。