【技术实现步骤摘要】
计算机系统及虚拟机内存数据完整性保护方法
[0001]本专利技术涉及计算机
,尤其涉及一种计算机系统及虚拟机内存数据完整性保护方法。
技术介绍
[0002]近年来,大数据应用的普及,数据安全的问题越来越被重视。以机密计算为代表的安全方案开始被广泛应用,用于解决数据安全问题。数据加密,资源隔离和远程认证等技术作为基石,为机密计算提供高安全性的技术支持。内存隔离虚拟机是常见的机密计算方案,在硬件上把虚拟机的内存隔离,禁止非本虚拟机对该内存执行访问,同时对虚拟机内存数据进行加密,防止明文泄露。
[0003]然而内存加密与隔离并未完全解决数据安全问题,无法抵御通过恶意的直接存储访问或者总线攻击等往中央处理单元CPU(Central Processing Unit)外部的内存中注入非法数据。
[0004]默克尔树(Merkle Tree)是一种常见的消息完整性保护树,利用树形结构逐层保护数据。在现有的完整性保护树中,叶子节点在内存的位置通常相对固定,这样,在内存中写入数据或从内存中读取数据时,可以相对容易地确定出对应的叶子节点。然而,对于完整性保护树内存采用动态管理方式时,在内存中写入数据或从内存中读取数据时,就不太容易快速确定出对应的叶子节点,由此会影响虚拟机内存数据完整性保护的效率。
技术实现思路
[0005]有鉴于此,本专利技术实施例提供一种计算机系统及虚拟机内存数据完整性保护方法,有利于提高虚拟机内存数据完整性保护的效率。
[0006]第一方面,本专利技术实施例提供一种计算 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种计算机系统,其特征在于,包括:处理器核心、安全处理器、内存隔离装置及完整性保护装置;其中,所述处理器核心,用于运行虚拟机;所述安全处理器,用于为所述虚拟机分配安全内存,为所述虚拟机的地址
‑
叶子映射表中的各映射关系项分配内存空间,作为完整性保护树的叶子节点的地址;所述内存隔离装置,用于确定当前虚拟机访问的主机物理地址hpa是否是安全内存;所述完整性保护装置,用于若当前虚拟机访问的hpa是安全内存,则根据所述hpa,从所述地址
‑
叶子映射表中,确定与所述hpa相对应的第一叶子节点;更新或校验所述第一叶子节点的哈希值;沿所述第一叶子节点,朝向完整性保护树的根节点方向,更新或校验除所述第一叶子节点之外的其它树节点的哈希值。2.根据权利要求1所述的计算机系统,其特征在于,所述完整性保护装置,包括:密钥查询模块,用于查询当前虚拟机的内存完整性密钥;叶子节点查询模块,用于根据当前虚拟机访问的hpa,从所述地址
‑
叶子映射表中,确定第一叶子节点;完整性控制模块,用于根据所述内存完整性密钥及所述第一叶子节点,更新或校验所述第一叶子节点的哈希值;沿所述第一叶子节点,朝向完整性保护树的根节点方向,更新或校验除所述第一叶子节点之外的其它树节点的哈希值。3.根据权利要求2所述的计算机系统,其特征在于,所述叶子节点查询模块,具体用于:根据当前虚拟机访问的hpa,确定所述地址
‑
叶子映射表中的一映射关系项;根据所述映射关系项中记录的地址,确定第一叶子节点。4.根据权利要求2所述的计算机系统,其特征在于,在所述当前虚拟机在所述hpa写入数据时,所述完整性控制模块,具体用于:将所述第一叶子节点的计数值加1;基于所述内存完整性密钥,及预设的哈希值计算规则计算所述第一叶子节点的最新哈希值;利用所述最新哈希值,对所述第一叶子节点的哈希值进行更新;沿所述第一叶子节点,朝向完整性保护树的根节点方向,更新除所述第一叶子节点之外的其它树节点的哈希值。5.根据权利要求2所述的计算机系统,其特征在于,在所述当前虚拟机从所述hpa读取数据时,所述完整性控制模块,具体用于:计算所述第一叶子节点的当前哈希值,将所述当前哈希值与所述第一叶子节点中保存的哈希值进行比较,若二者一致,则沿所述第一叶子节点朝向根节点的方向,依次校验各树节点的哈希值。6.根据权利要求1所述的计算机系统,其特征在于,所述安全处理器,还用于沿着叶子节点朝向根节点的方向,遍历树节点,若树节点不存在,则为所述树节点分配安全内存。7.根据权利要求1所述的计算机系统,其特征在于,所述安全处理器,还用于在所述虚拟机关机后,遍历所述地址
‑
叶子映射表,找出各叶子节点,并沿着所述叶子节点到根节点,释放所述虚拟机的完整性保护树的树节点占用的安全内存。8.一种虚拟机内存数据完整性保护方法,其特征在于,包括:根据当前虚拟机写入数据的第一hpa,从所述虚拟机的地址
‑
叶子映射表中,确定与所
述第一hpa相对应的第一叶子节点;其中,所述地址
技术研发人员:姜新,应志伟,
申请(专利权)人:海光信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。