一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于硬件安全标签的动态信息流追踪处理器结构

2022-06-05 08:19:54 来源:中国专利 TAG:


1.本技术涉及处理器芯片技术领域,特别涉及一种基于硬件安全标签的动态信息流追踪处理器结构。


背景技术:

2.信息流,从广义上来说,指在空间和时间上向同一方向运动传播的一组信息,它们有相同的来源和目的,也即一个源单位向另一个目的单位传递的全部信息的集合。从狭义上来说,信息流指信息按照一定要求通过一定渠道所进行的传递运动,这一运动也即现代信息技术研究的主要对象。
3.信息流追踪技术,在计算机安全领域,特指使用某些方法对程序信息的流向进行追踪,用于辨别其中对系统的信息安全性(保密性、完整性、可用性)可能造成破坏的操作。一般来讲,信息流追踪可分为静态信息流追踪和动态信息流追踪两类技术方案:静态信息流追踪在处理器系统工作前后对信息流进行追踪,即系统工作和追踪分析分开进行;动态信息流追踪在处理器系统工作中对信息流进行追踪,即系统工作和追踪分析同时进行。与静态信息流追踪相比,动态信息流追踪具有问题定位精确、防范实时性好等优点,能有效地在系统工作过程中发现潜在的恶意攻击,并及时采取相应的措施阻止恶意攻击的进行。
4.动态信息流追踪,从大体上来讲,可以由软件来具体实现也可以由硬件来具体实现。关于软件实现的动态信息流追踪,主要是在原程序中增加一些追踪相关的指令段或程序段来完成运行时追踪,这些额外增加的程序内容对于原程序来说是冗余的,并不会改变原程序的运行步骤和运行结果。关于硬件实现的动态信息流追踪,主要是在系统硬件中增加一些追踪相关的逻辑电路来完成运行时追踪,这些额外增加的电路对于原电路来说是冗余的,并不会影响原电路的工作方式。与软件实现的动态信息流追踪相比,硬件实现的动态信息流追踪具有追踪速度快、处理权限高等优点,能在不增加冗余代码的情况下使用专用的逻辑电路实现追踪,且在发现恶意攻击后有较大的自由度采取防范措施。
5.在动态信息流追踪的硬件实现的范畴内,存在不同的硬件抽象层次,抽象层次由低到高依次包括:电路级、门网表级(简称门级)、寄存器传输级(rtl)、架构级、算法级、系统级。其中,抽象层次位于门级和架构级的硬件实现较为主流,当然也不乏在其它抽象层次进行动态信息流追踪的硬件实现。关于门级抽象的动态信息流追踪,主要是将逻辑门看作信息流的载体,关注各个逻辑门对信息流产生的影响,并设计硬件追踪逻辑门上的信息流。关于架构级抽象的动态信息流追踪,主要是将指令看作信息流的载体,关注各条指令对信息流产生的影响,并设计硬件追踪指令上的信息流。与门级抽象的硬件实现相比,架构级抽象的硬件实现能够用较少的硬件资源完成较完备的信息流追踪,在这一抽象层次实现动态信息流追踪可以去除很多相对冗余的硬件电路,用相对“核心”的硬件电路就能实现效果很好的动态信息流追踪,有较高的实现效率。
6.内存管理单元(memory management unit,mmu),又名存储管理单元,是一种专门负责处理器的存储访问请求的硬件模块,是处理器内核连接高速缓存(cache)以及物理存
储器的中继控制单元,主要功能包括虚拟地址到物理地址的转换、存储保护、高速缓存控制等。
7.risc-v,是一个基于精简指令集原则的开源指令集架构,其设计适用于现代计算设备,考虑了小型、快速、低功耗的现实情况,具有完全开源、架构简单、易于操作系统移植、模块化设计、工具链完整等特色,并且其没有对特定的微架构做过度的设计,能够被用于实现各种定制化设计及创新性探索。risc-v指令集架构规定了三种权限模式,分别是机器模式(m-mode)、监管者模式(s-mode)和用户模式(u-mode),其中m-mode的权限最高,s-mode的权限次之,u-mode的权限最低。
8.相关技术中,基于risc-v指令集架构的一种利用标签(tag)进行细粒度存储隔离的处理器结构(timber-v)在存储器中为每32位存储数据或指令新增2位标签,同时结合mmu对存储器的访问进行权限控制。在其方案中,对原u-mode和s-mode分别划分了一般域和可信域,于是原来的u-mode被划分为现在的“一般u-mode”和“可信u-mode”(tu-mode),原来的s-mode被划分为现在的“一般s-mode”和“可信s-mode”(ts-mode)。新增的2位标签的作用和元数据(描述数据的数据)相当,用于表示对应存储数据或指令所在的安全域,具体的安全域划分如下(在此把指令本身也看成是数据故不作区分):“一般u-mode”和“一般s-mode”中的数据为n-tag数据,具有最低的安全性;tu-mode中的数据为为tu-tag数据,具有中等的安全性;ts-mode中的数据为ts-tag数据,具有最高的安全性;tc-tag数据则是一类比较特殊的数据,在程序中被用作n-tag数据访问tu-tag数据或ts-tag数据的调用点或入口点,也具有和ts-tag数据同样的最高的安全性。美中不足的是,timber-v技术方案仅在数据访存环节的存储器端考查tag,对于程序执行过程中的非存储器访问指令和程序段的信息流缺乏跟踪和监测,可能存在安全漏洞。
9.在架构级的抽象层次上,硬件实现的动态信息流追踪大多采用动态污点传播分析技术,该技术的主要原理为:在程序运行过程中,通过实时监控程序的污点数据的传播来检测污点数据是否会对安全敏感操作产生影响,经常需要根据不同的攻防场景来自定义污点源、传播规则和监测点。动态污点传播分析是一种有效的能够判断程序信息流是否安全的技术方案,但是其关注点在于“某些污点数据”,是对已有定义的污点数据进行传播路径的追踪,这就可能在污点数据覆盖不全面的情况下出现漏报的情况。
10.缓存无效化技术和缓存锁定技术,在cache侧信道防护方面,是比较常见的两种技术。关于缓存无效化技术,主要是通过无效化特定的缓存行(cacheline)来达到侧信道防护的目的,此时相当于特定的缓存行被旁路,处理器直接对存储器进行访问。关于缓存锁定技术,主要是通过锁定特定的缓存行来达到侧信道防护的目的,此时相当于特定的缓存行中的内容被“固化”,只能产生恒定的cache命中(hit)和cache缺失(miss)情况。上述两种技术虽然可以实现有效的侧信道防护,但是其原本的cache机制基本也被完全屏蔽,故其性能代价不可忽视。


技术实现要素:

11.本技术提供一种基于硬件安全标签的动态信息流追踪处理器结构,以解决程序执行过程中的非存储器访问指令和程序段的信息流缺乏跟踪监测存在安全隐患、污点数据覆盖不全面出现异常漏报情况以及安全防护措施对原本的高速缓存机制性能影响较大等问
题。
12.本技术第一方面实施例提供一种基于硬件安全标签的动态信息流追踪处理器结构,包括以下步骤:处理器核;设置于所述处理器核内多个寄存器上的处理器标签位,用于表示所述多个寄存器的值所在的安全域;设置于所述处理器核内的处理器核标签逻辑电路,用于根据所述处理器核内的标签传递规则对动态信息流进行所述标签的传递和规则检查;存储模块;设置在所述存储模块内的存储标签位,用于进行不同安全域之间的存储隔离和缓存隔离。
13.可选地,在本技术的一个实施例中,还包括:内存管理单元,设置于所述处理器核与所述存储模块之间,用于进行同一安全域不同用户间的存储隔离。
14.可选地,在本技术的一个实施例中,处理器核标签逻辑电路包括:指令逻辑电路,用于监控所述处理器核内指令流的安全情况,以确保指令的安全执行;
15.数据逻辑电路,用于完成各指令的标签传递计算和监控数据流的安全情况,以确保数据的安全存取。
16.可选地,在本技术的一个实施例中,在每个64位宽的所述寄存器上设置有2位标签。
17.可选地,在本技术的一个实施例中,处理器核标签逻辑电路设置于所述处理器核内的指令流水线和/或数据通路上。
18.可选地,在本技术的一个实施例中,存储标签位设置于所述存储模块内部的指令缓冲存储器上,用于存储提供给所述处理器核的标签,其中,每32位的存储指令添加有2位标签。
19.可选地,在本技术的一个实施例中,存储标签位设置于所述存储模块内部的数据缓冲存储器上,用于在缓存层面隔离不同的安全域,其中,每32位的存储数据添加有2位标签,且每一个缓冲块上添加有1位标签用于在缓存层面隔离同一安全域的不同进程。
20.可选地,在本技术的一个实施例中,设置于所述数据缓冲存储器上的存储器标签逻辑电路,用于控制对所述数据缓冲存储器的安全访问。
21.可选地,在本技术的一个实施例中,存储标签位设置于所述存储模块内部的物理存储器上,其中,每32位的存储数据或指令添加有2位标签。
22.可选地,在本技术的一个实施例中,还包括:异常产生模块,设置于所述处理器核内部,所述异常产生模块用于在所述逻辑电路检查到异常时,生成触发信号和对应的异常信息。
23.由此,本技术至少具有如下有益效果:
24.1)在存储器、cache和处理器核三个层次对数据进行全流程的安全追踪和安全限制,很大程度上保证了完备的系统安全性;
25.2)采用细粒度的tag管理方式,能够实时监控每条指令及每个数据的安全性,有利于更加精确地进行信息流追踪;
26.3)对程序进行安全级别的划分,使得程序编写时可以做执行速度与安全程度之间的折衷;
27.4)tag机制和存储管理机制相互独立,可以结合使用以达到更完备的安全性或更高的整体效率;
28.5)在cache层面引入的安全隔离措施对原本的cache机制影响较小,能够以较小的性能代价实现效果较好的cache侧信道防护。
29.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
30.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
31.图1为根据本技术实施例提供的一种基于硬件安全标签的动态信息流追踪处理器结构框图;
32.图2根据本技术一个实施例提供的基于硬件安全标签的动态信息流追踪处理器结构的总体结构图;
33.图3根据本技术一个实施例提供的基于硬件安全标签的动态信息流追踪处理器结构对数据的安全追踪的示意图;
34.图4根据本技术一个实施例提供的基于硬件安全标签的动态信息流追踪处理器结构对指令的安全追踪的示意图。
35.附图标记说明:处理器核-100、存储模块-200。
具体实施方式
36.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
37.下面参考附图描述本技术实施例的一种基于硬件安全标签的动态信息流追踪处理器结构。针对上述背景技术中提到的相关技术中仅在数据访存环节的存储器端考查标签位,对于程序执行过程中的非存储器访问指令和程序段的信息流缺乏跟踪和监测,导致程序运行可能存在安全漏洞,同时污点数据覆盖不全面的情况下容易出现异常漏报的情况。此外,对侧信道进行防护时,原本的cache机制基本也被完全屏蔽,性能损失严重等问题,本技术提供了一种基于硬件安全标签的动态信息流追踪处理器结构,在该结构中,通过对处理器核内的寄存器和存储模块内的存储器新增安全相关的标签位,以及通过对处理器核新增标签检查和传递逻辑电路,实现了对信息流的实时高效的追踪。此外,还通过对存储模块内的数据缓存新增安全相关的标签位,在性能影响较小的情况下实现了对侧信道攻击的防护。同时本技术的实施例充分利用新增的标签位,划分了程序的安全级别,制定了处理器核内的标签传递规则,定义了可能破环系统安全性的异常行为,防范了可能利用缓存进行的侧信道攻击,很大程度上保障了程序运行的规范和安全。由此,解决了程序执行过程中的非存储器访问指令和程序段的信息流缺乏跟踪监测存在安全隐患、污点数据覆盖不全面出现异常漏报情况以及安全防护措施对原本的高速缓存机制性能影响较大等问题。
38.具体而言,图1为本技术实施例所提供的一种基于硬件安全标签的动态信息流追踪处理器结构框图。
39.如图1所示,该基于硬件安全标签的动态信息流追踪处理器结构10包括:处理器核
100和存储模块200。
40.具体地,处理器核100包括控制器、运算器、寄存器组等部分。其中,控制器由指令寄存器、指令译码器、程序计数器及相应电路组成。运算器由算术逻辑部件alu(arithmetic logic unit)、累加器及标志寄存器组成。寄存器组通常包括指令寄存器、地址寄存器等通用寄存器。
41.可选地,在本技术的实施例中,在处理器核100中,还包括:设置于处理器核100内多个寄存器上的处理器标签位,用于表示多个寄存器的值所在的安全域。
42.需要理解的是,本技术的实施例对处理器核100内的寄存器新增2位标签,这些额外新增的标签即为“硬件安全标签”。对数据的粒度以及与timber-v技术方案的匹配程度进行综合考虑,本技术的实施例为每个64位宽的寄存器(包括指令可见的通用寄存器和指令不可见的pc寄存器)新增2位标签,用于表示对应寄存器值所在的安全域,以此实现较细粒度的信息流追踪。
43.在本技术的实施例中,以tag指代本技术实施例中的新增的标签位。
44.上述2位标签的具体值所代表的安全域,规定如下:“0b00”表示n-tag域,“0b01”表示tc-tag域,“0b10”表示tu-tag域,“0b11”表示ts-tag域。程序中涉及的所有指令和静态数据的tag在程序初始化的时候进行标记,在程序运行过程中出现的动态数据则会根据当前指令执行情况对其tag做实时标记。值得一提的是,tc-tag并不代表一个实际的安全域,而是仅作为从n-tag域安全过渡到tu-tag域或ts-tag域的入口,在处理器核100内进行标签传递时,tc-tag指令的标签会根据下一条顺序指令的标签被设置为tu-tag(此时tc-tag为tu-tag的入口)或ts-tag(此时tc-tag为ts-tag的入口),也就是说,核内标签传递的过程中实际不会出现tc-tag标签。
45.可选地,在本技术的实施例中,在处理器核100中,还包括:设置于处理器核100内的处理器核100标签逻辑电路,用于根据处理器核100内的标签传递规则对动态信息流进行标签的传递和规则检查。
46.需要理解的是,上述标签传递规则包括面向数据的标签传递规则以及面向控制的标签传递规则。本技术的实施例以risc-v的rv64i指令集为基础进行动态信息流追踪,分别分析指令集中的每条指令对信息的流动产生的影响,然后根据分析结果为每条指令适配基于标签传递规则的追踪相关的逻辑电路。
47.需要说明的是,本技术的实施例在指令集层面进行动态信息流追踪,属于架构级的抽象层次,门级抽象以及其它抽象层次在本技术中暂未涉及。
48.为了便于理解标签传递规则,本技术的实施例首先把指令集中的指令分为三类:第一类指令为仅访问核内寄存器的指令(i类指令),包括整数计算指令和控制转移指令;第二类指令为需要访问核外存储器的指令(ii类指令),具体是加载(load)和存储(store)指令;第三类指令为既不访问核内寄存器也不访问核外存储器的指令(iii类指令),包括存储定序指令和部分系统指令。同时,本技术规定指令中的立即数操作数的tag和指令本身的tag相同。
49.其中,面向数据的标签传递的具体规则如下:
50.1)对于i类指令中的整数计算指令,源操作数为立即数或通用寄存器,目的操作数只为通用寄存器,其标签传递规则为:“低安全性数据的tag占主导,且指令的tag不影响数
据的tag”,即高安全性数据和低安全性数据二者通过计算产生输出数据时,输出数据的tag被标记为低安全性数据的tag,且该条指令本身的tag不影响输出数据的tag。
51.2)对于i类指令中的控制转移指令,源操作数为立即数或通用寄存器,由于指令所产生的转移行为可看作改写了pc寄存器的值,故目的操作数为pc寄存器或通用寄存器。其中,当目的操作数为pc寄存器时,标签传递规则为“低安全性数据或指令的tag占主导”,即无论是通过对两个数据进行比较从而判断是否产生转移行为还是直接产生转移行为,都要根据该条指令本身的tag来决定pc的tag,取其中所指示安全性最低的tag作为pc的tag。当目的操作数为通用寄存器时,标签传递规则为“低安全性指令的tag占主导”,即若该指令的安全性低于目标指令的安全性则寄存器的tag为该指令的tag,反之为目标指令的tag。
52.3)对于ii类指令,源操作数为立即数或通用寄存器,目的操作数只为通用寄存器,虽然其形式与i类指令中的整数计算指令类似,但是其真正需要访问的数据位于核外存储器,于是会有区别于整数计算指令的访存操作;与立即数、寄存器相关的标签传递规则和整数计算指令类似,与存储器相关的标签传递规则为“访存地址或指令的安全性不低于访存数据的安全性时tag可被正常传递”,即load和store指令需要先根据立即数的tag和寄存器的tag得出的访存地址的tag,再结合指令本身的tag来判断是否可以正常传递访存数据的tag,当二者之中所指示的最低安全性不低于访存数据的tag所指示的安全性时才能执行对应的访存操作。
53.4)对于iii类指令,由于并未对核内寄存器和核外存储器产生影响,故无标签传递规则。
54.如图2所示,展示了处理器核100内部流水线的结构,且标明了tag和tag逻辑在数据通路中的位置。在图2中,在alu、lsu等一般逻辑旁添加了一块tag逻辑,用于完成各指令的标签传递计算和监控数据流的安全情况,确保数据的安全存取,这一tag逻辑主要是对上述的面向数据的标签传递规则和下述的访存规则的具体电路实现。
55.上述的标签传递规则都是面向数据的标签传递规则,即关注点在于指令本身的功能对寄存器和存储器所产生的影响。而面向控制的标签传递规则的关注点在于指令之间的执行次序。具体地,在处理器核100内,tag逻辑会维护一个表示处理器核100的指令执行状态的标签也即pc寄存器的标签,该标签独立于所取指令的标签。其标签传递规则为“当前指令的安全性一般和下一条指令的安全性相同,低安全性的当前指令通过下一条tc-tag指令可以转移至高安全性的下下条指令,高安全性的当前指令可以直接转移至低安全性的下一条指令”,即当前指令的tag所指示的安全性不得低于下一条指令的tag所指示的安全性,除非通过tc-tag指令从低安全域向高安全域过渡,对pc寄存器的tag和所取指令本身的tag进行比较,满足上述条件后才能更新pc寄存器的tag为所取指令本身的tag。需要注意的是,i类指令中的控制转移指令的计算结果能够改变pc寄存器的值,但是也在该标签传递规则的限制范围之内。
56.举例而言,如图2所示,每个64位宽的pc寄存器和通用寄存器都添加了2位的tag,用于指示其中数据的安全域;在取指单元旁添加了一块tag逻辑,用于监控指令流的安全情况,确保指令的安全执行,这一tag逻辑主要是对上述的面向控制的标签传递规则和下述的执行规则的具体电路实现。
57.需要说明的是,pc寄存器的tag既可能被取指单元旁的tag逻辑更新(顺序执行)也
可能被控制转移指令的执行结果更新(转移执行),实际上pc寄存器及其tag几乎是同时更新的,但是图2中省略了更新pc寄存器的标识。通用寄存器的tag只可能被指令的写回操作更新,写回的tag值由一般逻辑旁的tag逻辑计算得出,实际上通用寄存器及其tag几乎是同时更新的,但是图2中省略了更新通用寄存器的标识。
58.可选地,在本技术的实施例中,处理器核100标签逻辑电路包括:指令逻辑电路,用于监控处理器核100内指令流的安全情况,以确保指令的安全执行;数据逻辑电路,用于完成各指令的标签传递计算和监控数据流的安全情况,以确保数据的安全存取。在具体执行过程中,本技术的实施例的标签逻辑电路可以设置在处理器核100内的指令流水线和/或数据通路上。
59.可以理解的是,本技术的实施例中提及的信息流特指狭义信息流所涵盖的处理器程序运行的信息流,本技术的实施例的结构仅针对动态信息流追踪,不涉及静态信息流追踪。本技术的实施例所阐述的动态信息流追踪处理器结构即为硬件实现的动态信息流追踪,与软件实现的动态信息流追踪相比,硬件实现的动态信息流追踪具有追踪速度快、处理权限高等优点,能在不增加冗余代码的情况下使用专用的逻辑电路实现追踪,且在发现恶意攻击后有较大的自由度采取防范措施。因此,本技术的实施例在处理器核100内的指令流水线和数据通路上新增与之伴随的专门用于对tag进行处理的逻辑电路(tag逻辑),其需要根据核内标签传递规则负责核内tag的标签传递和规则检查。
60.可以理解的是,本技术的实施例在timber-v技术方案的基础上,在处理器内部添加标签,进行全过程的信息流追踪。一方面,可以发现非存储器访问指令执行过程中的安全问题;另一方面,可以利用标签信息更加精准地进行安全防护,提高安全机制运行的能量效率。同时,采用了和动态污点传播分析类似的思想,也基于某种传播规则来追踪信息的流动路径,但是关注点在于“整个系统”而非“某些数据”,是对存在安全域划分的整个系统进行信息传递的追踪,重点考察系统运行过程中是否存在不合理的跨安全域的信息流动行为,具有较高的完备性。
61.此外,本技术的实施例提出的动态信息流追踪处理器结构还包括存储模块200,图2中展示了存储模块200的存储结构。具体地,如图2所示,存储模块200一般包括:主存储器即物理存储器以及高速缓冲存储器cache等,其中,高速缓冲存储器cache分离成指令cache(icache)和数据cache(dcache),且标明了tag在其中的位置。
62.可选地,在本技术的实施例中,存储模块200还包括:设置在存储模块200内的存储标签位,用于进行不同安全域之间的存储隔离和缓存隔离。
63.可选地,在本技术的实施例中,存储标签位设置于存储模块200内部的指令缓冲存储器上,用于存储提供给处理器核100的标签,其中,每32位的存储指令添加有2位标签。
64.具体地,icache专用于指令的缓存,其中的每32位存储指令都添加了2位tag,此处添加的标签位仅用来暂存需要提供给处理器核100的tag,在icache中并未添加其它对tag有所操作的安全电路。
65.可选地,在本技术的实施例中,存储标签位设置于存储模块200内部的数据缓冲存储器上,用于在缓存层面隔离不同的安全域,其中,每32位的存储数据添加有2位标签,且每一个缓冲块上添加有1位标签用于在缓存层面隔离同一安全域的不同进程。
66.需要说明的是,本技术将基于tag的安全域隔离机制引入了数据cache,其专用于
数据的缓存。在数据cache中,对每32位cache数据新增2位标签,这2位标签的具体含义与处理器核100内的寄存器标签的具体含义相同,即用于不同安全域之间的隔离。对每个cacheline新增1位标签tv-tag,用于实现在cache层面的同一安全域(tu-tag)的不同进程之间的相互隔离,此外在dcache内还添加了一块紧耦合的tag逻辑用于控制对dcache的安全访问。tv-tag仅作用于tu-tag安全域,其它安全域的程序段则不受tv-tag的影响。
67.其中,tv-tag标签用于表示相应的cacheline对当前正在运行的tu-tag进程是否有效,即值为0时无效、值为1时有效;若当前正在运行的tu-tag进程访问某一cacheline,如果相应的tv-tag标签为0,则说明该进程在此次运行过程中是第一次访问这一cacheline,于是产生一个miss访问,且在此次访问结束后将tv-tag置位为1;如果相应的tv-tag标签为1,则说明该进程在此次运行过程中并非第一次访问这一cacheline,于是产生一个正常访问(根据cacheline中是否存在需要的数据产生hit或miss);当tu-tag进程被中断或其正常运行结束时,将所有cacheline的tv-tag标签复位为0。
68.总之,这一额外新增的tv-tag标签类似于cache结构中原有的valid位,但是不同的地方在于,valid位面向“全局”(即所有的进程共享valid位),而tv-tag标签面向“局部”(即每个tu-tag进程独享tv-tag标签)。
69.可选地,在本技术的实施例中,数据缓冲存储器上的存储器标签逻辑电路,用于控制对数据缓冲存储器的安全访问。
70.具体地,不同安全性的程序段的cache访问说明如下:当低安全性程序的load/store指令访问高安全性程序刚刚使用过的cacheline时,即使能够对上其标识位,也会因为访存指令的总安全性低于对应cacheline的安全性而产生miss,此时高安全性程序在cache中留下的信息并没有被泄漏给低安全性程序,没有违背安全信息流的流向;当高安全性程序的load/store指令访问低安全性程序刚刚使用过的cacheline时,若能够对上其标识位,且因为访存指令的总安全性不低于对应cacheline的安全性,则此次cache访问可以产生hit,这符合安全信息流的流向。
71.综上所述,数据cache中新增的“硬件安全标签”实现了cache层面的安全域隔离机制,在低安全性程序段和高安全性程序段之间、各个tu-tag进程之间分别做了安全域隔离,且并未对原本的cache机制造成大的影响。
72.可选地,在本技术的实施例中,存储标签位设置于存储模块200内部的物理存储器上,其中,每32位的存储数据或指令添加有2位标签。
73.需要说明的是,在本技术的实施例的存储器端,物理存储器沿用了timber-v的存储结构和隔离方法,即每32位存储数据或指令拥有2位额外标签,但是其添加的用于安全隔离的电路在附图中并未画出。不同安全域之间通过额外标签做存储隔离,同一安全域不同用户进程之间通过mmu做存储隔离。
74.通过上述实施例介绍,本技术实施例的硬件电路主要包括两大模块:处理器核100以及存储模块200,此外还包括一个作为处理器核100和存储模块200的中继控制单元mmu,如图2所示。该单元是一种专门负责处理器的存储访问请求的硬件模块,是处理器内核连接cache以及物理存储器的中继控制单元,主要功能包括虚拟地址到物理地址的转换、存储保护、高速缓存控制等。当处理器核100通过mmu访存接口进行存储访问时,以及当存储模块200通过其访存接口响应处理器核100的访存请求时,都需要经过mmu的控制,此外mmu还承
担了部分物理存储器安全隔离的工作。
75.可选地,在本技术的实施例中,还包括:异常产生模块,设置于处理器核100内部,异常产生模块用于在逻辑电路检查到异常时,生成触发信号和对应的异常信息。
76.需要注意的是,本技术定义一系列关于数据和指令tag的安全规则,违反安全规则的行为被定义为异常行为,若出现异常行为则说明可能存在破坏系统安全性的操作,此时需要采取一定的措施进行防范。
77.具体地,定义的安全规则包括执行规则和访存规则,前者是关于指令执行的规则,后者是关于存储器数据访问的规则,相应的违规行为称为异常执行和异常访存。
78.其中,具体的执行规则如下:
79.1)某指令

和“某指令”具有相同安全性的指令;
80.2)低安全性指令

tc-tag指令

高安全性指令;
81.3)高安全性指令

低安全性指令。
82.在处理器的指令执行过程中,低安全性指令变为高安全性指令需要先执行标签为tc-tag的指令,反之,如果出现“低安全性指令(不经过tc-tag指令)

高安全性指令”,即不经过可信入口点就提升程序运行片段的安全性,此行为违反了安全执行规则,具体体现为pc寄存器的tag未能按其标签传递规则进行更新,被定义为异常执行。
83.具体的访存规则如下:
84.1)某数据

和“某数据”具有相同安全性的安全域;
85.2)低安全性数据

高安全域。
86.信息只能在具有相同安全性的安全域之间流动或从低安全域流向高安全域,如果出现“load/store指令的总体安全性(访存地址的安全性和指令本身的安全性经比较后产生)低于被访问数据的安全性”,即低安全性指令访问高安全性数据,此行为违反了安全访存规则,具体体现为ii类指令所涉及的tag未能按其标签传递规则进行更新,被定义为异常访存。在硬件电路中,处理器的取指单元和存储器访问单元(lsu)的tag逻辑会对上述两项安全规则进行检查,当检测到异常执行或异常访存,会拒绝执行相应的操作,并同时触发“异常”,程序员可以在异常处理程序中定义处理措施。
87.下面通过具体实施例对本技术的一种基于硬件安全标签的动态信息流追踪处理器结构的工作过程进行详细说明。
88.图3为基于硬件安全标签的动态信息流追踪处理器结构对数据的安全追踪的示意图。图3省略了图2中大部分对数据流追踪影响不大的结构,展示了硬件电路对数据进行安全追踪的具体流程。如图3所示,首先,通过load指令将数据a读入处理器核100的通用寄存器a中,对应的tag也随之从存储模块200被读入处理器核100;数据a在经过访存接口进入处理器核100的过程中,其tag会被tag逻辑根据安全规则进行检查,以此判断该load是否是安全的。其次,通用寄存器a中的数据通过一般逻辑进行了各种计算,最终的计算结果被存入通用寄存器b;同时,对应的tag通过tag逻辑根据标签传递规则也进行相应的计算,最终的计算结果被存入通用寄存器b的tag位。最后,通过store指令将通用寄存器b中的数据b写入物理存储器中,对应的tag也随之从处理器核100被写入存储模块200;数据b在经过访存接口进入存储模块200的过程中,其tag会被tag逻辑根据安全规则进行检查,以此判断该store是否是安全的。tag逻辑如果在上述过程中检查到了不安全的操作,会给异常产生模
块提供触发信号和对应的异常信息,随后异常产生模块将使处理器核100产生一个异常。
89.图4为基于硬件安全标签的动态信息流追踪处理器结构对指令的安全追踪的示意图。图4省略了图2中大部分对指令流追踪影响不大的结构,展示了硬件电路对指令进行安全追踪的具体流程。如图4所示,从图4中pc寄存器上的黑点开始,先经过pc译码在物理存储器中找到指令a及其tag的位置,然后同时取出指令a及其tag,指令a被送入处理器核100内的一般逻辑而其tag被送入tag逻辑。接下来,根据标签传递规则,结合处理器核100本身维护的pc寄存器的tag,tag逻辑会对此次取指做安全检查,若安全检查通过则会更新pc寄存器的标签。此后,一般逻辑可以根据所取指令进行计算产生下一pc,所产生的新pc又可以经过译码在物理存储器中找到指令b及其tag的位置,于是程序按以上步骤继续运行。tag逻辑如果在上述过程中检查到了不安全的操作,会给异常产生模块提供触发信号和对应的异常信息,随后异常产生模块将使处理器核100产生一个异常。
90.根据本技术实施例提出的一种基于硬件安全标签的动态信息流追踪处理器结构,通过对处理器核内的寄存器和存储模块内的存储器新增安全相关的标签位,对处理器核新增标签检查和传递逻辑电路,以及通过对存储模块内的数据缓存新增安全相关的标签位,划分了程序的安全级别,制定了处理器核内的标签传递规则,定义了可能破环系统安全性的异常行为。从而实现了利用标签对程序运行的信息流进行快速高效的实时追踪,以即时发现其中潜在的恶意操作和破环系统安全性的攻击,同时也利用标签改进数据cache的安全隔离机制,以较小的性能代价实现效果较好的cache侧信道防护,保障了程序运行的规范和安全。
91.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
92.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
93.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
94.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散
逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
95.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献