CN106203099A - 一种硬件支持嵌入式系统程序指令标记的保护方法 - Google Patents
一种硬件支持嵌入式系统程序指令标记的保护方法 Download PDFInfo
- Publication number
- CN106203099A CN106203099A CN201610597187.7A CN201610597187A CN106203099A CN 106203099 A CN106203099 A CN 106203099A CN 201610597187 A CN201610597187 A CN 201610597187A CN 106203099 A CN106203099 A CN 106203099A
- Authority
- CN
- China
- Prior art keywords
- instruction
- cue mark
- splicing
- hash value
- safety
- 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.)
- Granted
Links
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种硬件支持嵌入式系统程序指令标记的保护方法,具体步骤如下:1,读入指令基本块文件;2,确定安全指令长度;3,如果指令的长度小于安全指令长度,则步骤4,否则步骤5并记录拼接次数为0;4,用指令起止地址组合成干扰信息;5,计算拼接后的指令的散列值;6,对应的指令起止地址,拼接次数和静态散列值作为指令标记;7,处理器运行时在指令标记中搜索出拼接次数和静态散列值;8,将指令起止地址根据拼接次数进行拼接;9,用杂凑算法的硬件化电路计算拼接后的指令的散列值,并与静态散列值比较;10,相同则指令完整未被篡改,不同则有改变;通过以上步骤,完成了对指令标记的保护,解决了由于指令标记暴露所引发的安全问题。
Description
技术领域
本发明涉及一种硬件支持嵌入式系统程序指令标记的保护方法。它利用指令起止地址的拼接作为干扰信息,干扰信息与指令一起作为杂凑算法的输入,然后把杂凑算法的输出,即散列值作为指令标记的一部分,可防止针对指令标记的杂凑算法破解攻击。属于嵌入式系统安全技术领域。
背景技术
随着电子科学与计算机技术的发展,越来越多的嵌入式设备进入了人们的生活中,逐渐在诸多领域发挥重要的系统自动控制及数据存储的作用。同时越来越多的应用及更为方便的网络接入,使嵌入式平台面临着越来越多的安全挑战。嵌入式系统在运算能力、内存、功耗等方面有着严格的资源约束限制。采用通用计算机上的病毒扫描和防入侵软件来防御安全攻击,将会带来性能的降低和功耗的增加。因此,嵌入式系统的安全问题比通用系统的安全问题更具有挑战性。
完整性检测可以保证信息在存储和传输的过程中没有遭受非授权方式的篡改或破坏。目前的完整性检测一般都使用杂凑算法。杂凑算法是指把任意长度的输入,通过散列算法变换成固定长度的输出的过程,该输出就是散列值,散列值表示的是数据的特征信息。将杂凑算法计算出的指令的散列值与基本块监控信息中的提前计算的指令的散列值对比,如果对比信息不一致,可以中止程序的运行,或进行系统恢复。
目前,嵌入式监控模型普遍直接对指令基本块用杂凑算法进行校验,事实上,这种做法并不安全,有许多针对杂凑算法的攻击方法,暴力破解和查表法都能破解杂凑算法,其中最有效果的是彩虹表攻击,彩虹表综合了暴力破解和查表法的特点,是一种使用空间换取时间的技术。彩虹表的方式之所以有效是因为对每一个指令都使用完全相同的杂凑算法。如果两个指令相同,那么它们的散列值也一定相同。我们可以通过让每一个杂凑函数不同,即使同一个指令进行两次杂凑,得到的散列值也会不同,从而避免这种攻击。通过给指令加一个随机的干扰信息后缀,然后再进行杂凑。通过增加干扰信息,相同的指令每次杂凑的输入都是完全不一样的字符串了。在检查指令是否正确的时候,我们也还需要这个干扰信息,所以干扰信息一般都是和指令一起保存在数据库里,或者作为指令字符串的一部分。即使干扰信息被攻击者得到,只要干扰信息是随机的,查表法、彩虹表攻击都会失效。因为攻击者无法事先知道干扰信息是什么,也就没有办法预先计算出彩虹表。
发明内容
1、目的:
本发明的目的是提供一种硬件支持嵌入式系统程序指令标记的保护方法,它使用散列值作为指令是否完整且没有被篡改的依据,同时对通过散列值逆向得到指令的杂凑算法的攻击进行了预防。
2、技术方案:
本发明设计一种硬件支持嵌入式系统程序指令标记的保护方法,它利用指令起止地址的拼接作为干扰信息,干扰信息与指令一起作为杂凑算法的输入,然后把杂凑算法的输出,即散列值作为指令标记的一部分。在指令运行时候,将指令起止地址重新按原来的方式组合成干扰信息,干扰信息和指令一起使用杂凑算法的硬件化电路再次计算一个散列值,然后这个散列值会和指令标记中的散列值进行比较,相同则表明指令完整且没有被篡改,不同则表明指令发生了改变。
本发明一种硬件支持嵌入式系统程序指令标记的保护方法,该方法具体步骤包括:
步骤1,读入指令基本块文件;其中,指令基本块文件指的是由多个指令基本块组成的文件,每个指令基本块中包括指令起止地址和指令两部分;
步骤2,确定安全指令长度;其中,安全指令长度会根据杂凑算法的复杂程度和具体的安全需求综合确定;
步骤3,对每一个指令基本块,将指令的长度与安全指令长度比较,如果指令的长度小于安全指令长度,则进行步骤4,否则进行步骤5并记录对应的指令的拼接次数为0;其中,拼接次数指的是指令起止地址与指令起止地址拼接的次数;
步骤4,用指令起止地址组合成干扰信息,干扰信息的长度和指令的长度相加应该满足大于安全指令长度的要求,再将指令和干扰信息按顺序拼接到一起组合成新的包含干扰信息的“指令”;其中,指令起止地址的组合方式是指令起止地址自身的拼接,拼接次数记为n,其中,拼接次数n选取为满足要求的最小的拼接次数;
步骤5,以拼接后的指令作为杂凑算法的输入,得到输出静态散列值;其中,该静态散列值指的是指令执行之前计算得到的散列值,与下文中在指令执行时候计算得到的动态散列值相对应;
步骤6,将相对应的指令起止地址,指令起止地址的拼接次数和静态散列值保存下来作为指令标记;
步骤7,在安全嵌入式处理器运行时,安全嵌入式处理器的缓存中包含有指令和指令起止地址信息;对应前述缓存中的指令起止地址在指令标记中搜索出拼接次数和静态散列值;
步骤8,按照步骤4的方式将指令、指令起止地址根据拼接次数进行拼接,得到经过拼接后的指令,拼接次数为0的指令不用拼接;
步骤9,以经过步骤8过程后的指令作为杂凑算法的硬件化电路的输入,输出与指令标记中对应的静态散列值进行比较,其中,杂凑算法的硬件化电路的输出称为动态散列值;
步骤10,如果动态散列值和静态散列值相同,则表明指令完整且没有被篡改,如果动态散列值和静态散列值不同,表明指令发生了改变。
通过以上步骤,完成了对硬件支持嵌入式系统程序指令标记的保护,加重了攻击者在使用杂凑算法的攻击方法攻击硬件支持嵌入式系统程序指令标记时候的计算负担,从而提高了硬件支持嵌入式系统程序指令标记的安全性,解决了由于硬件支持嵌入式系统程序指令标记容易暴露所引发的安全问题。
3、优点及功效:
这种硬件支持嵌入式系统程序指令标记的保护方法具有以下几个优点:
(1)本专利通过对指令增加后缀,由于每一个指令的指令起止地址都不同,等效于改变了杂凑算法的结构,攻击者需要对每一个指令重新计算一个彩虹表进行攻击,加重了攻击者的计算负担,提高了监控模型的安全性。
(2)本专利使用的干扰信息是指令起止地址,不需要另外生成随机干扰信息,并且在静态模型中不需要额外增加空间保存这些干扰信息,从而在提高安全性的同时相当于节省了存储空间。
(3)本专利中干扰信息的添加是以指令和干扰信息的长度达到安全指令长度为目标的,因此对于长度较长的指令,在程序执行时候计算动态散列值的过程所消耗的计算时间会更加合理。
附图说明
图1是本发明所述的保护方法流程图。
具体实施方式
本发明利用指令起止地址的拼接作为干扰信息,干扰信息与指令一起作为杂凑算法的输入,然后把杂凑算法的输出,即散列值作为指令标记的一部分。在指令运行时候,将指令起止地址重新按原来的方式组合成干扰信息,干扰信息和指令一起使用杂凑算法的硬件化电路再次计算一个散列值,然后这个散列值会和指令标记中的散列值进行比较,相同则表明指令完整且没有被篡改,不同则表明指令发生了改变。
本发明一种硬件支持嵌入式系统程序指令标记的保护方法,见图1所示,其具体实施步骤如下:
步骤1,读入指令基本块文件。其中,指令基本块文件指的是由多个指令基本块组成的文件,每个指令基本块中包括指令起止地址和指令两部分;
步骤2,确定安全指令长度。其中,安全指令长度会根据杂凑算法的复杂程度和具体的安全需求综合确定;
步骤3,对每一个指令基本块,将指令的长度与安全指令长度比较,如果指令的长度小于安全指令长度,则进行步骤4,否则进行步骤5并记录对应的指令的拼接次数为0。其中,拼接次数指的是指令起止地址与指令起止地址拼接的次数;
步骤4,用指令起止地址组合成干扰信息,干扰信息的长度和指令的长度相加应该满足大于安全指令长度的要求,再将指令和干扰信息按顺序拼接到一起组合成新的包含干扰信息的“指令”。其中,指令起止地址的组合方式是指令起止地址自身的拼接,拼接次数记为n,其中,拼接次数n选取为满足要求的最小的拼接次数;
步骤5,以拼接后的指令作为杂凑算法的输入,得到输出静态散列值,其中,静态散列值指的是指令执行之前计算得到的散列值,与下文中在指令执行时候计算得到的动态散列值相对应;
步骤6,将相对应的指令起止地址,指令起止地址的拼接次数和静态散列值保存下来作为指令标记;
步骤7,在安全嵌入式处理器运行时,安全嵌入式处理器的缓存中包含有指令和指令起止地址信息。对应前述缓存中的指令起止地址在指令标记中搜索出拼接次数和静态散列值;
步骤8,按照步骤4的方式将指令、指令起止地址根据拼接次数进行拼接,得到经过拼接后的指令,拼接次数为0的指令不用拼接;
步骤9,以经过步骤8过程后的指令作为杂凑算法的硬件化电路的输入,输出与指令标记中对应的静态散列值进行比较,其中,杂凑算法的硬件化电路的输出称为动态散列值;
步骤10,如果动态散列值和静态散列值相同,则表明指令完整且没有被篡改。如果动态散列值和静态散列值不同,表明指令发生了改变。
通过以上步骤,完成了对硬件支持嵌入式系统程序指令标记的保护,加重了攻击者在使用杂凑算法的攻击方法攻击硬件支持嵌入式系统程序指令标记时候的计算负担,从而提高了硬件支持嵌入式系统程序指令标记的安全性,解决了由于硬件支持嵌入式系统程序指令标记容易暴露所引发的安全问题。
Claims (1)
1.一种硬件支持嵌入式系统程序指令标记的保护方法,其特征在于:该方法具体步骤如下:
步骤1,读入指令基本块文件;该指令基本块文件指的是由多个指令基本块组成的文件,每个指令基本块中包括指令起止地址和指令两部分;
步骤2,确定安全指令长度;该安全指令长度会根据杂凑算法的复杂程度和具体的安全需求综合确定;
步骤3,对每一个指令基本块,将指令的长度与安全指令长度比较,如果指令的长度小于安全指令长度,则进行步骤4,否则进行步骤5并记录对应的指令的拼接次数为0;该拼接次数指的是指令起止地址与指令起止地址拼接的次数;
步骤4,用指令起止地址组合成干扰信息,干扰信息的长度和指令的长度相加应该满足大于安全指令长度的要求,再将指令和干扰信息按顺序拼接到一起组合成新的包含干扰信息的“指令”;该指令起止地址的组合方式是指令起止地址自身的拼接,拼接次数记为n,该拼接次数n选取为满足要求的最小的拼接次数;
步骤5,以拼接后的指令作为杂凑算法的输入,得到输出静态散列值;该静态散列值指的是指令执行之前计算得到的散列值,与下文中在指令执行时候计算得到的动态散列值相对应;
步骤6,将相对应的指令起止地址,指令起止地址的拼接次数和静态散列值保存下来作为指令标记;
步骤7,在安全嵌入式处理器运行时,安全嵌入式处理器的缓存中包含有指令和指令起止地址信息;对应前述缓存中的指令起止地址在指令标记中搜索出拼接次数和静态散列值;
步骤8,按照步骤4的方式将指令、指令起止地址根据拼接次数进行拼接,得到经过拼接后的指令,拼接次数为0的指令不用拼接;
步骤9,以经过步骤8过程后的指令作为杂凑算法的硬件化电路的输入,输出与指令标记中对应的静态散列值进行比较,该杂凑算法的硬件化电路的输出称为动态散列值;
步骤10,如果动态散列值和静态散列值相同,则表明指令完整且没有被篡改;如果动态散列值和静态散列值不同,表明指令发生了改变;
通过以上步骤,完成了对硬件支持嵌入式系统程序指令标记的保护,加重了攻击者在使用杂凑算法的攻击方法攻击硬件支持嵌入式系统程序指令标记时候的计算负担,从而提高了硬件支持嵌入式系统程序指令标记的安全性,解决了由于硬件支持嵌入式系统程序指令标记容易暴露所引发的安全问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610597187.7A CN106203099B (zh) | 2016-07-26 | 2016-07-26 | 一种硬件支持嵌入式系统程序指令标记的保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610597187.7A CN106203099B (zh) | 2016-07-26 | 2016-07-26 | 一种硬件支持嵌入式系统程序指令标记的保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106203099A true CN106203099A (zh) | 2016-12-07 |
CN106203099B CN106203099B (zh) | 2019-02-05 |
Family
ID=57495906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610597187.7A Active CN106203099B (zh) | 2016-07-26 | 2016-07-26 | 一种硬件支持嵌入式系统程序指令标记的保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203099B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220560A (zh) * | 2017-06-22 | 2017-09-29 | 北京航空航天大学 | 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法 |
CN109325360A (zh) * | 2018-09-06 | 2019-02-12 | 北京三快在线科技有限公司 | 信息管理方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101351A1 (en) * | 2001-11-28 | 2003-05-29 | Pierre-Yvan Liardet | Blocking of the operation of an integrated circuit |
CN101706857A (zh) * | 2009-10-10 | 2010-05-12 | 北京派瑞根科技开发有限公司 | 高安全信息系统 |
CN102034055A (zh) * | 2009-10-10 | 2011-04-27 | 北京派瑞根科技开发有限公司 | 基于高安全信息系统的网络系统平台 |
US20140230077A1 (en) * | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
-
2016
- 2016-07-26 CN CN201610597187.7A patent/CN106203099B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101351A1 (en) * | 2001-11-28 | 2003-05-29 | Pierre-Yvan Liardet | Blocking of the operation of an integrated circuit |
CN101706857A (zh) * | 2009-10-10 | 2010-05-12 | 北京派瑞根科技开发有限公司 | 高安全信息系统 |
CN102034055A (zh) * | 2009-10-10 | 2011-04-27 | 北京派瑞根科技开发有限公司 | 基于高安全信息系统的网络系统平台 |
US20140230077A1 (en) * | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220560A (zh) * | 2017-06-22 | 2017-09-29 | 北京航空航天大学 | 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法 |
CN109325360A (zh) * | 2018-09-06 | 2019-02-12 | 北京三快在线科技有限公司 | 信息管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106203099B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10630463B2 (en) | Meta block chain | |
CN107659543B (zh) | 面向云平台apt攻击的防护方法 | |
RU2617654C2 (ru) | Система и способ формирования набора антивирусных записей, используемых для обнаружения вредоносных файлов на компьютере пользователя | |
US11514365B2 (en) | Immutable watermarking for authenticating and verifying AI-generated output | |
CN105426748B (zh) | 一种规则文件的更新方法和设备 | |
Stefanov et al. | ObliviStore: High Performance Oblivious Distributed Cloud Data Store. | |
CN108255579A (zh) | 一种基于kvm平台的虚拟机管理方法及装置 | |
CN107861793A (zh) | 虚拟硬件平台启动方法、装置、设备及计算机存储介质 | |
Apostal et al. | Password recovery using MPI and CUDA | |
CN108200053A (zh) | 记录apt攻击操作的方法及装置 | |
CN108229162A (zh) | 一种云平台虚拟机完整性校验的实现方法 | |
CN103064706A (zh) | 虚拟机系统的启动方法和装置 | |
CN106203099A (zh) | 一种硬件支持嵌入式系统程序指令标记的保护方法 | |
CN106209919A (zh) | 一种网络安全防护方法及网络安全防护系统 | |
CN105491069A (zh) | 云存储中基于抵抗主动攻击的完整性验证方法 | |
CN103618703B (zh) | 一种云计算数据安全边界保护方法 | |
CN103944720B (zh) | 一种使动态令牌时间同步的方法 | |
CN101262373B (zh) | 一种计算机网络入侵定位系统和方法 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
KR102307483B1 (ko) | 순차 결합을 지원하는 전방향 안전 서명 방법 및 그 장치 | |
CN101355428B (zh) | 采用增量检验来保护数据完整性的方法 | |
CN109472600B (zh) | 一种区块链可信验证方法及装置 | |
CN106130969B (zh) | 一种云计算网络的安全控制方法、及系统 | |
US20090043771A1 (en) | Systems, methods and computer products for ensuring data integrity of a storage system | |
CN109214184A (zh) | 一种Android加固应用程序通用自动化脱壳方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |