CN106569907B - 一种系统启动文件的校验及编译方法 - Google Patents
一种系统启动文件的校验及编译方法 Download PDFInfo
- Publication number
- CN106569907B CN106569907B CN201610942492.5A CN201610942492A CN106569907B CN 106569907 B CN106569907 B CN 106569907B CN 201610942492 A CN201610942492 A CN 201610942492A CN 106569907 B CN106569907 B CN 106569907B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- value
- check value
- check
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Abstract
本发明公开了一种系统启动文件的校验方法,其中,所述方法包括:从系统固件分区获取系统启动文件、第一校验值以及第二校验值;通过第一校验算法对所述系统启动文件进行运算得到第三校验值;通过第二校验算法对所述第三校验值进行运算得到第四校验值;将所述第一校验值和所述第二校验值分别与所述第三校验值和所述第四校验值进行比较,若其中任一比较结果为不同时,判定所述系统启动文件存在安全错误。通过上述方式,可以检查出系统固件是否已经被修改或者损坏,提高系统的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种系统启动文件的校验及编译方法。
背景技术
随着电子产品的日渐成熟与普及,越来越多人开始关注电子产品的系统软件,尤其是手机产品,网络上存在很多破解root权限的工具,黑客或者其他用户很容易获得root工具强行修改系统固件文件,系统固件文件被修改后,会破坏系统的软件安全,导致无法开机或者系统上某些功能异常等。
目前,Android系统通过对系统固件文件进行运算并生成一个校验值,在系统启动时,通过比较校验值是否一致,判断系统固件是否被修改。然而,由于这些算法是公开的,很容易被黑客或者其他用户破解,通过修改原有的校验值进而修改系统固件。
发明内容
本发明主要解决的技术问题是提供一种系统启动文件的校验及编译方法,能够检查出系统启动文件是否已经被修改或者损坏,提高系统的安全性。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种系统启动文件的校验方法,包括:从系统固件分区获取系统启动文件、第一校验值以及第二校验值;通过第一校验算法对系统启动文件进行运算得到第三校验值;通过第二校验算法对第三校验值进行运算得到第四校验值;将第一校验值和第二校验值分别与第三校验值和第四校验值进行比较,若其中任一比较结果为不同时,判定系统启动文件存在安全错误。
其中,通过第二校验算法对第三校验值进行运算得到第四校验值的步骤包括:通过中间算法对第三校验值进行运算得到中间值;通过第三校验算法对中间值进行运算得到第四校验值。
其中,通过中间算法对第三校验值进行运算得到中间值的步骤包括:获取添加值;通过中间算法对第三校验值与添加值进行运算得到中间值。
其中,添加值为随机数,第一校验算法和第三校验算法为HASH算法,中间算法为加法或减法。
其中,第一校验算法为公开算法,第二校验算法为非公开算法。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种系统启动文件的编译方法,包括:获取系统启动文件;通过第一校验算法对系统启动文件进行运算得到第一校验值;通过第二校验算法对第一校验值进行运算得到第二校验值;将第一校验值、第二校验值连同系统启动文件存储到预设的系统固件分区中。
其中,通过第二校验算法对第一校验值进行运算得到第二校验值的步骤包括:通过中间算法对第一校验值进行运算得到中间值;通过第三校验算法对中间值进行运算得到第二校验值。
其中,通过中间算法对第一校验值进行运算得到中间值的步骤包括:获取添加值;通过中间算法对第一校验值与添加值进行运算得到中间值。
其中,第一校验算法和第三校验算法为HASH算法,中间算法为加法或减法。
其中,第一校验算法为公开算法,第二校验算法为非公开算法。
本发明的有益效果是:通过将系统启动文件进行多次运算,进而得到第三校验值及第四校验值,将系统启动文件中预存的第一校验值及第二校验值分别与运算所得的第三校验值及第四校验值进行比较,可以检查出系统启动文件是否已经被修改或者损坏,提高系统的安全性。
附图说明
图1是本发明系统启动文件校验方法一实施例的流程示意图;
图2是本发明图1中步骤S13的一实施例的流程图;
图3是本发明系统启动文件校验方法另一实施例的流程示意图;
图4是本发明系统启动文件编译方法一实施例的流程示意图;
图5是本发明系统启动文件校验系统一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。
图1是本发明系统启动文件校验方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
S11:从系统固件分区获取系统启动文件、第一校验值以及第二校验值。
上述系统启动文件即为系统固件文件,是终端最基础、最低层工作的软件。对于独立可操作的终端产品来说,系统固件通常指操作系统,如:智能手机、路由器或MP4等;对于非独立的终端产品,系统固件为最低层,用于支持设备运行的程序代码,如:硬盘、光驱或U盘等。因此,在用户使用终端产品之前,系统固件已经由其它工具或软件写入终端产品对应的硬件系统中,当终端上电时,通过系统固件直接驱动和调用系统硬件,从而使终端正常工作。其中,第一校验值及第二校验值为预存在系统固件文件中,将系统固件文件通过特定算法而得出的两个校验值。
S12:通过第一校验算法对系统启动文件进行运算得到第三校验值。
上述第一校验算法为HASH算法,如:SHA256等算法,也可以是其它公开算法。当终端系统运行时,从系统固件分区中获取系统启动文件,即系统固件文件,并对系统固件文件按照第一校验算法进行运算,得到第三校验值。
S13:通过第二校验算法对第三校验值进行运算得到第四校验值。
图2是本发明图1中步骤S13的一实施例的流程图;如图所示,步骤S13进一步包括以下步骤:
S131:通过中间算法对第三校验值进行运算得到中间值。
进一步的,通过获取添加值,进而将第三校验值与上述添加值按照中间算法进行运算,最终得到中间值。其中,中间算法为加法或减法运算,添加值为随机数。在本实施例中,可以预先将添加值存放在系统校验程序相关的头文件中,当系统启动时,通过读取头文件中的添加值进而与第三校验值进行运算得到中间值。在另一实施例中,可以将添加值预存在系统硬件上,通过在TEE(可信执行环境)环境中,建立一个加密配置文件,将添加值存储在配置文件中,并通过厂商认证的可信应用程序访问文件并读取添加值。上述添加值为十进制、二进制或十六进制中的任意数值。
S132:通过第三校验算法对中间值进行运算得到第四校验值。
其中,第三校验算法为HASH算法或其它公开算法。通过将中间值进行运算进而得到第四校验值。上述第二校验算法包括中间算法和第三校验算法,为非公开算法。
S14:将第一校验值和第二校验值分别与第三校验值和第四校验值进行比较,若其中任一比较结果为不同时,判定系统启动文件存在安全错误。
将上述步骤获取的第三校验值及第四校验值分别与系统启动文件中预存的第一校验值和第二校验值进行比较,若其中任一比较结果不相同时,说明当前的系统固件被修改或者被破坏,提示用户做进一步的处理。若两个比较结果都相同,说明当前的系统固件没有被修改或者破坏,可以正常启动终端设备。
通过上述方法,可以检查出系统启动文件是否已经被修改或者损坏,提高系统的安全性。
参考图3,图3是本发明系统启动文件校验方法另一实施例的流程示意图,在本实施例中,系统启动文件校验方法包括以下步骤:
S301:开始。
S302:从系统固件分区获取系统启动文件、第一校验值以及第二校验值。
S303:通过第一校验算法对系统启动文件进行运算得到第三校验值。
S304:将第一校验值与第三校验值进行比较。
S305:比较结果是否一致,如果一致,则执行步骤S306;如果不一致,则执行步骤S311。
S306:获取添加值。
S307:通过中间算法对第三校验值与添加值进行运算得到中间值。
S308:通过第三校验算法对中间值进行运算得到第四校验值。
S309:将第二校验值与第四校验值进行比较。
S310:比较结果是否一致,如果一致,则执行步骤S312;如果不一致,则执行步骤S311。
S311:提示系统启动文件存在安全错误。
S312:结束。
下面举例说明,当系统启动时,从系统固件分区中获取系统启动文件,及通过系统固件文件获得的校验值A、B。通过SHA256算法对上述系统启动文件进行运算,得到校验值C,将校验值A与校验值C进行比较,如果A≠C,将提示系统启动文件存在安全错误;如果A=C,则通过系统校验程序相关的头文件或系统硬件上读取添加值R,将校验值C和添加值R进行加法或减法运算,进而得到中间值V。通过SHA256算法,对中间值V进行运算,最终得到校验值D,将校验值D与校验值B进行比较,如果D≠B,将提示系统启动文件存在安全错误;如果A=C,则判断系统固件没有被修改或破坏,系统可以正常使用。
参考图4,图4是本发明系统启动文件编译方法一实施例的流程示意图,该编译方法包括以下步骤:
S41:获取系统启动文件。
其中,系统启动文件即为用于安装的系统固件文件。
S42:通过第一校验算法对系统启动文件进行运算得到第一校验值。
上述第一校验算法为HASH算法或者其它公开算法。
S43:通过第二校验算法对第一校验值进行运算得到第二校验值。
上述第二校验算法为非公开算法,包括中间算法及第三校验算法,其中,中间算法为加法或减法,第三校验算法为HASH算法或者其它公开算法。通过从系统固件文件或者系统硬件上获取添加值,通过中间算法对第一校验值与添加值进行运算进而得到中间值;通过第三校验算法对中间值进行运算最终得到第二校验值。
S44:将第一校验值、第二校验值连同系统启动文件存储到预设的系统固件分区中。
将上述第一校验值及第二校验值附加到系统固件文件的末尾,通过编译生成新的系统固件文件。
通过上述方式,可以获取初始系统固件文件的校验值,为系统启动文件的校验提供参考值,进而提高系统的安全性。
图5是本发明系统启动文件校验系统一实施例的结构示意图,该系统包括:处理器51及与处理器51耦合的存储器52。
其中,存储器52,用于存储系统固件文件、处理器51执行的指令等。
处理器51用于通过第一校验算法对系统启动文件进行运算得到第三校验值;通过第二校验算法对第三校验值进行运算得到第四校验值;将第一校验值和第二校验值分别与第三校验值和第四校验值进行比较,若其中任一比较结果为不同时,判定系统启动文件存在安全错误。
可选地,处理器51用于通过中间算法对第三校验值进行运算得到中间值;通过第三校验算法对中间值进行运算得到第四校验值。
可选地,处理器51用于获取添加值;通过中间算法对第三校验值与添加值进行运算得到中间值。
以上方案,通过将系统启动文件中预存的第一校验值及第二校验值分别与运算所得的第三校验值及第四校验值进行比较,可以检查出系统启动文件是否已经被修改或者损坏,提高系统的安全性。
在本发明所提供的几个实施方式中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。同时,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种系统启动文件的校验方法,其特征在于,所述方法包括:
从系统固件分区获取系统启动文件、第一校验值以及第二校验值;
通过第一校验算法对所述系统启动文件进行运算得到第三校验值;
通过第二校验算法对所述第三校验值进行运算得到第四校验值;
将所述第一校验值和所述第二校验值分别与所述第三校验值和所述第四校验值进行比较,若其中任一比较结果为不同时,判定所述系统启动文件存在安全错误;
其中,所述通过第二校验算法对所述第三校验值进行运算得到第四校验值的步骤包括:获取添加值;通过中间算法对所述第三校验值与所述添加值进行运算得到中间值;通过第三校验算法对所述中间值进行运算得到所述第四校验值。
2.根据权利要求1所述的方法,其特征在于,所述添加值为随机数,所述第一校验算法和所述第三校验算法为HASH算法,所述中间算法为加法或减法。
3.根据权利要求1所述的方法,其特征在于,所述第一校验算法为公开算法,所述第二校验算法为非公开算法。
4.一种系统启动文件的编译方法,其特征在于,所述方法包括:
获取系统启动文件;
通过第一校验算法对所述系统启动文件进行运算得到第一校验值;
通过第二校验算法对所述第一校验值进行运算得到第二校验值;
将所述第一校验值、所述第二校验值连同所述系统启动文件存储到预设的系统固件分区中;
其中,所述通过第二校验算法对所述第一校验值进行运算得到第二校验值的步骤包括:获取添加值;通过中间算法对所述第一校验值与所述添加值进行运算得到中间值;通过第三校验算法对所述中间值进行运算得到所述第二校验值。
5.根据权利要求4所述的方法,其特征在于,所述第一校验算法和所述第三校验算法为HASH算法,所述中间算法为加法或减法。
6.根据权利要求4所述的方法,其特征在于,所述第一校验算法为公开算法,所述第二校验算法为非公开算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610942492.5A CN106569907B (zh) | 2016-10-31 | 2016-10-31 | 一种系统启动文件的校验及编译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610942492.5A CN106569907B (zh) | 2016-10-31 | 2016-10-31 | 一种系统启动文件的校验及编译方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569907A CN106569907A (zh) | 2017-04-19 |
CN106569907B true CN106569907B (zh) | 2020-09-29 |
Family
ID=58536266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610942492.5A Active CN106569907B (zh) | 2016-10-31 | 2016-10-31 | 一种系统启动文件的校验及编译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569907B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598126B (zh) * | 2018-12-03 | 2021-05-04 | 贵州华芯通半导体技术有限公司 | 一种基于国密算法的系统安全启动方法、装置和系统 |
CN110619233A (zh) * | 2019-09-05 | 2019-12-27 | 视联动力信息技术股份有限公司 | 一种文件保护方法和装置 |
CN112367171B (zh) * | 2020-10-27 | 2022-11-22 | 杭州安恒信息技术股份有限公司 | 一种基于rsa和MD5的数据传输方法及组件 |
CN112231713B (zh) * | 2020-10-29 | 2023-03-28 | 超越科技股份有限公司 | 一种grub安全启动的方法、系统和计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103238142A (zh) * | 2010-12-01 | 2013-08-07 | 国际商业机器公司 | 到受多个请求者的读取和写入访问影响的共享数据记录的访问的验证 |
US8566688B2 (en) * | 2009-09-01 | 2013-10-22 | Ensequence, Inc. | Method of certifying multiple versions of an application |
CN103729597A (zh) * | 2014-01-16 | 2014-04-16 | 宇龙计算机通信科技(深圳)有限公司 | 系统启动校验方法、系统启动校验装置和终端 |
CN104298933A (zh) * | 2014-10-17 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 一种配置信息安全处理方法及系统 |
CN104407929A (zh) * | 2014-12-19 | 2015-03-11 | 重庆川仪自动化股份有限公司 | 一种可变存储器校验的方法及系统 |
-
2016
- 2016-10-31 CN CN201610942492.5A patent/CN106569907B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566688B2 (en) * | 2009-09-01 | 2013-10-22 | Ensequence, Inc. | Method of certifying multiple versions of an application |
CN103238142A (zh) * | 2010-12-01 | 2013-08-07 | 国际商业机器公司 | 到受多个请求者的读取和写入访问影响的共享数据记录的访问的验证 |
CN103729597A (zh) * | 2014-01-16 | 2014-04-16 | 宇龙计算机通信科技(深圳)有限公司 | 系统启动校验方法、系统启动校验装置和终端 |
CN104298933A (zh) * | 2014-10-17 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 一种配置信息安全处理方法及系统 |
CN104407929A (zh) * | 2014-12-19 | 2015-03-11 | 重庆川仪自动化股份有限公司 | 一种可变存储器校验的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106569907A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2962241B1 (en) | Continuation of trust for platform boot firmware | |
US9589139B2 (en) | Method and device for altering a unified extensible firmware interface (UEFI) secure boot process in a computing device | |
KR101066727B1 (ko) | 컴퓨팅 장치의 보안 부팅 | |
CN106569907B (zh) | 一种系统启动文件的校验及编译方法 | |
CN105138347A (zh) | 一种差分升级包生成方法、软件升级方法及相应装置 | |
CN105302711B (zh) | 一种应用修复方法、装置及终端 | |
WO2008085367A1 (en) | Trusting an unverified code image in a computing device | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
CN105825131A (zh) | 一种基于uefi的计算机安全启动防护方法 | |
WO2022073340A1 (zh) | 移动终端应用程序安全检测方法、系统、终端及存储介质 | |
CN105050061A (zh) | 一种基于用户声纹信息的消息发送方法及装置 | |
AU2018250531B2 (en) | Method for programming and terminal device | |
CN105653412A (zh) | 一种指纹器件兼容检测方法及终端 | |
CN108694322B (zh) | 用于对计算机化系统进行初始化的方法及计算机化系统 | |
CN108574658B (zh) | 一种应用登录方法及其设备 | |
CN115878199A (zh) | 芯片的操作系统启动方法、装置、设备及存储介质 | |
CN112699345B (zh) | 固件安全运行的方法及系统、设备及存储介质 | |
CN113127015A (zh) | 一种安装方法、装置以及电子设备 | |
CN110688663A (zh) | 一种执行命令保护方法、装置及安卓设备和存储介质 | |
CN110659477A (zh) | 安卓设备的防刷机保护方法、系统及安卓设备和存储介质 | |
CN112966276B (zh) | 一种计算机的安全启动方法、装置及介质 | |
WO2002048874A2 (en) | Method and apparatus for configuration management for a computing device | |
CN111353150B (zh) | 一种可信启动方法、装置、电子设备及可读存储介质 | |
CN117272317B (zh) | 一种系统安全启动方法、电子设备及存储介质 | |
CN116541891A (zh) | 一种uefi映像文件完整性保护方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200908 Address after: 315000 10 / F, No. 5, Lane 999, Yangfan Road, hi tech Zone, Ningbo City, Zhejiang Province Applicant after: TCL mobile communication technology (Ningbo) Co.,Ltd. Address before: 516006 Guangdong province Huizhou City Zhongkai high tech Zone and seven West Road No. 86 Applicant before: HUIZHOU TCL MOBILE COMMUNICATION Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |