全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111680867.2 (22)申请日 2021.12.3 0 (71)申请人 海光信息技 术股份有限公司 地址 300000 天津市滨 海新区天津华苑产 业区海泰西路18号北2-204工业孵化- 3-8 (72)发明人 姜新 应志伟 刘子行  (74)专利代理 机构 北京市广友专利事务所有限 责任公司 1 1237 专利代理师 张仲波 (51)Int.Cl. G06F 21/57(2013.01) G06F 21/60(2013.01) G06F 21/62(2013.01) G06F 21/79(2013.01) (54)发明名称 虚拟机内存完整性保护方法、 装置、 电子设 备及存储介质 (57)摘要 本发明的实施例公开了一种虚拟机内存完 整性保护方法、 装置、 电子设备及存储介质, 涉及 内存访问技术领域, 用于对内存隔离型虚拟机的 内存提供内存完整性保护, 避免虚拟机内的内存 数据被非法篡改。 所述虚拟机内存完整性保护方 法包括: 当向DRAM内写入数据时, 将数据进行加 密, 得到密文; 确认待写入的数据对应的地址为 隔离内存时, 计算密文 的MAC值, 将密文和MAC值 保存至DRAM内; 当读取数据时, 将待读取的数据 进行解密, 得到明文; 将明文发送给CPU; 确认待 读取的数据对应的地址为隔离内存时, 从DRAM获 取待读取的数据对应的已存储的原始MAC值, 并 计算待读取的数据的新MAC值, 比较原始MA C值和 新MAC值, 若相等, 则说明数据完整, 若 不相等, 则 说明数据被篡改, 产生异常信号。 权利要求书3页 说明书11页 附图7页 CN 114564724 A 2022.05.31 CN 114564724 A 1.一种虚拟机内存完整性保护方法, 应用于电子设备的内存控制器, 所述电子设备包 括CPU、 所述内存控制器、 DRAM以及安全处理器, 所述电子设备内设有至少一个内存隔离型 虚拟机, 其特 征在于, 所述方法包括: 当所述CPU经过所述内存控制器为所述内存隔离型虚拟机向所述DRAM内写入数据时, 将待写入的数据进行加密, 得到密文; 确认所述待写入的数据对应的地址为所述内存隔离型虚拟机的隔离 内存时, 利用预先 存储的MAC密钥计算所述密文的MAC值, 将所述密文和MAC值保存至所述DRAM内; 当所述CPU经过所述内存控制器为所述内存隔离型虚拟机从所述DRAM读取数据 时, 将 待读取的数据进行解密, 得到明文; 将所述明文发送给 所述CPU; 确认所述待读取的数据对应的地址为所述内存隔离型虚拟机的隔离内存时, 从所述 DRAM获取所述待读取的数据对应的已存储的原始MAC值, 并利用所述MAC密钥计算所述待读 取的数据的新MAC值, 比较所述原始MAC值和新MAC值, 若相等, 则说明数据完整, 若不相等, 则说明数据被篡改, 产生异常信号。 2.根据权利要求1所述的方法, 其特征在于, 所述MAC值采用哈希运算消息认证码算法 计算得到; 和/或, 所述MAC密钥是在所述内存 隔离型虚拟机启动时由所述安全处理器为所述内存 隔离型虚拟机随机生成得到 。 3.根据权利要求1所述的方法, 其特征在于, 所述电子设备内设置有用于控制内存完整 性保护功能是否使能的标识位; 所述确认所述待写入的数据对应的地址为所述内存 隔离型虚拟机的隔离内存时, 利用 预先存储的MAC密钥计算所述密文的MAC值, 将所述密 文和MAC值保存至所述DRAM内, 进一步 为: 根据所述标识位判断内存完整性保护功能是否使能; 若内存完整性保护功能使能且确认所述待写入的数据对应的地址为所述内存隔离型 虚拟机的隔离内存时, 则利用预先存储的MAC密钥计算所述密 文的MAC值, 将所述密文和MAC 值保存至所述DRAM内; 所述确认所述待读取的数据对应的地址为所述内存 隔离型虚拟机的隔离内存时, 从所 述DRAM获取所述待读取的数据对应的已存储的原始MAC值, 并利用所述MAC密钥计算所述待 读取的数据的新MAC值, 比较所述原始MAC值和新MAC值, 若相等, 则说明数据完整, 若不相 等, 则说明数据被篡改, 产生异常信号, 进一 步为: 根据所述标识位判断内存完整性保护功能是否使能; 若内存完整性保护功能使能且确认所述待读取的数据对应的地址为所述内存隔离型 虚拟机的隔离内存时, 则从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值, 并 利用所述MAC密钥计算所述待读取的数据的新MAC值, 比较所述原始MAC值和新MAC值, 若相 等, 则说明数据完整, 若不相等, 则说明数据被篡改, 产生异常信号。 4.根据权利要求1 ‑3中任一所述的方法, 其特征在于, 所述当所述CPU经过所述内存控 制器为所述内存隔离型虚拟机向所述DRAM内写入数据时, 将待写入的数据进行加密, 得到 密文之前包括:权 利 要 求 书 1/3 页 2 CN 114564724 A 2当所述内存隔离型虚拟机访 问内存虚拟机物理地址GPA发生嵌套缺页时, 接收主机发 送的嵌套缺页异常通知, 所述 嵌套缺页异常通知中包含待访问的GPA, 由所述安全处理器确 认所述待访问的GPA属于隔离内存时, 所述安全处理器为所述内存隔离型虚拟机分配隔离 内存对应的主机物理地址HPA, 发送初始化所述HPA的内存页面的初始化请求, 并更新虚拟 机嵌套页表; 收到所述安全处理器的初始化请求后, 利用预先存储的MAC密钥计算初始化数据的MAC 值, 将该初始化数据和MAC值保存至所述DRAM内。 5.一种虚拟机内存完整性保护装置, 应用于电子设备的内存控制器, 所述电子设备包 括CPU、 所述内存控制器、 DRAM以及安全处理器, 所述电子设备内设有至少一个内存隔离型 虚拟机, 其特 征在于, 所述装置包括: 加密模块, 用于当所述CPU经过所述内存控制器为所述内存隔离型虚拟机向所述DRAM 内写入数据时, 将待 写入的数据进行加密, 得到密文; 保存模块, 用于确 认所述待写入的数据对应的地址为所述内存隔离型虚拟机的隔离 内 存时, 利用预先存储的MAC密钥计算所述密文的MAC值, 将所述密 文和MAC值保存至所述DRAM 内; 解密模块, 用于当所述CPU经过所述内存控制器为所述内存隔离型虚拟机从所述DRAM 读取数据时, 将待读取的数据进行解密, 得到明文; 发送模块, 用于将所述明文发送给 所述CPU; 比较模块, 用于确 认所述待读取的数据对应的地址为所述内存隔离型虚拟机的隔离 内 存时, 从所述DRAM获取所述待读取的数据对应的已存储的原始MAC值, 并利用所述MAC密钥 计算所述待读取的数据的新MAC值, 比较所述原始MAC值和新MAC值, 若相等, 则说明数据完 整, 若不相等, 则说明数据被篡改, 产生异常信号。 6.根据权利要求5所述的装置, 其特征在于, 所述MAC值采用哈希运算消息认证码算法 计算得到; 和/或, 所述MAC密钥是在所述内存 隔离型虚拟机启动时由所述安全处理器为所述内存 隔离型虚拟机随机生成得到 。 7.根据权利要求5所述的装置, 其特征在于, 所述电子设备内设置有用于控制内存完整 性保护功能是否使能的标识位; 所述保存 模块, 进一 步包括: 第一判断子单 元, 用于根据所述标识位判断内存完整性保护功能是否使能; 保存子单元, 用于若内存完整性保护功能使能且确认所述待写入的数据对应的地址为 所述内存隔离型虚拟机的隔离内存时, 则利用预先存储的MAC密钥计算所述密文的MAC值, 将所述密文和MAC值保存至所述DRAM内; 所述比较模块, 进一 步包括: 第二判断子单 元, 用于根据所述标识位判断内存完整性保护功能是否使能; 比较子单元, 用于若内存完整性保护功能使能且确认所述待读取的数据对应的地址为 所述内存隔离型虚拟机的隔离内存时, 则从所述DRAM获取所述待读取的数据对应的已存储 的原始MAC值, 并利用所述MAC密钥计算所述待读取的数据的新MAC值, 比较所述原始MAC值 和新MAC值, 若相等, 则说明数据完整, 若不相等, 则说明数据被篡改, 产生异常信号。权 利 要 求 书 2/3 页 3 CN 114564724 A 3

.PDF文档 专利 虚拟机内存完整性保护方法、装置、电子设备及存储介质

文档预览
中文文档 22 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共22页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 虚拟机内存完整性保护方法、装置、电子设备及存储介质 第 1 页 专利 虚拟机内存完整性保护方法、装置、电子设备及存储介质 第 2 页 专利 虚拟机内存完整性保护方法、装置、电子设备及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-19 04:16:14上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。