本发明一般涉及机密计算,并且具体地涉及用于机密计算系统中的共享存储器保护的方法和系统。
背景技术:
1、机密计算是一种目标在于保护计算机系统中的用户数据的技术。
2、在“chancel:对抗性应用程序下的高效多客户端隔离(chancel:efficientmulti-client isolation under adversarial programs)”(ahmad等人,网络和分布式系统安全(ndss)研讨会,2021年2月21-24日)中,作者声称,英特尔sgx目标在于为不受信任的云机器上的用户数据提供机密性。然而,处理机密用户数据的应用程序可能包含泄漏信息或被恶意编程以收集用户数据的漏洞。现有的试图解决这个问题的研究并没有考虑在单个飞地(enclave)中的多客户端隔离。作者表明,由于不支持这种飞地内隔离,由于sgx的限制,它们在不同的飞地进程中同时处理多个客户端时会引发相当大的速度下降。
3、在“openpower的机密计算(confidential computing for openpower)”(hunt等人,第十六届欧洲计算机系统会议论文集(2021),第294-310页)中,作者提出了受保护的执行设施(pef),一种基于虚拟机的用于power isa上的机密计算的受信任执行环境(tee)。pef支持受保护的安全虚拟机(svm)。与其他tee一样,pef在执行前对svm进行验证。pef利用受信平台模块(tpm)、安全启动和受信启动,以及新引入的power isa系统的架构变化。
4、在题为“amd sev-snp:通过完整性保护和更多内容来加强虚拟机隔离(amd sev-snp:strengthening vm isolation with integrity protection and more)”(amd公司,2020年1月)的白皮书中,作者介绍了安全加密虚拟化--安全嵌套分页(sev-snp),它将管理程序(sev)的虚拟机(vm)隔离和基于硬件的安全保护(snp)结合起来。
5、在题为“英特尔信任域扩展(trust domain extensions)”(英特尔0920/rr/mesh/pdf 343961-002ys,2020年)的白皮书中,作者描述了用于部署硬件隔离的虚拟机(其被称为信任域(td))的架构元素,其是英特尔信任域扩展(tdx)的一部分。英特尔tdx被设计为将虚拟机与虚拟机管理器(vmm)/管理程序隔离开来。
技术实现思路
1、本文描述的实施例提供了一种机密计算(cc)装置,其包括cpu和外围设备。cpu用于运行托管一个或更多个受信虚拟机(tvm)的管理程序。外围设备与cpu和外部存储器相耦合。cpu包括tvm监控器(tvmm),用于在一个或更多个tvm上执行管理操作,追踪外部存储器中由管理程序分配给外围设备的存储器空间,监控由管理程序向外部存储器中的分配给外围设备的存储器空间发出的存储器访问请求,以及依照标准允许或拒绝存储器访问请求。
2、在一些实施例中,存储器访问请求包括对外部存储器的直接存储器访问(dma)访问。在实施例中,根据该标准,tvmm用于仅允许源自外围设备的、对分配给外围设备的存储器空间的存储器访问请求,并拒绝不是源自外围设备的、对分配给外围设备的存储器空间的存储器访问请求。在另一实施例中,依照该标准,tvmm用于基于(i)外部存储器中的由存储器访问请求访问的地址,和(ii)在该存储器访问请求中指定的并且标识发起该存储器访问请求的软件的标识符,来决定是允许还是拒绝存储器访问请求。
3、根据本文描述的实施例,还提供了一种机密计算(cc)装置,其包括cpu和外围设备。cpu用于运行托管一个或更多个受信虚拟机(tvm)的管理程序。外围设备与cpu和外部存储器相耦合。cpu进一步用于运行设备tvm(dtvm),其用于在一个或更多个tvm上执行管理操作,从管理程序接收外部存储器中针对外围设备的存储器空间的分配,响应于分配在外部存储器中将存储器空间分配给外围设备,监控由管理程序向外部存储器中的分配给外围设备的存储器空间发出的存储器访问请求,以及依照标准允许或拒绝存储器访问请求。
4、在一些实施例中,cpu用于当外围设备访问外部存储器时对dtvm进行证明。在实施例中,依照标准,dtvm用于仅允许源自外围设备的对分配给外围设备的存储器空间的存储器访问请求,并拒绝不是源自外围设备的对分配给外围设备的存储器空间的存储器访问请求。在另一实施例中,依照标准,dtvm用于基于(i)外部存储器中的由存储器访问请求访问的地址,和(ii)在该存储器访问请求中指定的并且标识发起该存储器访问请求的软件的标识符,来决定是允许还是拒绝存储器访问请求。
5、根据本文描述的实施例,进一步提供了一种机密计算(cc)方法,包括在cpu中运行托管一个或更多个受信虚拟机(tvm)的管理程序。使用在cpu中运行的tvm监控器(tvmm),在一个或更多个tvm上执行管理操作;追踪外部存储器中由管理程序分配给外围设备的存储器空间;监控由管理程序向外部存储器中的分配给外围设备的存储器空间发出的存储器访问请求;以及依照标准允许或拒绝存储器访问请求。
6、根据本文描述的实施例,还提供了一种机密计算(cc)方法,包括在cpu中运行托管一个或更多个受信虚拟机(tvm)的管理程序。使用在cpu中运行的设备tvm(dtvm),在一个或更多个tvm上执行管理操作;从管理程序接收外部存储器中针对外围设备的存储器空间的分配;响应于分配,在外部存储器中向外围设备分配存储器空间;监控由管理程序向外部存储器中的分配给外围设备的存储器空间发出的存储器访问请求;以及依照标准允许或拒绝存储器访问请求。
7、根据本文所述的实施例,还提供了一种机密计算(cc)方法,包括在cpu中运行托管一个或更多个受信虚拟机(tvm)的管理程序。在cpu中运行的设备tvm(dtvm)或tvm监控器(tvmm)监控由管理程序向外部存储器中的分配给外围设备的存储器空间发出的存储器访问请求。依照标准,允许或拒绝存储器访问请求。
1.一种机密计算cc装置,包括:
2.根据权利要求1所述的cc装置,其中所述存储器访问请求包括对所述外部存储器的直接存储器访问dma访问。
3.根据权利要求1所述的cc装置,其中依照所述标准,tvmm用于仅允许源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求,以及拒绝不是源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求。
4.根据权利要求1所述的cc装置,其中依照所述标准,所述tvmm用于基于(i)所述外部存储器中的由所述存储器访问请求访问的地址,和(ii)在所述存储器访问请求中指定的并且标识发起所述存储器访问请求的软件的标识符,来决定是允许还是拒绝存储器访问请求。
5.一种机密计算cc装置,包括:
6.根据权利要求5所述的cc装置,其中所述cpu用于当所述外围设备访问所述外部存储器时,对dtvm进行证明。
7.根据权利要求5所述的cc装置,其中依照所述标准,dtvm用于仅允许源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求,以及拒绝不是源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求。
8.根据权利要求5所述的cc装置,其中依照所述标准,dtvm用于基于(i)所述外部存储器中的由存储器访问请求访问的地址,和(ii)在所述存储器访问请求中指定的并且标识发起所述存储器访问请求的软件的标识符,来决定是允许还是拒绝所述存储器访问请求。
9.一种机密计算cc方法,包括:
10.根据权利要求9所述的方法,其中所述存储器访问请求包括对所述外部存储器的直接存储器访问dma访问。
11.根据权利要求9所述的方法,其中允许或拒绝所述存储器访问请求包括:仅允许源自所述外围设备的、对分配给所述外围设备的所述存储器空间的存储器访问请求;以及拒绝不是源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求。
12.根据权利要求9所述的方法,其中允许或拒绝所述存储器访问请求包括:基于(i)所述外部存储器中的由存储器访问请求访问的地址,和(ii)在所述存储器访问请求中指定的并且标识发起所述存储器访问请求的软件的标识符,来决定是允许还是拒绝所述存储器访问请求。
13.一种机密计算cc方法,包括:
14.根据权利要求13所述的方法,其中所述cpu用于当所述外围设备访问所述外部存储器时,对dtvm进行证明。
15.根据权利要求13所述的方法,其中依照所述标准,dtvm用于仅允许源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求,并且拒绝不是源自所述外围设备的、对分配给所述外围设备的存储器空间的存储器访问请求。
16.根据权利要求13所述的方法,其中依照所述标准,dtvm用于基于(i)所述外部存储器中的由存储器访问请求访问的地址,和(ii)在所述存储器访问请求中指定的并且标识发起所述存储器访问请求的软件的标识符,来决定是允许还是拒绝所述存储器访问请求。
17.一种机密计算cc方法,包括: