CN109937407A - 用于smm传输监控器的扩展存储器 - Google Patents

用于smm传输监控器的扩展存储器 Download PDF

Info

Publication number
CN109937407A
CN109937407A CN201680088855.1A CN201680088855A CN109937407A CN 109937407 A CN109937407 A CN 109937407A CN 201680088855 A CN201680088855 A CN 201680088855A CN 109937407 A CN109937407 A CN 109937407A
Authority
CN
China
Prior art keywords
page
memory
smm
moved
stm
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
CN201680088855.1A
Other languages
English (en)
Other versions
CN109937407B (zh
Inventor
姚颉文
V.J.齐默
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN109937407A publication Critical patent/CN109937407A/zh
Application granted granted Critical
Publication of CN109937407B publication Critical patent/CN109937407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

将虚拟存储器分配给系统管理模式(SMM)进程,以扩展为SMM保留的安全存储器。SMM进程请求针对其不存在到安全存储器的映射的虚拟存储器页面:如果安全存储器中页面可用,则将虚拟存储器页面映射到该可用页面,并且如果页面不可用,则选择安全存储器中的页面以由虚拟存储器页面替换。对所选页面进行加密并将其移动到外部存储设备。将虚拟存储器页面映射到第一存储器中的所选页面的地址。如果存在针对虚拟存储器页面到外部存储设备中的加密数据的映射,那么将该数据移动到被映射到虚拟存储器页面的安全存储器地址,并在访问虚拟存储器页面之前解密所述数据。

Description

用于SMM传输监控器的扩展存储器
技术领域
本文描述的实施例一般涉及信息处理和安全性,更具体地,涉及扩展可用于供计算机系统的系统管理模式(SMM)传输监控器(STM)使用的存储器。
背景技术
在计算机系统中,系统管理模式(SMM)是指x86系列中央处理器单元(CPU)的操作模式,其中基于系统模式中断(SMI)的发生而暂停所有正常执行(包括操作系统(OS)),并且特殊系统软件以特殊权限(诸如访问所有系统存储器)来执行。SMM可以用于处理全系统功能,比如电源管理、硬件控制、OS验证、加密或专属的原始设备制造商(OEM)设计的代码。SMM一般仅供系统固件使用,而不会供通用应用或甚至通用目的的系统软件使用。通过这种方式,SMM能够提供独立于操作系统、任何管理程序(HV)或任何其他应用软件进行操作的孤立的计算环境。
然而,SMM可能被用作诸如木马之类的恶意软件的攻击媒介。尽管SMM中的可执行代码可以是基于固件且没有错误的,但是已报告了用于篡改SMM的操作的各种技术。例如,OS可以将数据对象(诸如变量、参数值、函数调用等)传递给SMM,并且可以利用这些数据对象来获得访问SMM的特殊权限级别。SMM在被安装在操作系统上且受操作系统控制的反恶意软件程序的可及范围之外进行操作的事实进一步加重了恶意软件攻击的可能性。
用于保护对计算设备的操作至关重要的软件的一种方法是通过软件隔离。例如,在诸如例如结合在许多现代处理器上的虚拟VT功能性的虚拟机环境中进行隔离,其中一个或多个机器管理器控制虚拟机在具有各异的权限级别的不同操作环境中操作。例如,VT定义了主监控器模式,其中虚拟机监控器(VMM)或HV能够对客户OS进行去权限。类似地,VT还提供STM,该STM可以对SMI处理程序进行去权限,使得它作为SMM中的STM的客户来运行。SMM可以基于检测到SMI而发起保存处理器的当前状态并且停止所有其他进程。然后可以执行高权限操作,诸如例如调试、硬件管理、安全功能、仿真等,然后计算设备基于已保存的状态来恢复操作。
在某些情况下,VMM或HV本身可能需要监控,因为无法保证这些高权限程序将不会被用于恶意操作。然而,由于VMM或HV在计算系统中维持最高权限,因此由程序在正常执行环境中进行的对等监控可能是困难的或者甚至是不可能的。就此而言,存在可在SMM期间进行访问的称为系统管理ram(SMRAM)的单独的存储器空间。SMRAM可以用于维持STM。STM被加载到SMRAM的顶部段的一部分中,该段称为监控器段或MSEG,其被留出供STM使用。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同视图中描述类似的组件。具有不同字母下标的相同数字可以表示类似组件的不同实例。在附图的各图中通过示例而非限制的方式例示了一些实施例。
图1是例示了根据本文描述的实施例的中央处理单元(CPU)的操作模式之间的基本关系的高级框图。
图2是例示了通用机器的示例形式的计算机系统的框图。
图3是例示了诸如图2中描绘的计算设备之类的计算设备的示例性硬件和软件架构的图示,其中示出了硬件组件和软件组件之间的各种接口。
图4是例示了根据一些实施例的处理设备的框图。
图5是例示了根据标准实施方式的为STM保留的SMRAM的示例MSEG部分的框图。
图6是例示了根据某些实施例的MSEG和EMSEG虚拟存储器的框图。
图7是例示了根据某些实施例的MSEG中的物理存储器页面(P-MSEG)、EMSEG中的虚拟存储器页面(V-EMSEG)和外部存储中的存储存储器页面(S-EMSEG)的框图。
图8是例示了根据某些实施例的用于初始化EMSEG并分配外部存储中的页面交换文件的方法的流程图。
图9是例示了根据某些实施例的用于将V-EMSEG的页面分配给STM进程的方法的流程图。
图10是例示了根据某些实施例的用于扩展可用于供STM使用的存储器的方法的流程图。
图11是例示了根据某些实施例的用于回收(reclaim)被分配给STM的一组虚拟存储器页面的方法的流程图。
图12是例示了根据某些实施例的MSEG中的P-MSEG页面、EMSEG中的V-EMSEG页面、外部存储中的S-EMSEG页面、以及MSEG与外部存储之间的通信缓冲器的框图。
图13是例示了根据某些实施例的用于借助于VMM来扩展可用于供STM使用的存储器的方法的流程图。
具体实施方式
实施例的各方面涉及扩展可用于供计算机系统的系统管理模式(SMM)传输监控器(STM)使用的存储器(例如,SMRAM中的MSEG)。计算机系统可以是一个物理机器,或者可以诸如按照角色或功能、或者在云计算分布式模型的情况下按照进程线程而分布在多个物理机器之间。在各种实施例中,某些操作可以在虚拟机中运行,虚拟机进而在一个或多个物理机器上执行。本领域技术人员将理解的是,本发明的特征可以通过各种不同的合适机器实施方式来实现。
在SMM期间可访问的SMRAM通常具有大小限制。例如,用于STM的典型存储器配置仅提供2MB或3MB以供用作MSEG。这可能是不够的,因为STM需要构建完整的系统执行环境,比如用于每个处理器的堆栈、用于每个处理器的虚拟机控制结构(VMCS)、用于SMM客户的外部页表(EPT)、用于SMM客户的扩展页表(EPT)、用于其自身的页表、用来记录受保护资源的区域、用来记录BIOS资源的区域、STM内核本身等等。
图1是例示了根据本文描述的实施例的中央处理单元(CPU)的操作模式之间的基本关系的高级框图。
如所描绘的,存在两种操作模式:正常模式102和SMM 104。可能存在用于CPU的附加操作模式,并且实际的计算机系统可以支持许多附加操作;但为了清楚起见,详细介绍这两种感兴趣的模式。在正常模式102中,当计算机系统被配置成运行虚拟机时,CPU执行管理程序(例如,虚拟机监控器)的代码。另外,在正常模式102中,计算机系统可以执行一个或多个操作系统,包括各种设备和系统驱动程序以及应用程序。SMM 104被保留用于执行可以访问安全SMRAM的专用固件,通常用于配置计算机系统、检查要在正常模式102中执行的软件的完整性的目的以及各种其他目的。然而,如上所讨论的,SMM 104可能受到危害,并且因此本文描述了可以提供更多存储器以供用作MSEG的用于STM的更稳健的配置的实施例。
如106处表示的,CPU可以从正常模式102转换为SMM 104。SMM 104可以由例如以正常模式102运行的程序(诸如系统驱动程序)或操作系统的某其他部分(例如,VMM经由VMCALL)进行调用。CPU还可以基于来自SMM进程(诸如来自STM的系统控制中断(SCI))的调用而从SMM 104转换为正常模式102。一般而言,从正常模式102转换为SMM 104以及从SMM104转换为正常模式102的调用可以伴随有一些数据传递108,所述数据例如如下所述的代码、变量、参数等。
图2是例示了以通用机器的示例形式的计算机系统的框图。在某些实施例中,根据一个或多个特定算法对计算机系统200的编程在执行该编程时产生专用机器。在联网部署中,计算机系统200可以作为服务器-客户端网络环境中的服务器或客户端机器进行操作,或者其可以充当对等(或分布式)网络环境中的对等机器。计算机系统200可以采取任何合适的形状因子,诸如个人计算机(PC)工作站、服务器(无论是机架安装式服务器还是独立式服务器)、大型计算机、集群计算系统或类似物、机顶盒以及移动或便携式计算系统,诸如膝上型/笔记本PC、车载系统、可穿戴设备、平板PC、混合式平板、个人数字助理(PDA)、移动电话或更广义地任何能够执行指定要由该机器采取的动作的指令(顺序或以其他方式)的机器。
示例计算机系统200包括彼此经由链路208(例如,总线)进行通信的至少一个处理器202(例如,中央处理单元(CPU)、图形处理单元(GPU)或二者、处理器核、计算机节点等)、主存储器204和静态存储器206。计算机系统200还可以包括视频显示单元210、字母数字输入设备212(例如,键盘)和用户界面(UI)导航设备214(例如,鼠标)。在实施例中,视频显示单元210、输入设备212和UI导航设备214被合并到触摸屏显示器中。计算机系统200可以另外包括存储设备216(例如,驱动单元)、信号生成设备218(例如,扬声器)、网络接口设备(NID)220以及一个或多个传感器(未示出),诸如全球定位系统(GPS)传感器、罗盘、加速度计或其他传感器。
存储设备216包括其上存储有一组或多组数据结构和指令224(例如,软件)的计算机可读介质222,所述一组或多组数据结构和指令224体现了本文描述的方法论或功能中的任何一个或多个或者被它们所利用。在由计算机系统200执行指令224期间,指令224还可以完全或至少部分地驻留在主存储器204、静态存储器206内和/或处理器202内,其中主存储器204、静态存储器206和处理器202也构成机器可读介质。
虽然机器可读介质222在示例实施例中被例示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令224的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读介质”还应该被理解为包括任何有形介质,其能够存储、编码或承载用于由机器执行的指令并且使机器实行本公开的方法论中的任何一个或多个或者能够存储、编码或承载由这样的指令利用或与这样的指令相关联的数据结构。术语“机器可读介质”相应地应被理解为包括但不限于固态存储器以及光学介质和磁性介质。机器可读介质的具体示例包括非易失性存储器,以示例的方式包括但不限于半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移除磁盘;磁光盘;和CD-ROM和DVD-ROM磁盘。
根据各种实施例,NID 220可以采取任何合适的形状因子。在一个这样的实施例中,NID 220采取网络接口卡(NIC)的形式,其经由链路208与处理器202对接。在一个示例中,链路208包括快速PCI(PCIe)总线,其包括NIC形状因子可以进入到其中的槽。在另一实施例中,NID 220是与本地链路电路、处理器接口电路、其他输入/输出电路、存储器电路、存储设备和外围控制器电路等一起布置在主板上的网络接口电路。在另一实施例中,NID 220是经由诸如通用串行总线(USB)端口之类的外围输入/输出端口与链路208对接的外围设备。NID 220通过传输介质226传输和接收数据,传输介质226可以是有线或无线的(例如,射频、红外或可见光谱等)、光纤等等。
图3是例示了诸如图2中描绘的计算设备之类的计算设备的示例性硬件和软件架构的图示,其中示出了硬件组件和软件组件之间的各种接口。如通过HW指示的,硬件组件在分隔线下方表示,而由SW表示的软件组件位于分隔线上方。在硬件侧上,各自具有一个或多个处理器核的处理设备302(其可以包括一个或多个微处理器、数字信号处理器等)与存储器管理设备304和系统互连306对接。存储器管理设备304提供由正在执行的进程使用的虚拟存储器与物理存储器之间的映射。存储器管理设备304可以是中央处理单元的组成部分,该中央处理单元还包括处理设备302。
互连306包括诸如存储器、数据和控制线之类的底板以及与输入/输出设备(例如,PCI、USB等)的接口。存储器308(例如,动态随机存取存储器——DRAM)和诸如闪存之类的非易失性存储器309(例如,电可擦除只读存储器——EEPROM、NAND闪存、NOR闪存等)经由存储器控制器310与存储器管理设备304和互连306对接。在一些实施例中,该架构可以支持外围设备的直接存储器访问(DMA)。包括视频和音频适配器的I/O设备、非易失性存储器、外部外围链路(诸如USB、蓝牙等)以及网络接口设备(诸如经由Wi-Fi或LTE系列接口进行通信的设备)共同被表示为I/O设备和联网312,其经由对应的I/O控制器314与互连306对接。
在软件侧上,预操作系统(pre-OS)环境316,其在最初系统启动时执行并且负责发起操作系统的起动。pre-OS环境316的一个传统示例是系统基本输入/输出系统(BIOS)。在当今的系统中,实现了统一的可扩展固件接口(UEFI)。pre-OS环境316负责发起操作系统的启动,但也为嵌入式应用提供执行环境。
系统管理模式(SMM)表示在处理设备302的专用操作模式中执行的代码,其被提供用于处理比如电源管理、系统硬件控制或专属OEM设计代码之类的系统级功能。一般而言,SMM旨在供系统固件使用,而不是供应用软件或通用系统软件使用,尽管SMM可以被软件栈发起的系统管理中断(SMI)所调用。SMM提供独特且孤立的处理器环境,其对操作系统或执行应用和软件应用进行透明地操作。处理设备302在处理设备302的其他操作模式不可访问的单独地址空间(例如,SMRAM)中执行SMM代码。
操作系统(OS)318提供内核,其控制硬件设备、管理针对存储器中的程序的存储器访问、协调任务并促进多任务化、组织要存储的数据、分派存储器空间和其他资源、将程序二进制代码加载到存储器中、发起应用程序的执行(所述应用程序然后与用户和硬件设备交互)以及检测各种已定义的中断并对其进行响应。此外,操作系统318提供设备驱动程序和各种常见服务,诸如促进与外围设备对接和联网的服务,所述服务为应用程序提供了抽象化,使得应用不需要负责处理此类常见操作的细节。操作系统318另外提供图形用户界面(GUI),其促进经由诸如监视器、键盘、鼠标、麦克风、视频摄像机、触摸屏等的外围设备与用户的交互。
运行时系统320实现执行模型的部分,包括诸如以下的操作:在函数调用之前将参数放到堆栈上、磁盘输入/输出(I/O)行为以及与并行执行相关的行为。运行时系统320还可以执行支持服务,诸如类型检查、调试或代码生成和优化。
库322包括程序函数的集合,其为应用程序提供进一步的抽象化。例如,这些包括共享库、动态链接库(DLL)。库322可以是操作系统318、运行时系统320的组成部分,或者可以是添加特征,或者甚至是远程托管的。库322定义应用程序接口(API),应用程序324可以通过该应用程序接口进行各种函数调用以调取由操作系统318提供的服务。应用程序324是为用户执行超越由协调计算设备本身的基本可操作性的低级系统程序执行的任务的有用任务的那些程序。
图4是例示了根据一些实施例的处理设备302的示例的框图。CPU 410可以包括一个或多个处理核412。作为例证性示例,CPU 410可以是x86类型的处理器。处理设备302还可以包括图形处理单元(GPU)414。在这些实施例中,GPU 414可以是专用协处理器,其从CPU410卸载某些计算密集的操作,尤其是与图形渲染相关联的那些操作。值得注意的是,CPU410和GPU 414一般协同工作、共享对存储器资源、I/O通道的访问等等。
处理设备302还包括看护处理器(caretaker processor)416。看护处理器416一般不参与用来执行软件代码的处理工作,如CPU 410和GPU 414那样。在一些实施例中,看护处理器416不与CPU 410和GPU 414共享存储器空间,并且因此不被布置为执行操作系统或应用程序。替代地,看护处理器416可以执行支持CPU 410、GPU 414和计算机系统的其他组件的技术工作的专用固件。在一些实施例中,看护处理器被实现为微控制器设备,其可以物理地存在于与CPU 410相同的集成电路管芯上,或者可以存在于不同的集成电路管芯上。看护处理器416还可以包括专用的I/O设施组,以使其能够与外部实体通信。在一种类型的实施例中,看护处理器416是使用可管理性引擎(ME)或平台安全性处理器(PSP)实现的。在图2至图4中例示的硬件、软件和其他组件可以被临时地或永久地配置成执行本文描述的方法的操作。
图5是例示了根据标准实施方式的为STM保留的SMRAM的示例MSEG 502部分的框图。MSEG 502中的物理地址504是由SMM向STM进程分配存储器的唯一方式,因为没有额外的存储器可用,无论是虚拟的还是其他的。提供本文描述的实施例是为了去除使系统使用对等监控器/SMM传输监控器(STM)的运行时障碍中的一些(例如,用于MSEG的有限存储器量)。STM可能具有许多存储器密集的特征,但是只有有限的SMRAM量。具体地说,STM使用的MSEG可能因具有太多CPU而耗尽。本文描述的实施例通过使用虚拟存储器加密分页技术来使用于STM的存储器占用空间大幅增大而同时避免被潜在恶意的代码所打断来减轻这种MSEG空间压力。
SMM顶部段(TSEG)中的典型SMRAM是8 MB或16MB,并且可以调用该有限量来支持机密调试器、BIOS SMI处理程序和STM。如上所述,这留下了仅2MB或3MB的STM典型配置。本文描述的实施例提供了一种使用包括安全性考虑的虚拟存储器概念来扩展STM中的存储器使用的方法。以这种方式,STM可以仅能访问2或3MB的物理MSEG,然而其能访问任意量的虚拟MSEG(例如,扩展MSEG或EMSEG)。
图6是例示了根据某些实施例的MSEG 502和EMSEG 602虚拟存储器的框图。扩展MSEG(EMSEG 602)提供虚拟存储器以支持STM。实线指示EMSEG 602的虚拟地址604与MSEG502的物理地址504之间的当前映射。虚线指示EMSEG 602与MSEG 502的其他虚拟地址之间的可能映射。下面将讨论这些映射的进一步的细节。外部存储606可以包括用来保持与EMSEG 602中的虚拟地址相对应的数据的存储设备。外部存储606可以是物理存储器、或NV存储,诸如NVMe/UFS/NAND闪存。
图7是例示了根据某些实施例的第一存储器MSEG 502中的物理存储器页面(P-MSEG)、EMSEG 602中的虚拟存储器页面(V-EMSEG)和第二存储器外部存储606中的存储存储器页面(S-EMSEG)的框图。
如上所指出的,EMSEG 602是扩展MSEG存储器空间。P-EMSEG是在传统MSEG 502中保留的物理存储器页面(例如,“2”),其可以被映射到EMSEG 602中的虚拟存储器。V-EMSEG是EMSEG 602中供STM进程使用的虚拟存储器页面。STM能够设立页表以将V-EMSEG(例如,“1”、“2”或“3”)页面映射到P-EMSEG页面。S-EMSEG是用于EMSEG 602的存储器页面的存储页面(例如,页面交换文件)。S-EMSEG存储页面数据被存储在外部存储606中。S-EMSEG(例如,交换文件)应该与V-EMSEG虚拟页面的大小匹配。
如上所指出的,EMSEG 602提供虚拟存储器以支持STM。从STM应用的角度来看,只有V-EMSEG的虚拟地址页面可见,并且STM使用这些地址。STM应用不需要知道P-EMSEG和S-EMSEG地址,因为STM核将处理V-EMSEG到P-EMSEG和S-EMSEG地址的虚拟存储器映射。
图8是例示了根据某些实施例的用于初始化EMSEG并分配外部存储中的页面交换文件的方法的流程图。在操作802处,STM核基于EMSEG基址和EMSEG大小来记录EMSEG 602的范围。在操作804处,STM为EMSEG 602的虚拟页面(例如,V-EMSEG)设立分页(例如,空白页表)。在操作806处,STM核在外部存储606中设立页面交换文件“PageFile.bin”。
图9是例示了根据某些实施例的用于将V-EMSEG的页面分配给STM进程的方法900的流程图。在操作902处,STM进程调用函数VirtAllocatePages()以访问EMSEG 602。在操作904处,STM核尝试在EMSEG 602的V-EMSEG虚拟页面中找到空闲虚拟页面。如果不存在V-EMSEG的空闲页面,那么在操作906处,STM核返回空(例如,没有空闲的EMSEG存储器)结果。如果存在V-EMSEG的空闲页面,那么在操作908处,STM核将V-EMSEG中的地址返回给STM进程。在分配阶段期间,不需要启用从V-EMSEG到P-MSEG的映射。可以在STM进程尝试访问V-EMSEG时执行该映射。
图10是例示了根据某些实施例的用于扩展可用于供STM使用的存储器的方法1000的流程图。在操作1002处,STM应用尝试访问V-EMSEG中的已分配的虚拟存储器页面。在操作1004处,如果具有V-EMSEG与P-MSEG之间的映射的页表为所访问的V-EMSEG页面指定了对应的P-EMSEG页面,那么在操作1022处,STM应用可以在MSEG 502中对应P-MSEG页面的地址处访问该V-EMSEG页面。如果页表没有为所访问的V-EMSEG页面指定对应的P-EMSEG页面(例如,页面错误),那么在操作1006处,STM核尝试找到P-MSEG中可用的空闲页面。如果STM核确实在P-MSEG中找到了空闲页面,那么在操作1014处,STM核将P-MSEG中的空闲页面的地址指定用于页表中的V-EMSEG页面。如果STM核未在P-MSEG中找到空闲页面,那么在操作1008处,STM核根据页面替换策略来选择P-MSEG中的页面以进行替换。例如,页面替换策略可以指定基于自访问该页面以来的时间段大于阈值值或大于自访问该P-MSEG中的所有其他页面以来的时间段来选择P-MSEG中的页面。替换地或附加地,页面替换策略可以指定基于自该页面处于P-MSEG中以来的时间段大于阈值值或大于自该P-MSEG中的所有其他页面处于P-MSEG中以来的时间段来选择P-MSEG中的页面。
在操作1010处,STM核加密P-MSEG中的所选页面。例如,STM核可以生成用来加密页面的代码,该代码包括使用随机数生成器生成的密钥。此外,STM核可以将该代码存储在MSEG 502的区域中,其存储不能被移动到外部存储606的数据。在操作1012处,STM核可以将加密的所选页面从P-MSEG移动到S-EMSEG,使得该方法可以进行到操作1014,在操作1014处,STM核将P-MSEG中的所选页面的地址指定用于页表中的V-EMSEG页面。
在操作1016处,STM核确定页表是否指定了S-EMSEG中的对应的加密页面用于V-EMSEG页面。如果页表没有指定页面,那么在操作1022处,STM应用可以访问P-MSEG中的可用页面的指定地址处的或P-MSEG中的所选页面的V-EMSEG页面,这取决于该该方法是否已从操作1006前进到1014或从操作1012前进到1014。如果页表确实指定了S-EMSEG中的对应的加密页面用于V-EMSEG页面,那么在操作1018处,STM核将对应的加密页面从S-EMSEG拷贝到P-MSEG中的可用页面或P-MSEG中的所选页面的地址,这取决于该该方法是否已从操作1006前进到1014或从操作1012前进到1014。在操作1020处,STM核(例如,使用上述密钥)解密P-MSEG中的对应的加密页面并且前进到操作1022,使得STM应用可以访问P-MSEG中的可用页面的指定地址处的或P-MSEG中的所选页面的V-EMSEG页面,这取决于该该方法是否已从操作1006前进到1014或从操作1012前进到1014。
图11是例示了根据某些实施例的用于回收被分配给STM的一组虚拟存储器页面的方法1100的流程图。当STM想要拆卸(tear down)EMSEG 602时,STM核在操作1102处广播拆卸消息。然后,在操作1104处,存储在V-EMSEG中的STM应用拆卸回调函数将消失,并且STM应用可以在V-EMSEG中进行最终清除工作。然后,在操作1106处,STM核删除外部存储设备606中的页面交换文件“PageFile.bin”。在操作1106处,STM核还可以删除存储在MSEG 502中的加密密钥/代码。
图12是例示了根据某些实施例的MSEG 502中的P-MSEG页面、EMSEG 602中的V-EMSEG页面、外部存储606中的S-EMSEG页面、以及MSEG 502与外部存储606之间的通信缓冲器1202的框图。如上所指出的,STM可以具有用于固件使用的专用存储,例如NVMe分区。当前的UEFI BIOS支持非SPI引导路径,并且所有数据/代码/变量都存储在不同的NVMe分区中。替换地,STM可以与VMM一起工作来为NVMe分区设立隔离策略。如果STM可以利用VMM能力,尤其是如果VMM和STM都是同一制造商的产品的话。
如所示,通信缓冲器1202可以用于在STM(例如,MSEG 502)与外部存储设备606之间传输数据1204。如上所指出的,这可以在VMM的帮助下完成,如下面关于图13解释的那样。P-MSEG和S-EMSEG页面可以作为加密数据从一个物理存储器移动到另一个物理存储器,其中VMM必须知道用于保护页面的任何密钥/代码。
图13是例示了根据某些实施例的用于借助于VMM来扩展可用于供STM使用的存储器的方法1300的流程图。当STM需要访问外部存储606时,在操作1302处,STM创建SetJump点(例如,保存STM应用的状态),并且在操作1304处,STM向STM/VMM之间的预先分配的通信缓冲器1202发送请求。该请求可以包括要被移动到外部存储606的S-EMSEG的P-MSEG页面。在操作1306和1308处,STM向VMM发信号通知系统控制中断(SCI)和ResumeGuest,使得VMM将检查通信缓冲器1202。在操作1310处,VMM将接收SCI,并且VMM的SCI处理程序将检查通信缓冲器(例如,并检索缓冲器中的任何页面)。在操作1314处,VMM将访问S-EMSEG并获得由STM请求的任何数据(例如,页面)(或将从缓冲器中检索到的页面拷贝到S-EMSEG)。由于SCI,VMM知道了该请求来自STM,因此VMM可以安全地将数据从S-EMSEG拷贝到通信缓冲器。重要的是,VMM仅将数据拷贝到缓冲器和从缓冲器拷贝数据,VMM不进行任何加密/解密,因为VMM不知道能够访问为加密/解密而生成的密钥/代码。通信缓冲器1202中的数据仍然是密文而不是纯文本,直到它在MSEG 502中被接收为止。
在操作1318处,VMM使用VMCALL向STM发信号通知关于由VMM拷贝到通信缓冲器1202中或从通信缓冲器1202拷贝的数据。在操作1320处,STM将找到FarJump点并基于在较早的SetJump点处的状态信息保存开始执行STM应用。在操作1322处,STM将数据(例如,页面)从通信缓冲器1202拷贝到P-EMSEG。然后,STM如上文解释的那样在MSEG 502处解密数据。
示例
示例1是一种系统,其包括处理器和耦合到所述处理器的存储器,所述存储器包括指令,所述指令在被所述处理器执行时使得所述系统:响应于从系统管理模式(SMM)进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求:基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及,基于第一存储器中页面不可用的确定:根据页面替换策略选择第一存储器中的页面;对第一存储器中的所选页面进行加密;将已加密的所选页面从第一存储器移动到第二存储器;以及,将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
在示例2中,示例1的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及解密第一存储器中的所指定的加密页面;并且基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及解密第一存储器中的所指定的加密页面。
在示例3中,示例1-2中的任何一个或多个的主题可选地包括,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
在示例4中,示例3的主题可选地包括,其中:所述虚拟存储器页面包括为所述STM保留的扩展MSEG;第二存储器包括物理存储设备中的页面交换文件;并且所述页面交换文件的大小等于所述扩展MSEG的大小。
在示例5中,示例4的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:回收为所述STM保留的扩展MSEG;以及删除所述物理存储设备中的页面交换文件。
在示例6中,示例1-5中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
在示例7中,示例1-6中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
在示例8中,示例4-7中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
在示例9中,示例8的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
在示例10中,示例9的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:回收为所述STM保留的扩展MSEG;以及删除第一存储器中存储的代码。
在示例11中,示例1-10中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:为了将已加密的所选页面从第一存储器移动到第二存储器:在所述SMM进程中创建跳转点;将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及从所述SMM进程中的跳转点恢复所述SMM进程。
在示例12中,示例2-11中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:为了将所指定的加密页面从第二存储器移动到第一存储器:在所述SMM进程中创建跳转点;将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器;将所指定的加密页面从所述通信缓冲器移动到第一存储器;解密第一存储器中的所指定的加密页面;以及从所述SMM进程中的跳转点恢复所述SMM进程。
示例13是一种用于扩展可用于系统管理模式(SMM)进程的存储器的方法,所述方法包括:响应于从SMM进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求:基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及,基于第一存储器中页面不可用的确定:根据页面替换策略选择第一存储器中的页面;对第一存储器中的所选页面进行加密;将已加密的所选页面从第一存储器移动到第二存储器;以及,将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
在示例14中,示例13的主题可选地包括:基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及解密第一存储器中的所指定的加密页面;并且基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及解密第一存储器中的所指定的加密页面。
在示例15中,示例13-14中的任何一个或多个的主题可选地包括,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
在示例16中,示例15的主题可选地包括,其中:所述虚拟存储器页面包括为所述STM保留的扩展MSEG;第二存储器包括物理存储设备中的页面交换文件;并且所述页面交换文件的大小等于所述扩展MSEG的大小。
在示例17中,示例16的主题可选地包括:回收为所述STM保留的扩展MSEG;以及删除所述物理存储设备中的页面交换文件。
在示例18中,示例13-17中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
在示例19中,示例13-18中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
在示例20中,示例16-19中的任何一个或多个的主题可选地包括生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
在示例21中,示例20的主题可选地包括将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
在示例22中,示例21的主题可选地包括:回收为所述STM保留的扩展MSEG;以及删除第一存储器中存储的代码。
在示例23中,示例13-22中的任何一个或多个的主题可选地包括:为了将已加密的所选页面从第一存储器移动到第二存储器:在所述SMM进程中创建跳转点;将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及从所述SMM进程中的跳转点恢复所述SMM进程。
在示例24中,示例14-23中的任何一个或多个的主题可选地包括:为了将所指定的加密页面从第二存储器移动到第一存储器:在所述SMM进程中创建跳转点;将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器;将所指定的加密页面从所述通信缓冲器移动到第一存储器;解密第一存储器中的所指定的加密页面;以及从所述SMM进程中的跳转点恢复所述SMM进程。
示例25是具有存储于其上的指令的至少一种计算机可读存储介质,所述指令在被机器的处理器执行时使得所述机器:响应于从系统管理模式(SMM)进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求:基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及,基于第一存储器中页面不可用的确定:根据页面替换策略选择第一存储器中的页面;对第一存储器中的所选页面进行加密;将已加密的所选页面从第一存储器移动到第二存储器;以及,将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
在示例26中,示例25的主题可选地包括存储于其上的指令,所述指令在被所述处理器执行时使得所述机器:基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及解密第一存储器中的所指定的加密页面;并且基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及解密第一存储器中的所指定的加密页面。
在示例27中,示例25-26中的任何一个或多个的主题可选地包括,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
在示例28中,示例25-27中的任何一个或多个的主题可选地包括,其中:所述虚拟存储器页面包括为所述STM保留的扩展MSEG;第二存储器包括物理存储设备中的页面交换文件;并且所述页面交换文件的大小等于所述扩展MSEG的大小。
在示例29中,示例28的主题可选地包括存储于其上的指令,所述指令在被所述处理器执行时使得所述机器:回收为所述STM保留的扩展MSEG;以及删除所述物理存储设备中的页面交换文件。
在示例30中,示例23-29中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
在示例31中,示例23-30中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
在示例32中,示例26-31中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述机器生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
在示例33中,示例32的主题可选地包括指令,所述指令在被所述处理器执行时使得所述机器将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
在示例34中,示例33的主题可选地包括指令,所述指令在被所述处理器执行时使得所述机器:回收为所述STM保留的扩展MSEG;以及删除第一存储器中存储的代码。
在示例35中,示例23-34中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述机器:为了将已加密的所选页面从第一存储器移动到第二存储器:在所述SMM进程中创建跳转点;将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及从所述SMM进程中的跳转点恢复所述SMM进程。
在示例36中,示例24-35中的任何一个或多个的主题可选地包括指令,所述指令在被所述处理器执行时使得所述系统:为了将所指定的加密页面从第二存储器移动到第一存储器:在所述SMM进程中创建跳转点;将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器;将所指定的加密页面从所述通信缓冲器移动到第一存储器;解密第一存储器中的所指定的加密页面;以及从所述SMM进程中的跳转点恢复所述SMM进程。
示例37是包括指令的至少一种机器可读介质,所述指令在由机器执行时使得所述机器实行示例13-24的方法中的任何的操作。
示例38是一种装置,其包括用于执行示例13-24的方法中的任何的部件。
示例39是一种用于扩展可用于系统管理模式(SMM)进程的存储器的装置,所述装置包括:用于对从SMM进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求进行响应的部件,所述部件包括:用于基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面的部件;以及,用于基于第一存储器中页面不可用的确定而使用以下部件的部件:用于根据页面替换策略选择第一存储器中的页面的部件;用于对第一存储器中的所选页面进行加密的部件;用于将已加密的所选页面从第一存储器移动到第二存储器的部件;以及,用于将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面的部件。
在示例40中,示例39的主题可选地包括:用于基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面而使用以下部件的部件:用于将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址的部件;以及用于解密第一存储器中的所指定的加密页面的部件;并且用于基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面而使用以下部件的部件:用于将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址的部件;以及用于解密第一存储器中的所指定的加密页面的部件。
在示例41中,示例39-40中的任何一个或多个的主题可选地包括,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
在示例42中,示例41的主题可选地包括,其中:所述虚拟存储器页面包括为所述STM保留的扩展MSEG;第二存储器包括物理存储设备中的页面交换文件;并且所述页面交换文件的大小等于所述扩展MSEG的大小。
在示例43中,示例42的主题可选地包括:用于回收为所述STM保留的扩展MSEG的部件;以及用于删除所述物理存储设备中的页面交换文件的部件。
在示例44中,示例39-43中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
在示例45中,示例39-44中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
在示例46中,示例42-45中的任何一个或多个的主题可选地包括用于生成用来加密和解密所述页面的代码的部件,所述代码包括使用随机数发生器生成的密钥。
在示例47中,示例46的主题可选地包括用于将所述代码存储在第一存储器的区域中的部件,其存储不能被移动到第二存储器的数据。
在示例48中,示例47的主题可选地包括:回收为所述STM保留的扩展MSEG;以及删除第一存储器中存储的代码。
在示例49中,示例39-48中的任何一个或多个的主题可选地包括:用于将已加密的所选页面从第一存储器移动到第二存储器的部件,所述部件包括:用于在所述SMM进程中创建跳转点的部件;用于将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器的部件;用于向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI)的部件;用于使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器的部件;以及用于从所述SMM进程中的跳转点恢复所述SMM进程的部件。
在示例50中,示例40-49中的任何一个或多个的主题可选地包括:用于将已加密的所选页面从第一存储器移动到第二存储器的部件,所述部件包括:用于在所述SMM进程中创建跳转点的部件;用于将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器的部件;用于向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI)的部件;用于使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器的部件;用于将所指定的加密页面从所述通信缓冲器移动到第一存储器的部件;用于解密第一存储器中的所指定的加密页面的部件;以及用于从所述SMM进程中的跳转点恢复所述SMM进程的部件。
示例51是一种用于扩展可用于系统管理模式(SMM)进程的存储器的系统,所述系统包括:SMM存储器模块,其被配置成通过使用以下装置来对来自所述SMM进程的要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求进行响应:页表模块,其被配置成基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及页面选择模块,其被配置成基于第一存储器中页面不可用的确定:根据页面替换策略选择第一存储器中的页面并使用;加密模块,其被配置成对第一存储器中的所选页面进行加密;页面传输模块,其被配置成将已加密的所选页面从第一存储器移动到第二存储器;以及所述页表模块被配置成将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
在示例52中,示例51的主题可选地包括:所述SMM存储器模块还被配置成通过以下方式来对来自所述SMM进程的请求进行响应:基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:使得所述页面传输模块将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及使得所述解密模块解密第一存储器中的所指定的加密页面;并且基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:使得所述页面传输模块将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及使得所述加密模块解密第一存储器中的所指定的加密页面。
在示例53中,示例51-52中的任何一个或多个的主题可选地包括,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
在示例54中,示例51-53中的任何一个或多个的主题可选地包括,其中:所述虚拟存储器页面包括为所述STM保留的扩展MSEG;第二存储器包括物理存储设备中的页面交换文件;并且所述页面交换文件的大小等于所述扩展MSEG的大小。
在示例55中,示例54的主题可选地包括拆卸模块,其被配置成:回收为所述STM保留的扩展MSEG;以及删除所述物理存储设备中的页面交换文件。
在示例56中,示例51-55中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
在示例57中,示例51-56中的任何一个或多个的主题可选地包括,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
在示例58中,示例52-57中的任何一个或多个的主题可选地包括,所述加密模块还被配置成生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
在示例59中,示例58的主题可选地包括,所述加密模块还被配置成将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
在示例60中,示例59的主题可选地包括拆卸模块,其被配置成:回收为所述STM保留的扩展MSEG;以及删除第一存储器中存储的代码。
在示例61中,示例51-60中的任何一个或多个的主题可选地包括,所述SMM存储器模块还被配置成通过以下来将已加密的所选页面从第一存储器移动到第二存储器:在所述SMM进程中创建跳转点;使得所述页面传输模块将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及从所述SMM进程中的跳转点恢复所述SMM进程。
在示例62中,示例52-61中的任何一个或多个的主题可选地包括,所述SMM存储器模块还被配置成通过以下来将对应的加密页面从第二存储器移动到第一存储器:在所述SMM进程中创建跳转点;将针对所述对应的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);使所述VMM将所述对应的加密页面从第二存储器移动到所述通信缓冲器;使得所述页面传输模块将所述对应的加密页面从所述通信缓冲器移动到第一存储器;使得所述加密模块解密第一存储器中的所述对应的加密页面;以及从所述SMM进程中的跳转点恢复所述SMM进程。
一个或多个实施方式的上文描述提供了例示和描述,但是不旨在是穷举性的或将本文公开的实施例的范围限制为所公开的精准形式。按照上文的教导的修改和变型是可能的,或者其可以从本文中公开的实施例的各种实施方式的实践中获得。
语言
在整个说明书中,多个实例可以实施被描述为单个实例的组件、操作或结构。尽管一个或多个方法的个体操作被图示和描述为分离的操作,然而个体操作中的一个或多个可以并发执行,并且不要求以所例示的顺序执行操作。在示例配置中作为分离的组件呈现的结构和功能可以被实施为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实施为分离的组件。这些和其他变型、修改、添加和改进落入本文主题的范围内。
尽管已经参照具体示例实施例描述了本发明主题的概述,然而可以对这些实施例进行各种修改和改变而不背离本公开的实施例的更宽的范围。本发明主题的这些实施例在本文中可以单独地或共同地称作术语“发明”,仅仅是为了方便而不意图在事实上公开了多于一个的情况下主动地将本申请的范围限制为任何单个公开或发明构思。
本文所图示的实施例被足够详细地描述以使本领域技术人员能够实践所公开的教导。其他实施例可以被使用并从中导出,使得可以在不背离本公开的范围的情况下进行结构和逻辑替代和改变。因此,具体实施方式不应在限制意义上被理解,并且各种实施例的范围仅由所附权利要求连同这些权利要求所享有的等同物的全部范围来限定。
如本文中使用的,术语“或”可以以包括性或排他性的含义来解释。而且,可以为本文描述为单个实例的资源、操作或结构提供多个实例。附加地,在各种资源、操作、模块、引擎和数据存储库之间的边界有些任意,并且特定操作在特定说明性配置的上下文中说明。功能的其他分配被设想到并且可以落入本公开的各种实施例的范围内。一般地,在示例配置中呈现为分离的资源的结构和功能可以被实施为组合的结构或资源。类似地,呈现为单个资源的结构和功能可以被实施为分离的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,应以例证性而不是限制性意义来看待说明书和附图。

Claims (25)

1.一种系统,其包括处理器和耦合到所述处理器的存储器,所述存储器包括指令,所述指令在被所述处理器执行时使得所述系统:
响应于从系统管理模式(SMM)进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求:
基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及,
基于第一存储器中页面不可用的确定:
根据页面替换策略选择第一存储器中的页面;
对第一存储器中的所选页面进行加密;
将已加密的所选页面从第一存储器移动到第二存储器;以及
将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
2.根据权利要求1所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统:
基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:
将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及
解密第一存储器中的所指定的加密页面;并且
基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:
将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及
解密第一存储器中的所指定的加密页面。
3.根据权利要求1所述的系统,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
4.根据权利要求3所述的系统,其中:
所述虚拟存储器页面包括为所述STM保留的扩展MSEG;
第二存储器包括物理存储设备中的页面交换文件;并且
所述页面交换文件的大小等于所述扩展MSEG的大小。
5.根据权利要求4所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统:
回收为所述STM保留的扩展MSEG;以及
删除所述物理存储设备中的页面交换文件。
6.根据权利要求1所述的系统,其中,所述页面替换策略指定基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面。
7.根据权利要求1所述的系统,其中,所述页面替换策略指定基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
8.根据权利要求4所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
9.根据权利要求8所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
10.根据权利要求9所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统:
回收为所述STM保留的扩展MSEG;以及
删除第一存储器中存储的代码。
11.根据权利要求1所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统:
为了将已加密的所选页面从第一存储器移动到第二存储器:
在所述SMM进程中创建跳转点;
将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;
向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);
使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及
从所述SMM进程中的跳转点恢复所述SMM进程。
12.根据权利要求2所述的系统,还包括指令,所述指令在被所述处理器执行时使得所述系统:
为了将所指定的加密页面从第二存储器移动到第一存储器:
在所述SMM进程中创建跳转点;
将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;
向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);
使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器;
将所指定的加密页面从所述通信缓冲器移动到第一存储器;
解密第一存储器中的所指定的加密页面;以及
从所述SMM进程中的跳转点恢复所述SMM进程。
13.一种用于扩展可用于系统管理模式(SMM)进程的存储器的方法,所述方法包括:
响应于从SMM进程接收到要访问页表中的被分配给所述SMM进程的虚拟存储器页面的请求:
基于第一存储器中页面可用的确定,将第一存储器中的所述可用页面的地址指定用于所述页表中的虚拟存储器页面;以及,
基于第一存储器中页面不可用的确定:
根据页面替换策略选择第一存储器中的页面;
对第一存储器中的所选页面进行加密;
将已加密的所选页面从第一存储器移动到第二存储器;以及
将第一存储器中的所选页面的地址指定用于所述页表中的所述虚拟存储器页面。
14.根据权利要求13所述的方法,还包括:
基于所述页表将第一存储器中的可用页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:
将所指定的加密页面从第二存储器移动到第一存储器中的可用页面的地址;以及
解密第一存储器中的所指定的加密页面;并且
基于所述页表将第一存储器中的所选页面的地址和第二存储器中的加密页面的地址指定用于所述虚拟存储器页面:
将所指定的加密页面从第二存储器移动到第一存储器中的所选页面的地址;以及
解密第一存储器中的所指定的加密页面。
15.根据权利要求13所述的方法,其中所述SMM进程包括系统管理模式转移监控器(STM),并且第一存储器包括为所述STM保留的系统管理ram(SMRAM)的监控器段(MSEG)部分。
16.根据权利要求15所述的方法,其中:
所述虚拟存储器页面包括为所述STM保留的扩展MSEG;
第二存储器包括物理存储设备中的页面交换文件;并且
所述页面交换文件的大小等于所述扩展MSEG的大小。
17.根据权利要求16所述的方法,还包括:
回收为所述STM保留的扩展MSEG;以及
删除所述物理存储设备中的页面交换文件。
18.根据权利要求13所述的方法,其中,所述页面替换策略指定:
基于自访问所述页面以来的时间段大于阈值值来选择第一存储器中的页面;或者
基于自所述页面处于第一存储器中以来的时间段大于阈值值来选择第一存储器中的页面。
19.根据权利要求16所述的方法,还包括生成用来加密和解密所述页面的代码,所述代码包括使用随机数发生器生成的密钥。
20.根据权利要求19所述的方法,还包括将所述代码存储在第一存储器的区域中,其存储不能被移动到第二存储器的数据。
21.根据权利要求20所述的方法,还包括:
回收为所述STM保留的扩展MSEG;以及
删除存储在第一存储器中的代码。
22.根据权利要求13所述的方法,还包括:
为了将已加密的所选页面从第一存储器移动到第二存储器:
在所述SMM进程中创建跳转点;
将已加密的所选页面从第一存储器移动到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;
向所述VMM发送指示所述SMM进程已将所述已加密的所选页面放置在所述通信缓冲器中的系统控制中断(SCI);
使所述VMM将所述已加密的所选页面从所述通信缓冲器移动到第二存储器;以及
从所述SMM进程中的跳转点恢复所述SMM进程。
23.根据权利要求14所述的方法,还包括:
为了将所指定的加密页面从第二存储器移动到第一存储器:
在所述SMM进程中创建跳转点;
将针对所指定的加密页面的请求发送到所述SMM进程与虚拟机监控器(VMM)之间的通信缓冲器;
向所述VMM发送指示所述SMM进程已将所述请求放置在所述通信缓冲器中的系统控制中断(SCI);
使所述VMM将所指定的加密页面从第二存储器移动到所述通信缓冲器;
将所指定的加密页面从所述通信缓冲器移动到第一存储器;
解密第一存储器中的所指定的加密页面;以及
从所述SMM进程中的跳转点恢复所述SMM进程。
24.包括指令的至少一种机器可读介质,所述指令在由机器执行时使得所述机器实行根据权利要求13-23所述的方法中的任何的操作。
25.一种装置,其包括用于执行根据权利要求13-23所述的方法中的任何的部件。
CN201680088855.1A 2016-09-30 2016-09-30 用于smm传输监控器的扩展存储器 Active CN109937407B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/101183 WO2018058566A1 (en) 2016-09-30 2016-09-30 Extended memory for smm transfer monitor

Publications (2)

Publication Number Publication Date
CN109937407A true CN109937407A (zh) 2019-06-25
CN109937407B CN109937407B (zh) 2024-04-30

Family

ID=61762521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680088855.1A Active CN109937407B (zh) 2016-09-30 2016-09-30 用于smm传输监控器的扩展存储器

Country Status (3)

Country Link
CN (1) CN109937407B (zh)
DE (1) DE112016007289T5 (zh)
WO (1) WO2018058566A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138370A1 (en) * 2003-12-23 2005-06-23 Goud Gundrala D. Method and system to support a trusted set of operational environments using emulated trusted hardware
US20050210467A1 (en) * 2004-03-18 2005-09-22 Zimmer Vincent J Sharing trusted hardware across multiple operational environments
US20070208954A1 (en) * 2006-02-28 2007-09-06 Red. Hat, Inc. Method and system for designating and handling confidential memory allocations
CN101068207A (zh) * 2006-05-05 2007-11-07 美国博通公司 一种通信架构、分组交换机、网络节点和数据包传送方法
CN104854843A (zh) * 2012-12-13 2015-08-19 高通股份有限公司 在通信系统中的客户端设备的web浏览器上加载重定向的web页面
US20150347724A1 (en) * 2014-05-27 2015-12-03 Assured Information Security, Inc. Secure execution of encrypted program instructions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US7114053B2 (en) * 2003-08-21 2006-09-26 Texas Instruments Incorporated Virtual-to-physical address conversion in a secure system
US7886363B2 (en) * 2006-05-24 2011-02-08 Noam Camiel System and method for virtual memory and securing memory in programming languages
US8307215B2 (en) * 2008-01-23 2012-11-06 Noam Camiel System and method for an autonomous software protection device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138370A1 (en) * 2003-12-23 2005-06-23 Goud Gundrala D. Method and system to support a trusted set of operational environments using emulated trusted hardware
US20050210467A1 (en) * 2004-03-18 2005-09-22 Zimmer Vincent J Sharing trusted hardware across multiple operational environments
US20070208954A1 (en) * 2006-02-28 2007-09-06 Red. Hat, Inc. Method and system for designating and handling confidential memory allocations
CN101068207A (zh) * 2006-05-05 2007-11-07 美国博通公司 一种通信架构、分组交换机、网络节点和数据包传送方法
CN104854843A (zh) * 2012-12-13 2015-08-19 高通股份有限公司 在通信系统中的客户端设备的web浏览器上加载重定向的web页面
US20150347724A1 (en) * 2014-05-27 2015-12-03 Assured Information Security, Inc. Secure execution of encrypted program instructions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张建华等: "Web页面加密存储及访问机制", 《计算机工程》 *
张建华等: "Web页面加密存储及访问机制", 《计算机工程》, no. 13, 5 January 2005 (2005-01-05) *
陈昊罡;汪小林;王振林;张彬彬;罗英伟;李晓明;: "DMM:虚拟机的动态内存映射模型", 中国科学:信息科学, no. 12, 15 December 2010 (2010-12-15) *

Also Published As

Publication number Publication date
WO2018058566A1 (en) 2018-04-05
CN109937407B (zh) 2024-04-30
DE112016007289T5 (de) 2019-06-19

Similar Documents

Publication Publication Date Title
US11943340B2 (en) Process-to-process secure data movement in network functions virtualization infrastructures
KR102257320B1 (ko) 하이퍼바이저 및 가상 머신 간 메모리 페이지 이행의 모니터링
KR102355213B1 (ko) 운영 체제 공격으로부터 애플리케이션 기밀사항을 보호하는 기법
US7890754B2 (en) Selective encryption system and method for I/O operations
US11042331B2 (en) Memory device managing data in accordance with command and non-transitory computer readable recording medium
EP4064089A1 (en) Management of authenticated variables
US10776524B2 (en) Secure communication channel for system management mode
KR101323858B1 (ko) 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
CN111090869B (zh) 一种数据加密方法、处理器及计算机设备
US20190102322A1 (en) Cross-domain security in cryptographically partitioned cloud
CN108469986A (zh) 一种数据迁移方法及装置
KR20090061636A (ko) 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
CN114721768A (zh) 用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法
CN112948139B (zh) 使用交换机向加速器安全地广播消息的系统和方法
JP2022043279A (ja) 仮想化環境内の人工知能アクセラレータ・ステータス確認を用いる仮想マシン移行のための方法
US8689288B2 (en) Apparatus and method for protecting system in virtualized environment
CN111949372A (zh) 一种虚拟机迁移方法、通用处理器及电子设备
US10795974B2 (en) Memory assignment for guest operating systems
US12124865B2 (en) System and method for providing page migration
CN102110059A (zh) 一种多用户硬盘数据的访问方法及系统
CN112953886B (zh) 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法
CN111124956B (zh) 一种容器保护方法、处理器、操作系统及计算机设备
CN104182691A (zh) 数据保密方法及装置
EP3314443A1 (en) Memory encryption exclusion method and apparatus
CN108241801B (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
GR01 Patent grant
GR01 Patent grant