系统运行中指令流的安全检测和容错方法技术方案

技术编号:15691389 阅读:122 留言:0更新日期:2017-06-24 04:33
本发明专利技术公开了一种系统运行中指令流的安全检测和容错方法,该方法在原始指令流和执行指令流之间增加了一级作为缓冲的指令流,被称为中间指令流,设置PRAM存储中间指令流,PFLASH中存储原始指令流,FLASH和CPU之间增加一级缓存中间指令流,缓存的采用类Cache的结构,不需要编址,指令流的存储和检测都由硬件自动完成。可以方便对原始指令流的读写和权限进行管理,还可以将攻击产生的故障隔离在原始指令流之外,更方便的对攻击进行安全检测和容错管理。

Safety detection and fault tolerance method of instruction stream in system operation

The invention discloses an instruction flow system in the operation of security detection and fault tolerance method, the method and implementation of the flow level as a buffer of the instruction stream increase instruction stream between the original instruction, called intermediate instruction stream, set the PRAM to store intermediate instruction stream, PFLASH stored in the original instruction stream, between FLASH and the increase of CPU level cache intermediate instruction stream, cache using Cache structure, does not need to be addressed, storage and detection of the instruction stream is completed automatically by hardware. It is easy to manage the read, write and authority of the original instruction stream, and also to isolate the attack fault from the original instruction stream, so that it is more convenient for security detection and fault tolerance management of the attack.

【技术实现步骤摘要】
系统运行中指令流的安全检测和容错方法
本专利技术属于指令流
,特别涉及系统运行中指令流的安全检测和容错技术。
技术介绍
指令流是CPU要运行的指令集合,决定着CPU执行的功能。如果指令流有故障,则CPU将执行错误的指令,引起系统功能紊乱或崩溃。所以,在系统运行中保证指令流的可靠性和正确性是CPU正确运行的前提。同时,指令流也是各种攻击的重点和目标,它们需要篡改指令,挟持CPU,进行攻击。由此可见,保证指令流的可靠性和正确性是保证系统可靠性和安全性的关键,而且,对指令流进行监控和安全检测可以对绝大部分的攻击起到有效的防护作用。如专利申请201210057989.0公开了一种用于基于由计算单元在执行程序期间被执行的指令算出签名的设备和方法。该方法包括:当接收到中断请求时从签名模块中借助与中断请求相关的中断例程的程序语句读出与所中断的程序相关的签名,借助中断例程的程序语句存储该签名并且在离开中断例程之前借助中断例程的程序语句将所存储的签名写到签名模块中,或者当对子函数进行调用时,在调用子函数之前借助引起签名相对改变的程序语句使签名寄存器中的签名与子函数的签名相适配,以及在从子函数返回到程序的从中实现子函数的调用的程序段之后,借助其他的引起签名相对改变的程序语句来使签名寄存器中的签名与所述程序段的签名相适配。然而,由于该方法是通过执行例程的中断请求结合签名,进行认证,调用相关子函数,具有一定的安全检测功能,但是并具备容错功能,且该方法效率不高,且并不能避免软件的攻击。
技术实现思路
针对上述问题,本专利技术提供了一种系统运行中指令流的安全检测和容错方法,该方法FLASH和CPU之间增加一级缓存,既可以方便对原始指令流的读写和权限进行管理,还可以将攻击产生的故障隔离在原始指令流之外,更方便的对攻击进行安全检测和容错管理。本专利技术的另一个目的在于提出一种系统运行中指令流的安全检测和容错方法,该方法实现简便,安全可靠,且能够有效地避免外来攻击。为实现上述目的,本专利技术的技术方案为:一种系统运行中指令流的安全检测和容错方法,其特征在于在FLASH等非挥发性存储器中存储的经过安全认证的指令流称为原始指令流,将CPU接收到的实际执行的指令流称为执行指令流,在原始指令流和执行指令流之间增加了一级作为缓冲的指令流,被称为中间指令流,设置PRAM存储中间指令流,PFLASH中存储原始指令流,FLASH和CPU之间增加一级缓存中间指令流,缓存的采用类Cache的结构,不需要编址,指令流的存储和检测都由硬件自动完成。可以方便对原始指令流的读写和权限进行管理,还可以将攻击产生的故障隔离在原始指令流之外,更方便的对攻击进行安全检测和容错管理。为了实现对指令流的安全检测和容错,我们将指令流分级处理。在原始指令流和执行指令流之间增加了一级作为缓冲的中间指令流,原始指令流在输出给CPU成为执行指令流之前,先进行一步缓存,通过中间指令流既可以方便对原始指令流的读写和权限进行管理,还可以将攻击产生的故障隔离在原始指令流之外,更方便的对攻击进行安全检测和容错管理。系统的原始指令流和原始数据流存储在非挥发的FLASH中,为了方便系统运行时对指令流的动态安全检测和容错,将非挥发FLASH分成若干块,且每个块的大小一样,同时,满足每一个块不能把程序和数据混存,即一个块内要么都是程序,要么都是数据,不能既有程序又有数据。在实际存储中存储指令流的FLASH块和存储数据流的FLASH块都在同一块FLASH中,而且一个FLASH块是指令流FLASH块还是数据流FLASH块也可以根据需要确定和改变。简言之,FLASH可以分成两个组成部分,一个是存储原始指令流的PFLASH,另一个是存储原始数据流的DFLASH。程序RAM和数据RAM,也叫PRAM和DRAM,是指令流的动态安全检测和容错的关键,它们实现了对指令流和数据流的分级管理,也是存储中间指令流的存储器。程序RAM和数据RAM不独立编址,它的读写和替换由硬件自动完成;同时因为安全检测和容错过程与软件无关,也增强了该方法对软件攻击的检测效果。程序RAM和数据RAM也分成若干块,块的大小和FLASH中块的大小相同,程序RAM中的块只存储程序;数据RAM中的块只存储数据。所述PFLASH不能轻易被写入,只有经过认证的程序才能由DMA在特定的条件下才能将新程序写入PFLASH,否则,PFLASH不开放写权限。PFLASH的读操作同样是由DMA发起的。在需要读PFLASH的时候,DMA将PFLASH中对应的一块指令流传输给PRAM,为了提高系统的速度,同时将CPU需要的指令发给CPU。由于增加了读写访问的权限,软件攻击很难进入到PFLASH中,从而实现了PFLASH对软件攻击的静态防护。由于FLASH的特殊制作工艺,使FLASH的抗硬件攻击能力比RAM要强的多。在进行硬件攻击的时候,RAM比FLASH更敏感,通过对RAM的安全检测可以做到在FLASH出错前就检测出硬件攻击,达到对PFLASH防护的目的。进一步,所述FLASH具有保护电路,且该FLASH保护电路具有权限管理模块及指令多重纠错码产生和状态维护模块,总线主机(可能是CPU也可能是DMA)先给FLASH传送一段验证码,FLASH保护电路的权限管理模块接收这段验证码,并进行验证。如果通过验证,权限管理模块输出允许写入信号,如果没有通过验证,权限管理模块输出报警信号。所述FLASH保护电路的权限管理模块同时维护着指令块、数据块的标志位。FLASH保护电路的权限保护电路管理模块产生的允许写入信号和接下来总线上传输的地址、数据和控制信号一起,输入给指令多重纠错码产生和状态维护模块。更进一步,为了保证PFLASH可靠性和安全性,将块纠错码和指令纠错码联合使用,块纠错码在程序进行认证时产生,并和程序一起传输、存储。对于指令块,还需要保存它的块多重纠错码。在FLASH保护电路生成的多重纠错码是以指令为单位产生的纠错码。除了对指令流产生纠错码之外,对块多重纠错码也会产生指令多重纠错码,这样的双重保护可以保证块多重纠错码的可靠性和正确性。在FLASH保护电路中同样维护这FLASH块的状态信息,如块有效标志位、块替换日志等等。在指令流从FLASH中读出时,指令多重纠错码产生和状态维护模块计算读出指令流的指令多重纠错码,和写入时计算的纠错码值进行比较,如果一致说明指令流正确,如果不一致并不能纠正,说明指令流有纠正不了的故障,发出报警信号。如果块多重纠错码的指令多重纠错码显示有故障,则说明块多重纠错码已经失效,已经无法保证指令流动态安全检测的可靠性,发出报警信号,并停止运行指令流。有了PFLASH的权限管理和联合多重纠错码的保护,可以保证FLASH的可靠性和正确性。PRAM是存储中间指令流的地方,也是可以集中攻击产生的故障的地方。通过对PRAM的安全检测和容错就可以检测出大部分软件攻击和硬件攻击。PRAM以块为单位进行传输。当PRAM接收到CPU的取指信号和取指地址后,判断该指令所在的块是否已经在PRAM中。如果在,CPU取指执行;如果不在,DMA从PFLASH中搬运该块给PRAM,同时搬运该块的块多重纠错码,存储在保护电路中。在指令流被CPU执行的过程中,PRAM保护电路时刻检本文档来自技高网...
系统运行中指令流的安全检测和容错方法

【技术保护点】
一种系统运行中指令流的安全检测和容错方法,其特征在于在FLASH等非挥发性存储器中存储的经过安全认证的指令流称为原始指令流,将CPU接收到的实际执行的指令流称为执行指令流,在原始指令流和执行指令流之间增加了一级作为缓冲的指令流,被称为中间指令流,设置PRAM存储中间指令流,PFLASH中存储原始指令流,缓存中间指令流采用类Cache的结构,不需要编址,指令流的存储和检测都由硬件自动完成。

【技术特征摘要】
1.一种系统运行中指令流的安全检测和容错方法,其特征在于在FLASH等非挥发性存储器中存储的经过安全认证的指令流称为原始指令流,将CPU接收到的实际执行的指令流称为执行指令流,在原始指令流和执行指令流之间增加了一级作为缓冲的指令流,被称为中间指令流,设置PRAM存储中间指令流,PFLASH中存储原始指令流,缓存中间指令流采用类Cache的结构,不需要编址,指令流的存储和检测都由硬件自动完成。2.如权利要求1所述的系统运行中数据流的安全检测和容错方法,其特征在于系统的原始指令流和原始数据流存储在非挥发的FLASH中,非挥发FLASH分成若干块,且每个块的大小一样,同时,一个块内要么都是程序,要么都是数据。3.如权利要求1所述的系统运行中数据流的安全检测和容错方法,其特征在于所述PFLASH不能轻易被写入,只有经过认证的程序才能由DMA在特定的条件下才能将新程序写入PFLASH,否则,PFLASH不开放写权限。4.如权利要求3所述的系统运行中数据流的安全检测和容错方法,其特征在于程序RAM和数据RAM,也叫PRAM和DRAM,分别实现了对指令流和数据流的分级管理;程序RAM和数据RAM不独立编址,程序RAM和数据RAM也分成若干块,块的大小和FLASH中块的大小相同,程序RAM中的块只存储程序;数据RAM中的块只存储数据。5.如权利要求2所述的系统运行中数据流的安全检测和容错方法,其特征在于所述FLASH具有保护电路,且该FLASH保护电路具有权限管理模块及指令多重纠错码产生和状态维护模块,总线主机先给FLASH传送一段验证码,FLASH保护电路的权限管理模块接收这段验证码,并进行验证;所述FLASH保护电路的权限管理模块同时维护着指令块、数据块的标志位,FLASH保护电路的权限保护电路管理模块产生的允许写入信号和接下来总线上传输的地址、数据和控制信号一起,输入给指令多重纠错码产生和状态维护模块。6.如权利要求5所述的系统运行中数据流的安全检测和容错方法,其特征在于为了保证PFLASH可靠性和安全性,将块纠错码和指令纠错码联合使用,块纠错码在程序进行认证时产生,并和程序一起传输、存储;对于指令块,还需要保存它的块多重纠错码;在FLASH保护电路生成的多重纠错码是以...

【专利技术属性】
技术研发人员:张景
申请(专利权)人:深圳前海生生科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1