首页> 中国专利> 系统启动校验方法、系统启动校验装置和终端

系统启动校验方法、系统启动校验装置和终端

摘要

本发明提供了一种系统启动校验方法、一种系统启动校验装置和一种终端,其中所述系统启动校验方法包括:在终端的系统启动时,获取需加载的系统文件;从所述系统文件中解析出第一校验信息;将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;在比较结果为不相同时,提示所述系统文件存在安全错误。通过本发明的技术方案,在系统启动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或错误,提高系统的安全性。

著录项

  • 公开/公告号CN103729597A

    专利类型发明专利

  • 公开/公告日2014-04-16

    原文格式PDF

  • 申请/专利权人 宇龙计算机通信科技(深圳)有限公司;

    申请/专利号CN201410019049.1

  • 发明设计人 黄捷峰;梅苏文;朱宗伟;

    申请日2014-01-16

  • 分类号G06F21/57(20130101);H04L29/06(20060101);

  • 代理机构北京友联知识产权代理事务所(普通合伙);

  • 代理人尚志峰;汪海屏

  • 地址 518040 广东省深圳市车公庙天安数码城创新科技广场B座8楼

  • 入库时间 2024-02-19 23:28:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-17

    授权

    授权

  • 2014-05-14

    实质审查的生效 IPC(主分类):G06F21/57 申请日:20140116

    实质审查的生效

  • 2014-04-16

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,具体而言,涉及一种系统启动校验方法、 一种系统启动校验装置和一种终端。

背景技术

目前,Android终端对系统软件的安全保护主要有以下两种方式。

其一,通过Android系统提供的root权限对软件修改权限进行控制, 防止系统软件被修改,实现保护系统软件的目的。但由于现在Android系 统存在很多的漏洞,网络上存在很多破解root权限的工具,一旦用户掌握 了破解root权限的方法,就可以随意修改系统软件,系统软件被修改就有 可能会破坏系统的软件安全,导致系统出现各种问题,比如:无法开机、 开机开到一半死机或某种功能异常等。

其二,通过某种技术实现防刷机,即只能通过厂家提供的特定工具才 能进行更新软件。厂家的防刷机功能也不是很有效的方法,如果厂家特定 的工具流失到用户手里,用户使用这个工具就可以对系统软件恶意修改; 或者用户破解root权限后,可以使用Android系统自带的一些方法来修改 软件,比如dd命令等,从而绕开厂家的特定工具修改系统软件,导致手 机出现各种问题。

现有的两种方式对root权限都有一定的依赖性,用户破解root权限 后就可以随意的修改系统软件,从而导致系统由于系统软件问题出现异 常。

因此,以上两种方式均不能很好的保证系统的安全性,如何提高系统 的安全性成为目前亟待解决的技术问题。

发明内容

本发明正是基于上述技术问题,提出了一种新的系统启动校验技术, 在系统启动时,对系统软硬件信息进行校验,可以提示用户系统软件是否 被修改或是否安全,以提高系统的安全性。

有鉴于此,根据本发明的一个方面,提供了一种系统启动校验方法, 其特征在于,包括:在终端的系统启动时,获取需加载的系统文件;从所 述系统文件中解析出第一校验信息;将所述第一校验信息与预存在所述终 端中的第二校验信息进行比较;在比较结果为不相同时,提示所述系统文 件存在安全错误。

在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的 系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的) 中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系 统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的 系统文件不予加载,以提高系统的安全性。

其中,第一校验信息是在制作系统软件时生成的。将编译服务器名 称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品 信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息 作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信 息一起下载到终端中。

作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏 的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译 服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、 终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一 性校验信息存储在终端内。

在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统 文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系 统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信 息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家 授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第 二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。

在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导 加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述 引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈 文件均包括所述第一校验信息;在加载每一类型的系统文件之前,对相应 类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系 统文件。

通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件 是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提 示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验 证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的 系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不 合法文件而导致系统异常。

在上述技术方案中,优选的,在加载所述引导加载文件之前,从所述 引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通 过验证时,加载所述引导加载文件;在加载完所述引导加载文件之后且在 加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校 验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议 栈文件;在加载完所述通信协议栈文件之后且在加载所述系统内核文件之 前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统 内核文件通过验证时,加载所述系统内核文件;在加载完所述系统内核文 件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述 第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统 数据文件。

通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议 栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文 件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法, 则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文 件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核 文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全 错误,使用户能够清楚终端不能正常开机的原因。

在上述技术方案中,优选的,在加载完所述通信协议栈文件之后且在 加载所述系统内核文件之前还包括:读取所述终端中的指定硬件模块的第 一设备信息;判断所述第一设备信息与预存的第二设备信息是否相同;在 判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所 述系统内核文件。

除了系统软件可被修改而引起系统安全问题之外,终端中的外设也可 被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问 题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外 设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的 存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指 定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备 信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不 同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另 外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在 终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则 终端在启动时,会提示用户硬件模块错误。

在上述技术方案中,优选的,在确定所述系统文件存在安全错误时, 读取初始备份文件,使用所述初始备份文件完成系统启动过程;所述第一 校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编 译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的 标识。

通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot  loader(引导加载程序)、kernel(系统内核)、modem(通信)进行备 份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错 误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成 系统的正常启动过程,不影响终端的正常使用。

其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务 器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。 将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一 性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高 系统文件的安全性。

根据本发明的另一方面,还提供了一种系统启动校验装置,包括:获 取单元,用于在终端的系统启动时,获取需加载的系统文件;解析单元, 用于从所述系统文件中解析出第一校验信息;验证单元,用于将所述第一 校验信息与预存在所述终端中的第二校验信息进行比较;第一提示单元, 连接至所述验证单元,用于在比较结果为不相同时,提示所述系统文件存 在安全错误。

在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的 系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的) 中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系 统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的 系统文件不予加载,以提高系统的安全性。

其中,第一校验信息是在制作系统软件时生成的。将编译服务器名 称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品 信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息 作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信 息一起下载到终端中。

作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏 的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译 服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、 终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一 性校验信息存储在终端内。

在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统 文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系 统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信 息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家 授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第 二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。

在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导 加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述 引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈 文件均包括所述第一校验信息;所述验证单元用于在加载每一类型的系统 文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载 所述相应类型的系统文件。

通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件 是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提 示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验 证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的 系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不 合法文件而导致系统异常。

在上述技术方案中,优选的,所述验证单元包括:第一校验单元,用 于在加载所述引导加载文件之前,从所述引导加载文件中读取所述第一校 验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文 件;第二校验单元,用于在加载完所述引导加载文件之后且在加载所述通 信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供 验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件;第 三校验单元,用于在加载完所述通信协议栈文件之后且在加载所述系统内 核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在 所述系统内核文件通过验证时,加载所述系统内核文件;第四校验单元, 用于在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从 所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文 件通过验证时,加载所述系统数据文件。

通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议 栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文 件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法, 则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文 件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核 文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全 错误,使用户能够清楚终端不能正常开机的原因。

在上述技术方案中,优选的,还包括:读取单元,用于在加载完所述 通信协议栈文件之后且在加载所述系统内核文件之前,读取所述终端中的 指定硬件模块的第一设备信息;判断单元,用于判断所述第一设备信息与 预存的第二设备信息是否相同;第二提示单元,用于在判断结果为不相同 时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。

除了系统软件可被修改而引起系统安全问题之外,终端中的外设也可 被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问 题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外 设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的 存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指 定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备 信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不 同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另 外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在 终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则 终端在启动时,会提示用户硬件模块错误。

在上述技术方案中,优选的,所述第一校验信息和所述第二校验信息 均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的 版本、所述终端的处理器标识、所述终端的标识:所述系统启动校验装置 还包括:系统恢复单元,用于在确定所述系统文件存在安全错误时,读取 初始备份文件,使用所述初始备份文件完成系统启动过程。

通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot  loader(引导加载程序)、kernel(系统内核)、modem(通信)进行备 份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错 误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成 系统的正常启动过程,不影响终端的正常使用。

其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务 器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。 将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一 性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高 系统文件的安全性。

根据本发明的又一方面,还提供了一种终端,包括上述任一项技术方 案中所述的系统启动校验装置。

通过上述技术方案,在终端内安装系统启动校验装置,在终端系统启 动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或 错误,提高系统的安全性。

附图说明

图1示出了根据本发明的一个实施例的系统启动校验方法的流程图;

图2示出了根据本发明的一个实施例的系统文件的数据结构示意图;

图3示出了根据本发明的一个实施例的存储空间的结构示意图;

图4示出了根据本发明的一个实施例的系统开机安全启动的流程图;

图5示出了根据本发明的一个实施例的硬件信息校验的流程图;

图6示出了根据本发明的一个实施例的软件信息校验的流程图;

图7示出了根据本发明的一个实施例的系统启动校验装置的框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附 图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不 冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是, 本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明 的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的一个实施例的系统启动校验方法的流程图;

如题1所示,根据本发明的一个实施例的系统启动校验方法,包括: 步骤102,在终端的系统启动时,获取需加载的系统文件;步骤104,从 所述系统文件中解析出第一校验信息;步骤106,将所述第一校验信息与 预存在所述终端中的第二校验信息进行比较;步骤108,在比较结果为不 相同时,提示所述系统文件存在安全错误。

在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的 系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的) 中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系 统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的 系统文件不予加载,以提高系统的安全性。

下面结合图2说明系统文件中第一校验信息的生成及系统文件的数据 结构。

图2示出了根据本发明的一个实施例的系统文件的数据结构示意图。

如图2所示,终端以手机为例,手机系统文件主要包括Bootloader、 Kernel、Modem、Systemdata,这四个文件每个文件中都包含软件校验信 息202。其中,软件校验信息即为第一校验信息,第一校验信息是在制作 系统软件版本时生成的。将编译服务器名称、编译服务器的IP地址、编 译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生 一个软件校验信息,并把生成的校验信息作为一个文件头一起打包到手机 系统软件中,下载系统软件时把这个校验头信息一起下载到终端中。例 如:图2中所示的Bootloader文件,软件校验信息202为文件头,只有校 验正确才执行Bootloader文件的执行代码204。

下面结合图3说明系统存储区中第二校验信息的存储位置。

图3示出了根据本发明的一个实施例的存储空间的结构示意图。

作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏 的、私密的存储空间中的校验信息,即第二校验信息存储在图3中所示的 隐藏分区302,可以在终端出厂时进行设置,将编译服务器名称、编译服 务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息 按照约定的算法产生一个校验信息作为软件版本唯一性校验信息存储在终 端内。

在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统 文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系 统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信 息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家 授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第 二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。

在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导 加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述 引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈 文件均包括所述第一校验信息;在加载每一类型的系统文件之前,对相应 类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系 统文件。

通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件 是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提 示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验 证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的 系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不 合法文件而导致系统异常。

在上述技术方案中,优选的,在加载所述引导加载文件之前,从所述 引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通 过验证时,加载所述引导加载文件;在加载完所述引导加载文件之后且在 加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校 验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议 栈文件;在加载完所述通信协议栈文件之后且在加载所述系统内核文件之 前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统 内核文件通过验证时,加载所述系统内核文件;在加载完所述系统内核文 件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述 第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统 数据文件。

通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议 栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文 件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法, 则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文 件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核 文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全 错误,使用户能够清楚终端不能正常开机的原因。

在上述技术方案中,优选的,在加载完所述通信协议栈文件之后且在 加载所述系统内核文件之前还包括:读取所述终端中的指定硬件模块的第 一设备信息;判断所述第一设备信息与预存的第二设备信息是否相同;在 判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所 述系统内核文件。

除了系统软件可被修改而引起系统安全问题之外,终端中的外设也可 被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问 题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外 设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的 存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指 定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备 信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不 同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另 外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在 终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则 终端在启动时,会提示用户硬件模块错误。

在上述技术方案中,优选的,在确定所述系统文件存在安全错误时, 读取初始备份文件,使用所述初始备份文件完成系统启动过程;所述第一 校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编 译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的 标识。

通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot  loader(引导加载程序)、kernel(系统内核)、modem(通信)进行备 份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错 误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成 系统的正常启动过程,不影响终端的正常使用。

其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务 器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。 将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一 性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高 系统文件的安全性。

以上结合图1至图3详细说明了本发明的一个实施例的系统启动校验 方法,下面结合图4详细说明本发明的一个实施例的系统开机安全启动的 流程。

图4示出了根据本发明的一个实施例的系统开机安全启动的流程图。

如图4所示,根据本发明的一个实施例的系统开机安全启动的步骤 为:

步骤402:加载不可修改的主引导程序PBL(芯片内部的引导程序) 文件。

步骤404:校验和加载引导程序QC_BootLoader(芯片厂商提供的引导 程序)。解析引导程序QC_BootLoader的第一校验信息与系统存储区的第 二校验信息比对,如果相同,则加载引导程序QC_BootLoader并执行步骤 406和步骤408;如果不相同,则不加载引导程序QC_BootLoader并执行步 骤420。

步骤406:校验和加载引导程序OEM_BootLoader(终端生产商提供 的)。解析加载引导程序OEM_BootLoader的第一校验信息与系统存储区 的第二校验信息比对,如果相同,则加载引导程序OEM_BootLoader并执 行步骤410;如果不相同,则不加载引导程序OEM_BootLoader并执行步骤 420。

步骤408:检验和加载通信协议栈Modem。解析通信协议栈Modem的 第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载通信 协议栈Modem;如果不相同,则不加载通信协议栈Modem并执行步骤 420。

步骤410:硬件信息检验。通过终端的处理器查询指定硬件模块的硬 件信息作为第一设备信息与系统存储区内存储的第二设备信息比对,如果 相同则执行步骤412,如果不相同则执行步骤418并停止加载系统内核文 件。

步骤412:校验和加载操作系统内核主程序Kernel。解析操作系统内 核主程序Kernel的第一校验信息与系统存储区的第二校验信息比对,如果 相同,则加载操作系统内核主程序Kernel并执行步骤414和步骤416;如果 不相同,则不加载操作系统内核主程序Kernel并执行步骤420。

步骤414:校验和加载用户数据Userdate。解析用户数据Userdate的第 一校验信息与系统存储区的第二校验信息比对,如果相同,则加载用户数 据Userdate;如果不相同,则不加载用户数据Userdate并执行步骤420。

步骤416:校验和加载系统数据Systemdate。解析系统数据Systemdate 的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载系 统数据Systemdate;如果不相同,则不加载系统数据Systemdate并执行步 骤420。步骤416与步骤414同时进行。

步骤418:提示用户:硬件错误信息。当第一设备信息与第二设备信 息不同时,硬件校验错误,提示用户硬件错误。

步骤420:提示用户:非授权软件。当第一校验信息和第二校验信息 不同时,软件校验错误,提示用户软件未授权,软件错误。

下面结合图5和图6详细说明本发明的一个实施例的软硬件校验流程。

图5示出了根据本发明的一个实施例的硬件信息校验的流程图。

如图5所示,根据本发明的一个实施例的硬件信息校验的流程为:

步骤502:终端处理器给指定的主要硬件模块(例如显示屏、传感 器、照相机)发送命令,查询器件厂商和型号,并将查询结果保存在数组 A中(即将第一设备信息保存在数组A中)。

步骤504:读取系统的隐藏分区中硬件信息内容,并保存在数组B中 (即将第二设备信息保存在数组B中)。

步骤506:比较数组A的内容和数组B中的内容,即比较第一设备信 息和第二设备信息。

步骤508:判断数组A的内容和数组B的内容是否相等。如果相等则 执行步骤510;如果不相等则执行步骤512。

步骤510:两个数组的内容相等,表明硬件设备全部校验正确,硬件 信息正常。

步骤512:两个数组的内容不相等,表明硬件设备不是原厂硬件,提 醒用户设备不是原厂设备。

图6示出了根据本发明的一个实施例的软件信息校验的流程图。

如图6所示,根据本发明的一个实施例的软件信息校验的流程为:

步骤602:根据约定的算法解析出软件包中的校验信息,并将解析出 的校验信息保存在数组A中(即将第一校验信息保存在数组A中)。

步骤604:读取系统的隐藏分区中的软件校验信息,并将读取的校验 信息保存在数组B中(即将第二校验信息保存在数组B中)。

步骤606:比较数组A的内容和数组B中的内容,即比较第一校验信 息和第二校验信息。

步骤608:判断数组A的内容和数组B的内容是否相等。如果相等则 执行步骤610;如果不相等则执行步骤612。

步骤610:两个数组的内容相等,表明系统文件未被修改,即软件是 经过厂家授权的软件。

步骤610:两个数组的内容不相等,表明系统文件被修改,即软件未 经过厂家授权,使用存在风险可能导致系统异常,此时执行步骤614。

步骤614:判断被修改的系统软件是否为Boot loader、kernel、 modem。由于系统存储区中对Boot loader、kernel、modem进行了备份, 因此如果是Boot loader、kernel、modem,则执行步骤616,如果不是则执 行步骤618。

步骤616:从备份分区中读取正确的Boot loader、kernel或modem系 统文件并加载,系统恢复启动。

步骤618:如果被修改的系统软件不是Boot loader、kernel、modem 模块,则提示错误,系统停止加载文件。

图7示出了根据本发明的一个实施例的系统启动校验装置的框图。

如图7所示,根据本发明的另一方面,还提供了一种系统启动校验装 置700,包括:获取单元702,用于在终端的系统启动时,获取需加载的 系统文件;解析单元704,用于从所述系统文件中解析出第一校验信息; 验证单元706,用于将所述第一校验信息与预存在所述终端中的第二校验 信息进行比较;第一提示单元708,连接至所述验证单元706,用于在比 较结果为不相同时,提示所述系统文件存在安全错误。

在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的 系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的) 中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系 统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的 系统文件不予加载,以提高系统的安全性。

其中,第一校验信息是在制作系统软件时生成的。将编译服务器名 称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品 信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息 作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信 息一起下载到终端中。

作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏 的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译 服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、 终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一 性校验信息存储在终端内。

在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统 文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系 统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信 息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家 授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第 二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。

在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导 加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述 引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈 文件均包括所述第一校验信息;所述验证单元706用于在加载每一类型的 系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否 加载所述相应类型的系统文件。

通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件 是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提 示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验 证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的 系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不 合法文件而导致系统异常。

在上述技术方案中,优选的,所述验证单元706包括:第一校验单元 7062,用于在加载所述引导加载文件之前,从所述引导加载文件中读取所 述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引 导加载文件;第二校验单元7064,用于在加载完所述引导加载文件之后 且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第 一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信 协议栈文件;第三校验单元7066,用于在加载完所述通信协议栈文件之 后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一 校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核 文件;第四校验单元7068,用于在加载完所述系统内核文件之后且在加 载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息 以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。

通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议 栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文 件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法, 则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文 件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核 文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全 错误,使用户能够清楚终端不能正常开机的原因。

在上述技术方案中,优选的,还包括:读取单元710,用于在加载完 所述通信协议栈文件之后且在加载所述系统内核文件之前,读取所述终端 中的指定硬件模块的第一设备信息;判断单元712,用于判断所述第一设 备信息与预存的第二设备信息是否相同;第二提示单元714,用于在判断 结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系 统内核文件。

除了系统软件可被修改而引起系统安全问题之外,终端中的外设也可 被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问 题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外 设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的 存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指 定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备 信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不 同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另 外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在 终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则 终端在启动时,会提示用户硬件模块错误。

在上述技术方案中,优选的,所述第一校验信息和所述第二校验信息 均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的 版本、所述终端的处理器标识、所述终端的标识:所述系统启动校验装置 还包括:系统恢复单元716,用于在确定所述系统文件存在安全错误时, 读取初始备份文件,使用所述初始备份文件完成系统启动过程。

通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot  loader(引导加载程序)、kernel(系统内核)、modem(通信)进行备 份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错 误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成 系统的正常启动过程,不影响终端的正常使用。

其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务 器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。 将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一 性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高 系统文件的安全性。

根据本发明的又一方面,还提供了一种终端,包括上述任一项技术方 案中所述的系统启动校验装置。

通过上述技术方案,在终端内安装系统启动校验装置,在终端系统启 动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或 错误,提高系统的安全性。

以上结合附图详细说明了根据本发明的技术方案,在系统启动时,对 系统软硬件信息进行校验,可以提示用户系统软硬件信息是否被修改,提 高系统的安全性,减少因私自修改软件带来的系统异常。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于 本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号