CN102902530A - 一种基于linux嵌入式操作系统的程序校验装置 - Google Patents
一种基于linux嵌入式操作系统的程序校验装置 Download PDFInfo
- Publication number
- CN102902530A CN102902530A CN2012103298507A CN201210329850A CN102902530A CN 102902530 A CN102902530 A CN 102902530A CN 2012103298507 A CN2012103298507 A CN 2012103298507A CN 201210329850 A CN201210329850 A CN 201210329850A CN 102902530 A CN102902530 A CN 102902530A
- Authority
- CN
- China
- Prior art keywords
- module
- verification
- verified
- linux embedded
- calibration equipment
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式操作系统技术。本发明解决了现有技术中校验方式校验速度慢、不适用于可写文件系统的问题,提供了一种基于linux嵌入式操作系统的程序校验装置,其技术方案可概括为:基于linux嵌入式操作系统的程序校验装置,包括boot引导模块、kernel内核模块、rootfs根文件模块、loader装载模块、被检验模块、校验模块、启动脚本模块,校验模块和启动脚本模块保存在loader装载模块中,在boot引导模块、kernel内核模块、rootfs根文件模块启动运行后,由启动脚本模块调用校验模块对被检验模块进行校验。本发明的有益效果是,校验速度快,适用于基于linux嵌入式操作系统的嵌入式设备。
Description
技术领域
本发明属于嵌入式操作系统技术领域,具体涉及一种基于linux嵌入式操作系统的程序校验装置。
背景技术
长期以来,一些使用linux嵌入式操作系统的产品,例如数字电视机顶盒产品,为保证系统主程序的安全性和完整性,会强制要求采用loader装载程序+app主程序架构,由loader装载程序负责对app主程序进行自检校验、解压,如果自检通过、解压正确,才会真正跳转应用app主程序开始运行,否则跳转到指定的系统修复界面。
随着linux嵌入式操作系统大flash存储设备的应用,例如使用512M~2G的flash存储设备,原有的loader装载程序中校验的校验机制存在校验时间长,效率不高的问题。这是由于,loader装载程序中为计算校验,已经将app主程序加载了一次内存,跳转app主程序运行时又要再加载一次内存,在app较大的场景,app加载内存耗时较多,校验耗时问题尤为突出,这样会延长系统开机的时间,造成用户的使用体验不佳。
更为麻烦的是由于上述loader装载程序校验做法的校验码是预先通过工具写入的,写入后不会随着程序更改而自动更新,所以这种校验机制只能用于校验写入后不会被自身更改的app主程序,不能适用于基于可读写文件系统,例如yaffs可读写根文件系统,这是由于在基于这类可读写文件系统的应用运行过程中会自行产生和更改一些临时文件的应用场景。
因此,随着linux嵌入式操作系统的广泛应用,传统的loader装载程序校验方式校验速度慢、不适用于可写文件系统的问题越发突出。
发明内容
本发明所要解决的技术问题是:提出一种基于linux嵌入式操作系统的程序校验装置,实现对需要校验的程序模块的校验。解决传统技术中校验方式校验速度慢、不适用于可写文件系统的缺陷。
本发明解决上述技术问题所采用的技术方案是:
一种基于linux嵌入式操作系统的程序校验装置,包括有boot引导模块、kernel内核模块、rootfs根文件模块、loader装载模块、被检验模块,另外还包括:
校验模块,该校验模块保存在loader装载模块中;
启动脚本模块,该启动脚本模块保存在loader装载模块中,用于在boot引导模块、kernel内核模块、rootfs根文件模块启动运行后,调用校验模块对被检验模块进行校验。
本发明的有益效果是:本发明利用了linux嵌入式操作系统本身的特点,将校验工作放到linux嵌入式操作系统启动后做,利用linux嵌入式操作系统启动后,文件系统内可以存在多个可执行的独立应用,并通过自动执行的脚本来调用这些应用。这样校验、执行工作在同一套操作系统中运行,校验完不需要退出操作系统,直接执行,可以避免因校验、执行的不同目的将程序重复载入内存;同时由于校验标的已经是应用程序的可执行文件而不是应用程序分区映像,对可写文件系统,分区映像虽然可能会随时改变,但应用的可执行文件/文件夹不会变化,这样就可以很好的规避可写文件系统创建临时文件、文件夹导致loader装载模块无法对分区映像校验的问题,因此能够适用于可写文件系统。该校验装置是基于linux嵌入式操作系统开发的,可以固件化,具有通用性好,容易跨硬件平台移植的优点。
附图说明
图1是本发明的装置架构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本实施例的技术方案主要适用于数字电视机顶盒产品,但也可以用于其他基于linux嵌入式操作系统的嵌入式设备的程序校验,并不局限于机顶盒。
如图1,该基于linux嵌入式操作系统的程序校验装置,包括有boot引导模块、kernel内核模块、rootfs根文件模块、loader装载模块、被检验模块,另外还包括:
校验模块,该校验模块保存在loader装载模块中;
启动脚本模块,该启动脚本模块保存在loader装载模块中,用于在boot引导模块、kernel内核模块、rootfs根文件模块启动运行后,调用校验模块对被检验模块进行校验。
在检验模块中,包括参数接收模块、校验固件、标志模块,校验所需的参数例如解压方式和密钥,由参数接收模块进行接收,再由校验固件按照参数接收模块所接收的参数对被检验模块进行校验。校验的结果保存在标志模块中。
基于linux操作系统的独立的校验固件和配套的启动脚本模块可独立制作,这样可移植性和稳定性更强:校验部分的应用一旦做好,将不受平台和驱动程序状态影响,可以随意移植到同一个编译环境下的所有linux操作中去;如果是不同的编译环境,也只需要重新编译生成可执行文件即可移植。不同的硬件平台、不同的项目移植该模块只需要启动脚本模块做相应变化即可,这样可以实现将原来的开发模式改为固件调用模式;算法优良的固件也可以和配套的主程签名工具打包出售,用于主程序安全管理。
被检验模块可以是loader装载程序模块,也可以是app应用程序模块。
由于该固件底层驱动基于linux操作,移植、维护的工作量将大大减小,因此更加适用于一些嵌入式产品对不同厂家统一loader装载程序模块校验方式、需要统一对app应用程序模块进行签名的要求。
loader装载程序模块和app应用程序模块可以使用同一个的固件进行全套校验工具,不需要loader装载程序模块设计人员和app应用程序模块设计人员沟通交互,这样就不容易出错。
如果需要节省flash存储设备空间,可以在linux嵌入式操作系统系统中使用脚本直接调用linux嵌入式操作系统下的第3方解压软件进行处理,也可以调用第3方防毒、防木马、防盗改的补丁;也可以直接将app应用程序模块执行文件做成自解压运行的格式。
由于校验模块和启动脚本模块是基于linux嵌入式操作系统的可执行程序,因此在校验loader装载程序模块和app应用程序模块时,均可以通过mount挂载该校验模块和启动脚本模块所在的文件系统,然后直接在linux嵌入式操作系统下运行的方式来进行调用同一个模块。
对于被检验模块为app应用程序模块的情形,还可按以下方式进行校验和签名。
在校验装置中还包括加密模块,该加密模块用于按照mount挂载U盘的方式对所述app应用程序模块签名。
在校验装置中,先判断校验固件是否存在,如果存在则运行该校验固件,根据app应用程序模块的压缩或加密或校验的方式不同,校验固件需传入的参数,例如解压方式和密钥,可能简单、可能复杂甚至需要传入一个独立的参数文件。如果app应用程序模块校验失败,则校验固件返回错误,由标志模块实现错误状态标志位的保存;
如果未发现校验固件、或校验固件输入的参数非法,或者校验固件中触发了需要重签名的后门,则跳转运行加密模块进行重签名。
上述调用的逻辑关系容易用linux脚本实现,例如:
CTYPE传入3大类类型值:校验、解压、usb签名;
其中校验可能包括和校验、CRC校验、RSA-Hash签名等;解压可能包括Zlib格式解压、linux自带的gzip解压等。Usb签名则mount挂载U盘,./运行U盘中的签名固件,计算签名并用私钥对文件签名进行加密。由于上述算法都是通用算法,本文不再一一赘述。
由于校验固件只负责校验和启动主程,可选功能为处理usb挂载的方式校验应用程序,但不负责获取参数和保存标志,这样校验固件对flash设备、对内存设备的操作完全可以用linux通用命令实现,这样校验固件可以固定下来,并作为第3方固件供设备制造商集成。在数字电视机顶盒产品领域,很多广播电视公司希望用较快的集成速度、较少的代价自行管理所有设备制造商程序的加密、签名权限,以便防止盗版,因此app应用程序模块需先经过加密模块按照mount挂载U盘的方式签名后,再作为被检验模块进行校验,这样就能较好的迎合广播电视公司的要求。
由于校验模块和自动脚本模块是保存在loader装载模块分区中的,因此可以保证loader装载模块、校验模块和自动脚本模块的独立性不受app程序模块的升级影响。
Claims (7)
1.一种基于linux嵌入式操作系统的程序校验装置,包括有boot引导模块、kernel内核模块、rootfs根文件模块、loader装载模块、被检验模块,其特征在于,还包括:
校验模块,该校验模块保存在loader装载模块中;
启动脚本模块,该启动脚本模块保存在loader装载模块中,用于在boot引导模块、kernel内核模块、rootfs根文件模块启动运行后,调用校验模块对被检验模块进行校验。
2.根据权利要求1所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,所述校验模块包括:
参数接收模块,用于接收所述进行校验所需的参数;
校验固件,按照参数接收模块所接收的参数对被检验模块进行校验。
3.根据权利要求2所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,所述校验模块还包括标志模块,用于保存所述对被检验模块进行校验的结果。
4.根据权利要求1所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,所述启动脚本模块随该程序校验装置所应用的平台而变化。
5.根据权利要求1所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,所述被检验模块为loader装载程序模块。
6.根据权利要求1所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,所述被检验模块为app应用程序模块。
7.根据权利要求6所述的一种基于linux嵌入式操作系统的程序校验装置,其特征在于,还包括加密模块,所述app应用程序模块需经过该加密模块按照mount挂载U盘的方式签名后,再作为被检验模块进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103298507A CN102902530A (zh) | 2012-09-07 | 2012-09-07 | 一种基于linux嵌入式操作系统的程序校验装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103298507A CN102902530A (zh) | 2012-09-07 | 2012-09-07 | 一种基于linux嵌入式操作系统的程序校验装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102902530A true CN102902530A (zh) | 2013-01-30 |
Family
ID=47574777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103298507A Pending CN102902530A (zh) | 2012-09-07 | 2012-09-07 | 一种基于linux嵌入式操作系统的程序校验装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102902530A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105472418A (zh) * | 2015-12-28 | 2016-04-06 | 深圳创维数字技术有限公司 | 一种机顶盒系统异常状态恢复方法及机顶盒 |
CN107688463A (zh) * | 2017-09-21 | 2018-02-13 | 杭州全维技术股份有限公司 | 一种嵌入式设备版本文件打包的方法 |
CN107770622A (zh) * | 2017-11-07 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种更新Linux系统中文件的方法及操作方法 |
CN109766140A (zh) * | 2018-12-19 | 2019-05-17 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒启动异常的定位方法及装置 |
US10445504B2 (en) | 2014-08-11 | 2019-10-15 | Red Hat, Inc. | Secure remote kernel module signing |
CN111199039A (zh) * | 2018-11-20 | 2020-05-26 | 成都鼎桥通信技术有限公司 | 应用程序的安全性校验方法、装置及终端设备 |
CN112463242A (zh) * | 2020-12-17 | 2021-03-09 | 南方电网电力科技股份有限公司 | 一种电能表操作系统启动方法、装置、电能表及存储介质 |
CN114764347A (zh) * | 2022-04-14 | 2022-07-19 | 重庆长安汽车股份有限公司 | 一种多核控制器的程序校验系统、校验方法及存储介质 |
CN116700061A (zh) * | 2023-04-12 | 2023-09-05 | 广东为辰信息科技有限公司 | 一种基于安全启动技术的快速启动方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271780A1 (en) * | 2008-04-24 | 2009-10-29 | Moschip Semiconductor Technology Limited | Automatic complete firmware upgrade |
CN101630267A (zh) * | 2009-08-24 | 2010-01-20 | 中兴通讯股份有限公司 | 一种嵌入式系统及其控制方法 |
-
2012
- 2012-09-07 CN CN2012103298507A patent/CN102902530A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271780A1 (en) * | 2008-04-24 | 2009-10-29 | Moschip Semiconductor Technology Limited | Automatic complete firmware upgrade |
CN101630267A (zh) * | 2009-08-24 | 2010-01-20 | 中兴通讯股份有限公司 | 一种嵌入式系统及其控制方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445504B2 (en) | 2014-08-11 | 2019-10-15 | Red Hat, Inc. | Secure remote kernel module signing |
CN105472418A (zh) * | 2015-12-28 | 2016-04-06 | 深圳创维数字技术有限公司 | 一种机顶盒系统异常状态恢复方法及机顶盒 |
CN105472418B (zh) * | 2015-12-28 | 2018-07-03 | 深圳创维数字技术有限公司 | 一种机顶盒系统异常状态恢复方法及机顶盒 |
CN107688463A (zh) * | 2017-09-21 | 2018-02-13 | 杭州全维技术股份有限公司 | 一种嵌入式设备版本文件打包的方法 |
CN107770622A (zh) * | 2017-11-07 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种更新Linux系统中文件的方法及操作方法 |
CN107770622B (zh) * | 2017-11-07 | 2020-01-31 | 四川长虹电器股份有限公司 | 一种更新Linux系统中文件的方法 |
CN111199039A (zh) * | 2018-11-20 | 2020-05-26 | 成都鼎桥通信技术有限公司 | 应用程序的安全性校验方法、装置及终端设备 |
CN109766140A (zh) * | 2018-12-19 | 2019-05-17 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒启动异常的定位方法及装置 |
CN112463242A (zh) * | 2020-12-17 | 2021-03-09 | 南方电网电力科技股份有限公司 | 一种电能表操作系统启动方法、装置、电能表及存储介质 |
CN114764347A (zh) * | 2022-04-14 | 2022-07-19 | 重庆长安汽车股份有限公司 | 一种多核控制器的程序校验系统、校验方法及存储介质 |
CN116700061A (zh) * | 2023-04-12 | 2023-09-05 | 广东为辰信息科技有限公司 | 一种基于安全启动技术的快速启动方法 |
CN116700061B (zh) * | 2023-04-12 | 2024-05-03 | 广东为辰信息科技有限公司 | 一种基于安全启动技术的快速启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102902530A (zh) | 一种基于linux嵌入式操作系统的程序校验装置 | |
US11093258B2 (en) | Method for trusted booting of PLC based on measurement mechanism | |
US7752428B2 (en) | System and method for trusted early boot flow | |
US7991988B2 (en) | Communication device and firmware update method thereof | |
CN103778061B (zh) | 数组越界错误的自动检测和校正方法 | |
CN102609281B (zh) | 分布式软件补丁更新方法及系统 | |
CN102053831B (zh) | 一种Linux操作系统的定制方法及系统 | |
CN101504704B (zh) | 由星型信任链支持的嵌入式平台应用程序完整性验证方法 | |
CN105205401A (zh) | 基于安全密码芯片的可信计算机系统及其可信引导方法 | |
CN102736978A (zh) | 一种检测应用程序的安装状态的方法及装置 | |
US9292664B2 (en) | Key injection tool | |
CN103019722B (zh) | 一种抽取Java网络应用升级包的方法及装置 | |
US20200379742A1 (en) | Validation of configurations of factory installations | |
CN102495736A (zh) | 一种在可执行文件中标识软件代码svn版本的方法和系统 | |
CN105095767A (zh) | 基于文件数据块校验的安全启动系统与方法 | |
CN102364433B (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN104111843A (zh) | 一种基于沙箱的脚本更新方法及系统 | |
CN106778249B (zh) | 一种Java程序可信执行环境的构建方法及构建系统 | |
WO2015184732A1 (zh) | 引导程序的存储方法、故障恢复方法及设备、计算机存储介质 | |
CN113760339A (zh) | 漏洞修复方法和装置 | |
US9940461B2 (en) | Enabling an external operating system to access encrypted data units of a data storage system | |
CN103559059A (zh) | 一种快速的免介质Linux系统升级方法 | |
CN104036193A (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN101169726A (zh) | 基于MTD分区的嵌入式Linux系统在线升级方法 | |
CN103885875A (zh) | 脚本验证装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130130 |