CN110188051B - 标记与物理地址相关的控制信息的方法、处理系统和设备 - Google Patents
标记与物理地址相关的控制信息的方法、处理系统和设备 Download PDFInfo
- Publication number
- CN110188051B CN110188051B CN201910444571.7A CN201910444571A CN110188051B CN 110188051 B CN110188051 B CN 110188051B CN 201910444571 A CN201910444571 A CN 201910444571A CN 110188051 B CN110188051 B CN 110188051B
- Authority
- CN
- China
- Prior art keywords
- physical address
- hardware
- tag
- processing system
- virtual machine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/145—Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了一种用于在处理系统中标记与物理地址相关的控制信息的方法,包括:设置用于控制信息的硬件标签,该硬件标签对于处理系统中的软件系统不可见;将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,其中M和N为正整数;利用所述复合物理地址中的硬件标签标记控制信息。
Description
技术领域
本公开涉及一种硬件标记方法,具体涉及一种标记与物理地址相关的控制信息的方法、处理系统和设备。
背景技术
在处理系统中,一个应用程序在经过编译之后,通常会形成若干个目标程序,这些目标程序用于形成可装入程序。这些程序的地址从“0”开始,其它地址相对于起始地址计算。由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”。而由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不一致。为使程序能正确运行,存储器管理需要提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。
通常采用分页存储管理的方式来实现物理地址与逻辑地址之间的转换。具体的,其是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),通过页表来实现地址转换。当前的处理系统中通常采用4级分页机制来实现物理地址与逻辑地址之间的映射。在4级分页机制中,物理地址与逻辑地址均包括48位。
随着计算机应用领域的不断发展,例如,安全管理应用,需要一些特定的标签来标记某些控制信息,例如,作为处理系统中运行的虚拟机(Virtual Machine,VM)的唯一标识符。这些硬件标签可以包括一或多个比特,并与物理地址相关联地作用于程序的运行过程中。因此,需要一种在处理系统中利用标签来标记上述控制信息的方法,使其与物理地址能灵活地结合,且不占用物理地址的位数。
发明内容
根据本公开的一方面,提供了一种用于在处理系统中标记与物理地址相关的控制信息的方法,包括:设置用于所述控制信息的硬件标签,该硬件标签对于处理系统中的软件系统不可见;将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,其中M和N为正整数;利用所述复合物理地址中的硬件标签标记控制信息。
根据本公开实施例,其中,所述硬件标签和利用所述硬件标签标记的控制信息一一对应。
根据本公开实施例,其中,所述硬件标签由专用的硬件标签控制线路承载,所述物理地址由物理地址总线承载。
根据本公开实施例,其中,所述处理系统配置为支持对至少一个虚拟机的控制,所述至少一个虚拟机中的每一个具有与之对应的唯一的一个硬件标签。
根据本公开实施例,所述用于在处理系统中标记与物理地址相关的控制信息的方法还包括,基于所述虚拟机的个数确定所述硬件标签包含的比特数。
根据本公开实施例,其中,所述控制信息配置为所述至少一个虚拟机中的一个虚拟机可访问的存储空间的唯一加密码。
根据本公开实施例,其中,所述物理地址为处理系统和/或至少一个虚拟机中的一个虚拟机要访问的物理地址。
根据本公开的另一方面,还提供了一种处理系统,配置为:向另一处理系统发送服务请求;接收所述另一处理系统分配的硬件标签,所述硬件标签对于处理系统中的软件系统不可见;将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,其中M和N为正整数;利用复合物理地址中的硬件标签来访问与该硬件标签对应的存储空间。
根据本公开的又一方面,还提供了一种处理系统,配置为:接收另一处理系统的服务请求;设置与该另一处理系统对应的唯一的硬件标签,该硬件标签对于处理系统中的软件系统不可见;利用硬件标签标记控制信息,所述控制信息配置为该另一处理系统可访问的存储空间的唯一加密码。
根据本公开的又一方面,还提供了一种处理设备,包括:一个或多个处理器;和一个或多个存储器,其中,所述存储器中存储有计算机可读代码,所述计算机可读代码当由所述一个或多个处理器运行时执行如上所述的用于在处理系统中标记与物理地址相关的控制信息的方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了多密钥内存完整加密进行安全管理的示意图;
图2示出了安全加密虚拟化进行安全管理的示意图;
图3A示出了支持16个虚拟机的SEV中的物理地址总线的示意图;
图3B示出了支持64个虚拟机的SEV中的物理地址总线的示意图;
图4示出了支持64个虚拟机的SEV中的物理地址总线的另一示意图;
图5示出了标识符ASID的运行周期的示意图;
图6示出了根据本公开实施例的安全管理系统的示意图;
图7示出了根据本公开实施例的利用硬件标签标记控制信息的方法的流程图;
图8示出了根据本公开实施例的硬件标签的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
本申请中使用了流程图用来说明根据本申请的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步。
随着计算机应用的不断发展,计算机程序和指令系统可能受到各种攻击,例如非法访问等,并可能遭受重要数据泄露等危险。例如,非法访问者可能盗用或者伪造合法身份进入计算机系统,并私自提取计算机中的重要数据或者对数据或计算机系统进行破坏,致使重要数据泄露或者计算机系统崩溃。通常可以采用增加软件安全管理机制的方式来使得非法访问者无法以伪造的合法身份进入计算机系统,例如可以对合法(即,认为是安全的)用户分配身份标识,增加访问口令,或者为用户分配访问权限,使其仅能访问部分的数据,由此通过对用户进行管理来增加计算机系统的安全性。此外,还可以采用对敏感数据进行加密的方式来保证数据安全,使得不具有密钥的访问者无法读懂数据。
此外,随着云计算、云存储等新技术的发展,使得计算机安全运算环境更容易受到威胁,用户可以通过电脑、手机等接入数据中心,并按照需求进行网络访问,进入可配置的计算资源(例如,资源可以包括网络、服务器、存储、应用软件、服务等)。使用云计算的用户的隐私信息和敏感数据可能被云技术收集,并且,接入云计算的用户之间也可能存在例如非法数据访问等安全问题。
尽管数据通常在存储在磁盘上时进行加密,但它仍然保存在DRAM中,这使得这些数据容易受到未授权的管理员、软件或者硬件探测的窥探,从而泄露机密数据,新的非易失性存储器技术(NVDIMM)加重了这一问题,因为NVDIMM芯片可以完整地从系统中移除,类似于硬盘。如果没有对其进行加密,任何存储的信息(诸如敏感数据、密码或者密钥等)都可能容易受到影响。
为了保证内存空间的安全性,提出了一种内存完整加密(Total MemoryEncryption,TME)的解决方案,其用于实现对系统的整体物理内存进行加密的功能。一旦配置并锁定,TME能实现对于使用128位加密密钥(keys)的算法的安全管理平台(SecurityOperations Center,SOC)上的所有数据进行加密。上述加密密钥由SOC上的密钥生成器产生,并且对于软件或者外部接口不可访问,从而实现对于外部存储器总线进行保护。
多密钥内存完整加密(Multi-Key Total Memory Encryption,MKTME)建立在TME技术之上,增加了对于多个加密密钥的支持。SOC可以支持固定数量的加密密钥,并且软件可以配置SOC以使用可用的加密密钥,由此使用每个可用加密密钥来加密存储器的任何页面。因此,MKTME允许内存的页面细化加密。MKTME还可以与多个虚拟化方案一起运作,例如,允许系统上的各个虚拟机具有其私有的存储空间。
具体的,上述MKTME通过对物理地址总线上的某些比特进行重定义来实现。图1示出了MKTME进行安全管理的示意图,如图1所示,将物理地址总线上的某些比特用作密钥标识符KeyID,即将物理地址总线上某些比特重定义为密钥标识符KeyID,使得密钥标识符KeyID可以与内存控制器中的加密引擎(Engine)通信。例如,密钥标识符KeyID 0通常可以用于管理程序(Hypervisor)VMM,对于其上运行的两个虚拟机VM1和VM2,可以分别使用各自的密钥标识符KeyID 1和KeyID 2。VM 1可以通过密钥标识符KeyID 1来访问VM1私有的页面,VM2可以通过密钥标识符KeyID 2来访问VM2私有的页面。此外,VM1和VM2还可以通过共用的密钥标识符KeyID 3来访问VM1和VM2共享的存储空间。对于管理程序VMM,则可以通过密钥标识符KeyID 0来访问VMM私有的页面。上述用于标识存储空间所用的密钥标识符KeyID承载在物理地址总线的一部分比特上,而物理地址总线上剩余的比特才用于承载存储空间所对应的地址。换言之,通过对物理地址总线上的某些比特进行重定义来承载密钥标识符KeyID,即物理地址总线不仅承载了存储空间所对应的地址,而且还承载了该存储空间的加密密钥信息,从而实现了对于虚拟机的安全存储的管理。
此外,还提出了一种安全存储加密(Secure Memory Encryption,SME)方案,用于保障存储数据不受非法侵入。SME为主内存加密定义了一种简单高效的架构功能。虽然内存加密技术以前已用于各种专业产品和行业,但SME是一种灵活的通用机制,可集成到CPU架构中,可从嵌入式服务器扩展到高端服务器工作负载,并且无需修改应用程序软件。
安全加密虚拟化(Secure Encrypted Virtualization,SEV)在SME的基础上,将主内存加密与虚拟化架构进行整合,从而可以实现支持对于虚拟机的加密管理。通过对每个虚拟机分配其唯一的虚拟机标识符ASID,可以使得该虚拟机免受一些物理攻击,也可以实现各个虚拟机之间的隔离,此外,还可以将虚拟机与管理程序进行隔离,即任何不具有虚拟机标识符ASID的计算机均不具有访问与该虚拟机标识符ASID对应的数据或存储区域的权限。由此,SEV代表了一种新的虚拟化安全管理模式,具体的可以应用于云计算,用于实现虚拟机与其他虚拟机和管理程序之间的加密管理,保证各个虚拟机的数据安全。
具体的,如图2所示,在管理程序(Hypervisor)的控制下,可以支持运行多个虚拟机(例如,VM A、VM B、VM C等)。启用后,SEV硬件将利用虚拟机标识符ASID对所有代码和数据进行标记(tag),该虚拟机标识符ASID指示这些数据或者代码来自于或者用于哪个虚拟机。在SOC内部,这个标记将一直存在,并且阻止与该虚拟机标识符ASID对应的虚拟机之外的任何人访问或者使用这些利用该ASID标记的数据。在SOC外部,当数据离开或者进入SOC时,将利用与虚拟机标识符ASID关联的加密密钥来对数据进行加密或者解密。由此,每个虚拟机通过其自身的唯一的虚拟机标识符ASID与加密密钥相关联,例如,具有虚拟机标识符ASID A的虚拟机VM A可以通过虚拟机标识符ASID A来访问由加密密钥Key A加密的数据,该加密密钥Key A与虚拟机标识符ASID A一一对应。其余任何不具有该虚拟机标识符ASIDA的虚拟机以及管理程序将不具有访问该由加密密钥Key A加密的数据的权限。由此可知,在SEV中,加密密钥Key可以作为数据访问的控制信息,且该控制信息与虚拟机标识符ASID相关联,即虚拟机通过其具有的ASID来获得对于利用与该ASID关联的加密密钥Key加密的存储空间的访问权限。
SEV为每个虚拟机分配唯一的虚拟机标识符ASID,并在管理程序和虚拟机VM之间建立隔离层。上述标识符ASID通过对物理地址总线上的某些比特进行重定义来实现。例如,对于实现支持16个虚拟机的安全应用管理,ASID需要占用物理地址总线上的4个比特,以实现对于各个虚拟机的唯一的标识。
由此可见,在上述例如MKTME和SEV的安全管理方案中,均是通过在物理地址总线上重定义的M个(例如,5个)比特来作为对于虚拟机或者存储空间的标识符,通过该标识符可以将虚拟机与可访问的存储空间进行隔离,使得其他不具有该标识符的虚拟机无法访问,从而实现安全存储加密的目的。
然而,上述对物理地址总线上的M个比特进行重定义的实施方式,必然会减少物理地址总线上原有的用于真正的物理地址的比特。例如,在SEV中,为了支持16个虚拟机的安全管理功能,在物理地址总线上共占用了5个比特,一个比特用于标识该虚拟机是否需要进行加密,其余4个比特用于虚拟机标识符ASID。即在具有48个比特的物理地址总线上,仅剩余43个比特用于真正的物理地址PA(真正-PA),例如,如图3A中的示出的0-42位。由此,由物理地址表示的存储空间由于SEV占用了5个比特而缩减为原有的1/32(真正-PA由原来的48位缩减为43位)。
此外,如果期望利用SEV来实现对于更多的虚拟机的管理,例如,支持64个虚拟机的加密管理,ASID则需要占用物理地址总线上的6个比特,即设置64个ASID标识符以作为每个虚拟机的唯一标识符。这意味着,在物理地址总线上用于真正的物理地址的比特数将减少为如41个比特,例如,如图3B中所示出的0-40位。
为了实现如上所述对于多个(例如,64个)虚拟机的安全管理,并且同时保证足够的用于真正的物理地址PA的比特数,可以通过增加物理地址总线的比特数来实现。例如,使用具有52个比特的物理地址总线。这样一来,如图4所示,在支持64个虚拟机的情况下,除去用于安全管理而重新定义的7个比特(一个C位和用于ASID的6个比特),可以保留45个比特用于真正的物理地址。
上述通过增加物理地址总线比特数的方式可以在一定程度上实现在支持更多虚拟机的情况下保留较多的真正的物理地址的比特数的目的。然而,使用具有52个比特的物理地址总线意味着需要5级分页(Paging)的方式来实现物理地址与线性地址之间的映射。所述5级分页通过采用遍历分页结构的5级层次结构来转换线性地址,处理系统的线性地址宽度扩展到57个比特。与4级分页相比,5级分页意味着更复杂的映射管理关系,并且面临着更多的成本与风险问题。
此外,即使使用了更为复杂的5级分页的架构来避免支持64个虚拟机的SEV中重定义的比特对于真正物理地址位数的占用,随着应用需求的增加,当需要支持更多个虚拟机时,用于对虚拟机进行标识的虚拟机标识符ASID会越来越多的占用物理地址总线的比特数,例如,当需要支持对128个虚拟机进行安全管理时,即意味着需要在物理地址总线上重新定义8个比特,以此类推。这意味着,通过重定义物理地址总线上的比特来实现对虚拟机进行安全管理的方式限制了虚拟机的安全管理应用的可扩展性。换句话说,在保证足够的真正的物理地址的比特数的基础上,可支持的虚拟机的个数是有限的。
由此可见,上述在物理地址总线上重定义M个比特数来承载安全管理标识符(例如,虚拟机标识符ASID或者密钥标识符KeyID)的方式具有不可避免的局限性。因此,期望一种既能支持对于多个虚拟机的安全管理,又不占用物理地址总线的比特数的标记方法。
图5示出了SEV中的上述虚拟机标识符ASID的运行周期,接下来将结合图5对ASID的运行周期进行详细分析。首先,在步骤S501,管理程序为各个虚拟机分配唯一的标识符ASID,例如,为虚拟机1分配虚拟机标识符ASID 1。该ASID 1通过该虚拟机的物理地址总线上的重新定义的M个比特来承载。例如,对于具有48个比特的物理地址总线,在支持16个虚拟机的情况下,虚拟机标识符ASID 1则在物理地址总线上占用第43-46位,表示为0001。管理程序可以激活分配了虚拟机标识符ASID 1的虚拟机1。
接着,在步骤S502,管理程序向SOC的固件FW发出通知,该虚拟机1与该虚拟机标识符ASID 1关联,SOC为该虚拟机1分配加密密钥Key 1。此后,FW为虚拟机1建立Key 1与ASID1之间的关联,并且利用与虚拟机标识符ASID 1关联的加密密钥Key 1进行加密处理。由此,具有ASID 1的虚拟机1可以通过其具有的唯一的虚拟机标识符ASID 1来获得与ASID 1对应的加密密钥Key 1,通过Key 1,该虚拟机1可以进行数据的存取,而不具有虚拟机标识符ASID 1的其他虚拟机或者管理者则无法存取由Key 1加密的存储空间,由此实现虚拟机之间以及虚拟机与管理者之间的隔离,保证数据安全。在根据本公开的其他实施例中,还可以基于具体的实施来采用其他的方式实现ASID 1与对应的虚拟机之间的关联。
然后,在步骤S503,FW完成与该虚拟机关联的激活程序。由此,SOC能够识别虚拟机,使得虚拟机能够利用其虚拟机标识符ASID实现存储空间的访问。
接着,如果需要暂时取消该虚拟机1的运行权限,则在步骤S504,可以对其实施去激活处理,即暂时取消该虚拟机1的虚拟机标识符ASID 1,FW则解除加密密钥Key 1与该ASID 1的关联。
当该虚拟机1可以继续运行时,在步骤S505,可以对其实施再激活处理的步骤。由此,该虚拟机1可以利用其虚拟机标识符ASID 1来进行存储空间的访问。
最后,在步骤S506,当该虚拟机1不再需要继续运行的情况下,管理程序可以关闭该虚拟机1,FW删除加密密钥Key 1以及用于该虚拟机1的其他内部状态,从而实现对该虚拟机的解除处理程序。
由此,系统并不需要在物理地址总线上预分配虚拟机标识符ASID。换句话说,在进行虚拟机安全管理期间,只在页表查找时(page walk time)需要所述虚拟机标识符ASID。
在此基础上,本公开提出一种用于在处理系统中标记与物理地址相关的控制信息的方法。在上述处理系统中,当需要对与物理地址/存储空间相关的控制信息(例如,用于安全管理的虚拟机标识符ASID/密钥标识符KeyID)进行标记时,可以采用硬件标签的方式来实现,从而代替在物理地址总线上重新定义M个比特的方式,以避免如上所述的由于重新定义的M个比特所带来的不利效果。
在根据本公开的实施例中,所述处理系统可以配置为实现对多个虚拟机的控制,例如,所述处理系统为支持K个虚拟机的安全管理系统。所述安全管理系统可以为所述K个虚拟机中的每一个虚拟机分配与之对应的唯一的一个硬件标签。图6示出了根据本公开实施例的安全管理系统的示意图。
如图6所示,在虚拟机运行之前,安全管理系统会分配给该虚拟机一个作为虚拟机标识符的硬件标签,例如,将硬件标签Tag 1分配给虚拟机1,所述Tag 1可以实施为硬件标签,由专用的硬件标签控制线路承载,将该硬件标签Tag 1与虚拟机1的由物理地址总线承载的物理地址PA进行拼接,以组成可以表示为Tag 1+PA的复合物理地址。
在根据本公开的方法中,可以基于所述虚拟机的个数确定所述硬件标签包含的比特数。例如,在K为16的情况下,所述硬件标签可以包括4个比特以实现对于该16个虚拟机的唯一的标识。类似的,在K为64的情况下,所述硬件标签可以包括6个比特。
在根据本公开的实施例中,所述控制信息可以配置为上述K个虚拟机中的一个虚拟机可访问的存储空间的唯一加密码,例如,加密密钥Key。安全管理器可以利用Key作为加密密钥对存储器中的某些存储空间进行加密。所述安全管理器还可以对所述加密密钥Key进行管理。所述硬件标签Tag和利用所述硬件标签Tag标记的控制信息一一对应。
例如,硬件标签Tag 1可以与加密密钥Key 1相关联,则具有硬件标签Tag 1的虚拟机1可以利用该Tag 1获得加密密钥Key 1,并访问由该加密密钥Key 1加密的的存储空间,实现该虚拟机1私有的存储空间的安全管理。
如图6所示,虚拟机具有由硬件标签Tag和物理地址PA组成的复合物理地址,例如,虚拟机1具有Tag 1+PA。其中,所述硬件标签由专用的硬件标签控制线路承载,所述物理地址由物理地址总线承载。
在进行虚拟机安全管理过程中,当虚拟机1需要对存储空间进行访问时,由专用控制线路承载的硬件标签Tag 1和由物理地址总线承载的物理地址经由不同的线路进行传输。并且,获得与Tag 1关联的加密密钥Key 1,并实现对于相应存储空间的访问。区别于上述对物理地址总线上的某几个比特进行重定义来承载虚拟机标识符的方式,上述由专用控制线路承载的硬件标签并不占用物理地址总线上的位数,即并不减少真正物理地址的位数,从而实现虚拟机安全管理的可扩展性。换句话说,当安全管理系统需要支持的虚拟机的个数增加时,例如,从16个虚拟机扩展为64个虚拟机时,仅需增加硬件标签的比特数(从4个比特增加为5个比特),即可实现对于64个虚拟机的标识,而并不占用物理地址总线上的比特。
根据本公开的其他实施例,所述控制信息还可以是某类特定信息,例如,所述特定信息可以实施与KeyID类似的功能。
图7示出了根据本公开实施例的利用硬件标签标记控制信息的方法的流程图。
如图7所示,根据本公开实施例的上述方法可以包括以下步骤,首先,在步骤S701,设置用于控制信息的硬件标签。根据本公开实施例,该硬件标签对于处理系统中的软件系统不可见,而是由硬件电路直接读取的信息,并且硬件电路直接依据所读取的信息进行控制操作。例如,可以设置用于表示虚拟机标识符ASID 1的硬件标签Tag 1。所述Tag 1在运行周期中,对于软件系统不可见。即,无论是管理程序还是其余虚拟机的软件系统均无法读取硬件标签Tag 1,无法获知硬件标签Tag 1所携带的控制信息。换句话说,可以利用硬件标签Tag 1来实施虚拟机标识符ASID 1的功能。与在物理地址总线上重定义的ASID 1相比,根据本公开的硬件标签(例如,Tag 1)并不占用物理地址总线上的比特,即不占用物理地址总线资源,而且不影响软件系统的运行。例如,一旦为虚拟机1分配了硬件标签Tag 1后,只有该虚拟机1才可能获知该硬件标签Tag 1,其余的虚拟机不可能获知该硬件标签Tag 1,而且在寻址操作中软件系统也无法读取到要寻址的地址空间的虚拟机的身份信息,从而提高了地址空间管理的安全性。
接着,在步骤S702,将该硬件标签与物理地址拼接以形成复合物理地址(Compond-PA),其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,其中M和N为正整数。例如,在安全虚拟机管理的实施例中,如图8所示出的,在48位物理地址总线的情况下,在系统需要支持对于16个虚拟机的管理时,所述M个比特可以是4个比特,用于表示标识符ASID。所述N为48,在物理地址总线上需要保留重定义的C位,则剩余的0-46位用于真正的物理地址。所述复合物理地址由利用专用的硬件标签控制线路承载的硬件标签Tag以及由物理地址总线承载的48个比特的物理地址组合而成。
与物理地址总线中重定义的ASID相比,在所述复合物理地址中,上述硬件标签Tag既与物理地址保持关联关系,又不占用物理地址总线上的比特。即,在虚拟化安全管理中,并不会由于支持的虚拟机的个数的增加而对物理地址总线上的比特进行占用。这样一来,使得系统中支持的虚拟机的个数是可扩展的,可以根据实际应用需求增加支持的虚拟机的个数,且不会影响物理地址的可用位数。此外,由于采用硬件标签而非对物理地址总线上的M个比特进行重定义的方式来实现对于虚拟机的标识,使得避免了实施复杂的5级分页架构的风险。
接着,在步骤S703,根据所述复合物理地址中的硬件标签来确定控制信息。例如,在安全虚拟机管理的实施例中,所述硬件标签表示为Tag,所述控制信息为与该Tag关联的加密密钥Key,即利用硬件标签来确定控制信息,并根据硬件标签来确定控制信息。具有实施为硬件标签的Tag的虚拟机可以通过其来访问利用加密密钥Key加密的存储空间。此外,需要注意的是,所述利用硬件标签Tag来实施标识符ASID的功能仅为示例性的,在根据本公开的其他实施例中,也可以利用硬件标签来表示其他的信息,例如,KeyID或其他特定信息等。所述控制信息也可以是其他用于系统管理的信息,利用硬件标签标记的该信息可以实现对于预期的控制功能。
在根据本公开的实施例中,所述物理地址不仅可以是所述多个虚拟机要访问的物理地址,也可以是为处理系统要访问的物理地址。即作为虚拟机的管理程序的系统也可以分配有与其唯一对应的硬件标签,例如,Tag 0,通过将该硬件标签Tag 0与该系统的物理地址拼接来组成复合物理地址Tag 0+PA。因此,包括该硬件标签Tag 0的管理程序可以访问由与Tag 0关联的Key 0加密的存储空间,而并不具有访问其他虚拟机的存储空间的权限,而其他虚拟机也无法访问该管理系统的存储空间,因此,所述管理系统可以在由Key 0加密的存储空间存储诸如管理信息等的敏感数据,并避免其他虚拟机对于所述敏感数据的非法访问。这进一步保证了数据安全,不仅实现了虚拟机之间相互隔离,也阻挡了管理程序与虚拟机用户之间的不安全的访问。
在根据本公开的方法中,所述硬件标签和利用所述硬件标签标记的控制信息一一对应。例如,硬件标签Tag 1与用于对存储空间进行加密的加密密钥Key 1之间是一一对应的,根据硬件标签Tag 1可以找到与其对应的唯一的一个加密密钥Key 1,从而使得只有具有该硬件标签Tag 1的虚拟机才能访问由该加密密钥Key 1加密的空间,保证了数据安全。
在根据本公开的方法中,由于采用了专用的硬件标签来实施标识符,并形成复合物理地址,利用复合物理地址中的硬件标签来标记控制信息,增加了支持的虚拟机的可扩展性,避免了标识符对于物理地址总线上的比特的占用,并且无需复杂的5级分页架构。
根据本公开另一实施例,还提供了一种处理系统,所述处理系统可以配置为向另一处理系统发送服务请求;接收所述另一处理系统分配的硬件标签,所述硬件标签对于处理系统中的软件系统不可见;将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,其中M和N为正整数;利用复合物理地址中的硬件标签来访问与该硬件标签对应的存储空间。例如,所述处理系统可以实施为如上所述的虚拟机,通过分配的硬件标签组合形成该虚拟机的复合物理地址,并实现对与其唯一对应的存储空间的存取功能。例如,所述另一处理系统可以实施为如上所述的对虚拟机进行管理的管理程序系统。上述实施的具体过程与上文结合图6和图7所述的方法类似,在此不再赘述。
根据本公开的又一实施例,还提供了一种处理系统,所述处理系统可以配置为接收另一处理系统的服务请求;设置与该另一处理系统对应的唯一的硬件标签,该硬件标签对于处理系统中的软件系统不可见;利用硬件标签标记控制信息,所述控制信息配置为该另一处理系统可访问的存储空间的唯一加密码。例如,所述处理系统可以实施为如上所述的对虚拟机进行管理的管理程序系统,所述处理系统可以实施为如上所述的虚拟机。所述实施的具体过程与上文结合图6和图7所述的方法类似,在此不再赘述。
根据本公开的又一实施例,还提供了一种处理设备,包括:一个或多个处理器;和一个或多个存储器,其中,所述存储器中存储有计算机可读代码,所述计算机可读代码当由所述一个或多个处理器运行时执行如上所述的在处理系统中标记与物理地址相关的控制信息的方法。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本发明的说明,而不应被认为是对其的限制。尽管描述了本发明的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本发明的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本发明范围内。应当理解,上面是对本发明的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本发明由权利要求书及其等效物限定。
Claims (10)
1.一种用于在处理系统中标记与物理地址相关的控制信息的方法,包括:
设置用于所述控制信息的硬件标签,该硬件标签对于处理系统中的软件系统不可见;
将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,该硬件标签不占用所述物理地址总线,其中M和N为正整数;
利用所述复合物理地址中的硬件标签标记控制信息。
2.根据权利要求1所述的方法,其中,所述硬件标签和利用所述硬件标签标记的控制信息一一对应。
3.根据权利要求1所述的方法,其中,所述硬件标签由专用的硬件标签控制线路承载,所述物理地址由物理地址总线承载。
4.根据权利要求1所述的方法,其中,
所述处理系统配置为支持对至少一个虚拟机的控制,所述至少一个虚拟机中的每一个具有与之对应的唯一的一个硬件标签。
5.根据权利要求4所述的方法,还包括,基于所述虚拟机的个数确定所述硬件标签包含的比特数。
6.根据权利要求4所述的方法,其中,所述控制信息配置为所述至少一个虚拟机中的一个虚拟机可访问的存储空间的唯一加密密钥。
7.根据权利要求4所述的方法,其中,所述物理地址为处理系统和/或至少一个虚拟机中的一个虚拟机要访问的物理地址。
8.一种处理系统,配置为:
向另一处理系统发送服务请求;
接收所述另一处理系统分配的硬件标签,所述硬件标签对于处理系统中的软件系统不可见;
将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,该硬件标签不占用所述物理地址总线,其中M和N为正整数;
利用复合物理地址中的硬件标签来访问与该硬件标签对应的存储空间。
9.一种处理系统,配置为:
接收另一处理系统的服务请求;
设置与该另一处理系统对应的唯一的硬件标签,该硬件标签对于处理系统中的软件系统不可见;
利用硬件标签标记控制信息,所述控制信息配置为该另一处理系统可访问的存储空间的唯一加密密钥,其中,所述利用硬件标签标记控制信息包括:
将该硬件标签与物理地址拼接以形成复合物理地址,其中,所述硬件标签包含由专用的硬件标签控制线路承载的M个比特,所述物理地址包含由物理地址总线承载的N个比特,该硬件标签不占用所述物理地址总线,其中M和N为正整数。
10.一种处理设备,包括:
一个或多个处理器;和
一个或多个存储器,
其中,所述存储器中存储有计算机可读代码,所述计算机可读代码当由所述一个或多个处理器运行时执行权利要求1-7任一项所述方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/283,284 US10936506B2 (en) | 2019-02-22 | 2019-02-22 | Method for tagging control information associated with a physical address, processing system and device |
US16/283,284 | 2019-02-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188051A CN110188051A (zh) | 2019-08-30 |
CN110188051B true CN110188051B (zh) | 2021-04-27 |
Family
ID=67717882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910444571.7A Active CN110188051B (zh) | 2019-02-22 | 2019-05-27 | 标记与物理地址相关的控制信息的方法、处理系统和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10936506B2 (zh) |
CN (1) | CN110188051B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052069B (zh) * | 2020-08-25 | 2024-03-12 | 海光信息技术股份有限公司 | 一种写、读虚拟机标识的方法、装置及相关设备 |
CN115586943B (zh) * | 2022-09-16 | 2023-08-15 | 杭州熠芯科技有限公司 | 一种智能网卡虚拟机脏页的硬件标记实现方法 |
CN116150740B (zh) * | 2023-04-17 | 2023-12-12 | 杭州鸿钧微电子科技有限公司 | 资源隔离方法、装置、芯片系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105471697A (zh) * | 2015-12-18 | 2016-04-06 | 国云科技股份有限公司 | 一种基于xen虚拟机的自适应的网络通信加密方法 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN107438850A (zh) * | 2015-05-20 | 2017-12-05 | 谷歌公司 | 使用签名的地址验证 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9086973B2 (en) * | 2009-06-09 | 2015-07-21 | Hyperion Core, Inc. | System and method for a cache in a multi-core processor |
US8510569B2 (en) * | 2009-12-16 | 2013-08-13 | Intel Corporation | Providing integrity verification and attestation in a hidden execution environment |
CN103870311B (zh) * | 2012-12-10 | 2016-12-21 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
US9785576B2 (en) * | 2014-03-27 | 2017-10-10 | Intel Corporation | Hardware-assisted virtualization for implementing secure video output path |
CN104077176B (zh) * | 2014-06-25 | 2017-05-03 | 龙芯中科技术有限公司 | 增加虚拟机标识符域的方法及装置 |
US20180165224A1 (en) * | 2016-12-12 | 2018-06-14 | Ati Technologies Ulc | Secure encrypted virtualization |
US10387305B2 (en) * | 2016-12-23 | 2019-08-20 | Intel Corporation | Techniques for compression memory coloring |
CN111241564B (zh) * | 2017-08-04 | 2022-05-13 | 海光信息技术股份有限公司 | 内存页面交换方法和安全处理器 |
US10810138B2 (en) * | 2018-06-14 | 2020-10-20 | Intel Corporation | Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME) |
US10545783B2 (en) * | 2018-08-22 | 2020-01-28 | Intel Corporation | Technologies for securing data structures for controlling virtual machines |
-
2019
- 2019-02-22 US US16/283,284 patent/US10936506B2/en active Active
- 2019-05-27 CN CN201910444571.7A patent/CN110188051B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107438850A (zh) * | 2015-05-20 | 2017-12-05 | 谷歌公司 | 使用签名的地址验证 |
CN105471697A (zh) * | 2015-12-18 | 2016-04-06 | 国云科技股份有限公司 | 一种基于xen虚拟机的自适应的网络通信加密方法 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
Non-Patent Citations (2)
Title |
---|
AMD MEMORY ENCRYPTION White Paper;David Kaplan 等;《https://developer.amd.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf》;20160421;第1-12页 * |
基于AMD硬件内存加密机制的关键数据保护方案;吴宇明 等;《信息安全学报》;20180131;第3卷(第1期);第31-45页 * |
Also Published As
Publication number | Publication date |
---|---|
US10936506B2 (en) | 2021-03-02 |
US20200272573A1 (en) | 2020-08-27 |
CN110188051A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7428770B2 (ja) | コンピュータプログラム、コンピュータ可読記憶媒体及び装置 | |
EP3602376B1 (en) | Monitoring of memory page transitions between a hypervisor and a virtual machine | |
US10176122B2 (en) | Direct memory access authorization in a processing system | |
CN110928646B (zh) | 一种访问共享内存的方法、装置、处理器和计算机系统 | |
CN110188051B (zh) | 标记与物理地址相关的控制信息的方法、处理系统和设备 | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
US10938559B2 (en) | Security key identifier remapping | |
WO2018063670A1 (en) | Multi-crypto-color-group vm/enclave memory integrity method and apparatus | |
CN106716435B (zh) | 设备与安全处理环境之间的接口 | |
CN101123507A (zh) | 一种存储装置上数据信息的保护方法和存储装置 | |
CN107526974A (zh) | 一种信息密码保护装置和方法 | |
JP7436495B2 (ja) | セキュア・ストレージの分離 | |
JP5166169B2 (ja) | ハイパバイザを有する計算機システム | |
CN111666579B (zh) | 计算机设备及其访问控制方法和计算机可读介质 | |
CN111857947B (zh) | 内存隔离方法、隔离检查电路和cpu芯片 | |
EP3913512A1 (en) | On-die computer apparatus | |
US20230350815A1 (en) | Trust domains for peripheral devices | |
CN117421749A (zh) | 计算机系统以及系统内存加解密方法 | |
CN117421748A (zh) | 计算机系统以及系统内存加解密方法 | |
WO2021234357A1 (en) | On-die computer apparatus |
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 |