CN107544918A - 一种内存页共享方法 - Google Patents

一种内存页共享方法 Download PDF

Info

Publication number
CN107544918A
CN107544918A CN201710708056.6A CN201710708056A CN107544918A CN 107544918 A CN107544918 A CN 107544918A CN 201710708056 A CN201710708056 A CN 201710708056A CN 107544918 A CN107544918 A CN 107544918A
Authority
CN
China
Prior art keywords
safety container
enclave
identity label
secure memory
safety
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.)
Granted
Application number
CN201710708056.6A
Other languages
English (en)
Other versions
CN107544918B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Analog Microelectronics (shanghai) Co Ltd
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 Analog Microelectronics (shanghai) Co Ltd filed Critical Analog Microelectronics (shanghai) Co Ltd
Priority to CN201710708056.6A priority Critical patent/CN107544918B/zh
Publication of CN107544918A publication Critical patent/CN107544918A/zh
Application granted granted Critical
Publication of CN107544918B publication Critical patent/CN107544918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种内存页共享方法,方法包括:第一安全容器enclave主动发起共享属于它的某个安全内存页EPC,或者收到第二安全容器共享属于第一安全容器某个EPC页的请求;第一安全容器验证第二安全容器的合法性;验证通过,则获取第二安全容器的安全容器身份标签和EPC页在第二安全容器所属的进程空间中映射的虚拟地址;在EPC页对应的安全内存页属性表EPCM中建立安全容器身份标签表;在安全容器身份标签表中插入一个条目,该条目记录第二安全容器的安全容器身份标签和虚拟地址;通知操作系统建立EPC页在第二安全容器所属的进程空间中的映射页表项。通过扩展EPCM,实现多个enclave共享EPC页,同一个EPC页在不同enclave中有自己的虚拟地址,enclave访问共享EPC如同访问属于自身的EPC页一样。

Description

一种内存页共享方法
技术领域
本发明涉及内存页共享方法,尤其是涉及一种基于Intel SGX中enclave的内存页共享方法。
背景技术
随着计算机和互联网的发展和普及,越来越多人的人将重要数据存储在计算机上或者远程云端,或者通过互联网支付、转账等。其中最担心的问题是信息泄露和黑客攻击。针对开放式平台使用的信息安全解决方案,Intel提出了SGX(Software GuardExtensions)方案。该方案使用一组新的指令,增加内存访问权限,将特定的程序和数据置于受保护的安全容器enclave中,从而达到隔离保护的目的。
对于一个enclave,只有该enclave本身可以访问其中的程序和数据,而其它的enclave、基本输入输出系统BIOS、操作系统OS、直接内存存取DMA、显卡等软硬件没有访问权限。要访问enclave中的程序和数据,首先要经过权限验证进入enclave模式,再经过一系列的合法检查,才能运行enclave中的程序和访问其中的数据。运行完成enclave中的程序之后,回到应用程序。
这种设计有几个显著的缺点:1)enclave之间不能共享程序代码,对于相同的程序代码,每个enclave都要复制一份,这将导致enclave中程序代码重复,体积变大;2)一个enclave不能调用另一个enclave的程序,也不能直接访问另一个enclave的数据;3)enclave之间不能共享数据,也不能直接交换数据。两个enclave之间要交换数据,必须先将数据从一个enclave中复制到内存,再从内存复制到另一个enclave中。4)enclave之间不能直接通信。
发明内容
本发明主要针对enclave之间由于相互隔离导致的上述不足之处,本发明设计出一种enclave之间共享内存的方法,从而解决了:1、enclave之间共享EPC页,重复利用PIC程序(Position Independent Code),减小程序代码对EPC(Enclave Page Cache)的开销。2、实现跨越enclave函数调用;3、多个enclave之间可以通过共享内存高效传输数据。4、为enclave之间通信提供了一种同步通信机制。
为实现上述目的,本发明提供了一种内存页共享方法,方法包括:第一安全容器enclave发出请求,请求共享其有权访问的某个安全内存页EPC;或者收到第二安全容器enclave共享属于第一安全容器enclave某个EPC页的请求;第一安全容器enclave验证第二安全容器的合法性;如果验证通过,则获取第二安全容器的安全容器身份标签和安全内存页在第二安全容器所属的进程空间中映射的虚拟地址;在安全内存页对应的安全内存页属性表(EPCM)中插入一个条目,该条目记录第二安全容器的安全容器身份标签和所述虚拟地址;上述条目形成安全容器身份标签表;通知操作系统建立安全内存页在第二安全容器所属的进程空间中的映射页表项。
优选的,安全容器身份标签表中包含至少一个条目,每个条目记录允许访问该安全内存页的安全容器的安全容器身份标签,以及该安全内存页在在该安全容器所属进程空间中映射的虚拟地址。
优选的,在安全容器身份标签表中插入一个条目由处理器完成。
优选的,在安全容器身份标签表中插入一个条目包括,向系统中添加一条用于实现共享安全内存页的指令。
优选的,所述方法还包括:释放所述安全内存页。
优选的,释放安全内存页具体包括:如果安全容器身份标签表中只记录有当前进程中的安全容器,则当前进程中安全容器enclave退出时,释放安全容器身份标签表;否则,从安全容器身份标签表中移除当前安全容器enclave的对应项。
本发明通过扩展EPCM,实现多个enclave共享EPC,同一个EPC页在不同的enclave中有自己的虚拟地址,enclave访问共享EPC如同访问属于自身的EPC一样。使用共享EPC,1)enclave之间可以共享代码,一些PIC程序共享EPC,减少代码对EPC的开销;2)实现跨越enclave的函数调用,一个enclave直接调用另一个enclave的函数,实现自身功能和访问对方数据;3)enclave之间共享数据,避免内存复制和进入、退出enclave的开销;4)为enclave之间提供了一种同步通信机制,使得enclave之间的同步操作变得容易。
附图说明
图1为本发明实施例提供的一种内存页共享方法流程图;
图2为根据本发明一个实施例实现一种内存页共享方法的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明实施例提供的一种内存页共享方法流程图。
本发明实施例提供了一种内存页共享方法,方法包括:首先,第一安全容器enclave发出请求,请求共享其有权访问的某个安全内存页EPC;或者收到第二安全容器enclave共享属于第一安全容器enclave某个EPC页的请求;接着所述第一安全容器enclave验证第二安全容器的合法性。在一个实施例中,上述验证步骤通过硬件验证实现。如果验证失败,则拒绝共享;如果验证通过,则获取第二安全容器的安全容器身份标签和要共享的安全内存页在第二安全容器所属的进程空间中映射的虚拟地址;然后,在该安全内存页对应的安全内存页属性表EPCM中建立安全容器身份标签表;在安全容器身份标签表中插入一个条目,该条目记录第二安全容器的安全容器身份标签和上述映射得到的虚拟地址;通知操作系统建立安全内存页在第二安全容器所属的进程空间中的映射页表项。在一个实施例之后,在安全容器身份标签表中插入一个条目由处理器完成。
下面具体描述在安全内存页属性表EPCM中建立安全容器身份标签表,并在该标签表中插入条目的过程。
SGX中,EPC页是受保护的内存页,我们在此称之为安全内存页。每个EPC页都有唯一的安全内存属性表EPCM(EPC Map)与之对应,EPCM记录了EPC的一些属性,如EPC页是否有效、EPC所属安全容器enclave的安全容器身份标签SECS_ID(SGX enclave controlstructure ID)、EPC页的类型、虚拟地址、读写权限以及是否可以被访问等。在现有技术中,每一个EPC最多只能被一个enclave所有,通过EPCM中的SECS_ID项标识。
针对每个EPC页最多只能被一个enclave访问的不足之处,我们对安全内存属性表EPCM进行扩展,在其中添加多组{SECS_ID,虚拟地址}项条目,上述条目形成一个安全容器身份标签表,即SECS_ID表,从而使得该表对应的EPC能够被所添加的多个SECS_ID对应的多个安全容器所访问。
该表的大小根据实际需求自定义。在一个实施例之后,扩展后的EPCM结构如下表所示。
表中,SECS_ID为enclave的SECS(SGX enclave control structure)身份标识,enclave只有被验证通过才能得到它的SECS_ID。虚拟地址为EPC页在所属enclave所在进程空间中虚拟地址。
共享EPC页,可以通过添加一条共享EPC页的指令,由硬件实现。
如图2所示,为根据本发明一个实施例实现一种内存页共享方法的示意图。
虚线箭头为不同enclave访问自己的安全内存页EPC过程,相互隔离,无法互相访问。实线箭头为不同enclave访问共享的安全内存页EPC过程。在各自进程中,如进程1中的安全容器1发出一个访问请求。请求中包含的虚拟地址通过查询内核空间中的页表,得到转换后的物理地址,根据物理地址找到相应的安全内存页EPC。对应的EPC页中处理器检查EPCM时查看其中的SECS_ID表,只要发现其中存在一项,其SECS_ID和当前enclave的SECS_ID一致,那么检查通过,允许访问EPC,否则触发错误信号。
一个enclave进程退出时,处理器检查该enclave使用的所有EPC页,读取EPC页对应的EPCM,如果EPC页只被当前enclave所有,体现在扩展后的EPCM中,即EPCM中建立的安全容器身份标签表中如果只记录有当前安全容器,那么该EPC页将被释放。否则,从EPC页对应的EPCM中的SECS_ID表中移除该enclave的对应项。一个共享的EPC页只能被最后一个引用该EPC页的enclave释放。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种内存页共享方法,其特征在于,方法包括:
第一安全容器(enclave)发出请求,请求共享其有权访问的某个安全内存页(EPC);或者收到第二安全容器(enclave)共享属于第一安全容器(enclave)某个EPC页的请求;
所述第一安全容器(enclave)验证第二安全容器的合法性;
如果验证通过,则获取第二安全容器的安全容器身份标签和所述安全内存页在第二安全容器所属的进程空间中映射的虚拟地址;
在所述安全内存页对应的安全内存页属性表(EPCM)中插入一个条目,该条目记录所述第二安全容器的安全容器身份标签和所述虚拟地址;
所述条目形成安全容器身份标签表;
通知操作系统建立所述安全内存页在第二安全容器所属的进程空间中的映射页表项。
2.根据权利要求1所述的方法,其特征在于,所述安全容器身份标签表中包含至少一个条目,每个条目记录允许访问该安全内存页的安全容器的安全容器身份标签,以及该安全内存页在在该安全容器所属进程空间中映射的虚拟地址。
3.根据权利要求2所述的方法,其特征在于,所述在安全容器身份标签表中插入一个条目由处理器完成。
4.根据权利要求1所述的方法,其特征在于,所述在安全容器身份标签表中插入一个条目包括,向系统中添加一条用于实现共享安全内存页的指令。
5.根据权利要求1所述的方法,其特征在于,还包括:释放所述安全内存页。
6.根据权利要求5所述的方法,其特征在于,所述释放安全内存页具体包括:
如果所述安全容器身份标签表中只记录有当前进程中的安全容器,则当前进程中安全容器(enclave)退出时,释放所述安全容器身份标签表;
否则,从所述安全容器身份标签表中移除当前安全容器(enclave)的对应项。
CN201710708056.6A 2017-08-17 2017-08-17 一种内存页共享方法 Active CN107544918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710708056.6A CN107544918B (zh) 2017-08-17 2017-08-17 一种内存页共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710708056.6A CN107544918B (zh) 2017-08-17 2017-08-17 一种内存页共享方法

Publications (2)

Publication Number Publication Date
CN107544918A true CN107544918A (zh) 2018-01-05
CN107544918B CN107544918B (zh) 2021-01-15

Family

ID=60957529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710708056.6A Active CN107544918B (zh) 2017-08-17 2017-08-17 一种内存页共享方法

Country Status (1)

Country Link
CN (1) CN107544918B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359487A (zh) * 2018-10-09 2019-02-19 湖北文理学院 一种基于硬件隔离的可扩展安全影子存储及标签管理方法
CN109947666A (zh) * 2019-02-27 2019-06-28 余炀 可信执行环境缓存隔离方法及装置、电子设备和存储介质
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN110874468A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 应用程序安全保护方法以及相关设备
CN112256395A (zh) * 2020-10-23 2021-01-22 海光信息技术股份有限公司 安全内存分配、虚拟cpu调度方法及相关装置
CN112817780A (zh) * 2021-02-01 2021-05-18 上海交通大学 一种实现安全与高性能进程间通信的方法和系统
WO2023103697A1 (zh) * 2021-12-10 2023-06-15 华为技术有限公司 一种计算机系统中的通信方法及相关产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073821A (zh) * 2011-01-27 2011-05-25 北京工业大学 基于xen平台的虚拟安全通信隧道的建立方法
CN104573553A (zh) * 2014-12-30 2015-04-29 中国航天科工集团第二研究院七O六所 一种面向Xen的虚拟机内存共享的安全隔离方法
CN104778401A (zh) * 2014-01-13 2015-07-15 恩智浦有限公司 数据处理设备和用于执行应用程序的方法
CN105095772A (zh) * 2014-05-19 2015-11-25 英特尔公司 用于安全地保存并恢复计算平台状态的方法和装置
CN105339945A (zh) * 2013-07-23 2016-02-17 英特尔公司 安全处理环境中的特征许可
CN105550576A (zh) * 2015-12-11 2016-05-04 华为技术服务有限公司 容器间通信的方法与装置
CN105745661A (zh) * 2013-12-19 2016-07-06 英特尔公司 对权限管理的内容的基于策略的受信任的检测
CN106547618A (zh) * 2016-10-19 2017-03-29 沈阳微可信科技有限公司 通信系统和电子设备
CN106716435A (zh) * 2014-10-17 2017-05-24 英特尔公司 设备与安全处理环境之间的接口

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073821A (zh) * 2011-01-27 2011-05-25 北京工业大学 基于xen平台的虚拟安全通信隧道的建立方法
CN105339945A (zh) * 2013-07-23 2016-02-17 英特尔公司 安全处理环境中的特征许可
CN105745661A (zh) * 2013-12-19 2016-07-06 英特尔公司 对权限管理的内容的基于策略的受信任的检测
CN104778401A (zh) * 2014-01-13 2015-07-15 恩智浦有限公司 数据处理设备和用于执行应用程序的方法
CN105095772A (zh) * 2014-05-19 2015-11-25 英特尔公司 用于安全地保存并恢复计算平台状态的方法和装置
CN106716435A (zh) * 2014-10-17 2017-05-24 英特尔公司 设备与安全处理环境之间的接口
CN104573553A (zh) * 2014-12-30 2015-04-29 中国航天科工集团第二研究院七O六所 一种面向Xen的虚拟机内存共享的安全隔离方法
CN105550576A (zh) * 2015-12-11 2016-05-04 华为技术服务有限公司 容器间通信的方法与装置
CN106547618A (zh) * 2016-10-19 2017-03-29 沈阳微可信科技有限公司 通信系统和电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡威: "基于SGX的虚拟网络功能安全保护机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874468A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 应用程序安全保护方法以及相关设备
CN110874468B (zh) * 2018-08-31 2024-02-09 华为技术有限公司 应用程序安全保护方法以及相关设备
CN109359487A (zh) * 2018-10-09 2019-02-19 湖北文理学院 一种基于硬件隔离的可扩展安全影子存储及标签管理方法
CN109359487B (zh) * 2018-10-09 2022-02-18 湖北文理学院 一种基于硬件隔离的可扩展安全影子存储及标签管理方法
CN109947666A (zh) * 2019-02-27 2019-06-28 余炀 可信执行环境缓存隔离方法及装置、电子设备和存储介质
CN109947666B (zh) * 2019-02-27 2023-04-25 余炀 可信执行环境缓存隔离方法及装置、电子设备和存储介质
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN112256395A (zh) * 2020-10-23 2021-01-22 海光信息技术股份有限公司 安全内存分配、虚拟cpu调度方法及相关装置
CN112256395B (zh) * 2020-10-23 2023-01-31 海光信息技术股份有限公司 安全内存分配、虚拟cpu调度方法及相关装置
CN112817780A (zh) * 2021-02-01 2021-05-18 上海交通大学 一种实现安全与高性能进程间通信的方法和系统
CN112817780B (zh) * 2021-02-01 2022-03-11 上海交通大学 一种实现安全与高性能进程间通信的方法和系统
WO2023103697A1 (zh) * 2021-12-10 2023-06-15 华为技术有限公司 一种计算机系统中的通信方法及相关产品

Also Published As

Publication number Publication date
CN107544918B (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
CN107544918A (zh) 一种内存页共享方法
CN109062833B (zh) 计算系统操作方法、计算系统、车辆及计算机可读媒体
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
CN102054138B (zh) 向经过认证的防病毒代理提供扫描存储器的直接访问权
US7549022B2 (en) Avoiding cache line sharing in virtual machines
CN104346317B (zh) 共享资源访问方法和装置
CN107643940A (zh) 容器创建方法、相关设备及计算机存储介质
US7571294B2 (en) NoDMA cache
CN106528269B (zh) 轻量级的虚拟机访问控制系统及控制方法
CN107357666A (zh) 一种基于硬件保护的多核并行系统处理方法
US20160350260A1 (en) Dynamic Non-Uniform Memory Architecture (NUMA) Locality for Remote Direct Memory Access (RDMA) Applications
US9208088B2 (en) Shared virtual memory management apparatus for providing cache-coherence
CN109587151A (zh) 访问控制方法、装置、设备及计算机可读存储介质
CN112612623B (zh) 一种共享内存管理的方法和设备
CN112099903A (zh) 一种虚拟机的内存管理方法、装置、cpu芯片及服务器
CN110554911A (zh) 内存访问与分配方法、存储控制器及系统
CN104573422A (zh) 一种基于虚拟机的应用进程运行方法及装置
CN105302489B (zh) 一种异构多核远程嵌入式存储器系统与方法
CN109697127A (zh) 一种对共享资源的访问操作加锁的方法和装置
CN105183799B (zh) 一种权限管理的方法及客户端
CN105278880A (zh) 一种基于云计算虚拟化的内存优化装置和方法
CN106295413A (zh) 半导体装置
CN108959403A (zh) 一种分布式事务处理方法及装置
CN110109761A (zh) 一种用户态管理操作系统内核内存方法及系统
CN105512553A (zh) 一种预防虚拟机逃逸攻击的访问控制方法

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
TA01 Transfer of patent application right

Effective date of registration: 20180110

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant after: Hai Guang Information Technology Co., Ltd.

Address before: 201203 3F, No. 1388, 02-01, Zhang Dong Road, Pudong New Area, Shanghai

Applicant before: Analog Microelectronics (Shanghai) Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant