一种虚拟机嵌套页表完整性保护方法、装置及存储介质制造方法及图纸

技术编号:38071798 阅读:10 留言:0更新日期:2023-07-06 08:40
本发明专利技术实施例公开一种虚拟机嵌套页表完整性保护方法、装置、存储介质以及电子设备,涉及计算机技术领域,能够确保虚拟机嵌套页表的完整性。虚拟机嵌套页表完整性保护方法包括:接收处理器核心发送的数据写入请求;数据写入请求中包括待写入数据、待写入数据要写入的第一虚拟机物理地址及第一地址空间标识;将待写入数据、第一虚拟机物理地址及第一地址空间标识,发送给哈希计算引擎,以使哈希计算引擎根据待写入数据、第一虚拟机物理地址及第一地址空间标识,计算第一消息认证码;根据第一虚拟机物理地址及嵌套页表,确定待写入数据要写入的第一主机物理地址;将待写入数据和第一消息认证码,写入第一主机物理地址所对应的内存空间中。间中。间中。

【技术实现步骤摘要】
一种虚拟机嵌套页表完整性保护方法、装置及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种虚拟机嵌套页表完整性保护方法、装置、存储介质及电子设备。

技术介绍

[0002]虚拟机有资源隔离,部署快速等优点,随着云技术的发展,服务程序大多在云端的虚拟机内运行,虚拟机本身作为用户数据的载体,其数据安全越来越被重视。
[0003]在现有的虚拟机技术中,通过嵌套页表的隔离,将虚拟机与虚拟机,虚拟机与主机的内存相互隔离,有效阻止了虚拟机对主机的内存或者其他虚拟机的内存进行任意访问。但是恶意的虚拟机管理器(Virtual Machine Manager,VMM)仍可以对嵌套页表进行篡改,因此无法确保虚拟机嵌套页表的安全性。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供一种虚拟机嵌套页表完整性保护方法、装置、存储介质及电子设备,能够确保虚拟机嵌套页表的安全性。
[0005]第一方面,本专利技术实施例提供一种虚拟机嵌套页表完整性保护方法,应用于内存控制器MMU,所述方法包括:接收处理器核心发送的数据写入请求;所述数据写入请求中包括待写入数据、待写入数据要写入的第一虚拟机物理地址GPA及第一地址空间标识;其中,所述第一虚拟机物理地址GPA为待写入数据要访问的虚拟机物理地址GPA,所述第一地址空间标识为要写入数据的虚拟机的地址空间标识;将所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,发送给哈希计算引擎,以使所述哈希计算引擎根据所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,计算第一消息认证码;根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA;将所述待写入数据和所述第一消息认证码,写入所述第一主机物理地址HPA所对应的内存空间中。
[0006]可选的,在将所述待写入数据和所述第一消息认证码,写入所述第一主机物理地址HPA所对应的内存空间中之后,所述方法还包括:接收处理器核心发送的数据读取请求;所述数据读取请求中包括第二虚拟机物理地址GPA及第二地址空间标识;其中,所述第二虚拟机物理地址GPA为待读取数据要访问的虚拟机物理地址GPA,所述第二地址空间标识为要读取数据的虚拟机的地址空间标识;根据所述第二虚拟机物理地址GPA及所述嵌套页表,确定所述待读取数据的第二主机物理地址HPA;从所述第二主机物理地址HPA所对应的内存空间中读取数据;将读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,发送给所述哈希计算引擎,以使所述哈希计算引擎根据读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,计算第二消息认证码;比较所述第二消息认证码与所述第一消息认证码是否一致;若二者不一致,则确定嵌套页表完整性校验失败。
[0007]可选的,所述根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据
要写入的第一主机物理地址HPA,包括:根据所述第一虚拟机物理地址GPA,确定所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位是否被置位;若所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常。
[0008]可选的,在所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常之后,所述方法还包括:若所述缺页异常为首次触发,则通过所述嵌套页表的第一专用指令,将所述指定位清零。
[0009]可选的,在通过所述嵌套页表的第一专用指令,将所述指定位清零之后,所述方法还包括:若所述第一虚拟机物理地址GPA所在的页表项中的虚拟机物理地址GPA与主机物理地址HPA的映射关系被修改,则通过所述嵌套页表的第二专用指令,将所述指定位重新置位。
[0010]可选的,在所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常之后,所述方法还包括:若所述缺页异常为非首次触发,则确定所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项中的虚拟机物理地址GPA与主机物理地址HPA的映射关系被异常修改。
[0011]可选的,所述根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA,包括:检测所述嵌套页表的非最后一级页表所在内存区域,是否属于安全嵌套页表内存范围;若所述嵌套页表的非最后一级页表所在内存区域,不属于安全嵌套页表内存范围,则触发嵌套缺页异常。
[0012]第二方面,本专利技术实施例提供一种虚拟机嵌套页表完整性保护装置,设置于内存控制器MMU中,所述装置包括:第一接收模块,用于接收处理器核心发送的数据写入请求;所述数据写入请求中包括待写入数据、待写入数据要写入的第一虚拟机物理地址GPA及第一地址空间标识;其中,所述第一虚拟机物理地址GPA为待写入数据要访问的虚拟机物理地址GPA,所述第一地址空间标识为要写入数据的虚拟机的地址空间标识;第一发送模块,用于将所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,发送给哈希计算引擎,以使所述哈希计算引擎根据所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,计算第一消息认证码;第一确定模块,用于根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA;写入模块,将所述待写入数据和所述第一消息认证码,写入所述第一主机物理地址HPA所对应的内存空间中。
[0013]可选的,所述装置还包括:第二接收模块,用于接收处理器核心发送的数据读取请求;所述数据读取请求中包括第二虚拟机物理地址GPA及第二地址空间标识;其中,所述第二虚拟机物理地址GPA为待读取数据要访问的虚拟机物理地址GPA,所述第二地址空间标识为要读取数据的虚拟机的地址空间标识;第二确定模块,用于根据所述第二虚拟机物理地址GPA及所述嵌套页表,确定所述待读取数据的第二主机物理地址HPA;读取模块,用于从所述第二主机物理地址HPA所对应的内存空间中读取数据;第二发送模块,用于将读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,发送给所述哈希计算引擎,以使所述哈希计算引擎根据读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,计算第二消息认证码;比较模块,用于比较所述第二消息认证码与所述第一消息认证码是否一致;若二者不一致,则确定嵌套页表完整性校验失败。
[0014]可选的,所述第一确定模块包括:确定单元,用于根据所述第一虚拟机物理地址
GPA,确定所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位是否被置位;触发单元,用于若所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常。
[0015]可选的,所述装置还包括:清零模块,用于若所述缺页异常为首次触发,则通过所述嵌套页表的第一专用指令,将所述指定位清零。
[0016]可选的,所述装置还包括:重新置位模块,用于若所述第一虚拟机物理地址GPA所在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机嵌套页表完整性保护方法,其特征在于,应用于内存控制器MMU,所述方法包括:接收处理器核心发送的数据写入请求;所述数据写入请求中包括待写入数据、待写入数据要写入的第一虚拟机物理地址GPA及第一地址空间标识;其中,所述第一虚拟机物理地址GPA为待写入数据要访问的虚拟机物理地址GPA,所述第一地址空间标识为要写入数据的虚拟机的地址空间标识;将所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,发送给哈希计算引擎,以使所述哈希计算引擎根据所述待写入数据、所述第一虚拟机物理地址GPA及所述第一地址空间标识,计算第一消息认证码;根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA;将所述待写入数据和所述第一消息认证码,写入所述第一主机物理地址HPA所对应的内存空间中。2.根据权利要求1所述的虚拟机嵌套页表完整性保护方法,其特征在于,在将所述待写入数据和所述第一消息认证码,写入所述第一主机物理地址HPA所对应的内存空间中之后,所述方法还包括:接收处理器核心发送的数据读取请求;所述数据读取请求中包括第二虚拟机物理地址GPA及第二地址空间标识;其中,所述第二虚拟机物理地址GPA为待读取数据要访问的虚拟机物理地址GPA,所述第二地址空间标识为要读取数据的虚拟机的地址空间标识;根据所述第二虚拟机物理地址GPA及所述嵌套页表,确定所述待读取数据的第二主机物理地址HPA;从所述第二主机物理地址HPA所对应的内存空间中读取数据;将读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,发送给所述哈希计算引擎,以使所述哈希计算引擎根据读取的数据、所述第二虚拟机物理地址GPA及所述第二地址空间标识,计算第二消息认证码;比较所述第二消息认证码与所述第一消息认证码是否一致;若二者不一致,则确定嵌套页表完整性校验失败。3.根据权利要求1所述的虚拟机嵌套页表完整性保护方法,其特征在于,所述根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA,包括:根据所述第一虚拟机物理地址GPA,确定所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位是否被置位;若所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常。4.根据权利要求3所述的虚拟机嵌套页表完整性保护方法,其特征在于,在所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常之后,所述方法还包括:若所述缺页异常为首次触发,则通过所述嵌套页表的第一专用指令,将所述指定位清零。
5.根据权利要求4所述的虚拟机嵌套页表完整性保护方法,其特征在于,在通过所述嵌套页表的第一专用指令,将所述指定位清零之后,所述方法还包括:若所述第一虚拟机物理地址GPA所在的页表项中的虚拟机物理地址GPA与主机物理地址HPA的映射关系被修改,则通过所述嵌套页表的第二专用指令,将所述指定位重新置位。6.根据权利要求4至5任一项所述的虚拟机嵌套页表完整性保护方法,其特征在于,在所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项的指定位已被置位,则触发缺页异常之后,所述方法还包括:若所述缺页异常为非首次触发,则确定所述嵌套页表中所述第一虚拟机物理地址GPA所在的页表项中的虚拟机物理地址GPA与主机物理地址HPA的映射关系被异常修改。7.根据权利要求1所述的虚拟机嵌套页表完整性保护方法,其特征在于,所述根据所述第一虚拟机物理地址GPA及嵌套页表,确定所述待写入数据要写入的第一主机物理地址HPA,包括:检测所述嵌套页表的非最后一级页表所在内存区域,是否属于安全嵌套页表内存范围;若所述嵌套页表的非最后一级页表所在内存区域,不属于安全嵌套页表内存范围,则触发嵌套缺页异常。8.一种虚拟机嵌套页表完整性保护装置,其特征在于,设置于内存控制器MMU中,所述装置包括:第一接收模块,用于接收处理器核心发送的数据写入请求;所述数据写入请求中包括待写入数据、待写...

【专利技术属性】
技术研发人员:涂海波应志伟刘子行
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1