基于文件数据块校验的安全启动系统与方法

文档序号:9376148阅读:176来源:国知局
基于文件数据块校验的安全启动系统与方法
【技术领域】
[0001]本发明涉及计算机操作系统和存储技术领域,具体涉及一种基于文件数据块校验的安全启动系统与方法。
【背景技术】
[0002]随着linux、android等智能操作系统在手机、机顶盒、电视上的普及,开放式软件系统已经快速应用于各种嵌入式设备,从灯泡、玩具到电视机、机器人等各种智能设备。为了保证产品能够不断扩充各种功能,这种智能设备一般都具备应用安装和卸载功能。这种开放性给用户带来了极大的方便,给产品带来了巨大的竞争力。但同时也给一些恶意软件和黑客挟制设备带来了可乘之机。如何保证设备核心系统的安全性和应用功能的灵活扩展一直是困扰智能设备的问题。目前主要的方案有以下几种方式:a)以应用安装包为单位进行校验,防止有系统权限的应用被篡改。这种校验方式安全性不够,不能保证安装的软件以各种方式获取系统权限,来进行破坏山)启动时对整个核心系统分区中的所有文件进行校验,防止系统被篡改。这种方式安全性较高,但由于在系统启动时要进行整个系统分区进行校验,需要先读取整个分区,导致启动时间太长,用户体验不好;c)为弥补以上b)方式的不足,采用随机抽取部分数据进行校验。这种方式一定程度上加快了系统启动时间,但是由于是抽验,安全性受到影响,容易漏验。另外,b)和c)方式不支持差分升级,导致后续产品维护和升级非常困难。

【发明内容】

[0003]本发明克服了现有技术的不足,提供一种基于文件数据块校验的安全启动系统与方法,用于增加系统的安全性。
[0004]考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:
[0005]—种基于文件数据块校验的安全启动系统,它包括:
[0006]校验值保存文件,在智能操作系统的文件系统分区生成的情况下,以数据块为单位生成校验值,并用系统的私有key或公有key对所述校验值保存文件加密,经加密后的校验值保存在所述校验值保存文件中;在系统启动或者运行的情况下,在读取某块数据到文件缓冲区的同时对该块数据校验值进行计算,并用保存的公有key或私有key对所述校验值保存文件中对应的校验值解密,并生成校验值表,以及将计算出的校验值与保存在所述校验值保存文件中的校验值进行比较,如果比较的校验值相同,则返回数据;如果比较的校验值不同,则返回失败。
[0007]为了更好地实现本发明,进一步的技术方案是:
[0008]根据本发明的一个实施方案,每个目录下生成一个校验值保存文件,该目录下所有文件的校验值都保存在这个文件中,经加密后的校验值保存在本目录下的校验值保存文件中。
[0009]根据本发明的另一个实施方案,每个文件可生成一系列的加密校验值。
[0010]根据本发明的另一个实施方案,数据块的大小与文件系统的缓冲块大小一致或保持一定比例。
[0011]根据本发明的另一个实施方案,在读取某块数据进程文件的情况下,将该打开文件的数据块校验值信息存储于文件的控制块中,供后续校验使用。
[0012]根据本发明的另一个实施方案,所述智能操作系统在为android系统的情况下,包括:
[0013]系统镜像生成:
[0014]a)整个系统编译完成后,会在out目录下聚集所有需要生成系统分区镜像的文件;
[0015]b)0ut目录文件生成完成后,利用工具遍历系统分区的所有目录;
[0016]c)在每个目录下计算文件的数据块校验值,并用私有key进行加密;
[0017]d)将加密后的文件数据块校验值保存在该目录下的校验值保存文件中;
[0018]e)将out目录下的文件生成系统分区镜像。
[0019]根据本发明的另一个实施方案,所述智能操作系统在为android系统的情况下,包括:
[0020]差分升级:
[0021]生成差分升级包时,将有文件变化目录下的校验值保存文件拷贝到差分包中;
[0022]差分升级时,按android标注流程替换和合并完文件后,将该目录下的校验值保存文件拷贝进该目录下。
[0023]本发明还可以是:
[0024]—种基于文件数据块校验的安全启动方法,它包括:
[0025]( I )在智能操作系统的文件系统分区生成的情况下,以数据块为单位生成校验值,并用系统的私有key或公有key对所述校验值加密,该校验值存储在所述校验值保存文件内;
[0026]( II )在系统启动或者运行的情况下,在读取某块数据到文件缓冲区的同时对该块数据校验值进行计算,并用保存的公有key或私有key对所述校验值保存文件中对应校验值解密;
[0027](III)将计算出的校验值与保存在所述校验值保存文件中的校验值进行比较,如果比较的校验值相同,则返回数据;如果比较的校验值不同,则返回失败。
[0028]根据本发明的另一个实施方案,在每个目录下保存一个当前目录下所有文件的数据块的校验值列表。
[0029]根据本发明的另一个实施方案,系统加载文件时,定位到某个目录下时,先加载校验值文件,生成文件校验值表,并进行缓冲。
[0030]与现有技术相比,本发明的有益效果之一是:
[0031]本发明的一种基于文件数据块校验的安全启动系统与方法,在linux、android等智能操作系统条件下,系统启动阶段,在系统文件加载读取的同时,以文件数据块为校验单位进行系统文件数据安全校验;而不是先进行整个系统文件分区校验后,再加加载系统文件;本发明节省了读取整个文件系统分区的时间,大大减少了系统启动时间;校验在读取文件缓冲的同时进行,支持分文件、分数据块的校验,支持系统差分升级;既保证了系统的安全性、又加快了系统的启动时间,并支持差分升级。
【附图说明】
[0032]为了更清楚的说明本申请文件实施例或现有技术中的技术方案,下面将对实施例或现有技术的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅是对本申请文件中一些实施例的参考,对于本领域技术人员来讲,在不付出创造性劳动的情况下,还可以根据这些附图得到其它的附图。
[0033]图1示出了根据本发明一个实施例的文件数据块签名生成流程示意图。
[0034]图2示出了根据本发明一个实施例的文件加载签名校验流程示意图。
[0035]图3示出了根据本发明另一个实施例的文件加载签名校验流程示意图。
【具体实施方式】
[0036]下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0037]以下实施例结合附图1、图2和图3对本发明做进一步说明:
[0038]—种基于文件数据块校验的安全启动方法,具体内容包括:
[0039](I)文件系统分区生成后,按文件计算每个数据块(块的大小与文件系统的缓冲块大小一致或保持一定比例)的校验值,并用系统的私有key ( 一般由设备生产商或设备拥有者生成)进行加密。每个文件生成一系列的加密校验值。
[0040](2)每个目录下生成一个加密校验值保存文件,该目录下所有文件的校验值保存在这个文件中。
[0041](3)当对某个目录下的文件进行加载时,先读取该目录下的文件校验值文件,并用存储在设备中的公有key进行解密,同时生成该目录下的文件数据块校验值列表(可做缓冲)。
[0042](4)将打开文件的校验值信息存储于文件的控制块中,供后续校验使用。
[0043](5)在读取某块数据进文件缓冲的同时进行该块数据校验值计算,将计算出的校验值与保存的校验值进行比较。如果校验值相同,则返回数据;如果校验值不同,则返回失败。
[0044]即在系统启动阶段,系统分区文件缓存读取同时按数据块为单位,进行安全校验,不同于其它已经公布的在系统启动前先单独对系统分区进行整体校验后,才启动加载系统软件。可以有效缩短校验时间,且无遗漏。并且提出了生成校验值表文件的新方法。
[0045]以该方法应用于android设备举例,【具体实施方式】如下:
[0046](I)系统镜像生成:
[0047]a)整个系统编译完成后,会在out目录下聚集所有
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1