一种芯片安全监视方法和安全监视芯片与流程

文档序号:17186561发布日期:2019-03-22 21:24阅读:292来源:国知局
一种芯片安全监视方法和安全监视芯片与流程

本发明涉及芯片安全领域,尤其涉及一种芯片安全监视方法和安全监视芯片。



背景技术:

芯片安全最近引起了信息产业界的广泛注意。在2018年初被发现的spectre和meltdown漏洞利用芯片设计中常用的分支预测和乱序执行可以对高保密级别的内存信息进行高速读取,严重威胁了intel、amd和arm的多种处理器。

芯片安全隐患可以在设计过程中用针对性的验证方法去发现和消除,但是这样做有两大缺点:一是芯片设计的复杂度日益增加,验证的完整性无法得到保障;二是很多芯片安全漏洞本身就是芯片性能优化的结果,比如前面提到的分支预测和乱序执行。消除或缓解这类漏洞就意味着在芯片性能上的牺牲。

本申请提出用实时监控的方法,而不是用事先发现并无条件消除的方法,来应对芯片安全攻击,从而规避上述两个缺点。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种芯片安全监视方法和安全监视芯片。

本发明的目的是通过以下技术方案来实现的:一种芯片安全监视方法,包括以下步骤:

被植入芯片的监视器对芯片操作进行监视;

其中,所述的监视器包括第一状态机和/或第二状态机,所述的第一状态机为由已知的芯片攻击所建立的模型对应得到,所述的第二状态机为由断言描述的安全规则/安全属性转换而成。

进一步地,所述的监视器包括一个初始状态和至少一个跟踪状态,所述的跟踪状态中至少包括一个报错状态;

所述的对芯片操作进行监视包括以下子步骤:

监视器对每次芯片操作后的状态进行一次判断,如果这个状态是一个报错状态,监视器会发出报错信号;

监视器在其当前状态不是报错状态的情况下,根据操作决定下一个状态,包括以下三种情况:(1)解除跟踪,回到初始状态;(2)停留在当前状态,等待下一个操作;(3)进入下一个跟踪状态。

进一步地,所述的对芯片操作进行监视还包括:

芯片开机后,所述监视器进入初始状态。

进一步地,在监视器的状态是一个报错状态时,不仅发出报错信号,而且采取反攻击措施。

进一步地,所述的第二状态机的转换步骤包括:

确定描述安全规则/安全属性的断言,所述的断言的语义基于规范表达式;

生成非确定自动机;

自动机最小化;

生成确定自动机。

本发明还提供一种安全监视芯片,包括:

芯片本体;

以及被植入芯片本体的监视器,所述的监视器对芯片本体的操作进行监视;

其中,所述的监视器包括第一状态机和/或第二状态机,所述的第一状态机为由已知的芯片攻击所建立的模型对应得到,所述的第二状态机为由断言描述的安全规则/安全属性转换而成。

进一步地,所述的监视器包括一个初始状态和至少一个跟踪状态,所述的跟踪状态中至少包括一个报错状态;

所述的对芯片本体的操作进行监视包括:

监视器对每次芯片操作后的状态进行一次判断,如果这个状态是一个报错状态,监视器会发出报错信号;

监视器在其当前状态不是报错状态的情况下,根据操作决定下一个状态,包括以下三种情况:(1)解除跟踪,回到初始状态;(2)停留在当前状态,等待下一个操作;(3)进入下一个跟踪状态。

进一步地,所述的对芯片本体的操作进行监视还包括:

芯片本体开机后,所述监视器进入初始状态。

进一步地,在监视器的状态是一个报错状态时,不仅发出报错信号,而且采取反攻击措施。

进一步地,所述的第二状态机的转换包括:

确定描述安全规则/安全属性的断言,所述的断言的语义基于规范表达式;

生成非确定自动机;

自动机最小化;

生成确定自动机。

本发明的有益效果是:

(1)本发明的监视器涵盖了已知的攻击模式,也涵盖了安全属性能够排除的未知攻击模式。特别是基于安全属性的监视器,由于断言语言的表述力,安全属性将会有极大的包容性,而芯片设计中不需要复杂又耗时的安全属性验证,也避免了填补安全漏洞可能带来的性能上的损失。

(2)本发明在保留的芯片性能优化的情况下,实时的监控保证了攻击在刚刚开始实施即被制止,芯片的安全性得到保障。

(3)由于芯片攻击模式的共性,这些监视器可以被当作芯片安全ip被广泛的在利用。

附图说明

图1为spectre攻击的监视器/状态机的状态转换示意图;

图2a~图2c为规范表达式到状态机的转换示意图;

图3为本发明芯片结构示意图。

具体实施方式

下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,属于“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方向或位置关系为基于附图所述的方向或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,属于“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

本实施例1提供一种芯片安全监视方法,本实施例包括对已知的攻击模式的监视,也涵盖了能够排除的未知攻击模式。具体地,本方法包括以下步骤:

被植入芯片的监视器对芯片操作进行监视;

其中,所述的监视器包括第一状态机和/或第二状态机,所述的第一状态机为由已知的芯片攻击所建立的模型对应得到,所述的第二状态机为由断言描述的安全规则/安全属性转换而成。

其中,在本实施例中,监测器的职能就是在芯片受到攻击的时候报警或中断芯片运行,以防止保密信息泄露或被篡改。

监视器的状态机模型被植入芯片成为芯片设计和流片的一部分。

而监测器的生成有两种方式:

一是针对已知的芯片攻击建立模型,攻击模型直接对应于状态机。

即在本实施例中,基于已知的攻击模型的监视器生成就是一个第一状态机的设计过程。即从一个初始状态开始,攻击者的每一个操作会触发另一个状态,直到最后实施攻击。

在现有技术中,spectre是一个基于cpu分叉预测和乱序执行的芯片安全攻击。如图1所示,为spectre攻击场景一的状态机。

其中,在图1中,圆圈和箭头分别代表状态和状态转换。圆圈序号为0的状态是初始状态,圆圈序号为5的是攻击状态,而圆圈序号是6的是安全状态。

该图是不确定自动机,初始状态永远会转换到另一个初始状态,以保证状态机能监视到任何时候开始的攻击。

该状态机会跟踪攻击准备的每一步,直到攻击实施,即进入圆圈序号5的攻击状态时进行报警。在本实施例中,攻击准备步骤为5步,对应于状态序列0,1,2,3,4,5的5个转换。

具体地,转换entry_point是可能攻击的第一步,表示目前运行为低保密级别的用户程序,并且有两个spectre标志性的矢量被声明。接下来是user_read,即分叉预测下对第一个矢量中一个字节的读取。再往下是cache_load,即对第二个矢量相应于用前面读取字节计算出的地址的字节,此时次操作将该字节调入缓存。最后两个转换是对两个内存字节的读取。两个读取地址分别假设user_read读出的字节的特定位为0和1,用cache_load中的地址计算方法算出。其中一个读取必然对应cache_load操作中调入缓存的字节,这个读取的速度要远快于另外一个。这样前述特定位是0还是1就可以确定了。重复测试不同的特定位就可以确定整个字节。

这就是spectre,或基于缓存的侧信道攻击。

需要注意的是,如果5个攻击准备步骤的任意一步没有实现,则状态机进入安全状态(即圆圈序号为6的状态),监视取消。

但是由于初始状态不断的重复自己,使得任何可疑的操作被并行跟踪,一个跟踪的取消不会影响到其他跟踪。

二是从信息安全的要求出发,制定相应的安全规则或安全属性。在本实施例中,安全属性通常断言语言来描述,需要用断言综合的方式转换为状态机。

即在本实施例中,基于安全属性综合的监视器生成与第一种情况的监视器生成是一个完全不同的过程。

首先在本实施例中,安全属性被分为对保密信息的读和写两大类。前者能够泄露信息,后者则篡改信息。spectre和meltdown都属于前者。

而安全属性,比如关于保密信息读取的属性,可以表达为“当前操作用户为低保密级别时,操作不允许对高保密级别的数据进行任何形式的读取,包括读、测试或任何因为保密数据而引起的内存或缓存变化”。

当然,这条普适的属性会根据具体的应用场景而做调整,比如指令集允许的操作,微构架中缓存的使用规则等。

而安全属性必须经过综合才能生成监视器所需的第二状态机。本实施例中安全属性是用systemverilogassertion(sva)断言语言来描述的。sva的语义基于规范表达式(re,regularexpression)。

re到状态机的转换要经过非确定自动机,确定自动机,和自动机最小化等步骤。图2就是一个例子。

具体地,对于systemverilog断言“a[*1:2]##1b[*]##1c”,其对应的规范表达式“(a|aa)b*c”。而对应地断言综合分为三步,如图2所示:

(a)如图2a中所示,生成非确定自动机;(b)如图2b中所示,自动机最小化,由于该步骤中(a)的状态2和3是等价的,因此可以合并,从而实现最小化;(c)生成确定自动机。

具体地,自动机的功能是根据特定的外部输入信号来改变状态,以实现一定的功能,比如识别输入信号的特征,而本实施例即是用状态机来识别对芯片的攻击。

本实施例的a,b,c就是状态机的输入信号,可以看作是三个字符,此状态机的功能是识别满足规范表达式“(a|aa)b*c”的字符串。此表达式的含义是:任何以一个或两个a开始,然后是0个或0个以上b,然后是一个c的字符串。比如”abc”,“ac”,“aac”,“aabbbc”都是这样的字符串。

其中,图2a、图2b和图2c中的序号为0的圆圈代表初始状态,图2a中的序号为4的圆圈和图2b中序号为3的圆圈代表接受状态(即到达该状态所用的字符串满足该规范表达式的描述),而图2a中的序号为5的圆圈、图2b中序号为4的圆圈和图2c中序号为3的圆圈代表拒绝状态(即到达该状态所用的字符串不满足该规范表达式的描述)。

另外,在本实施例的优选方案中,在芯片实际的运行中,监视器会自动跟踪可能的攻击模式,并在攻击被实施的时候报警并采取记录和停机等措施。

具体地,所述的监视器包括一个初始状态和至少一个跟踪状态,所述的跟踪状态中至少包括一个报错状态;

所述的对芯片操作进行监视包括以下子步骤:

监视器对每次芯片操作后的状态进行一次判断,如果这个状态是一个报错状态,监视器会发出报错信号;

监视器在其当前状态不是报错状态的情况下,根据操作决定下一个状态,包括以下三种情况:(1)解除跟踪,回到初始状态;(2)停留在当前状态,等待下一个操作;(3)进入下一个跟踪状态。图1中概况了其中一种流程。

例如,在图1中,对应于圆圈序号4到到圆圈序号5的操作,即为报错状态。

对应于任何到圆圈序号6的操作,均为解除跟踪,回到初始状态;从圆圈序号0到圆圈序号0的操作、从圆圈序号6到圆圈序号6的操作,为停留在当前状态,等待下一个操作;而从圆圈序号0到圆圈序号1、圆圈序号1到圆圈序号2、圆圈序号2到圆圈序号3、圆圈序号3到圆圈序号4的操作,均为进入下一个跟踪状。

另外,在本实施例的优选方案中,所述的对芯片操作进行监视还包括:

芯片开机后,所述监视器进入初始状态。

同时在本实施例的优选方案中,在监视器的状态是一个报错状态时,不仅发出报错信号,而且采取反攻击措施。比如储存攻击路径和来源,以及自动停机等等。

实施例2

本实施例提供一种安全监视芯片,本实施例具有与实施例1相同的发明构思,具体地,如图3所示,芯片包括:

芯片本体;

以及被植入芯片本体的监视器,所述的监视器对芯片本体的操作进行监视;

其中,所述的监视器包括第一状态机和/或第二状态机,所述的第一状态机为由已知的芯片攻击所建立的模型对应得到,所述的第二状态机为由断言描述的安全规则/安全属性转换而成。

其中,如图3所示,监视器的数量为n个。

更优地,在本实施例中,所述的监视器包括一个初始状态和至少一个跟踪状态,所述的跟踪状态中至少包括一个报错状态;

所述的对芯片本体的操作进行监视包括:

监视器对每次芯片操作后的状态进行一次判断,如果这个状态是一个报错状态,监视器会发出报错信号;

监视器在其当前状态不是报错状态的情况下,根据操作决定下一个状态,包括以下三种情况:(1)解除跟踪,回到初始状态;(2)停留在当前状态,等待下一个操作;(3)进入下一个跟踪状态。

更优地,在本实施例中,所述的对芯片本体的操作进行监视还包括:

芯片本体开机后,所述监视器进入初始状态。

更优地,在本实施例中,在监视器的状态是一个报错状态时,不仅发出报错信号,而且采取反攻击措施。

更优地,在本实施例中,所述的第二状态机的转换包括:

确定描述安全规则/安全属性的断言,所述的断言的语义基于规范表达式;

生成非确定自动机;

自动机最小化;

生成确定自动机。

本发明实施例提供的一种安全监视芯片中相关部分的说明请参见本发明实施例提供的一种芯片安全监视方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应的技术方案实现原理一致的部分并未详细说明,以免过多赘述。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1