CN111124956A - 一种容器保护方法、处理器、操作系统及计算机设备 - Google Patents
一种容器保护方法、处理器、操作系统及计算机设备 Download PDFInfo
- Publication number
- CN111124956A CN111124956A CN201911152289.8A CN201911152289A CN111124956A CN 111124956 A CN111124956 A CN 111124956A CN 201911152289 A CN201911152289 A CN 201911152289A CN 111124956 A CN111124956 A CN 111124956A
- Authority
- CN
- China
- Prior art keywords
- container
- key
- memory
- table entry
- processor
- 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
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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
- G06F21/79—Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种容器保护方法、处理器、操作系统及计算机设备,属于计算机技术领域。该方法包括:在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID,其中,所述页表项中记录有所述容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系;获取所述容器ID对应的密钥,其中,不同的容器ID对应的密钥不同;基于所述密钥对往所述内存页中写入的数据进行加密。本申请实施例中,通过对不同的容器分配不同的内存资源和密钥,使得在访问目标页表项指向的内存页时,基于页表项中的容器ID获取对应的密钥,并使用该密钥对容器的数据加密,使得即使运行在特权级的恶意代码也只能读取密文,能有效阻止恶意代码偷取容器的机密数据。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种容器保护方法、处理器、操作系统及计算机设备。
背景技术
由于容器运行在用户态(非特权级),而处理器有特权级和非特权级(用户态)运行模式,特权级代码可以访问容器的所有内存数据,因此攻击者可以通过恶意特权级代码偷取容器的机密数据。
发明内容
鉴于此,本申请的目的在于提供一种容器保护方法、处理器、操作系统及计算机设备,以改善现有容器的机密数据容易被窃取的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种容器保护方法,所述方法包括:在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID,其中,所述页表项中记录有所述容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系;获取所述容器ID对应的密钥,其中,不同的容器ID对应的密钥不同;基于所述密钥对往所述内存页中写入的数据进行加密。本申请实施例中,通过对不同的容器分配不同的内存资源和密钥,使得在访问目标页表项指向的内存页时,基于页表项中的容器ID获取对应的密钥对容器数据进行加解密,其次不同的容器ID使用不同的加密密钥,并且容器的数据会被加密后保存在内存中,从而保证容器的加密数据不能被其他容器解密,即使运行在特权级的恶意代码也只能读取密文,能有效阻止恶意代码偷取容器的机密数据。
结合第一方面实施例的一种可能的实施方式,获取所述容器ID对应的密钥,包括:基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥。本申请实施例中,基于事先保存的容器ID与密钥的对应关系能快速获得容器ID对应的密钥,节约内存访问的时间。
结合第一方面实施例的一种可能的实施方式,获取所述容器ID对应的密钥,包括:判断记录表中是否存在所述容器ID,其中,所述记录表用于记录容器ID与密钥的对应关系;在为是时,基于所述记录表中的记录信息获取所述容器ID对应的密钥;在为否时,从预设密钥池中随机选取一未被使用的密钥作为所述容器ID对应的密钥,并在所述记录表中记录所述容器ID与其密钥的对应关系。本申请实施例中,在访问内存页的过程中,在获取容器ID对应的密钥时,先判断记录表中是否存在该容器ID,若存在,表明在之前访问该容器ID对应的内存时,便已经为该容器ID分配过密钥,若不存在,则为该容器ID分配密钥,并将容器ID与其密钥的对应关系记录在记录表中,以便后续在访问该容器ID对应的内存时,基于该记录表获取保存的密钥,该方式无需事先为容器ID分配密钥,其密钥的分配过程可以是在访问内存页的过程中进行。
结合第一方面实施例的一种可能的实施方式,在基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥之前,所述方法还包括:在接收到所述容器发送的密钥分配指令时,获取所述密钥分配指令中携带的所述容器ID;判断是否已经为所述容器ID分配过密钥;在为否时,为所述容器ID分配密钥,并保存分配的密钥与所述容器ID的对应关系。本申请实施例中,通过事先为容器ID分配密钥,使得在后续访问内存页的过程中可直接基于保存的容器ID与密钥的对应关系快速获得对应的密钥,并且在为容器ID分配密钥时,判断是否已经为其分配过密钥,以避免重复分配,使得同一个容器ID分配多个不同的密钥。
第二方面,本申请实施例还提供了一种容器保护方法,所述方法包括:在接收到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID;判断是否已经为所述容器ID分配过对应的内存资源;在为否时,为所述容器ID分配内存资源,并在页表项中记录所述容器ID、以及所述容器的虚拟地址与实际物理地址之间的映射关系;其中,所述页表项中的所述容器ID用于获取与所述容器ID对应的密钥,所述密钥用于对所述容器的内存数据进行加解密。本申请实施例中,通过为不同的容器分配不同的内存资源,并在页表项中增加容器ID,以管理容器内存,使得后续可以基于容器ID获取相应的密钥进行加解密,进而实现以容器为单元对内存数据做加密保护,从而保证容器的加密数据不能被其他容器解密。
第三方面,本申请实施例还提供了一种处理器,所述处理器包括:内存管理单元,用于在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID,其中,所述页表项中记录有所述容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系;所述内存管理单元,还用于获取所述容器ID对应的密钥,其中,不同的容器ID对应的密钥不同;所述内存管理单元,还用于基于所述密钥对往所述内存页中写入的数据进行加密。
结合第三方面实施例的一种可能的实施方式,所述内存管理单元,还具体用于:基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥。
结合第三方面实施例的一种可能的实施方式,所述处理器还包括安全处理器,所述安全处理器,用于在所述内存管理单元基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥之前,在接收到密钥分配指令时,获取所述密钥分配指令中携带的所述容器ID;所述安全处理器,还用于判断是否已经为所述容器ID分配过密钥;在为否时,所述安全处理器,还用于为所述容器ID分配密钥,并将分配的密钥与容器ID的对应关系保存在所述内存管理单元的寄存器中。本申请实施例中,在内存管理单元基于事先保存的容器ID与密钥的对应关系获取容器ID对应的密钥之前,利用安全处理器来为不同的容器分配不同的密钥,由于安全处理器与内存管理单元独立运行,通过安全处理器来管理密钥,能进一步提高数据的安全性。
结合第三方面实施例的一种可能的实施方式,所述内存管理单元,还具体用于:判断记录表中是否存在所述容器ID,其中,所述记录表用于记录容器ID与密钥的对应关系;在为是时,基于所述记录表中的记录信息获取所述容器ID对应的密钥;在为否时,从预设密钥池中随机选取一未被使用的密钥作为所述容器ID对应的密钥,并在所述记录表中记录所述容器ID与其密钥的对应关系。
第四方面,本申请实施例还提供了一种操作系统,所述操作系统包括:内存管理模块,用于在接收到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID;所述内存管理模块,还用于判断是否已经为所述容器ID分配过对应的内存资源;在为否时,所述内存管理模块,还用于为所述容器ID分配内存资源,并在页表项中记录所述容器ID以及所述容器的虚拟地址与实际物理地址之间的映射关系;其中,所述页表项中的所述容器ID用于获取与所述容器ID对应的密钥,所述密钥用于对所述容器的内存数据进行加解密。
第五方面,本申请实施例还提供了一种计算机设备,包括内存、如上述第三方面实施例和/或结合第三方面实施例的任一种可能的实施方式提供的处理器和如上述第四方面实施例提供的操作系统。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种计算机设备的系统架构示意图。
图2示出了本申请实施例提供的内存管理单元使用密钥加解密内存数据的流程示意图。
图3示出了本申请实施例提供的利用安全处理器为容器分配密钥的流程示意图。
图4示出了本申请实施例提供的一种容器保护方法的流程示意图。
图5示出了本申请实施例提供的又一种容器保护方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
如图1所示,为本申请实施例提供的计算机设备的系统架构示意图。该计算机设备的系统架构包括:处理器、内存、操作系统、容器引擎。其中,处理器可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等,也还可以是其他类型的处理器,如应用处理器,当然在某些产品中,应用处理器就是CPU。操作系统作为设备的核心,是管理计算机硬件与软件资源的计算机程序,操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。内存用于暂时存放处理器需要的运算数据,以及与硬盘等外部存储器交换的数据,如该内存可以是双倍速率同步动态随机存储器(Double Data Rate,DDR)、随机存取存储器(Random Access Memory,RAM)等。容器引擎(Container Engine)是容器系统的核心,容器引擎能够创建和运行容器。Docker Engine是目前最流行的容器引擎。
为了抵御攻击者可以通过恶意特权级代码偷取容器的机密数据,本申请利用容器引擎(Container Engine)来为不同的容器(Container)分配ID(IDentity);利用操作系统的内存管理模块(Memory Management,MM)来为不同的容器分配内存资源(Random AccessMemory,RAM),使用页表项(Page Table Entry)记录容器虚拟地址与实际物理地址之间的映射关系,并在页表项中增加容器ID来管理容器内存。在容器中引入内存加密技术,利用处理器中的安全处理器来为不同的容器配置不同的加密密钥,其中,不同的容器ID对应的密钥不同。利用处理器中的内存管理单元的硬件加解密功能,利用容器ID获取密钥来对容器的内存数据进行加密,以保护容器的数据安全。
为了便于理解,下面结合图1所示的计算机设备的系统架构示意图来进行说明。
在创建或形成容器时,利用容器引擎(Container Engine)来为不同的容器(Container)分配唯一ID,其中,不同的容器对应的ID不同,以便于管理。其中,容器是为了实现某些特定功能,将涉及到的所有软件程序封装在一起的集合,一个容器可能只运行一个应用程序,也可能同时运行多个应用程序。应用程序(APP)可能包含多个二进制文件(Bins)和动态链接库(Libs),容器内的多个应用程序使用的资源可以共享。不同的容器之间以及容器与普通应用程序之间使用的资源相互隔离。
当容器运行访问内存时,也即内存管理模块(MM)接收到来自容器的内存访问请求时,获取该访问请求中携带的容器ID,判断是否已经为该容器ID分配过对应的内存资源,若内存管理模块检测到该容器ID没有分配过内存资源,便为其分配内存资源,并在页表项中记录该容器ID以及该容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系,然后将该页表项保存在内存(RAM)中。其中,不同的容器对应的内存资源不同,进而实现以容器为单元对内存数据做加密保护。本申请中通过在页表项中增加容器ID,以管理容器内存,使得后续可以基于容器ID获取相应的密钥进行加解密。本申请中使用页表项中的部分比特位来表示容器ID,用来对容器的内存进行统一管理,此外,该容器ID也是内存管理单元获取密钥的标识。其中的CID表示使用该页内存的容器的ID,如表1所示。
表1
… | CID | Physical Page Base Address(物理页基础地址) | … |
当处理器中的内存管理单元(MMU)在访问目标页表项指向的内存页时,获取该目标页表项中的容器ID(例如CID);然后获取该容器ID对应的密钥;再基于该密钥对往对应的内存页中写入的数据进行加密,以及对从该内存页中读取的数据进行解密。其过程示意图如图2所示。其中,内存管理单元将加密数据写入内存,以及从内存中获取数据的过程已经为本领域技术人员所熟知,不再赘述。
其中,内存管理单元在获取该容器ID对应的密钥时,可以是基于事先保存的容器ID与密钥的对应关系获取该容器ID对应的密钥。在该种实施方式中,容器ID与密钥的对应关系可以是由处理器中的安全处理器来获得,并将其保存在内存管理单元的寄存器中。在内存管理单元基于事先保存的容器ID与密钥的对应关系获取容器ID对应的密钥之前,利用安全处理器来为不同的容器分配不同的密钥,并将对应关系保存在内存管理单元的寄存器中。该过程可以是安全处理器在接收到容器发送的密钥分配指令时(其中,密钥分配指令中携带有容器的容器ID),例如,安全处理器在接收SET_KEY(cid)指令时,获取该指令中携带的容器ID,为该容器ID分配密钥,并将分配的密钥与容器ID的对应关系保存在内存管理单元的寄存器中。为了避免重复分配,使得同一个容器ID分配多个不同的密钥,一种实施方式下,安全处理器在获得该指令中携带的容器ID后,安全处理器判断是否已经为该容器ID分配过密钥,若已经为该容器ID分配过密钥,则结束;若没有为该容器ID分配过密钥,则安全处理器为该容器ID分配密钥,并将分配的密钥与容器ID的对应关系保存在内存管理单元的寄存器中,该过程示意图如图3所示。其中,由于安全处理器与内存管理单元独立运行,利用安全处理器来管理密钥,为不同的容器分配不同的密钥,能进一步提高数据的安全性。
其中,安全处理器在分配容器ID的密钥时,需要确保容器ID的密钥唯一,不同的容器ID使用不同的加密密钥,从而保证容器的加密数据不能被其他容器解密。安全处理器的固件产生的随机数可作为容器的加解密密钥。安全处理器在为容器ID分配密钥时,会判断该随机数是否已经被使用,若是,则重新生成新的随机数并再次判断,直至得到没有被使用的随机数为止。
可选地,在该种实施方式中,也可以是由MMU来为容器ID分配密钥,也即MMU在接收到容器发送的密钥分配指令时,获取该指令中携带的容器ID,MMU判断是否已经为该容器ID分配过密钥,若已经为该容器ID分配过密钥,则结束;若没有为该容器ID分配过密钥,则MMU为该容器ID分配密钥,并将密钥与容器ID的对应关系保存在内存管理单元的寄存器中,其原理可以参阅上述安全处理器为容器分配密钥的过程。
内存管理单元在获取该容器ID对应的密钥时,也可以是判断记录表中是否存在该容器ID;当该记录表中存在该容器ID(在为是时),则基于该记录表中的记录信息获取该容器ID对应的密钥。其中,该记录表用于记录容器ID与密钥的对应关系。当该记录表中不存在该容器ID(在为否时),从预设密钥池中随机选取一未被使用的密钥作为该容器ID对应的密钥,并在该记录表中记录该容器ID与其密钥的对应关系,以便于后续内存管理单元再次访问该目标页表项指向的内存页时,直接基于该记录表即可获得这个容器ID的密钥。在该种实施方式中,在访问内存页的过程中,在获取容器ID对应的密钥时,先判断记录表中是否存在该容器ID,若存在,表明在之前访问该容器ID对应的内存时,便已经为该容器ID分配过密钥,若不存在,则为该容器ID分配密钥,并将容器ID与其密钥的对应关系记录在记录表中,以便后续在访问该容器ID对应的内存时,基于该记录表获取保存的密钥,该方式无需事先为容器ID分配密钥,其密钥的分配过程可以是在访问内存页的过程中进行。此外,除了是从预设密钥池中随机选取一未被使用的密钥作为该容器ID对应的密钥外,还可以是采用现场随机生成随机数的方式来获得容器ID对应的密钥。
本申请使用内存加密技术对容器的内存数据进行加密,容器在运行时,容器的数据会被加密后保存在内存中,即使运行在特权级的恶意代码也只能读取密文。由于加密密钥由内存管理单元管理,软件无法获取密钥,无法对密文进行解密而得到原始数据,进而达到保护容器的目的,能有效阻止恶意代码偷取容器的机密数据。
请参阅图4,为本申请实施例提供的一种应用于处理器(如上述的处理器)的容器保护方法,下面将结合图4对其所包含的步骤进行说明。
步骤S101:在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID。
当处理器中的MMU在访问目标页表项指向的内存页时,获取该页表项中的容器ID。其中,所述页表项中记录有容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系。
步骤S102:获取所述容器ID对应的密钥。
在获取到容器ID后,获取该容器ID对应的密钥。其中,不同的容器ID对应的密钥不同。
作为一种实施方式,获取所述容器ID对应的密钥可以是:基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥。在该种实施方式中,在基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥之前,所述方法还包括:在接收到容器发送的密钥分配指令时,获取所述密钥分配指令中携带的所述容器ID;判断是否已经为所述容器ID分配过密钥;在为否时,为所述容器ID分配密钥,并保存分配的密钥与容器ID的对应关系。例如,处理器中的安全处理器在接收到容器发送的密钥分配指令密钥分配指令时,首先获取所述密钥分配指令中携带的容器ID,然后判断是否已经为所述容器ID分配过密钥,若已经分配过,则结束,若没有分配过,则随机产生一未被使用过的密钥作为该容器ID对应的密钥,并将该密钥与容器ID的对应关系保存在MMU的寄存器中。
作为又一种实施方式,获取所述容器ID对应的密钥可以是:判断记录表中是否存在所述容器ID,其中,所述记录表用于记录容器ID与密钥的对应关系;在为是时,基于所述记录表中的记录信息获取所述容器ID对应的密钥;在为否时,从预设密钥池中随机选取一未被使用的密钥作为所述容器ID对应的密钥,并在所述记录表中记录所述容器ID与其密钥的对应关系。
步骤S103:基于所述密钥对往所述内存页中写入的数据进行加密,以及对从所述内存页中读取的数据进行解密。
在获取到容器ID对应的密钥后,基于该密钥对内存数据进行加解密,往内存写数据时对数据进行加密,从内存读数据时对数据进行解密。
本申请实施例所提供的方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
请参阅图5,为本申请实施例提供的一种应用于操作系统(如上述的Host OS)的容器保护方法,下面将结合图5对其所包含的步骤进行说明。
步骤S201:在接收到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID。
当操作系统的内存管理模块(MM)在检测到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID。其中,该内存访问请求中携带有当前容器的容器ID。
步骤S202:判断是否已经为所述容器ID分配过对应的内存资源。
内存管理模块在获取到容器ID后,判断是否已经为所述容器ID分配过对应的内存资源,在为是时,则结束,在为否时,则执行步骤S203。
步骤S203:为所述容器ID分配内存资源,并在页表项中记录所述容器ID、以及所述容器的虚拟地址与实际物理地址之间的映射关系。
在为否时,也即没有为所述容器ID分配过对应的内存资源时,则为所述容器ID分配内存资源,并在页表项中记录所述容器ID、以及所述容器的虚拟地址与实际物理地址之间的映射关系。其中,所述页表项中的所述容器ID用于获取与所述容器ID对应的密钥,所述密钥用于对所述容器的内存数据进行加解密。
本申请实施例所提供的方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种容器保护方法,其特征在于,所述方法包括:
在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID,其中,所述页表项中记录有所述容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系;
获取所述容器ID对应的密钥,其中,不同的容器ID对应的密钥不同;
基于所述密钥对往所述内存页中写入的数据进行加密。
2.根据权利要求1所述的方法,其特征在于,获取所述容器ID对应的密钥,包括:
基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥。
3.根据权利要求1所述的方法,其特征在于,获取所述容器ID对应的密钥,包括:
判断记录表中是否存在所述容器ID,其中,所述记录表用于记录容器ID与密钥的对应关系;
在为是时,基于所述记录表中的记录信息获取所述容器ID对应的密钥;
在为否时,从预设密钥池中随机选取一未被使用的密钥作为所述容器ID对应的密钥,并在所述记录表中记录所述容器ID与其密钥的对应关系。
4.根据权利要求2所述的方法,其特征在于,在基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥之前,所述方法还包括:
在接收到所述容器发送的密钥分配指令时,获取所述密钥分配指令中携带的所述容器ID;
判断是否已经为所述容器ID分配过密钥;
在为否时,为所述容器ID分配密钥,并保存分配的密钥与所述容器ID的对应关系。
5.一种容器保护方法,其特征在于,所述方法包括:
在接收到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID;
判断是否已经为所述容器ID分配过对应的内存资源;
在为否时,为所述容器ID分配内存资源,并在页表项中记录所述容器ID、以及所述容器的虚拟地址与实际物理地址之间的映射关系;其中,所述页表项中的所述容器ID用于获取与所述容器ID对应的密钥,所述密钥用于对所述容器的内存数据进行加解密。
6.一种处理器,其特征在于,所述处理器包括:
内存管理单元,用于在访问目标页表项指向的内存页时,获取所述目标页表项中的容器ID,其中,所述页表项中记录有所述容器ID对应的容器的虚拟地址与实际物理地址之间的映射关系;
所述内存管理单元,还用于获取所述容器ID对应的密钥,其中,不同的容器ID对应的密钥不同;
所述内存管理单元,还用于基于所述密钥对往所述内存页中写入的数据进行加密。
7.根据权利要求6所述的处理器,其特征在于:所述内存管理单元,还具体用于:
基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥。
8.根据权利要求7所述的处理器,其特征在于,所述处理器还包括安全处理器,
所述安全处理器,用于在所述内存管理单元基于事先保存的容器ID与密钥的对应关系获取所述容器ID对应的密钥之前,在接收到密钥分配指令时,获取所述密钥分配指令中携带的所述容器ID;
所述安全处理器,还用于判断是否已经为所述容器ID分配过密钥;
在为否时,所述安全处理器,还用于为所述容器ID分配密钥,并将分配的密钥与容器ID的对应关系保存在所述内存管理单元的寄存器中。
9.根据权利要求6所述的处理器,其特征在于,所述内存管理单元,还具体用于:
判断记录表中是否存在所述容器ID,其中,所述记录表用于记录容器ID与密钥的对应关系;
在为是时,基于所述记录表中的记录信息获取所述容器ID对应的密钥;
在为否时,从预设密钥池中随机选取一未被使用的密钥作为所述容器ID对应的密钥,并在所述记录表中记录所述容器ID与其密钥的对应关系。
10.一种操作系统,其特征在于,所述操作系统包括:
内存管理模块,用于在接收到来自容器的内存访问请求时,获取所述访问请求中携带的容器ID;
所述内存管理模块,还用于判断是否已经为所述容器ID分配过对应的内存资源;
在为否时,所述内存管理模块,还用于为所述容器ID分配内存资源,并在页表项中记录所述容器ID以及所述容器的虚拟地址与实际物理地址之间的映射关系;其中,所述页表项中的所述容器ID用于获取与所述容器ID对应的密钥,所述密钥用于对所述容器的内存数据进行加解密。
11.一种计算机设备,其特征在于,包括:内存、如权利要求6-9任一项所述的处理器和如权利要求10所述的操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911152289.8A CN111124956B (zh) | 2019-11-22 | 2019-11-22 | 一种容器保护方法、处理器、操作系统及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911152289.8A CN111124956B (zh) | 2019-11-22 | 2019-11-22 | 一种容器保护方法、处理器、操作系统及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124956A true CN111124956A (zh) | 2020-05-08 |
CN111124956B CN111124956B (zh) | 2023-03-07 |
Family
ID=70496152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911152289.8A Active CN111124956B (zh) | 2019-11-22 | 2019-11-22 | 一种容器保护方法、处理器、操作系统及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124956B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859428A (zh) * | 2020-07-22 | 2020-10-30 | 成都安恒信息技术有限公司 | 一种基于容器化的密钥存储方法及系统 |
CN113037467A (zh) * | 2021-05-24 | 2021-06-25 | 杭州海康威视数字技术股份有限公司 | 视频物联网设备密钥证书管理方法、装置和系统 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090304A2 (en) * | 2000-05-19 | 2001-11-29 | Human Genome Sciences, Inc. | Nucleic acids, proteins, and antibodies |
CN101290642A (zh) * | 2007-04-16 | 2008-10-22 | 瞬联软件科技(北京)有限公司 | 基于区域限制的电子文件传播控制方法及其系统 |
US20100169968A1 (en) * | 2008-12-31 | 2010-07-01 | Vedvyas Shanbhogue | Processor extensions for execution of secure embedded containers |
CN102255729A (zh) * | 2011-07-07 | 2011-11-23 | 武汉理工大学 | 一种基于媒介数字证书的ibe数据加密系统 |
CN103679060A (zh) * | 2012-09-19 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 加密方法及加密装置 |
CN104052661A (zh) * | 2013-03-11 | 2014-09-17 | 华为技术有限公司 | 容器名服务器和容器名解析方法 |
CN104468116A (zh) * | 2014-11-06 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备多应用的方法 |
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
CN106294870A (zh) * | 2016-08-25 | 2017-01-04 | 苏州酷伴软件科技有限公司 | 基于对象的分布式云存储方法 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN107526974A (zh) * | 2017-08-03 | 2017-12-29 | 致象尔微电子科技(上海)有限公司 | 一种信息密码保护装置和方法 |
CN107683480A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于支持对受保护容器的实时迁移的处理器、方法、系统和指令 |
CN107924440A (zh) * | 2015-08-21 | 2018-04-17 | 密码研究公司 | 安全计算环境 |
CN108595989A (zh) * | 2018-03-15 | 2018-09-28 | 杭州电子科技大学 | 一种iOS下移动APP安全防护系统及方法 |
CN108733455A (zh) * | 2018-05-31 | 2018-11-02 | 上海交通大学 | 基于ARM TrustZone的容器隔离性增强系统 |
US10146703B1 (en) * | 2015-12-30 | 2018-12-04 | EMC IP Holding Company LLC | Encrypting data objects in a data storage system |
CN109190386A (zh) * | 2018-04-04 | 2019-01-11 | 中国电子科技网络信息安全有限公司 | 基于Device Mapper的容器镜像分层加密存储方法 |
CN109684030A (zh) * | 2018-11-22 | 2019-04-26 | 海光信息技术有限公司 | 虚拟机内存密钥生成装置、以及方法、加密方法和SoC系统 |
CN109800050A (zh) * | 2018-11-22 | 2019-05-24 | 海光信息技术有限公司 | 一种虚拟机的内存管理方法、装置、相关设备及系统 |
CN110263546A (zh) * | 2019-05-24 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 一种对容器镜像进行安全检查的方法、装置以及设备 |
-
2019
- 2019-11-22 CN CN201911152289.8A patent/CN111124956B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090304A2 (en) * | 2000-05-19 | 2001-11-29 | Human Genome Sciences, Inc. | Nucleic acids, proteins, and antibodies |
CN101290642A (zh) * | 2007-04-16 | 2008-10-22 | 瞬联软件科技(北京)有限公司 | 基于区域限制的电子文件传播控制方法及其系统 |
US20100169968A1 (en) * | 2008-12-31 | 2010-07-01 | Vedvyas Shanbhogue | Processor extensions for execution of secure embedded containers |
CN102255729A (zh) * | 2011-07-07 | 2011-11-23 | 武汉理工大学 | 一种基于媒介数字证书的ibe数据加密系统 |
CN103679060A (zh) * | 2012-09-19 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 加密方法及加密装置 |
CN104052661A (zh) * | 2013-03-11 | 2014-09-17 | 华为技术有限公司 | 容器名服务器和容器名解析方法 |
CN104468116A (zh) * | 2014-11-06 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备多应用的方法 |
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
CN107683480A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于支持对受保护容器的实时迁移的处理器、方法、系统和指令 |
CN107924440A (zh) * | 2015-08-21 | 2018-04-17 | 密码研究公司 | 安全计算环境 |
US10146703B1 (en) * | 2015-12-30 | 2018-12-04 | EMC IP Holding Company LLC | Encrypting data objects in a data storage system |
CN106294870A (zh) * | 2016-08-25 | 2017-01-04 | 苏州酷伴软件科技有限公司 | 基于对象的分布式云存储方法 |
CN107526974A (zh) * | 2017-08-03 | 2017-12-29 | 致象尔微电子科技(上海)有限公司 | 一种信息密码保护装置和方法 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN108595989A (zh) * | 2018-03-15 | 2018-09-28 | 杭州电子科技大学 | 一种iOS下移动APP安全防护系统及方法 |
CN109190386A (zh) * | 2018-04-04 | 2019-01-11 | 中国电子科技网络信息安全有限公司 | 基于Device Mapper的容器镜像分层加密存储方法 |
CN108733455A (zh) * | 2018-05-31 | 2018-11-02 | 上海交通大学 | 基于ARM TrustZone的容器隔离性增强系统 |
CN109684030A (zh) * | 2018-11-22 | 2019-04-26 | 海光信息技术有限公司 | 虚拟机内存密钥生成装置、以及方法、加密方法和SoC系统 |
CN109800050A (zh) * | 2018-11-22 | 2019-05-24 | 海光信息技术有限公司 | 一种虚拟机的内存管理方法、装置、相关设备及系统 |
CN110263546A (zh) * | 2019-05-24 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 一种对容器镜像进行安全检查的方法、装置以及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859428A (zh) * | 2020-07-22 | 2020-10-30 | 成都安恒信息技术有限公司 | 一种基于容器化的密钥存储方法及系统 |
CN111859428B (zh) * | 2020-07-22 | 2022-07-19 | 成都安恒信息技术有限公司 | 一种基于容器化的密钥存储方法及系统 |
CN113037467A (zh) * | 2021-05-24 | 2021-06-25 | 杭州海康威视数字技术股份有限公司 | 视频物联网设备密钥证书管理方法、装置和系统 |
CN113037467B (zh) * | 2021-05-24 | 2021-08-24 | 杭州海康威视数字技术股份有限公司 | 视频物联网设备密钥证书管理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111124956B (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100491991B1 (ko) | 내부 메모리형 내탬퍼 프로세서 및 비밀보호방법 | |
JP5175856B2 (ja) | セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 | |
US6725205B1 (en) | System and method for secure software installation | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及系统 | |
CN110447032A (zh) | 管理程序与虚拟机之间的存储器页转换监测 | |
US8954753B2 (en) | Encrypting data in volatile memory | |
US20080066075A1 (en) | System and Method for Securely Saving and Restoring a Context of a Secure Program Loader | |
US20080285747A1 (en) | Encryption-based security protection method for processor and apparatus thereof | |
US7117535B1 (en) | Software-generated machine identifier | |
US20030041253A1 (en) | Recording apparatus, medium, method, and related computer program | |
US8095802B2 (en) | System and method for securely saving a program context to a shared memory | |
KR101837678B1 (ko) | 신뢰실행환경 기반의 컴퓨팅 장치 | |
JP2006244486A (ja) | アイテムに対する使用権をアクセス権に基づいて生成する方法およびコンピュータ読取り可能媒体 | |
KR20090061636A (ko) | 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
US9881142B2 (en) | Method and apparatus for preventing and investigating software piracy | |
CN111949372B (zh) | 一种虚拟机迁移方法、通用处理器及电子设备 | |
CN111124616B (zh) | 一种虚拟机迁移方法、处理器及电子设备 | |
CN111124956B (zh) | 一种容器保护方法、处理器、操作系统及计算机设备 | |
WO2020075396A1 (ja) | 推論装置、推論方法及び推論プログラム | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
CN111967065B (zh) | 一种数据保护方法、处理器及电子设备 | |
US11829454B2 (en) | Method and apparatus for preventing and investigating software piracy | |
US8972745B2 (en) | Secure data handling in a computer system | |
CN110955904B (zh) | 一种数据加密方法、数据解密方法、处理器及计算机设备 | |
CN113742657A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8 Applicant after: Haiguang Information Technology Co.,Ltd. Address before: 1809-1810, block B, blue talent port, No.1, Intelligent Island Road, high tech Zone, Qingdao, Shandong Province Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |