CN116150740B - 资源隔离方法、装置、芯片系统及电子设备 - Google Patents
资源隔离方法、装置、芯片系统及电子设备 Download PDFInfo
- Publication number
- CN116150740B CN116150740B CN202310402380.0A CN202310402380A CN116150740B CN 116150740 B CN116150740 B CN 116150740B CN 202310402380 A CN202310402380 A CN 202310402380A CN 116150740 B CN116150740 B CN 116150740B
- Authority
- CN
- China
- Prior art keywords
- key
- memory
- identifier
- physical address
- isolation
- 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
- 238000002955 isolation Methods 0.000 title claims abstract description 199
- 230000015654 memory Effects 0.000 claims abstract description 383
- 238000012423 maintenance Methods 0.000 claims abstract description 103
- 230000004044 response Effects 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims description 90
- 230000008569 process Effects 0.000 claims description 52
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 52
- 238000010586 diagram Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 102000006822 Agouti Signaling Protein Human genes 0.000 description 1
- 108010072151 Agouti Signaling Protein Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种资源隔离方法、装置、芯片系统及电子设备,涉及计算机领域。其中,内存控制器接收内存管理单元发送的第一内存访问信息,其中,第一内存访问信息包括第一物理地址以及第一物理地址的第一隔离标识;然后,将第一隔离标识发送给密钥维护单元;根据密钥维护单元发送的第一响应信息,获得与第一隔离标识相匹配的第一密钥,其中,第一响应信息由密钥维护单元根据第一隔离标识生成;最后,根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。如此,相较于通过处理器对数据进行加密隔离,本实施例中通过内存控制器对数据进行加密隔离,能够对不经过处理器的数据进行隔离。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种资源隔离方法、装置、芯片系统及电子设备。
背景技术
虚拟机技术是指在一套计算机设备中模拟出具有完整硬件系统功能并且能够运行在一个完全隔离环境中的完整计算机系统的技术。而随着网络技术不断发展,原来在计算机本地实现的功能逐渐转移到云端,通过服务器来实现。因此,在服务器端的虚拟机技术也得到长足的发展。通过虚拟机技术,将服务器物理资源抽象成逻辑资源,从而能够使得一台服务器能够虚拟出几台甚至上百台相互隔离的主机,使得服务提供商对外租借服务资源时,不必自己拥有大量的物理硬件资源,而是将服务器上的处理器、内存、磁盘、I/O等硬件资源在多个租户之间进行共享,从而提高了资源的利用率,简化了系统管理,实现了服务器整合。
因此,将服务器上的处理器、内存、磁盘、I/O等硬件资源在多个租户之间进行共享,需要对租户之间的数据进行隔离,从而保障各租户的数据安全。目前主要通过处理器对不同租户的数据采取不同的密钥进行加密,从而实现租户之间的数据隔离,但研究发现,该方式无法对不经过处理器的数据进行隔离。
发明内容
为了克服现有技术中的至少一个不足,本申请提供一种资源隔离方法、装置、芯片系统及电子设备,用于对无需通过处理器进行访问的数据进行加密隔离。具体包括:
第一方面,本申请提供一种资源隔离方法,应用于内存控制器,所述内存控制器与内存管理单元以及密钥维护单元通信连接,所述方法包括:
接收所述内存管理单元发送的第一内存访问信息,其中,所述第一内存访问信息包括第一物理地址以及所述第一物理地址的第一隔离标识;
将所述第一隔离标识发送给所述密钥维护单元;
根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥,其中,所述第一响应信息由所述密钥维护单元根据所述第一隔离标识生成;
根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第二方面,本申请提供一种资源隔离方法,应用于密钥维护单元,所述密钥维护单元与内存控制器通信连接,所述内存控制器与内存管理单元通信连接,所述方法包括:
接收所述内存控制器发送的第一隔离标识,其中,所述内存控制器接收所述内存管理单元发送的第一内存访问信息,并从所述第一内存访问信息中获得所述第一隔离标识;
根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥;
根据所述第一密钥,生成第一响应信息;
将所述第一响应信息发送给所述内存控制器,以使所述内存控制器根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第三方面,本申请提供一种资源隔离方法,应用于内存管理单元,所述内存管理单元与内存控制器通信连接,所述内存控制器与密钥维护单元通信连接,所述方法包括:
接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
将所述虚拟内存地址转换为第一物理地址;
将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器,以使所述内存控制器从所述密钥维护单元获得与所述第一隔离标识相匹配的第一密钥,并根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第四方面,本申请提供一种资源隔离装置,应用于内存控制器,所述内存控制器与内存管理单元以及密钥维护单元通信连接,所述资源隔离装置包括:
第一接收模块,用于接收所述内存管理单元发送的第一内存访问信息,其中,所述第一内存访问信息包括第一物理地址以及所述第一物理地址的第一隔离标识;
密钥请求模块,用于将所述第一隔离标识发送给所述密钥维护单元;根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥,其中,所述第一响应信息由所述密钥维护单元根据所述第一隔离标识生成;
数据隔离模块,用于根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第五方面,本申请提供一种资源隔离装置,应用于密钥维护单元,所述密钥维护单元与内存控制器通信连接,所述内存控制器与内存管理单元通信连接,所述资源隔离装置包括:
第二接收模块,用于接收所述内存控制器发送的第一隔离标识,其中,所述内存控制器接收所述内存管理单元发送的第一内存访问信息,并从所述第一内存访问信息中获得所述第一隔离标识;
密钥生成模块,用于根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥;根据所述第一密钥,生成第一响应信息;
密钥响应模块,用于将所述第一响应信息发送给所述内存控制器,以使所述内存控制器根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第六方面,本申请提供一种资源隔离装置,应用于内存管理单元,所述内存管理单元与内存控制器通信连接,所述内存控制器与密钥维护单元通信连接,所述装置包括:
第三接收模块,用于接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
地址转换模块,用于将所述虚拟内存地址转换为第一物理地址;
内存访问模块,用于将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器,以使所述内存控制器从所述密钥维护单元获得与所述第一隔离标识相匹配的第一密钥,并根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第七方面,本申请提供一种芯片系统,所述芯片系统包括内存控制器、内存管理单元以及密钥维护单元;
所述内存管理单元接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
所述内存管理单元,还将所述虚拟内存地址转换为第一物理地址;将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器;
所述内存控制器将所述第一隔离标识发送给所述密钥维护单元;
所述密钥维护单元接根据所述第一隔离标识生成第一密钥,并将所述第一密钥发送给所述内存控制器;
所述内存控制器还根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
第八方面,本申请提供一种电子设备,所述电子设备包括所述的芯片系统。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的资源隔离方法、装置、芯片系统及电子设备中,内存控制器接收内存管理单元发送的第一内存访问信息,其中,第一内存访问信息包括第一物理地址以及第一物理地址的第一隔离标识;然后,将第一隔离标识发送给密钥维护单元;根据密钥维护单元发送的第一响应信息,获得与第一隔离标识相匹配的第一密钥,其中,第一响应信息由密钥维护单元根据第一隔离标识生成;最后,根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。如此,相较于通过处理器对数据进行加密隔离,本实施例中通过内存控制器对数据进行加密隔离,能够对不经过处理器的数据进行隔离。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的未虚拟化的架构示意图;
图2为本申请实施例提供的虚拟化的架构示意图;
图3为本申请实施例提供的安全模块的效果示意图;
图4为本申请实施例提供的DMA的工作原理示意图;
图5为本申请实施例提供的芯片系统的结构示意图之一;
图6为本申请实施例提供的芯片系统的交互示意图;
图7为本申请实施例提供的芯片系统的细节示意图;
图8为本申请实施例提供的芯片系统的结构示意图之二;
图9为本申请实施例提供的资源隔离方法的流程示意图之一;
图10为本申请实施例提供的进程标识与虚拟机标识之间的关系示意图;
图11为本申请实施例提供的未优化的加密耗时示意图;
图12为本申请实施例提供的优化后的加密耗时示意图;
图13为本申请实施例提供的资源隔离方法的流程示意图之二;
图14为本申请实施例提供的生成加噪密钥的原理示意图;
图15为本申请实施例提供的资源隔离方法的流程示意图之三;
图16为本申请实施例提供的资源隔离装置的结构示意图之一;
图17为本申请实施例提供的资源隔离装置的结构示意图之二;
图18为本申请实施例提供的资源隔离装置的结构示意图之三。
图标:101-内存管理单元;102-内存控制器;103-密钥维护单元;104-系统总线;105-处理器;106-存储器;107-通信单元;108-外设;201A-第一接收模块;202A-密钥请求模块;203A-数据隔离模块;201B-第二接收模块;202B-密钥生成模块;203B-密钥响应模块;201C-第三接收模块;202C-地址转换模块;203C-内存访问模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
基于以上声明,如图1所示,对于未进行虚拟化的服务器,其架构自下而上是物理硬件(Hardware)、操作系统(OS),应用程序(APP)。其与个人计算机类似,在计算机硬件上装操作系统,再在操作系统里面安装应用程序。而虚拟机技术是指在一套计算机设备中模拟出具有完整硬件系统功能并且能够运行在一个完全隔离环境中的完整计算机系统的技术。
如图2所示,服务器通过Hypervisor虚拟出多台逻辑计算机,而不会影响到常规应用程序(APP)的运行。其中,这些逻辑计算机又被称为虚拟机(VM,Virtual Machine),每台虚拟机都拥有独立的“硬件”,并且,可以在每台虚拟机中安装常规应用程序(APP)。当应理解的是,虽然在虚拟机的操作系统中看到这些“硬件”,但这些硬件并不是真实存在的,而是通过Hypervisor将物理机的硬件虚拟而来;因此,虚拟机运行时,虚拟机硬件的工作实际是由物理机的硬件完成的。
另外,值得说明的是,Hypervisor又被称为虚拟机监视器(VMM,Virtual MachineMonitor),是实现将物理机虚拟为虚拟机的操作系统或者软件,从而为虚拟机提供虚拟的硬件资源,并负责管理和分配这些资源,以确保上层虚拟机之间的相互隔离。虽然Hypervisor为不同的虚拟机提供了一定的资源隔离措施,但各虚拟机实际运行在服务器提供的同一内存(DRAM)中,而租户的复杂性导致一些租户的虚拟机中运行的常规应用程序可能会突破Hypervisor提供的隔离机制,从而访问到其他虚拟机的数据。除此之外,还应理解的是,由于服务提供商对Hypervisor具有绝对的控制权,也就意味着,服务提供商理论上能够通过Hypervisor获得任意租户的数据,因此,对于租户而言,也希望Hypervisor没有权限获取自己的数据。
鉴于此,如图3所示的相关技术中,在Hypervisor中加入了安全模块。该安全模块作为Hypervisor中新增的软件,用于对不同虚拟机的数据采取不同的密钥进行加密;使得即使一些租户的虚拟机突破了Hypervisor提供的隔离机制,也无法解密出其他虚拟机的真实数据。同时,由于Hypervisor本身自己也不知道虚拟机的密钥,使得其也无法获得各虚拟机的真实数据。
但研究发现,Hypervisor在软件逻辑上介于操作系统内核与常规应用程序之间,并运行在处理器上;而一些访问内存的方式并需要通过处理器,这就导致对于该访问方式下的数据,无法进行加密隔离。
示例性的,如图4所示,在一些需要进行大数据量传输的场景中,通常会使用到DMA(Direct Memory Access,直接存储器访问)技术来减轻处理器的负载压力。DMA为一独立于处理器的硬件,需要由处理器对其进行配置之后,才能进行数据转移。其配置内容包括,指定源数据所在的地址空间与需要转移到的地址空间,以及触发进行转移的条件;如此,当DMA检测到满足配置的触发条件时,则通将数据从一个地址空间复制到另一个地址空间,从而提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。然而,DMA在数据转移过程中并不需要处理器参与,也就意味着Hypervisor中的安全模块无法对其进行加密以及解密。
需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
鉴于此,如图5所示,本实施例提供一种芯片系统,该芯片系统包括内存管理单元101(Memory Management Unit,MMU)、内存控制器102(Memory Controller,MC)以及密钥维护单元103,其中,内存管理单元101、内存控制器102以及密钥维护单元103之间通过系统总线104直接或者间接通信连接。
其中,对于内存管理单元101,应理解的是,操作系统中会执行一个或多个进程程序,程序发出的地址是与物理内存的地址无关的虚拟内存的地址。即,程序中看到的内存地址是虚拟内存的地址,例如虚拟内存范围为0-4GB,程序读写内存时会被映射到实际的物理内存中,这个映射称为翻译,这个翻译工作可以由内存管理单元(比如MMU)来完成。
除此之外,该内存管理单元101还可以指的是SMMU(System Memory ManagementUnit,),也是负责虚拟地址和物理地址的转换;与MMU不同的之处在于,SMMU的服务对象不是处理器,而是IO设备和加速引擎。一些硬件结构中,不单单只有处理器会访问物理内存,GPU、DMA这样的加速引擎也会需要访问物理内存,这时通过SMMU为其提供了硬件的物理内存访问机制。
为便于理解,示例性的,内存管理单元101可以接收处理器发出的虚拟内存页的地址,根据页表中记录的虚拟内存页的地址与物理内存页的地址的映射关系,查找出该虚拟内存页的地址对应的物理内存页的地址,并将查找到的物理内存页的地址发送给处理器,处理器按照该物理内存页的地址和偏移量从物理内存页中偏移量对应的地址读出或写入相关数据。
对于内存控制器102,应理解的是,内存控制器102在计算机系统中用于控制处理器与内存之间的数据传输,通过内存控制器102可以使内存与处理器之间交换数据。相关技术中,内存控制器102包含命令处理单元、数据处理单元和刷新单元。其中,命令处理单元用于对处理器发出的指令进行处理;数据处理单元用于对处理器读取或写入内存中的数据进行处理;刷新单元则用于根据刷新命令对内存进行刷新。与常规内存控制器不同的是,本实施例提供的内存控制器还能用于对写入内存中的数据进行加密或者对读取自内存的数据进行解密。
需要说明的是,本申请实施例中,内存控制器102可以整合在处理器中,也可以是独立于处理器的独立芯片。
而系统总线104负责连接芯片系统中的内存控制器102、内存管理单元101、密钥维护单元103之间的通信。而作为各器件之间数据交换的通道,系统总线104的效率会对处理器性能有着显著的影响。其中,系统总线104的结构通常包括星形、线形、树形、环状、网状以及全连接这几种。随着芯片设计的发展,目前能见到的系统总线104方案包括环形、网状和全连接这三种方式,其中,网状方式以AMD公司提出的Mesh Bus最具有代表性。
如图6所示,芯片系统中的内存管理单元、内存控制器、密钥维护单元103之间的交互方式包括:
S101C,内存管理单元接收虚拟内存访问信息。
其中,虚拟内存访问信息可以来自于处理器的MMU或者外设的SMMU,其中包括虚拟内存地址以及第一隔离标识。
S102C,内存管理单元还将虚拟内存地址转换为第一物理地址;
S103C,内存管理单元还将第一物理地址与第一隔离标识作为第一内存访问信息,发送给内存控制器。
S102A,内存控制器将第一隔离标识发送给密钥维护单元。
S102B,密钥维护单元根据第一隔离标识,获得与第一隔离标识相匹配的第一密钥。
S103B,密钥维护单元根据第一密钥,生成第一响应信息。
S104B,密钥维护单元将第一响应信息发送给内存控制器。
S103A,内存控制器还根据密钥维护单元发送的第一响应信息,获得与第一隔离标识相匹配的第一密钥。
S104A,根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
示例性的,如图7所示的芯片系统中,外设、内存控制器、密钥维护单元、内存以及多个处理核之间通过Mesh Bus实现直接或者间的接通信连接。
对于任意处理核,其上运行有虚拟机,虚拟机访问内存时的虚拟内存地址通过MMU进行转换;而外设访问内存时的虚拟内存地址通过SMMU进行转换,得到内存访问信息。而本实施例中的任意内存访问信息包括有隔离标识,而该隔离标识包括有用于指示虚拟机的虚拟机标识(Virtual Machine Identifier,VMID)与用于指示进程的进程标识(AddressSpace Identifier,ASID),因此,本实施例中将隔离标识表示为VMIDX。
内存访问信息经Mesh Bus发送给内存控制器,使得内存控制器通过其中的隔离标识与密钥维护单元进行交互,获得每个虚拟机的密钥,用于对写入内存的数据进行加密或者对读取自内存的数据进行解密。
其中,该密钥维护单元可以整合到内存控制器中,也可以是独立于内存控制器的单独的芯片。
由此,处理器或者外设访问内存均需要经过内存控制器,通过该内存控制器对写入内存的数据进行加密,或者对出去自内存的数据进行解密,使得即使有些访问内存的方式并需要通过处理器,也能够对其访问的数据进行加密隔离。
当然,在图8所示的其他可选实施方式中,该芯片系统还包括有处理器105、存储器106、通信单元107以及外设108等。其中,该存储器106可以是,但不限于,易失存储器、非易失性存储器、存储驱动器等。
在一些实施方式中,该易失存储器可以是随机存取存储器(Random AccessMemory,RAM);在一些实施方式中,该非易失性存储器可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)、闪存等;在一些实施方式中,该存储驱动器可以是磁盘驱动器、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合等。
该通信单元107用于通过网络收发数据。在一些实施方式中,该网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。在一些实施例中,网络可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,服务请求处理系统的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
该处理器105可能是一种集成电路芯片,具有信号的处理能力,并且,该处理器可以包括一个或多个处理核(例如,单核处理器或多核处理器)。仅作为举例,上述处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、专用指令集处理器(Application SpecificInstruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器 (Digital SignalProcessor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
基于上述关于芯片系统的介绍,下面就该系统中每个单元分别结合其方法流程示意图进行详细介绍。但应理解的是,本实施例中流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。如图9所示,应用于内存控制器的资管隔离方法包括:
S101A,接收内存管理单元发送的第一内存访问信息。
其中,第一内存访问信息包括第一物理地址以及第一物理地址的第一隔离标识。并且,本实施例中的第一隔离标识包括虚拟机标识以及进程标识,其中,虚拟机标识用于指示访问第一物理地址的目标虚拟机;进程标识用于指示目标虚拟机中访问物理地址的目标进程。另外,本实施例为了便于描述,将内存控制器先后处理的任意两内存访问信息称为第一内存访问信息与第二内存访问信息,其中,第一内存信息的处理时间早于第二内存访问信息的处理时间。
如图10所示,通过Hypervisor可以虚拟出多台虚拟机,而每台虚拟机中又可以运行多个进程,因此,通过VMID对多台虚拟机进行区分,通过ASID对同一台虚拟机中的不同进程进行区分。
正如上述实施例中所介绍的,内存管理单元用于将虚拟内存地址转换为物理地址,而为了便于记录访问内存的目标虚拟机以及该目标虚拟机中的目标进程,将原始的虚拟内存地址进行了分段,使得其中一部分字段用于记录第一隔离标识,剩余的字段用于记录实际的虚拟内存地址。考虑到原始的虚拟内存地址经分段后不仅记录了内存地址,还记录了用于区分虚拟机及其进程的隔离标识,因此,在本实施中将分段后的原始的虚拟内存地址称为虚拟内存访问信息。
并且,内存管理单元在接收到虚拟内存访问信息时,也仅对其中实际的虚拟内存地址进行转换,而保留其中的第一隔离标识。
示例性的,对于64位的服务器,其原始的虚拟内存地址具有64位的寻址空间,而本实施例中将位于末尾27bit的字段用于记录第一隔离标识,剩余37bit的字段用于记录实际的虚拟内存地址。
其中,27bit的字段又进一步分为11bit的字段与16bit的字段,其中,11bit的字段用于记录虚拟机标识,而16bit的字段用于记录进程标识。此处,应理解的是,记录虚拟机标识以及进程标识的字段长度不仅限于上述示例,技术人员在实施本申请时,可以在本实施例发明构思的启示下进行适当调整。
基于上述关于第一内存访问信息的介绍,继续参见图9,该方法还包括:
S102A,将第一隔离标识发送给密钥维护单元。
S103A,根据密钥维护单元发送的第一响应信息,获得与第一隔离标识相匹配的第一密钥。
其中,第一响应信息由密钥维护单元根据第一隔离标识生成。此处应理解的是,本实施例中的多个密钥与多个隔离标识之间一一对应,该对应关系由密钥维护单元进行维护。而多个隔离标识分别用于指示不同的虚拟机;由此,当其中一目标虚拟机需要从内存读取数据或者需要往内存写入数据时,通过该目标虚拟机的第一隔离标识从密钥维护单元拿到与之对应的第一密钥。
可选实施方式中,该密钥维护单元根据第一隔离标识从预先分配的密钥中确定出与第一隔离标识相匹配的第一密钥,将第一密钥以第一响应信息的方式发送给内存控制器,因此,该内存控制单元可以从第一响应信息中获得与第一隔离标识相匹配的第一密钥。
在其他可选实施方式中,考虑到本实施例采取对称加密方式,存在被侧信道攻击的风险。所谓侧信道攻击,其原理在于,利用计算机设备不经意间释放出的电磁信息,如:功耗、电磁辐射、电脑硬件运行声等来进行破译攻击的方式。
对此,为了预防该攻击方式,本实施例中的第一响应信息并非包括直接的第一密钥,而是第一密钥经加噪算法处理后的加噪密钥。相较于第一密钥,该加噪密钥中加入了密钥噪声,从而能够在一定程度上避免攻击者通过探测芯片的功耗信息,并依据功耗信息从而分析出第一密钥。因此,当第一响应信息中包括有第一密钥经加噪算法处理后的加噪密钥时,该内存控制芯片可以获取加噪密钥;通过与加噪算法相配套的解噪算法对加噪密钥进行处理,将加噪密钥还原为第一密钥。
基于以上关于第一密钥的介绍,继续参见图9,该方法还包括:
S104A,根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
本实施例中,基于第一密钥采取预设加密算法对写入的数据进行加密,或者对读取自内存中的数据进行解密。例如,该预设加密算法可以时AES-GCM加密算法。当然,在本实施例发明构思的启示下,技术人员在实施本方案时,还可选取其他对称加密算法。如此,相较于通过处理器对数据进行加密隔离,本实施例中通过内存控制器对数据进行加密隔离,能够对不经过处理器的数据进行隔离。
为了提升数据加密或者解密的效率,本实施例对内存控制器的加解密环节进行了优化。为便于理解,在对具体优化方式进行详细介绍之前,先对AES-GCM加密算法进行简单介绍。
以128位的密钥为例,AES-GCM加密算法,可以分为以下3个环节:
其中,表示加密/>,具有天然支持并行运算的特性;/>似于/>算法是串行的二元域乘法。目前技术上可以对其进行并行优化,使得其支持并行计算,相应的数学表达式为:
以并行度为4为例,可以一次运算得到:
可见,该加密算法在进行并行化运算之后,需要提前计算出所需的中间结果,其中,符号“/>”表示对/>进行幂运算。因此,AES-GCM加密算法的运算过程中存在可以预先计算出的中间结果,而AES-GCM加密算法的其他细节可以参见相关文档。
然而,在密钥切换后,该部分信息是需要重新进行运算,若等待上一密钥计算完成之后,再依据切换后的密钥计算这部分信息,会降低计算效率。鉴于此,内存控制器缓存有第二内存访问信息,本实施例提供的应用于内存控制器的资源隔离方法还包括:
S105A,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密期间,从第二内存访问信息中获取第二隔离标识。
S106A,将第二隔离标识发送给密钥维护单元。
S107A,根据密钥维护单元发送的第二响应信息,获得与第二隔离标识相匹配的第二密钥。
其中,第二响应信息由密钥维护单元根据第二隔离标识生成。
S108A,根据第二密钥,生成预设加密算法运算过程中的中间结果。
示例性的,如图11所示,在“第一明文”的整个加密周期,在时刻获取“第一明文”的秘钥/>,然后,经过/>时长初始化计算后,利用初始化计算的结果将“第一明文”转换为“第一密文”;同理,在“第二明文”的整个加密周期,在/>时刻获取到“第二明文”的秘钥/>,然后,经过/>时长初始化计算,用初始化计算的结果将“第二明文”转换为“第二密文”;因此,使用每个密钥进行加密运算时均需要延迟/>。其中,/>中的/>表示得到预设加密算法的中间结果所需要的时长,本实施例将中间结果的计算过程的称为预计算。
如图12所示,为了提升计算效率,在“第一明文”的整个加密周期,内存控制器使用时刻获得秘钥/>对“第一明文”进行加密的过程中,在/>时刻获之前的/>时刻提前获取“第二明文”所需的密钥/>,并且对其进行预计算,将基于/>预计算的中间结果缓存在内存控制器的本地。如此,只有第一次进行加密运算时的时间延迟为/>,后续的各加密计算过程的延时均为/>,并且,由于预计算所需要的时长/>远远大于/>,从而能够极大提升加密或者解密过程中的计算效率。
由于该内存控制单元对数据进行加密或者解密时,需要与密钥维护芯片通信连接,因此,在相同的发明构思下,本实施例还提供应用于密钥维护单元的数据隔离方法。如图13所示,该方法包括:
S101B,接收内存控制器发送的第一隔离标识。
其中,内存控制器接收内存管理单元发送的第一内存访问信息,并从第一内存访问信息中获得第一隔离标识。并且,第一内存访问信息在上述实施例中已进行了详细介绍,此处不再进赘述。
S102B,根据第一隔离标识,获得与第一隔离标识相匹配的第一密钥。
本实施例中,该密钥维护单元维护有多个虚拟机的密钥,并且,每个虚拟机的密钥为密钥维护单元在上电时随机生成的随机数。示例性的,该密钥维护单元包括有内存,假定其大小为。意味着对于128位的随机数,该密钥维护单元的内存最多能够存储2048个;并且,该密钥维护芯片为2048个随机数分别分配有唯一的序列号,从而得到随机数序列。
而第一隔离标识中包括虚拟机标识,该密钥维护单元将虚拟机标识转换为索引序号;根据索引序号对随机数序列进行索引,得到与索引序号相匹配的目标随机数;将目标随机数作为第一密钥。
继续参见图13,该方法还包括:
S103B,根据第一密钥,生成第一响应信息。
研究发现,由于本实施例采取对称加密的方式,密钥维护单元为每个虚拟机分配有唯一的密钥,这就导致不同虚拟机之间的密钥在电磁信息上的表现有迹可循,从而存在侧信道攻击的风险。鉴于此,在步骤S103B包括以下具体实施方式:
S103B-1,在第一密钥中加入噪声信息,获得加噪密钥片段。
其中,第一隔离标识包括有进程标识,该密钥维护单元将进程标识与第二随机掩码进行异或运算,得到噪声信息;将噪声信息与第一密钥进行异或运算,得到密钥片段。
由此,在生成噪声信息时引入了进程标识,使得同一虚拟机中的不同进程能够产生不同的噪声信息,从而使得同一虚拟机的噪声信息无迹可寻,进一步增强了密钥的隐蔽性。
S103B-2,将加噪密钥片段与第一随机掩码进行拼接,得到加噪密钥。
S103B-3,根据加噪密钥,生成第一响应信息。
示例性的,如图14所示,继续假定用于27bit的字段记录第一隔离标识(VMIDX),其中,16bit的字段记录进程标识(ASID),11bit的字段记录虚拟机标识(VMID);并且,第一密钥具有128bit。
因此,该密钥维护单元先将16bit的进程标识(ASID)与随机产生的第二随机掩码(Rand2)进行异或操作,得到噪声信。
然后,该密钥维护芯片使用11bit的虚拟机标识(VMID),从内存中索引出相应128bit的第一密钥(key);并将16bit的噪声信息与128bit的第一密钥(key)中的部分字段(例如,位置位于[127:96]的字段)进行异或操作,从而得到128bit的密钥片段;最后,将128bit的密钥片段与128bit的第一随机掩码(Rand1)拼接为256bit的加噪密钥。其中,第一随机掩码与第二随机掩码均是密钥维护芯片在上电后随机生成,直至在重新上电后再次生成。
如此,256bit的加噪密钥包括在第一响应信息中,发送给内存控制器,以使内存控制器按照与加噪算法相配套的解噪算法,还原出128bit的第一密钥。
S104B,将第一响应信息发送给内存控制器。
以使内存控制器根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
如此,在关键的密钥传输路径中,加入了掩码机制,使得侧信道攻击的难度大大提升。
进一步地,该密钥维护单元还提供有配置接口,使得用户可以随时更改、删除虚拟机已有的密钥,因此,该方法还包括:
S105B,接收密钥配置请求。
其中,配置请求包括第一隔离标识以及配置指令。
S106B,根据第一隔离标识,对第一密钥执行与配置指令相匹配的操作。
示例性的,再次参见图7,该密钥维护单元从Mesh Bush接收配置请求,其中,该配置请求中包括了第一隔离标识(VMIDX)与配置指令(CMD)。由于第一隔离标识与第一密钥唯一对应,因此,密钥维护单元根据第一隔离标识在内存中找到与之匹配的第一密钥,然后,根据配置指令对第一密钥进行操作。例如,若该配置指令表征删除操作,则将第一密钥删除;若该配置指令表征更新操作,则生成新的第一密钥。如此,使得用户可以根据需要对虚拟机已有的密钥进行调整。
由于该内存控制单元对数据进行加密或者解密时,还需要与内存管理单元通信连接,因此,在相同的发明构思下,本实施例还提供应用于内存管理单元的数据隔离方法。如图15所示,该方法包括:
S101C,接收虚拟内存访问信息。
其中,虚拟内存访问信息包括虚拟内存地址以及第一隔离标识。
S102C,将虚拟内存地址转换为第一物理地址。
此处值得说明的是,通过该内存管理单元进行虚拟内存地址与物理内存地址的转换是业界通用的技术手段,但业界目前的处理器架构下,内存管理单元仅将虚拟内存地址转换后的物理内存地址发送给内存控制器,而不会将第一隔离标识发送给内存控制器。
而正如在以上实施例中所介绍的,本实施例中的内存控制器需要使用第一隔离标识获得第一密钥,因此,与业界通用的技术手段不同的时,本实施中的内存管理单元将虚拟内存地址转换为第一物理内存地址后,将其与第一隔离标识拼接在一起,作为第一内存访问信息发送给内存控制器。
S103C,将第一物理地址与第一隔离标识作为第一内存访问信息,发送给内存控制器。
如此,以使内存控制器从密钥维护单元获得与第一隔离标识相匹配的第一密钥,并根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
示例性的,继续以对于64位的虚拟内存访问信息为例,而本实施例中将位于[0:36]的字段用于记录虚拟内存地址,位于[37:63]的字段用于记录第一隔离标识。在进行地址转换时,将位于[0:36]的字段的虚拟内存地址转换为第一物理内存地址,并将该物理内存地址位于[37:63]的字段的第一隔离标识拼接为第一内存访问信息,发送给内存控制器。
如此,使得内存控制器可以基于第一内存访问信息中的第一隔离标识,获得相应的第一密钥,并使用第一密钥对第一物理地址位置的数据进行加密或者解密。
以上介绍了内存控制器、内存管理单元及密钥维护单元各自执行的资源隔离方法,在相同的发明构思下,本实施例还提供相应的虚拟装置。该虚拟装置包括至少一个可以软件形式存储于存储器或固化在内存控制器、内存管理单元及密钥维护单元等器件中软件功能模块,从而供处理器读取并执行。其中,本实施例还提供相应的虚拟装置具体包括:
本实施例还提供一种资源隔离装置,应用于内存控制器,内存控制器与内存管理单元以及密钥维护单元通信连接。如图16所示,从功能上划分,资源隔离装置包括:
第一接收模块201A,用于接收内存管理单元发送的第一内存访问信息,其中,第一内存访问信息包括第一物理地址以及第一物理地址的第一隔离标识。
在本实施例中,该第一接收模块201A用于实现图9中的步骤S101A,关于该第一接收模块201A的详细描述可以参见步骤S101A的详细描述。
密钥请求模块202A,用于将第一隔离标识发送给密钥维护单元;根据密钥维护单元发送的第一响应信息,获得与第一隔离标识相匹配的第一密钥,其中,第一响应信息由密钥维护单元根据第一隔离标识生成。
在本实施例中,该密钥请求模块202A用于实现图9中的步骤S102A-S103A,关于该密钥请求模块202A的详细描述可以参见步骤S102A-S103A的详细描述。
数据隔离模块203A,用于根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
在本实施例中,该数据隔离模块203A用于实现图9中的步骤S104A,关于该数据隔离模块203A的详细描述可以参见步骤S104A的详细描述。
由于与应用于内存控制器的资源隔离方法具有相同的发明构思,因此,以上第一接收模块201A、密钥请求模块202A以及数据隔离模块203A还可以用于实现应用于内存控制器的资源隔离方法的其他步骤或者子步骤,对此本实施例不再进行赘述。
本实施例还提供一种资源隔离装置,应用于密钥维护单元,密钥维护单元与内存控制器通信连接,内存控制器与内存管理单元通信连接。如图17所示,从功能上划分,资源隔离装置包括:
第二接收模块201B,用于接收内存控制器发送的第一隔离标识,其中,内存控制器接收内存管理单元发送的第一内存访问信息,并从第一内存访问信息中获得第一隔离标识。
在本实施例中,该第二接收模块201B用于实现图13中的步骤S101B,关于该第二接收模块201B的介绍可以参见关于步骤S101B的详细介绍。
密钥生成模块202B,用于根据第一隔离标识,获得与第一隔离标识相匹配的第一密钥;根据第一密钥,生成第一响应信息。
在本实施例中,该密钥生成模块202B用于实现图13中的步骤S102B、S103B,关于该密钥生成模块202B的介绍可以参见关于步骤S102B、S103B的详细介绍。
密钥响应模块203B,用于将第一响应信息发送给内存控制器,以使内存控制器根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
在本实施例中,该密钥响应模块203B用于实现图13中的步骤S104B,关于该密钥响应模块203B的介绍可以参见步骤S104B的详细介绍。
由于与应用于密钥维护单元的资源隔离方法具有相同的发明构思,因此,以上第二接收模块201B、密钥生成模块202B以及密钥响应模块203B还可以用于实现应用于密钥维护单元的资源隔离方法中的其他步骤或者子步骤,对此,本实施例不再进行赘述。
本实施例还体用过一种资源隔离装置,应用于内存管理单元,内存管理单元与内存控制器通信连接,内存控制器与密钥维护单元通信连接。如图18所示,从功能上换分,装置包括:
第三接收模块201C,用于接收虚拟内存访问信息,其中,虚拟内存访问信息包括虚拟内存地址以及第一隔离标识。
在本实施例中,该第三接收模块201C用于实现图15中的步骤S101C,关于该第三接收模块201C的详细介绍,可以参见步骤S101C的详细介绍。
地址转换模块202C,用于将虚拟内存地址转换为第一物理地址。
在本实施例中,该地址转换模块202C用户实现图15中的步骤S102C,关于该地址转换模块202C的详细介绍,可以参见步骤S102C的详细描述。
内存访问模块203C,用于将第一物理地址与第一隔离标识作为第一内存访问信息,发送给内存控制器,以使内存控制器从密钥维护单元获得与第一隔离标识相匹配的第一密钥,并根据第一密钥,将写入第一物理地址的数据进行加密,或者将读取自第一物理地址的数据进行解密。
在本实施例中,该内存访问模块203C用户实现图15中的步骤S103C,关于该内存访问模块203C的详细介绍,可以参见步骤S103C的详细描述。
由于与应用于内存案例单元的资源隔离方法具有相同的发明构思,因此,以上第三接收模块201C、地址转换模块202C以及内存访问模块203C还可以用于实现应用于内存管理单元的资源隔离方法中的其他步骤或者子步骤,对此,本实施例不再进行赘述。
本实施例还提供过一种电子设备,电子设备包括本实施例提供的芯片系统。其中,当该电子设备作为服务器时,该服务器可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器可以是分布式系统)。在一些实施例中,服务器相对于用户终端,可以是本地的、也可以是远程的。在一些实施例中,服务器可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(CommunityCloud)、分布式云、跨云(Inter-Cloud)、多云(Multi-Cloud)等。
除此之外,对于本实施例提供的芯片系统,其包括的内存控制器、内存管理单元、密钥维护单元等器件还可以独立进行售卖,并能够通过运行存储介质中的计算机程序或者以纯硬件的方式实现上述资源管理方法。
应该理解到的是,在上述实施方式中所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种资源隔离方法,其特征在于,应用于内存控制器,所述内存控制器与内存管理单元以及密钥维护单元通信连接,所述方法包括:
接收所述内存管理单元发送的第一内存访问信息,其中,所述第一内存访问信息包括第一物理地址以及所述第一物理地址的第一隔离标识,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
将所述第一隔离标识发送给所述密钥维护单元;
根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥,其中,所述第一响应信息由所述密钥维护单元根据所述第一隔离标识生成;
根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
2.根据权利要求1所述的资源隔离方法,其特征在于,所述第一响应信息中包括有所述第一密钥经加噪算法处理后的加噪密钥,所述根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥,包括:
获取所述加噪密钥;
通过与所述加噪算法相配套的解噪算法对所述加噪密钥进行处理,将所述加噪密钥还原为所述第一密钥。
3.根据权利要求1所述的资源隔离方法,其特征在于,所述内存控制器缓存有第二内存访问信息,所述方法还包括:
将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密期间,从所述第二内存访问信息中获取第二隔离标识;
将所述第二隔离标识发送给所述密钥维护单元;
根据所述密钥维护单元发送的第二响应信息,获得与所述第二隔离标识相匹配的第二密钥;其中,所述第二响应信息由所述密钥维护单元根据所述第二隔离标识生成;
根据所述第二密钥,生成预设加密算法运算过程中的中间结果。
4.一种资源隔离方法,其特征在于,应用于密钥维护单元,所述密钥维护单元与内存控制器通信连接,所述内存控制器与内存管理单元通信连接,所述方法包括:
接收所述内存控制器发送的第一隔离标识,其中,所述内存控制器接收所述内存管理单元发送的第一内存访问信息,并从所述第一内存访问信息中获得第一物理地址的所述第一隔离标识,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥;
根据所述第一密钥,生成第一响应信息;
将所述第一响应信息发送给所述内存控制器,以使所述内存控制器根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
5.根据权利要求4所述的资源隔离方法,其特征在于,所述根据所述第一密钥,生成第一响应信息,包括:
在所述第一密钥中加入噪声信息,获得加噪密钥片段;
将所述加噪密钥片段与第一随机掩码进行拼接,得到加噪密钥;
根据所述加噪密钥,生成所述第一响应信息。
6.根据权利要求5上所述的资源隔离方法,其特征在于,所述在所述第一密钥中加入噪声信息,获得加噪密钥片段,包括:
将所述进程标识与第二随机掩码进行异或运算,得到所述噪声信息;
将所述噪声信息与所述第一密钥进行异或运算,得到所述密钥片段。
7.根据权利要求4所述的资源隔离方法,其特征在于,所述根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥,包括:
将所述虚拟机标识转换为索引序号;
根据所述索引序号对随机数序列进行索引,得到与所述索引序号相匹配的目标随机数;
将所述目标随机数作为所述第一密钥。
8.根据权利要求4所述的资源隔离方法,其特征在于,所述方法还包括:
接收密钥配置请求,其中,所述配置请求包括所述第一隔离标识以及配置指令;
根据所述第一隔离标识,对所述第一密钥执行与所述配置指令相匹配的操作。
9.一种资源隔离方法,其特征在于,应用于内存管理单元,所述内存管理单元与内存控制器通信连接,所述内存控制器与密钥维护单元通信连接,所述方法包括:
接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
将所述虚拟内存地址转换为第一物理地址,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器,以使所述内存控制器从所述密钥维护单元获得与所述第一隔离标识相匹配的第一密钥,并根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
10.一种资源隔离装置,其特征在于,应用于内存控制器,所述内存控制器与内存管理单元以及密钥维护单元通信连接,所述资源隔离装置包括:
第一接收模块,用于接收所述内存管理单元发送的第一内存访问信息,其中,所述第一内存访问信息包括第一物理地址以及所述第一物理地址的第一隔离标识,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
密钥请求模块,用于将所述第一隔离标识发送给所述密钥维护单元;根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥,其中,所述第一响应信息由所述密钥维护单元根据所述第一隔离标识生成;
数据隔离模块,用于根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
11.一种资源隔离装置,其特征在于,应用于密钥维护单元,所述密钥维护单元与内存控制器通信连接,所述内存控制器与内存管理单元通信连接,所述资源隔离装置包括:
第二接收模块,用于接收所述内存控制器发送的第一隔离标识,其中,所述内存控制器接收所述内存管理单元发送的第一内存访问信息,并从所述第一内存访问信息中获得第一物理地址的所述第一隔离标识,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
密钥生成模块,用于根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥;根据所述第一密钥,生成第一响应信息;
密钥响应模块,用于将所述第一响应信息发送给所述内存控制器,以使所述内存控制器根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
12.一种资源隔离装置,其特征在于,应用于内存管理单元,所述内存管理单元与内存控制器通信连接,所述内存控制器与密钥维护单元通信连接,所述装置包括:
第三接收模块,用于接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
地址转换模块,用于将所述虚拟内存地址转换为第一物理地址,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
内存访问模块,用于将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器,以使所述内存控制器从所述密钥维护单元获得与所述第一隔离标识相匹配的第一密钥,并根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
13.一种芯片系统,其特征在于,所述芯片系统包括内存控制器、内存管理单元以及密钥维护单元;
所述内存管理单元接收虚拟内存访问信息,其中,所述虚拟内存访问信息包括虚拟内存地址以及第一隔离标识;
所述内存管理单元,还将所述虚拟内存地址转换为第一物理地址;将所述第一物理地址与所述第一隔离标识作为第一内存访问信息,发送给所述内存控制器,所述第一隔离标识包括虚拟机标识以及进程标识;所述虚拟机标识用于指示访问所述第一物理地址的目标虚拟机;所述进程标识用于指示所述目标虚拟机中访问所述第一物理地址的目标进程;
所述内存控制器将所述第一隔离标识发送给所述密钥维护单元;
所述密钥维护单元根据所述第一隔离标识,获得与所述第一隔离标识相匹配的第一密钥;根据所述第一密钥,生成第一响应信息;将所述第一响应信息发送给所述内存控制器;
所述内存控制器还根据所述密钥维护单元发送的第一响应信息,获得与所述第一隔离标识相匹配的第一密钥;根据所述第一密钥,将写入所述第一物理地址的数据进行加密,或者将读取自所述第一物理地址的数据进行解密。
14.一种电子设备,其特征在于,所述电子设备包括权利要求13所述的芯片系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310402380.0A CN116150740B (zh) | 2023-04-17 | 2023-04-17 | 资源隔离方法、装置、芯片系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310402380.0A CN116150740B (zh) | 2023-04-17 | 2023-04-17 | 资源隔离方法、装置、芯片系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116150740A CN116150740A (zh) | 2023-05-23 |
CN116150740B true CN116150740B (zh) | 2023-12-12 |
Family
ID=86339185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310402380.0A Active CN116150740B (zh) | 2023-04-17 | 2023-04-17 | 资源隔离方法、装置、芯片系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116150740B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595567A (zh) * | 2023-07-17 | 2023-08-15 | 绿城科技产业服务集团有限公司 | 一种基于多数据源的动态数据隔离方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN107526693A (zh) * | 2017-08-11 | 2017-12-29 | 致象尔微电子科技(上海)有限公司 | 一种基于线性映射表的内存隔离方法 |
CN110188051A (zh) * | 2019-02-22 | 2019-08-30 | 成都海光集成电路设计有限公司 | 标记与物理地址相关的控制信息的方法、处理系统和设备 |
CN112822021A (zh) * | 2020-12-30 | 2021-05-18 | 中国农业银行股份有限公司 | 一种密钥管理方法和相关装置 |
CN112825041A (zh) * | 2019-11-21 | 2021-05-21 | 上海海思技术有限公司 | 一种内存隔离的装置、内存隔离方法和相关设备 |
CN112925606A (zh) * | 2019-12-06 | 2021-06-08 | 阿里巴巴集团控股有限公司 | 一种内存管理方法、装置及设备 |
CN114117412A (zh) * | 2021-11-30 | 2022-03-01 | 中国互联网络信息中心 | 一种基于可信技术的虚拟加密机平台及其创建方法 |
CN114238185A (zh) * | 2021-12-20 | 2022-03-25 | 海光信息技术股份有限公司 | 直接存储访问及命令数据传输方法、装置及相关设备 |
CN115956243A (zh) * | 2020-12-18 | 2023-04-11 | 华为技术有限公司 | 模型保护装置及方法、计算装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170060460A1 (en) * | 2015-08-31 | 2017-03-02 | Megachips Corporation | Memory controller |
-
2023
- 2023-04-17 CN CN202310402380.0A patent/CN116150740B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN107526693A (zh) * | 2017-08-11 | 2017-12-29 | 致象尔微电子科技(上海)有限公司 | 一种基于线性映射表的内存隔离方法 |
CN110188051A (zh) * | 2019-02-22 | 2019-08-30 | 成都海光集成电路设计有限公司 | 标记与物理地址相关的控制信息的方法、处理系统和设备 |
CN112825041A (zh) * | 2019-11-21 | 2021-05-21 | 上海海思技术有限公司 | 一种内存隔离的装置、内存隔离方法和相关设备 |
CN112925606A (zh) * | 2019-12-06 | 2021-06-08 | 阿里巴巴集团控股有限公司 | 一种内存管理方法、装置及设备 |
CN115956243A (zh) * | 2020-12-18 | 2023-04-11 | 华为技术有限公司 | 模型保护装置及方法、计算装置 |
CN112822021A (zh) * | 2020-12-30 | 2021-05-18 | 中国农业银行股份有限公司 | 一种密钥管理方法和相关装置 |
CN114117412A (zh) * | 2021-11-30 | 2022-03-01 | 中国互联网络信息中心 | 一种基于可信技术的虚拟加密机平台及其创建方法 |
CN114238185A (zh) * | 2021-12-20 | 2022-03-25 | 海光信息技术股份有限公司 | 直接存储访问及命令数据传输方法、装置及相关设备 |
Non-Patent Citations (2)
Title |
---|
RC-NVM: Dual-Addressing Non-Volatile Memory Architecture Supporting Both Row and Column Memory Accesses;Shuo Li 等;《IEEE Transactions on Computers》;第68卷(第2期);第239 - 254页 * |
基于NVM的存储安全综述;李月 等;《计算机科学》;第45卷(第7期);第53-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116150740A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171432B2 (en) | Systems to implement security in computer systems | |
EP3111618B1 (en) | Securing client-specified credentials at cryptographically attested resources | |
JP7158985B2 (ja) | セキュアなパブリッククラウドのための暗号メモリオーナーシップテーブル | |
US10235304B2 (en) | Multi-crypto-color-group VM/enclave memory integrity method and apparatus | |
US8856504B2 (en) | Secure virtual machine bootstrap in untrusted cloud infrastructures | |
CN103026347B (zh) | 多核架构中的虚拟机内存划分 | |
KR101966767B1 (ko) | 클라우드 서비스를 위한 암호화 키 관리 시스템 | |
US11537421B1 (en) | Virtual machine monitor providing secure cryptographic operations | |
KR20160139493A (ko) | 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 | |
CN113614722A (zh) | 网络功能虚拟化基础设施中的进程到进程安全数据移动 | |
CN103765395A (zh) | 用于将逻辑地址转换成物理地址的设备和方法 | |
CN116150740B (zh) | 资源隔离方法、装置、芯片系统及电子设备 | |
US20230069781A1 (en) | Microprocessor, data processing method, electronic device, and storage medium | |
US20230068658A1 (en) | Microprocessor, data processing method, electronic device, and storage medium | |
US20230179425A1 (en) | Preventing rollback attacks on persisted data in a secure enclave | |
US20230018412A1 (en) | Reverse shadow page tables for nested virtual machines | |
US20220391494A1 (en) | Sharing container data inside a tenant's pod under different trusted execution environments (tees) | |
US11449434B2 (en) | Reverse shadow page tables for firewalled nested encrypted virtual machines | |
WO2016072999A1 (en) | Data conversion using an address space identifier | |
US11126734B2 (en) | Method, device and computer program product for data processing | |
US11494219B2 (en) | Encryption and remote attestation of containers | |
WO2021028771A1 (en) | Key-compressible encryption | |
US20240134804A1 (en) | Data transfer encryption mechanism | |
CN113468563B (zh) | 虚拟机数据加密方法、装置、计算机设备和存储介质 | |
US20220103516A1 (en) | Secure encrypted communication mechanism |
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 | ||
CP03 | Change of name, title or address |
Address after: Room 07-1, 2001, No. 37 Huangge Section, Fanzhong Road, Nansha District, Guangzhou City, Guangdong Province, China Patentee after: Guangdong Hongjun Microelectronics Technology Co.,Ltd. Country or region after: China Address before: 813-3, Building 1, No. 371, Mingxing Road, Economic and Technological Development Zone, Xiaoshan District, Hangzhou City, Zhejiang Province, 311200 Patentee before: Hangzhou Hongjun Microelectronics Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |