芯片访问安全的控制装置及芯片系统的制作方法

文档序号:17928170发布日期:2019-06-15 00:34阅读:119来源:国知局
芯片访问安全的控制装置及芯片系统的制作方法

本发明涉及芯片检测技术领域,特别涉及一种芯片访问安全的控制装置及芯片系统。



背景技术:

随着芯片技术的发展,目前市面上的芯片一般都被设计为多用户芯片,即一个芯片可以被分配给多个用户访问和使用。一个多用户芯片要为每个用户提供安全的服务,就必须建立可靠的芯片访问安全的控制机制,控制用户的访问行为,使每个用户都只能访问自己的数据,而不能访问其他用户的数据。

现有的一种芯片访问安全的控制方法是,在芯片中写入具有访问权限控制功能的软件,通过运行该软件控制用户的访问行为。在采用这种控制方法的芯片中,由于并未对芯片的硬件结构进行修改,不同用户的数据之间仍然存在硬件通路,一旦权限控制软件失效,芯片中的数据就可能发生泄露。因此,这种基于软件的访问安全的控制方法安全性较低。



技术实现要素:

基于上述现有技术的不足,本发明提出一种芯片访问安全的控制装置及芯片系统,以提高多用户芯片的芯片访问的安全性。

本发明第一方面公开了一种芯片访问安全的控制装置,包括:

多个安全主防火墙单元,其中,一个所述安全主防火墙单元对应一个总线主控单元,用于利用第一安全检测规则,控制自身对应的总线主控单元通过功能总线对总线受控单元的访问;所述第一安全检测规则包括所述总线主控单元的访问权限;

多个安全从防火墙单元,其中,一个所述安全从防火墙单元对应一个总线受控单元,用于利用第二安全检测规则,控制自身对应的总线受控单元被所述总线主控单元通过所述功能总线的访问;所述第二安全检测规则包括所述总线受控单元的被访问权限;

安全处理器,用于对每一个所述安全主防火墙单元配置所述第一安全检测规则,并用于对每一个所述安全从防火墙单元配置所述第二安全检测规则。

可选的,所述安全处理器还用于调整每一个所述安全主防火墙单元中配置的第一安全检测规则,以及调整每一个所述安全从防火墙单元中配置的第二安全检测规则。

可选的,所述安全处理器通过安全总线,与每一个所述安全主防火墙单元和每一个所述安全从防火墙单元进行通信。

可选的,所述第一安全检测规则的任务粒度大于所述第二安全检测规则。

可选的,所述安全主防火墙单元利用第一安全检测规则,控制自身对应的总线主控单元通过功能总线对总线受控单元的访问时,用于:

检测出自身对应的总线主控单元满足所述第一安全检测规则要求,向所述功能总线传递所述自身对应的总线主控单元发送的事务信息;

检测出自身对应的总线主控单元不满足所述第一安全检测规则要求,则截断所述自身对应的总线主控单元发送的事务信息。

可选的,所述安全主防火墙单元检测出自身对应的总线主控单元不满足所述第一安全检测规则要求,还用于:

向所述自身对应的总线主控单元返回响应信息;其中,所述响应信息包括表明访问正常的标志或者表明访问受限的标志。

可选的,所述安全从防火墙单元利用第二安全检测规则,控制自身对应的总线受控单元被所述总线主控单元通过所述功能总线的访问时,用于:

检测出通过所述功能总线进行访问的总线主控单元满足所述第二安全检测规则要求,向自身对应的总线受控单元发送所述功能总线传输的事务信息;

检测出所述通过所述功能总线进行访问的总线主控单元不满足所述第二安全检测规则要求,截断所述功能总线传输的事务信息。

可选的,所述安全从防火墙单元包括多个寄存器,每一个所述寄存器对应于一份可访问地址区间;其中,所述可访问地址区间由所述安全从防火墙单元对应的总线受控单元的可访问地址划分得到;

每一个所述寄存器用于:控制所述总线主控单元是否允许通过功能总线访问所述对应的可访问地址区间。

可选的,所述安全主防火墙单元包括多个寄存器,每一个所述寄存器对应于所述安全主防火墙的一个线程;

每一个所述寄存器用于:控制所述对应的线程是否允许通过功能总线访问所述总线受控单元。

本发明第二方面公开了一种芯片系统,包括:

至少一条功能总线,对应每一条功能总线的总线主控单元和总线受控单元,以及对应每一条功能总线的芯片访问安全的控制装置;其中,所述芯片访问安全的控制装置如本发明第一方面任意一项所述。

本发明提供了一种芯片安全访问的控制装置及芯片系统,本发明提供的装置包括与总线主控单元一一对应的多个安全主防火墙单元、与总线受控单元一一对应的多个安全从防火墙单元和安全处理器。其中,安全主防火墙单元用于,根据包括总线主控单元的访问权限在内的第一检测规则控制自身对应的总线主控单元通过功能总线对总线受控单元的访问;安全从防火墙单元用于,根据包括总线受控单元的被访问权限在内的第二检测规则控制自身对应的总线受控单元被总线主控单元通过功能总线的访问;安全处理器用于配置安全主防火墙单元的第一检测规则和安全从防火墙的第二检测规则。本发明提供的技术方案中,每个总线主控单元和总线受控单元都被对应的防火墙单元与功能总线分隔,且总线主控单元的访问权限和总线受控单元的被访问权限都由对应的防火墙单元控制,使得每个总线主控单元和总线受控单元之间都不存在直接的硬件通路,即使在控制软件失效的情况下也不会发生数据泄露的情况,有效提高了芯片的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有的一种芯片的功能总线的结构示意图;

图2为本发明实施例提供的一种芯片安全访问的控制装置的结构示意图;

图3为本发明另一实施例提供的一种芯片安全访问的控制装置的结构示意图;

图4为本发明实施例提供的一种芯片系统的结构示意图。

具体实施方式

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

为了更好的理解本申请提供的芯片安全访问的控制装置,下面结合图1简要介绍现有芯片安全访问的控制技术以及现有的芯片的硬件结构。

一个芯片包括至少一个功能总线,其中的每个功能总线分别用于实现该芯片的特定功能(如数据总线,寄存器总线)。一个功能总线的结构如图1所示,其中的总线主控单元通过总线与总线受控单元连接,并且可以通过总线访问总线受控单元。总线主控单元,相当于是这个功能总线的一个处理器(例如:cpu,gpu等),总线受控单元,相当于是这个功能总线的一个缓存单元(例如:sram,dram等)。总线主控单元被分配给用户后,用户即可通过总线主控单元访问总线受控单元中属于该用户的数据,从而利用芯片运行各种应用。需要说明的是,一个功能总线中,总线主控单元的数量和总线受控单元的数量之间没有必然联系,也就是说,总线主控单元的数量可以大于总线受控单元的数量,也可以小于总线受控单元的数量。

当用户要使用芯片中的某个功能总线时,该功能总线会为用户分配一个总线主控单元,使用户能够基于分配的总线主控单元运行程序。因此,控制用户对于该功能总线中的总线受控单元的访问,可以通过控制被分配给这个用户的总线主控单元对总线受控单元的访问来实现。通过控制功能总线中每个总线主控单元对任意总线受控单元的访问,就可以在用户使用功能总线时,控制被分配给这个用户的总线主控单元对总线受控单元的访问,使这个用户对应的总线主控单元只能访问该用户的数据,而不能访问其他用户的数据,从而实现对用户访问行为的控制。

功能总线的总线主控单元对总线受控单元的访问,一般是通过传递访问请求的方式进行的,访问请求包括读取请求和写入请求两种,分别用于读取总线受控单元的数据和向总线受控单元写入数据。若总线主控单元需要向总线受控单元写入数据,则生成一个写入请求,其中包括要写入的数据和写入的目标地址,然后向总线受控单元发送这个写入请求,总线受控单元收到这个写入请求后,即在目标地址写入数据。若总线主控单元需要读取总线受控单元的数据,则生成一个读取请求,其中包括读取的起始地址和结束地址,总线受控单元收到读取请求后,将起始地址和结束地址之间的数据作为对读取请求的响应信息向总线主控单元单元传递,完成数据读取过程。上述访问请求以及对访问请求的响应信息,也可以认为是总线主控单元和总线受控单元之间传递的事务信息。

综上所述,控制总线主控单元对总线受控单元的访问,相当于是控制总线主控单元和总线受控单元之间的事务信息的传递,具体可以分为两方面进行,一方面是控制总线主控单元的事务信息向功能总线传递的过程,另一方面是控制通过功能总线传输的事务信息向总线受控单元传递的过程。

现有的芯片安全访问的控制技术,并未对图1所示的功能总线的结构进行改进,仅仅是在其中预先写入具有芯片安全访问的控制功能的软件,通过运行软件控制总线主控单元对总线受控单元的访问。而图1中各个总线主控单元通过功能总线直接连接到总线受控单元,即总线主控单元和总线受控单元之间存在直接的硬件通路,因此一旦软件失效,用户就可以通过总线主控单元就可以访问任意一个总线受控单元,导致总线受控单元中的数据泄露。

在介绍本申请实施例之前,需要说明的是,本申请任一实施例中提及的,安全主防火墙设置于自身对应的总线主控单元与功能总线之间,以及安全从防火墙设置于自身对应的总线受控单元与功能总线之间,是用于指代上述器件之间的通信关系,而不仅限于具体的位置关系。

安全主防火墙设置于自身对应的总线主控单元与功能总线之间,或者说,安全主防火墙将自身对应的总线主控单元与功能总线分隔,是指总线主控单元与功能总线之间传输的任何所有数据,都需要经过总线主控单元对应的安全主防火墙。类似的,安全从防火墙设置于自身对应的总线受控单元与功能总线之间,或者说,安全从防火墙将自身对应的总线受控单元与功能总线分隔,是指总线受控单元与功能总线之间传输的任何数据,都需要经过总线受控单元对应的安全从防火墙。

本申请实施例提供了一种芯片安全访问的控制装置,请参考图2,该装置包括以下结构:

多个安全主防火墙单元,其中,一个所述安全主防火墙单元对应一个总线主控单元,且安全主防火墙单元设置于自身对应的总线主控单元与功能总线之间,用于利用第一安全检测规则,控制自身对应的总线主控单元通过功能总线对总线受控单元的访问;所述第一安全检测规则包括所述总线主控单元的访问权限。

例如,本实施例包括三个安全主防火墙单元,分别是安全主防火墙单元201、202和203,依次对应总线主控单元211、212和213。

多个安全从防火墙单元,其中,一个所述安全从防火墙单元对应一个总线受控单元,且安全从防火墙单元设置于自身对应的总线受控单元与功能总线之间,用于利用第二安全检测规则,控制自身对应的总线受控单元被所述总线主控单元通过所述功能总线的访问;所述第二安全检测规则包括所述总线受控单元的被访问权限。

例如,本实施例包括三个安全从防火墙单元,分别是安全从防火墙单元204、205和206,依次对应总线受控单元214、215和216。

安全处理器,用于对每一个所述安全主防火墙单元配置所述第一安全检测规则,并用于对每一个所述安全从防火墙单元配置所述第二安全检测规则。

可选的,如图2所示,安全处理器通过安全总线与上述多个安全主防火墙单元和上述多个安全从防火墙单元连接,并且可以通过安全总线与安全主防火墙单元和安全从防火墙单元进行通信。

需要说明的是,安全总线只能通过安全处理器访问,而不允许通过安全处理器以外的其他器件访问。

可选的,安全处理器还可以根据芯片的使用情况,分别对安全主防火墙单元的第一检测规则和安全从防火墙单元的第二检测规则进行调整。

可选的,在配置检测规则时,通常使第一检测规则的任务粒度大于第二检测规则的任务粒度。任务粒度,是一个用于衡量检测规则的控制精度的概念。

下面结合一个实例对任务粒度进行说明。对于一个用于控制总线主控单元211对总线受控单元214的访问的检测规则,若这个检测规则直接控制总线主控单元211对总线受控单元214的所有访问,则认为这个检测规则的任务粒度较大;若这个检测规则对总线主控单元211对总线受控单元214的访问行为进行分类控制,则认为这检测规则的任务粒度较小。一个任务粒度较小的检测规则可以是:将总线受控单元的存储空间划分成多个存储区域(也可以认为是多个可访问地址区间),然后禁止总线主控单元211对总线受控单元214的第一存储区域进行写入,但允许读取该存储区域的数据;禁止总线主控单元211对总线受控单元214的第二存储区域进行读取或写入;允许总线主控单元211读取总线受控单元214的第三存储区域的数据,且允许对该区域进行写入。

本申请实施提供的芯片安全访问的控制装置包括与总线主控单元一一对应的,设置在总线主控单元与功能总线之间的多个安全主防火墙单元;与总线受控单元一一对应的,设置在总线受控单元与功能总线之间的多个安全从防火墙单元和安全处理器。其中,安全主防火墙单元用于,根据包括总线主控单元的访问权限在内的第一检测规则控制自身对应的总线主控单元通过功能总线对总线受控单元的访问;安全从防火墙单元用于,根据包括总线受控单元的被访问权限在内的第二检测规则控制自身对应的总线受控单元被总线主控单元通过功能总线的访问;安全处理器用于配置安全主防火墙单元的第一检测规则和安全从防火墙的第二检测规则。本发明提供的技术方案中,每个总线主控单元和总线受控单元都被对应的防火墙单元与功能总线分隔,且总线主控单元的访问权限和总线受控单元的被访问权限都由对应的防火墙单元控制,使得每个总线主控单元和总线受控单元之间都不存在直接的硬件通路,即使在控制软件失效的情况下也不会发生数据泄露的情况,有效提高了芯片的安全性。

上述实施例中,功能总线中包括三个总线主控单元和三个总线受控单元,因此本申请提供的装置包括与总线主控单元一一对应的三个安全主防火墙,以及与总线受控单元一一对应的三个安全从防火墙。然而,芯片的功能总线中,总线主控单元的数量和总线受控单元的数量都可以根据需要设置,不仅限于具体数值,同时,总线主控单元的数量与总线受控单元的数量也可以不相等,对应的,本申请实施例提供的芯片安全访问的控制装置中,安全主防火墙的数量与安全从防火墙的数量也可以根据芯片的功能总线的结构进行调整,而不限于上述实施例中的三个安全主防火墙和三个安全从防火墙。

请参考图3,下面结合一条设置有三个总线主控单元和五个总线受控单元的功能总线介绍本申请的另一实施例。

在下文中,分别用主控单元和受控单元指代总线主控单元和总线受控单元,分别用主防火墙和从防火墙指代安全主防火墙单元和安全从防火墙单元,主防火墙和从防火墙统称为防火墙。

本申请另一实施例提供了一种芯片访问安全的控制装置,该装置包括以下结构:

三个主防火墙,分别是主防火墙311、312和313,依次对应主控单元301、302和303,每个主防火墙都设置于自身对应的主控单元与功能总线之间,用于根据自身的第一检测规则控制自身对应的主控单元通过功能总线对受控单元的访问。第一检测规则包括主控单元的访问权限。

五个从防火墙,分别是从防火墙314、315、316、317和318,依次对应受控单元304、305、306、307和308,每个从防火墙都设置与自身对应的受控单元与功能总线之间,用于根据自身的第二检测规则控制自身对应的受控单元通过功能总线被主控单元访问。第二检测规则包括受控单元的被访问权限。

一个安全处理器,通过安全总线与主防火墙和从防火墙通信,用于配置及调整上述第一检测规则和第二检测规则。

其中,每个主防火墙和每个从防火墙都配置有安全寄存器,主防火墙的安全寄存器用于保存第一检测规则,从防火墙的安全寄存器用于保存第二检测规则。安全寄存器只能被安全处理器访问,或者说只能通过安全处理器访问。

访问权限和被访问权限,用于表示对主控单元和受控单元之间的通信行为的限制。某个主控单元具有对某个受控单元的访问权限,也可以认为是这个受控单元有被这个主控单元访问的权限。若一个主控单元具有一个受控单元的访问权限,表明这个主控单元至少可以对这个受控单元执行读取和写入两种操作中的一种,也可能是两种操作都可以,相对的,若一个主控单元没有某个受控单元的访问权限,表明这个主控单元既不能读取这个受控单元的数据,也不能向其中写入数据。一个主控单元要求访问一个受控单元,可以是要求写入数据和要求读取数据中的任意一种或组合,

如图3所示,主控单元通过主防火墙连接至功能总线,受控单元通过从防火墙连接至功能总线,主防火墙和从防火墙通过功能总线连接。

需要说明的是,芯片中的某个功能总线的主控单元的数量和受控单元的数量可以在设计芯片时根据需要确定,而并不仅限于图3所示的三个主控单元和五个受控单元。

总线,是指芯片上由多条线路组合构成的数据传输通道,其中的每条线路同一时间内只能传输一个比特(bit),通过将多条线路组合成一条总线,即可利用这条总线在同一时间内传输由多个比特组成的复杂的信息。

如图3所示的安全总线,是用于连接安全处理器与主/从防火墙的总线,芯片中的每条功能总线,都有一条对应的安全总线,以及对应的主防火墙、从防火墙和安全处理器。每条安全总线,都只能通过与这条安全总线对应的安全处理器访问,进一步的,一个芯片的安全处理器,只有超级用户具有访问权限,通常,这个超级用户是该芯片的设计者(或者说是制造商)。也就是说,一个芯片的安全处理器,通常只有在设计制造时或者制造商进行调试/维修时可以由制造商配置,用户使用该芯片时,安全处理器根据超级用户预先配置软件管理主防火墙和从防火墙的检测规则,无法被任何用户访问。

如图3所示的安全总线,是为了表明安全处理器与主防火墙和从防火墙的连接关系。在实际的芯片结构中,安全总线的设置可以采用以下两种方案中的一种:第一种方案,是将安全总线设计成功能总线的一部分,即利用功能总线的一部分实现安全总线的功能;第二种方案,是将安全总线设计成独立于功能总线之外的一个总线结构。如果在芯片设计阶段需要配置安全总线,可以采用第一种方案,将安全总线设计成是功能总线的一部分,也就是选择功能总线中若干条线路,专门用于实现安全总线的功能,即用于安全处理器与主/从防火墙的连接和通信。如果需要改造已经设计好的芯片,为其增加安全总线,可以采用第二种方案,在原有芯片的基础上增加若干线路,由这些新增的线路构成安全总线。

采用第一种方案,可以减少芯片上的线路的数量,精简芯片的结构。对于已经设计好的成品芯片,采用第二种方案可以提高改造的效率。但是,不论采用哪种方案,实现安全总线的功能的线路,与主控单元和受控单元之间通信的线路都不存在数据通路,因此,主控单元和受控单元进行通信时,不可能通过安全总线读取或修改主防火墙或从防火墙中的检测规则,也无法访问或修改安全处理器中的数据。

在芯片正常工作时,安全处理器可以通过安全总线访问主防火墙和从防火墙,从而对第一检测规则和第二检测规则进行调整。可选的,超级用户可以限制安全处理器对主防火墙和从防火墙的访问,例如,可以设置安全处理器中的所有线程都可以访问任意一个主防火墙或从防火墙,也可以限制其中的一部分线程只能访问特定的几个防火墙,而另一部分线程可以访问其他的几个防火墙。

需要说明的是,在芯片设计完成并开始正常运行后,安全处理器对主防火墙的第一检测规则和从防火墙的第二检测规则的调整,是基于超级用户在芯片设计阶段在安全处理器中写入的调整程序进行的。可以认为,在芯片设计阶段,超级用户不仅要通过安全处理器配置第一检测规则和第二检测规则,还需要配置安全管理器的检测规则调整策略,使安全处理器在芯片使用时,能够根据具体的使用情况对检测规则进行适应性的调整。

下面结合本实施例提供的芯片安全访问的控制装置,简要介绍该装置的控制原理,即该装置控制主控单元访问受控单元,以及控制受控单元被主控单元访问的过程。

一般情况下,第一检测规则通常设定为任务粒度较大的检测规则。因此,本实施例中,第一检测规则可以设定为:为每个主控单元分配至少一个受控单元,只允许每个主控单元访问为这个主控单元分配的受控单元,而不允许访问未分配的受控单元。其中,允许主控单元访问受控单元,包括允许主控单元对受控单元进行读取和写入,相对的,不允许访问则表示不允许主控单元对受控单元进行读取或写入。

结合图3所示的装置,第一检测规则的一个实例是,将受控单元305和受控单元308分配给主控单元301,将受控单元306分配给主控单元302,将受控单元304和受控单元307分配给主控单元303。

需要说明的是,主控单元和受控单元之间,并不仅限于上述实例中的一对多的关系,实际上,第一检测规则中的主控单元和受控单元之间的对应关系,可以是一对一,一对多和多对一中的任意一种或者组合。也就是说,可以将一个受控单元分配给多个主控单元,也可以使受控单元和主控单元之间一一对应。若出现一个受控单元被分配给多个主控单元的情况,则需要对第二检测规则进行相应的配置,使受控单元中属于不同用户的数据仅对相应的主控单元可见,以避免造成数据泄露。

基于上述第一检测规则,主防火墙311接收到主控单元301对某个受控单元的访问请求(读取请求和/或写入请求)后,判断这个受控单元是否被分配给主控单元301,也就是判断主控单元301是否有访问该受控单元的权限,如果判断出主控单元301有访问这个受控单元的权限,则认为这个访问请求是合法请求,允许这个访问请求通过主防火墙311,如果判断出主控单元301没有访问这个受控单元的权限,则认为这个访问请求是非法请求,拦截这个访问请求,不允许其通过主防火墙311。主防火墙312和主防火墙313的工作原理类似。

例如,主控单元302请求访问受控单元307,主防火墙312收到这个访问请求后,判断出受控单元307未被分配给主控单元302,即主控单元302没有访问受控单元307的权限,因此拦截这个访问请求。

可选的,上述第一检测规则中,主控单元和受控单元之间的对应关系可以由安全处理器根据芯片的状态以及主控单元的作用进行调整。例如,在芯片设计阶段,设计者需要向各个受控单元中写入特定的预设程序,此时,需要将功能总线中的某个主控单元分配给i/o接口,设计者由i/o接口写入预设程序后,预设程序在经由对应的主控单元写入功能总线的各个受控单元中。因此,在芯片的设计阶段,安全处理器需要将所有受控单元分配给与i/o接口对应的主控单元。而在芯片设计完成,投入使用后,一般不允许一个主控单元具有所有受控单元的访问权限,因此,需要安全处理器进行调整,取消上述与i/o接口对应的主控单元对部分受控单元的访问权限,使上述与i/o接口对应的主控单元在芯片的使用阶段只能访问一部分受控单元。

可选的,第一检测规则还可以设定为,一个主控单元运行多个线程时,为每个线程指定至少一个受控单元,使每个线程只能访问指定受控单元,而不能访问未指定的受控单元。

该检测规则可以通过在主防火墙中设置与主控单元运行的线程一一对应的多个寄存器实现。具体的,假设图3中,主控单元301同时运行3个线程,分别记为第一线程、第二线程和第三线程,那么可以在主防火墙311中设置分别与这三个线程对应的寄存器,记为第一寄存器,第二寄存器和第三寄存器。每个寄存器可以是主防火墙的5个连续的二进制位,通过设置这些二进制位的值以控制对应的线程是否允许访问对应的受控单元。

例如,主防火墙311收到第二线程访问受控单元306的访问请求后,读取第二线程对应的第二寄存器,发现第二寄存器中,与受控单元306对应的第三个二进制位为0,表明主控单元301的第二线程不允许访问受控单元306,因此主防火墙311拦截这个访问请求。

可选的,主防火墙在收到并拦截一个非法请求后,可以对发送该访问请求的主控单元,即自身对应的主控单元反馈一个响应消息,响应消息中包括一个可以由主防火墙配置的状态标记,这个状态标记可以被配置成“错误”或者“正确”;当状态标记被配置成“错误”时,响应消息可以向发送该访问请求的主控单元表明该访问请求是非法请求,已被主防火墙拦截;当状态标记被配置成“正确”时,响应消息则向发送该访问请求的主控单元表明该访问请求已被传输至对应的受控单元,起到欺骗发送非法请求的主控单元的作用。通过对主控单元进行欺骗,可以避免主控单元根据访问请求和对应的响应消息推断出第一检测规则的具体内容。

可选的,主防火墙可以记录自身收到的非法请求,并通过安全总线将记录的非法请求发送给安全处理器,安全处理器汇总后保存在自身的运行日志中。当超级用户访问安全处理器时,可以根据安全处理器的运行日志修改第一检测规则、第二检测规则和安全处理器的检测规则调整策略。

第二检测规则一般需要有较小的任务粒度,因此,本实施例中的,第二检测规则可以配置为:

针对从防火墙收到的每个访问请求,首先判断是否需要进行控制,如果某个访问请求不需要控制,则直接允许通过从防火墙,不执行后续的检测规则,若某个访问请求需要进行控制,则按下述规则进行检测。

受控单元的存储空间由安全处理器预先划分成多个可访问地址区间,可访问地址区间的边界(即起始地址和结束地址)保存在受控单元对应的从防火墙的安全寄存器中;此外,每个主控单元都在芯片设计阶段被预先分配一个主控标识码,主控标识码与主控单元一一对应,且主控单元发送访问请求时会在访问请求中添加对应的主控标识码;基于上述预先划分的可访问地址区间和预先分配的主控标识码建立受控单元的各个可访问地址区间和各个主控单元之间的访问限制,对于受控单元中的每个可访问地址区间,只允许一部分主控单元访问,而不允许其他主控单元访问;相当于检测访问请求中携带的主控标识码以及该访问请求要访问的可访问地址区间,判断这个主控标识码对应的主控单元是否允许访问这个可访问地址区间,根据判断结果决定拦截该访问请求或者允许其通过。

一个功能总线中,可能会出现的一种情况是:某个受控单元只能被某个特定的主控单元访问,且这个主控单元拥有这个受控单元的读取和写入权限,既可以向这个受控单元写入数据,也可以读取这个受控单元的数据。这样的情况下,这个受控单元对应的从防火墙收到的访问请求,只会是这个主控单元发来的访问请求,其他主控单元主控单元对这个受控单元的访问请求都会被对应的主防火墙拦截,因此,这种情况下从防火墙可以不检测收到的访问请求,直接允许访问请求通过。

在上述第二检测规则中,可访问地址区间只能由安全处理器划分,且其范围只能由安全处理器调整;主控标识码只能通过安全处理器分配;主控单元和可访问地址区间之间的访问限制只能通过安全处理器配置,在芯片使用阶段只能由安全处理器读取并进行调整。

可选的,安全处理器还可以为主控单元中的每个线程分配一个线程标识码;基于预先分配的线程标识码,第二检测规则还可以配置为,对主控单元中的每个线程和受控单元的每个可访问地址区间的访问限制,也就是说,对于受控单元的每个可访问地址区间,只允许部分主控单元中的特定的线程访问,而不予许其他线程访问。

可选的,从防火墙可以通过以下方式实现第二检测规则:在自身的安全寄存器中建立多个访问控制寄存器,访问控制寄存器与可访问地址区间一一对应;一个访问控制寄存器(记为寄存器x),可以表现为n个连续的二进制位(记为x[i],i的取值为0、1、2……n-1),n是从防火墙所属的功能总线中主控单元的数量,主控单元的主控标识码记为id[i],i的取值为0、1、2……n-1,通过将x[i]设置为0或1,即可控制id[i]对应的主控单元对寄存器x对应的可访问地址的访问。寄存器只能由安全处理器建立并配置。

通常,通过将寄存器的某个二进制位设置为0以表示不允许进行对应的操作,而将某个二进制位设置为1以表示允许进行对应的操作。当然,只要预先进行相应的设定,0和1表示的含义也可以对调,用1表示不允许,用0表示允许。本实施例统一采用第一种表示方法。

具体的,结合图3所示的装置,配置了上述第二检测规则的从防火墙的工作原理如下:

预先分配三个主控单元的主控标识码,使主控单元301的主控标识码id[0]为000,主控单元302和303的主控标识码id[1]和id[2]依次是001和002;假设受控单元305的存储空间被划分成三个可访问地址区间,依次是第一、第二和第三可访问地址区间,对应的三个访问控制寄存器分别记为寄存器x、寄存器y和寄存器z;根据前面介绍的第二检测规则的实现方式,这三个访问控制寄存器分别由受控单元305对应的从防火墙315的安全寄存器中的三个连续的二进制位构成。

从防火墙315收到一个需要检测的访问请求后,检测该访问请求携带的主控标识码,发现该访问请求携带的主控标识码是001,表示这个访问请求由主控单元302发送,然后检测该访问请求需要访问的可访问地址区间,发现该访问请求要求访问第三可访问区间,对应的访问控制寄存器是寄存器z,于是从防火墙315读取寄存器z的第二个二进制位,若这个二进制位的值是0,表明主控单元302不允许访问受控单元305的第三可访问地址区间,则从防火墙315拦截这个访问请求,不允许这个访问请求传递至受控单元305;若这个二进制位的值是1,表明主控单元302可以访问受控单元305的第三可访问地址区间,则从防火墙315允许这个访问请求通过,将该访问请求向受控单元305传递。

可选的,可以对上述第二检测规则进一步细化,以达到只允许某个主控单元向一个可访问地址区间写入数据,而不允许读取数据,或者只允许某个主控单元读取一个可访问地址区间的数据,而不允许写入的效果。

具体的,在从防火墙的安全寄存器中,还可以为每个访问控制寄存器分别设置一个读权限寄存器和一个写权限寄存器,从而分别控制主控单元对受控单元的可访问地址区间的读取和写入。结合上述对从防火墙的工作原理的说明,在图3所示的装置中,受控单元305对应的从防火墙315,可以为寄存器x设置一个读权限寄存器(记为寄存器xr),以及一个写权限寄存器(记为寄存器xw),类似的,寄存器y也分别设置读权限寄存器yr和写权限寄存器yw,寄存器z分别设置读权限寄存器zr和写权限寄存器zw。读权限寄存器和写权限寄存器的实现方式可以与上述访问控制寄存器的实现方式一致,每个寄存器都由三个连续的二进制位构成,分别对应三个主控单元,通过设置读权限寄存器和写权限寄存器中二进制位的值,即可分别控制主控单元对受控单元的可访问地址区间的读取和写入。每个读权限寄存器和每个写权限寄存器都只能由安全处理器通过安全总线设置和修改。

结合上述对从防火墙的工作原理的介绍,设置了上述读权限寄存器和写权限寄存器的从防火墙315的工作原理如下:

从防火墙315收到主控单元301对受控单元305的第一可访问地址区间的访问请求,该访问请求具体要求从受控单元305的第一可访问地址区间读取一部分数据,从防火墙315根据寄存器x判断出主控单元301可以访问第一可访问地址区间后,进一步读取第一可访问地址区间的读权限寄存器,发现寄存器xr的第一个二进制位为0,表示主控单元301不能读取第一可访问地址区间的数据,于是从防火墙315拦截这个访问请求;反之,若这个访问请求是要求将部分数据写入第一可访问地址,从防火墙315读取寄存器xw后,发现寄存器xw的第一个二进制位是1,表示主控单元301可以向第一可访问地址区间写入数据,则从防火墙315允许这个访问请求通过,将其传递至受控单元305。

某些总线协议会定义一些安全信号,用于声明携带了这个安全信号的访问请求是安全的访问请求,主控单元若没有某个受控单元的访问权限,或者没有某个受控单元的某个可访问地址区间的访问权限,可以在自身发出的访问请求中添加安全信号,要求在没有权限的情况下进行访问。例如,总线协议axi定义的安全信号axprot即可用于实现上述功能。

可选的,并非所有受控单元的所有数据,都可以被携带了安全信号的访问请求无条件访问,可能存在某些受控单元中的部分数据,由于其重要性而必须执行严格的保护,不允许被任何未授权的主控单元访问,或者只允许被一部分未授权的主控单元通过发送安全信号的形式访问。

为应对这种情况,可以对第二检测规则进行扩充,在其中增加对安全信号的检测与限定,并在上述寄存器的基础上增设多个信号寄存器,以实现扩充后的第二检测规则。

从防火墙的信号寄存器用于控制携带了安全信号的访问请求对受控单元的访问。在前面介绍的访问控制寄存器的基础上,从防火墙可以对每个访问控制寄存器再设置一个对应的信号寄存器,且每个信号寄存器都只能由安全处理器通过安全总线建立并配置。信号寄存器的实现方式与其他寄存器类似,此处不再赘述。下面简要说明其工作原理。

主控单元向受控单元发送一个访问请求,该访问请求到达对应的从防火墙后,从防火墙通过读取上述访问控制寄存器、写权限寄存器和读权限寄存器,判断出主控单元未被允许对受控单元的可访问地址区间进行该访问请求所要求的操作(读取或写入)。然后从防火墙检测这个访问请求,发现该访问请求携带了安全信号,因此,从防火墙读取可访问地址区间对应的信号寄存器,发现信号寄存器中对应的二进制位是1,表明这个可访问地址区间的数据允许主控单元通过发送携带安全信号的访问请求进行访问,于是从防火墙将这个访问请求向受控单元传递;反之,若对应的二进制位是0,表明即使是安全的访问请求,也不允许通过,则从防火墙拦截这个访问请求。

可选的,第二检测规则还可以设置成基于传输级别的检测规则。传输级别,是指单次数据传输占用的二进制位的数量。

例如,假设一条功能总线单次最多可以传输8个二进制位,那么这条功能总线可以认为共有8个传输级别,第一至第八传输级别,依次对应单次传输1至8个二进制位。若一个访问请求要求读取受控单元中的一部分数据,并且要求进行数据传输时,每次传输其中的5个二进制位,那么这个访问请求的传输级别就是第五传输级别。

基于传输级别的第二检测规则,可以设置成,对于任意一个受控单元,其中的每个可访问地址区间都只能被特定传输级别的访问请求访问。例如,可以规定受控单元306的第一可访问地址区间只能被第三至第六传输级别的访问请求访问。

基于传输级别的第二检测规则的具体实现过程与上述其他类型的第二检测类似,此处不再赘述。

本实施例提供的芯片安全访问的控制装置,在主控单元和功能总线之间设置主防火墙,在受控单元和功能总线之间设置从防火墙,并设置了与主防火墙和从防火墙连接的安全处理器以管理主防火墙和从防火墙,实现了对芯片内主控单元对受控单元的访问的控制,即使在软件失效的情况下,由于主控单元和受控单元分别被主防火墙和从防火墙隔离,也不会出现数据泄露的现象,显著提高了多用户芯片的安全性。

在上述装置的基础上,本实施例设置的覆盖了芯片运行时的多种情况的第一检测规则和第二检测规则,使得芯片既能够满足安全方面的要求,又能够有效的利用芯片中的资源,提高芯片的工作效率。

基于上述实施例提供的芯片安全访问的控制装置,本申请另一实施例还提供了一种芯片系统。如图4所示,这种芯片系统包括至少一条功能总线,对应每一条功能总线的总线主控单元和总线受控单元,以及对应每一条功能总线的芯片访问安全的控制装置,其中的芯片安全访问的控制装置是前文中任一实施例介绍的控制装置。图4展示的,就是一个由四条功能总线构成的芯片系统。

专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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