CN115587348B - Pcie设备访存的可配置安全控制方法、装置及介质 - Google Patents

Pcie设备访存的可配置安全控制方法、装置及介质 Download PDF

Info

Publication number
CN115587348B
CN115587348B CN202211483088.8A CN202211483088A CN115587348B CN 115587348 B CN115587348 B CN 115587348B CN 202211483088 A CN202211483088 A CN 202211483088A CN 115587348 B CN115587348 B CN 115587348B
Authority
CN
China
Prior art keywords
pcie
memory
interval
access
access request
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.)
Active
Application number
CN202211483088.8A
Other languages
English (en)
Other versions
CN115587348A (zh
Inventor
石伟
刘威
龚锐
张剑锋
王蕾
冯权友
张见
潘国腾
罗莉
周理
王永文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211483088.8A priority Critical patent/CN115587348B/zh
Publication of CN115587348A publication Critical patent/CN115587348A/zh
Application granted granted Critical
Publication of CN115587348B publication Critical patent/CN115587348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种PCIE设备访存的可配置安全控制方法、装置及介质,本发明PCIE设备访存的可配置安全控制方法包括:S101,拦截PCIE根复合体模块发出的PCIE访存请求;S102,确定PCIE访存请求允许访问的内存区间;S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求。本发明能控制PCIE EP设备对存储空间的安全访问,实现片外安全设备和非安全设备访问内存空间之间的隔离,将传统的安全软件的可信执行环境从片内扩展到片内外,堵住传统PCIE结构的硬件安全隐患。

Description

PCIE设备访存的可配置安全控制方法、装置及介质
技术领域
本发明属于PCIE设备访存安全的技术领域,具体涉及一种PCIE设备访存的可配置安全控制方法、装置及介质。
背景技术
当前,硬件安全得到越来越多的重视。从底层硬件安全的角度进行系统安全增强,防堵安全漏洞,才能构成更加安全的信息系统。现有的国际主流CPU架构中,都定义了硬件资源隔离相关的机制。基于这些机制,可以在系统中构造一个隔离区域,该区域具有独立的计算、存储资源,并且从硬件上保证该隔离区域内的数据不能被隔离区域以外的资源所访问,保证在该区域中执行的软件是不能被恶意篡改的,从而支持构造一个安全的可信执行环境。
传统的硬件资源隔离机制一般围绕处理器内部进行构建。但是随着片外加速器的算力不断提升,采用主处理芯片和片外加速芯片的异构框架在新型应用领域得到越来越多的应用。一般来说,加速芯片通过PCIE总线与主处理器连接,目前主流的CPU硬件资源隔离架构下,PCIE总线都没有被纳入隔离区域。如图1所示,片内SOC(System on Chip)系统和片外PCIE设备通用的系统架构中,在SOC内部的PCIE根复合体设备(RC设备)是PCIE总线的根,该PCIE根复合体设备可以位于SOC系统中,与片上系统中的处理器(central processingunit,CPU)和内存(Memory)等通过片上网络连接。PCIE终端设备(EP设备)为能够支持多样性应用功能的设备,其主要包括显卡、网卡等。交换设备为PCIE交换机,可以在PCIE链路无法满足需求的情况下,实现PCIE链路的扩展。因此从CPU端的安全视角来看,片外的PCIE终端设备(EP设备)是位于可信执行环境之外的。如果将PCIE根复合体设备(RC设备)加入可信执行环境,则PCIE终端设备(EP设备)可以通过请求随意获取可信环境之内的数据,因此传统的PCIE结构具有较大的硬件安全隐患。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种PCIE设备访存的可配置安全控制方法、装置及介质,本发明旨在控制PCIE终端设备PCIE EP设备对存储空间的安全访问,实现片外安全设备和非安全设备访问内存空间之间的隔离,将传统的安全软件的可信执行环境从片内扩展到片内外,能够有效堵住传统PCIE系统架构的硬件安全隐患。
为了解决上述技术问题,本发明采用的技术方案为:
一种PCIE设备访存的可配置安全控制方法,包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求。
可选地,步骤S102包括:
S201,获取PCIE访存请求中携带的用于指示CPU安全状态的安全位;
S202,若安全位表示的CPU安全状态为安全态,则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间。
可选地,步骤S102包括:
S301,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为多个内存区间;
S302,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
可选地,步骤S102包括:
S401,获取PCIE访存请求;
S402,将PCIE访存请求与预设的全局表进行匹配以获得对应的区间索引INDEX,所述全局表中包含PCIE访存请求及其对应的区间索引INDEX之间的映射关系;
S403,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
可选地,步骤S102包括:
S501,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为安全区间和非安全区间;
S502,将PCIE访存请求与预设的全局表进行匹配,如果在全局表中有匹配的表项则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间,所述全局表中包含安全的PCIE访存请求及其区间索引INDEX。
可选地,所述全局表中,每一个表项的字段包括{INDEX,Bus,Dev,Func},其中字段INDEX为区间索引,字段Bus为PCIE访存请求的总线编号,字段Dev为发起PCIE访存请求的PCIE终端设备的设备编号,字段Func为PCIE访存请求的功能编号。
可选地,所述全局表中字段中,字段INDEX 的长度为log2(n)位,字段Bus的长度为8位,字段Dev的长度为5位,字段Func的长度为3位,其中n为内存被预先划分为内存区间的数量。
可选地,步骤S402中将PCIE访存请求与预设的全局表进行匹配是指采用内容匹配查找CAM的方式来将PCIE访存请求与预设的全局表进行匹配。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
所述安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,所述安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
和现有技术相比,本发明主要具有下述优点:本发明包括拦截PCIE根复合体模块发出的PCIE访存请求,确定PCIE访存请求允许访问的内存区间,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求,从而实现了控制PCIE终端设备对内存空间的安全访问,实现片外安全设备和非安全设备访问内存空间之间的隔离,将传统的安全软件的可信执行环境从片内扩展到片内外,能够有效堵住传统PCIE系统架构的硬件安全隐患。
附图说明
图1为现有片内SOC系统和片外PCIE设备通用的系统架构示意图。
图2为本发明实施例一方法的基本流程示意图。
图3为本发明实施例一中步骤S102的流程示意图。
图4为本发明实施例一中装置的结构示意图。
图5为本发明实施例二中步骤S102的流程示意图。
图6为本发明实施例二中装置的结构示意图。
图7为本发明实施例二中步骤S103的流程示意图。
图8为本发明实施例三中步骤S102的流程示意图。
图9为本发明实施例三中全局表的示意图。
图10为本发明实施例四中步骤S102的流程示意图。
具体实施方式
实施例一:
如图2所示,本实施例PCIE设备访存的可配置安全控制方法包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求。
PCIE根复合体模块发出的PCIE访存请求为来自外部的PCIE终端设备,PCIE终端设备发出的DMA请求即为PCIE访存请求,可以实现内存与PCIE终端设备的数据传输,例如,PCIE终端设备向内存发送读访问请求,内存向PCIE终端设备返回请求的数据;PCIE终端设备向内存发送写访问请求, PCIE终端设备写数据到内存。
本实施例中通过确定PCIE访存请求允许访问的内存区间,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求,使得PCIE访存请求对内存的访问受到允许访问的内存区间的约束,从而实现了控制PCIE终端设备对内存区间的安全访问,实现片外安全设备和非安全设备访问内存区间之间的隔离,将传统的安全软件的可信执行环境从片内扩展到片内外,能够有效堵住传统PCIE系统架构的硬件安全隐患。
需要说明的是,确定PCIE访存请求允许访问的内存区间的方式可以有多种,内存区间的内存安全控制形式也可以有多种。例如作为一种可选的实施方式,本实施例中实现了一种基于PCIE访存请求中携带的安全位,实现了安全区间和非安全区间两种类型的内存安全控制方式。具体地,如图3所示,本实施例中步骤S102包括:
S201,获取PCIE访存请求中携带的用于指示CPU安全状态的安全位;高安全CPU的CPU安全状态分为安全态与非安全态,安全态执行安全应用,而非安全态则执行普通应用。安全应用与普通应用执行是隔离开的,普通应用不能访问安全应用的数据。为此,在系统启动的时候,软件会对内存区间进行配置划分,专门划出部分内存区域供安全态使用,具体即划分为安全区间和非安全区间;
S202,若安全位表示的CPU安全状态为安全态,则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间。其中,安全位表示的CPU安全状态为安全态/非安全态的方式可以根据实际需要采用所需的表达方式,例如:采用有/无安全位的方式来表达CPU安全状态为安全态/非安全态,或采用有安全位的不同取值的方式来表达CPU安全状态为安全态/非安全态(例如取值为1和0等)等。
如图4所示,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
参见图4可知,本实施例中通过在PCIE根复合体设备和CPU的片上网络之间增加安全配置模块,在CPU的片上网络与SOC内存控制器之间增加安全控制模块,实现PCIE访存请求(DMA)访问内存的安全控制。参见图4,内存被划分为安全区间和非安全区间,实现了安全区间和非安全区间两种类型的内存安全控制方式。安全控制模块是一个位于片上总线与内存控制器之间的模块,负责对存储访问进行过滤。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
实施例二:
本实施例与实施例一基本相同,其主要区别为确定PCIE访存请求允许访问的内存区间的方式、内存区间的内存安全控制形式有所不同。
如图5所示,本实施例步骤S102包括:
S301,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为多个内存区间;例如本实施例中内存被预先划分为n个内存区间,其对应的索引分别为0~n;
S302,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
本实施例实现了一种以内存区间为粒度的内存安全控制方式,相对实施例一而言,安全控制的粒度更好。
本实施例中,区间索引INDEX为预先配置在PCIE访存请求中,可通过PCIE根复合体模块、或者PCIE终端设备来实现上述区间索引INDEX的生成,也每一个PCIE终端设备的区间索引INDEX为固定值,且不同的PCIE终端设备的区间索引INDEX互不相同。因此作为一种可选的实施方式,可以在步骤S301之后、S302之前针对PCIE访存请求中携带的区间索引INDEX,采用预设的区间索引INDEX、PCIE终端设备映射表来进行校验,以防止伪造的PCIE访存请求。如果校验不通过,则丢弃或记录该PCIE访存请求,只有校验通过的时候,才将继续执行步骤S302。
步骤S302中确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间时,可根据需要采用所需的映射方式:如果采用直接映射的方式,则直接将区间索引INDEX作为对应的内存区间的索引,即可快速确定PCIE访存请求允许访问的内存区间;如果采用间接映射的方式,则将区间索引INDEX采用映射函数(例如哈希函数等)来映射到对应的内存区间,这样安全性更好,但是需要花费额外的计算和时间花销。
本实施例中采用直接映射的方式,且直接输出区间索引INDEX给步骤S103。
参见图5,在步骤S103中,通过判断区间索引INDEX是否命中内存区间0~n的方式来进行不同的处理,如果命中内存区间0~n,则判定为目标地址在其允许访问的内存区间内,例如图5中为命中内存区间n,则继续执行访问内存区间n;如果未命中内存区间0~n,则判定为目标地址不在其允许访问的内存区间内,需要过滤改PCIE访存请求(可选择直接丢弃或者记录后再丢弃等)。需要说明的是,内存被划分为内存区间0~n的方式是系统软件配置决定的,本实施例方法的实施例不依赖于具体的划分方式。
如图6所示,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
参见图6可知,本实施例中通过在PCIE根复合体设备和CPU的片上网络之间增加安全配置模块,在CPU的片上网络与SOC内存控制器之间增加安全控制模块,实现PCIE访存请求(DMA)访问内存的安全控制。参见图4,内存被划分为内存区间0~n,实现了内存区间为粒度的内存安全控制方式。安全控制模块是一个位于片上总线与内存控制器之间的模块,负责对存储访问进行过滤。安全控制模块对访问请求的安全属性与目的空间的安全属性进行匹配,只有安全属性匹配上后才能访问对应的内存区间。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
实施例三:
本实施例与实施例二基本相同,其主要区别为确定PCIE访存请求允许访问的内存区间的方式、内存区间的内存安全控制形式有所不同。
如图6所示,本实施例步骤S102包括:
S401,获取PCIE访存请求;
S402,将PCIE访存请求与预设的全局表进行匹配以获得对应的区间索引INDEX,所述全局表中包含PCIE访存请求及其对应的区间索引INDEX之间的映射关系;
S403,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
实施例二为通过PCIE访存请求中携带的区间索引INDEX的方式来实现内存访问的限制,与实施例二不同的是,本实施例中区间索引INDEX并非是配置在PCIE访存请求中,是通过安全配置模块产生,这样可以保持PCIE访存请求不变,确保PCIE根复合体模块、或者PCIE终端设备的良好兼容性。
如图7所示,本实施例中的全局表中,每一个表项的字段包括{INDEX,Bus,Dev,Func},其中字段INDEX为区间索引,字段Bus为PCIE访存请求的总线编号,字段Dev为发起PCIE访存请求的PCIE终端设备的设备编号,字段Func为PCIE访存请求的功能编号。
根据PCIE协议定义,PCIE拓扑中各个节点由16位的ID号标识ReqID={Bus,Dev,Func},每个节点占一个ID号,因此本实施例中全局表中字段中,字段INDEX 的长度为log2(n)位,字段Bus的长度为8位,字段Dev的长度为5位,字段Func的长度为3位,其中n为内存被预先划分为内存区间的数量。
每个PCIE终端设备发出访问内存的PCIE访存请求时,都会在请求中携带这个ID号标识。本发明通过全局表产生对应的区间索引INDEX,从而控制哪些PCIE终端设备能访问安全的存储空间,哪些PCIE终端设备只能访问非安全的存储空间。
本实施例中,步骤S402中将PCIE访存请求与预设的全局表进行匹配是指采用内容匹配查找CAM的方式来将PCIE访存请求与预设的全局表进行匹配。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
实施例四:
本实施例与实施例三基本相同,其主要区别为确定PCIE访存请求允许访问的内存区间的方式、内存区间的内存安全控制形式有所不同。
如图8所示,本实施例步骤S102包括:
S501,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为安全区间和非安全区间;
S502,将PCIE访存请求中携带的区间索引INDEX与预设的全局表进行匹配,如果在全局表中有匹配的表项则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间,所述全局表中包含安全的PCIE访存请求及其区间索引INDEX。
将PCIE访存请求与预设的全局表进行匹配时,首先将PCIE设备请求报文的ReqID={Bus,Dev,Func}采用CAM方式查找全局表,CAM方式即是内容匹配查找方式,如果{Bus,Dev,Func}没有命中全局表中任何一表项{Bus,Dev,Func}(表项也可包含区间索引INDEX),那么就确定仅允许访问非安全区间;如果命中某一项,那么就确定允许安全区间和非安全区间。
本实施例通过将PCIE访存请求与预设的全局表进行匹配PCIE访存请求允许访问的内存区间的两种类型,从而实现了针对安全区间和非安全区间两种区间划分方式的安全控制。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
实施例五:
本实施例与实施例一基本相同,其主要区别为确定PCIE访存请求允许访问的内存区间的方式、内存区间的内存安全控制形式有所不同。
本实施例中,步骤S102包括:
S601,获取PCIE访存请求;
S602,将PCIE访存请求与预设的全局表进行匹配以获得对应的区间索引INDEX,所述全局表中包含PCIE访存请求及其对应的区间索引INDEX之间的映射关系;
将PCIE访存请求与预设的全局表进行匹配时,首先将PCIE设备请求报文的ReqID={Bus,Dev,Func}采用CAM方式查找全局表,CAM方式即是内容匹配查找方式,如果{Bus,Dev,Func}命中全局表中任何一表项{INDEX,Bus,Dev,Func},即可确定对应的区间索引INDEX。
S603,将PCIE访存请求中携带的区间索引INDEX与预设的全局表进行匹配,如果在全局表中有匹配的表项则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间,所述全局表中包含安全的PCIE访存请求及其区间索引INDEX。
本实施例通过将PCIE访存请求与预设的全局表进行匹配PCIE访存请求允许访问的内存区间的两种类型,从而实现了针对安全区间和非安全区间两种区间划分方式的安全控制。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括:
安全配置模块,用于拦截PCIE根复合体模块发出的PCIE访存请求,并确定PCIE访存请求允许访问的内存区间;
安全控制模块,用于过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
安全配置模块串联布置于PCIE根复合体设备和CPU的片上网络之间,安全控制模块串联布置于CPU的片上网络与SOC内存控制器之间。
此外,本发明还提供一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述PCIE设备访存的可配置安全控制方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种PCIE设备访存的可配置安全控制方法,其特征在于,包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
步骤S102包括:
S201,获取PCIE访存请求中携带的用于指示CPU安全状态的安全位;
S202,若安全位表示的CPU安全状态为安全态,则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间。
2.一种PCIE设备访存的可配置安全控制方法,其特征在于,包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
步骤S102包括:
S301,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为多个内存区间;
S302,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
3.一种PCIE设备访存的可配置安全控制方法,其特征在于,包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
步骤S102包括:
S401,获取PCIE访存请求;
S402,将PCIE访存请求与预设的全局表进行匹配以获得对应的区间索引INDEX,所述全局表中包含PCIE访存请求及其对应的区间索引INDEX之间的映射关系;
S403,确定区间索引INDEX对应的内存区间为PCIE访存请求允许访问的内存区间。
4. 根据权利要求3所述的PCIE设备访存的可配置安全控制方法,其特征在于,所述全局表中,每一个表项的字段包括{INDEX,Bus,Dev,Func},其中字段INDEX为区间索引,字段Bus为PCIE访存请求的总线编号,字段Dev为发起PCIE访存请求的PCIE终端设备的设备编号,字段Func为PCIE访存请求的功能编号,字段INDEX 的长度为log2(n)位,字段Bus的长度为8位,字段Dev的长度为5位,字段Func的长度为3位,其中n为内存被预先划分为内存区间的数量。
5.根据权利要求4所述的PCIE设备访存的可配置安全控制方法,其特征在于,步骤S402中将PCIE访存请求与预设的全局表进行匹配是指采用内容匹配查找CAM的方式来将PCIE访存请求与预设的全局表进行匹配。
6.一种PCIE设备访存的可配置安全控制方法,其特征在于,包括:
S101,拦截PCIE根复合体模块发出的PCIE访存请求;
S102,确定PCIE访存请求允许访问的内存区间;
S103,过滤目标地址不在其允许访问的内存区间内的PCIE访存请求,仅继续执行目标地址在其允许访问的内存区间内的PCIE访存请求;
步骤S102包括:
S501,获取PCIE访存请求中携带的区间索引INDEX,内存被预先划分为安全区间和非安全区间;
S502,将PCIE访存请求与预设的全局表进行匹配,如果在全局表中有匹配的表项则确定内存中的安全区间和非安全区间均为PCIE访存请求允许访问的内存区间;否则,仅确定内存中的非安全区间为PCIE访存请求允许访问的内存区间,所述全局表中包含安全的PCIE访存请求及其区间索引INDEX。
7. 根据权利要求6所述的PCIE设备访存的可配置安全控制方法,其特征在于,所述全局表中,每一个表项的字段包括{INDEX,Bus,Dev,Func},其中字段INDEX为区间索引,字段Bus为PCIE访存请求的总线编号,字段Dev为发起PCIE访存请求的PCIE终端设备的设备编号,字段Func为PCIE访存请求的功能编号,字段INDEX 的长度为log2(n)位,字段Bus的长度为8位,字段Dev的长度为5位,字段Func的长度为3位,其中n为内存被预先划分为内存区间的数量。
8.一种PCIE设备访存的可配置安全控制装置,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~7中任意一项所述PCIE设备访存的可配置安全控制方法。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~7中任意一项所述PCIE设备访存的可配置安全控制方法。
CN202211483088.8A 2022-11-24 2022-11-24 Pcie设备访存的可配置安全控制方法、装置及介质 Active CN115587348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211483088.8A CN115587348B (zh) 2022-11-24 2022-11-24 Pcie设备访存的可配置安全控制方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211483088.8A CN115587348B (zh) 2022-11-24 2022-11-24 Pcie设备访存的可配置安全控制方法、装置及介质

Publications (2)

Publication Number Publication Date
CN115587348A CN115587348A (zh) 2023-01-10
CN115587348B true CN115587348B (zh) 2023-04-07

Family

ID=84783574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211483088.8A Active CN115587348B (zh) 2022-11-24 2022-11-24 Pcie设备访存的可配置安全控制方法、装置及介质

Country Status (1)

Country Link
CN (1) CN115587348B (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
CN103430161B (zh) * 2012-11-15 2016-12-21 华为技术有限公司 一种基于PCIE Switch通信的方法、装置及系统
US10049216B2 (en) * 2014-02-06 2018-08-14 Intel Corporation Media protection policy enforcement for multiple-operating-system environments
US11226908B2 (en) * 2019-07-31 2022-01-18 Hewlett Packard Enterprise Development Lp Securing transactions involving protected memory regions having different permission levels
CN112384923A (zh) * 2019-11-27 2021-02-19 深圳市大疆创新科技有限公司 内存访问方法、微处理器、客户端及计算机存储介质
US20210200707A1 (en) * 2019-12-27 2021-07-01 Texas Instruments Incorporated End-to-end isolation over pcie
US11334258B2 (en) * 2020-06-10 2022-05-17 Marvell Asia Pte Ltd System and method for memory region protection
CN112417470B (zh) * 2020-11-06 2023-06-27 上海壁仞智能科技有限公司 实现gpu数据安全访问的方法、装置、电子设备及存储介质
CN113486410B (zh) * 2021-06-30 2023-11-21 海光信息技术股份有限公司 一种保护数据安全的方法、cpu核、cpu芯片和电子设备
US11816040B2 (en) * 2022-04-02 2023-11-14 Intel Corporation Device memory protection for supporting trust domains

Also Published As

Publication number Publication date
CN115587348A (zh) 2023-01-10

Similar Documents

Publication Publication Date Title
JP5164290B2 (ja) 情報フローの追跡および保護
US10972449B1 (en) Communication with components of secure environment
JP5153887B2 (ja) プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置
TW201617957A (zh) 鑑別變數之管理技術
WO2008032011A1 (en) Memory access security management
CN109766164A (zh) 一种访问控制方法、内存管理方法及相关装置
JP7327731B2 (ja) 車載システムにおけるセキュリティ保護方法およびデバイス
CN112351022B (zh) 信任区的安全防护方法及装置
CN104731635A (zh) 一种虚拟机访问控制方法,及虚拟机访问控制系统
US20050165783A1 (en) Secure direct memory access through system controllers and similar hardware devices
US11334258B2 (en) System and method for memory region protection
CN115017497A (zh) 信息处理方法、装置及存储介质
CN115587348B (zh) Pcie设备访存的可配置安全控制方法、装置及介质
KR101460451B1 (ko) 프로세스 주소 공간을 제어하는 장치 및 방법
CN116340243A (zh) 一种双核可信执行的安全芯片架构
US7246213B2 (en) Data address security device and method
CN108241801B (zh) 处理系统调用的方法和装置
CN115549938A (zh) 用于控制器的主机防火墙接口
US7356678B2 (en) Security measures in a partitionable computing system
CN116257368A (zh) 一种计算机系统中的通信方法及相关产品
JP2002318700A (ja) 仮想計算機システムの運用管理情報提供制御方法および仮想計算機システム
US20190370054A1 (en) Information Protection Method and Apparatus
CN114185834A (zh) 片上系统和电压与频率调节的方法
CN107516052B (zh) 一种内存访问隔离方法
US7296146B2 (en) Security measures in a partitionable computing system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant