产品展示

安全加密虚拟化
2021-02-23 10:25:19

摘要:安全加密虚拟化(CSV)是海光CPU实现的一个重要功能,使用国密SM4加密算法对虚拟机内存进行加密。CSV是硬件虚拟化技术的扩展,支持在一个虚拟机管理器的控制下运行多个加密虚拟机。每个虚拟机和虚拟机管理器都与一个加密密钥相关联,在运行时使用各自的密钥加解密内存数据。如果其他虚拟机或虚拟机管理器访问该数据,则只能看到加密形式的数据,实现了虚拟机之间、虚拟机与虚拟机管理器之间的强隔离。

关键词:加密虚拟化、云计算、机密计算、国密应用


1. 概述

1.1 背景

云计算的发展,使得计算能力变得既强大又便宜,但同时也带来了更多安全方面的挑战。因为云基础设施/管理员可能并不总是值得信任的,在处理诸如商业机密等敏感数据时尤其如此。此外,在多个客户之间共享硬件可能会引发客户对资源安全性的担忧,软件中无法完全消除的漏洞导致了许多资源隔离失败的例子,进而造成客户敏感代码或数据的泄露。传统的纯软件隔离技术存在着性能损失和难以完全避免各种侧信道攻击难题。利用底层硬件支持实现数据加密和密钥保护,是保证虚拟化应用性能同时提高系统安全性的重要技术方向。

1.2 目标

海光CPU中实现了安全加密虚拟化(China Secure Virtualization - CSV)功能,使用国密SM4加密算法对虚拟机内存进行加密,能够更好地实现主机和虚拟机以及虚拟机和虚拟机之间的资源隔离。CSV是硬件虚拟化技术的扩展,它支持在一个虚拟机管理器的控制下运行多个加密虚拟机,每个虚拟机和虚拟机管理器都与一个加密密钥相关联,在运行时会使用各自的密钥加解密内存数据。如果其他虚拟机或虚拟机管理器访问该数据,只能看到加密形式的数据,这为虚拟机之间、虚拟机与虚拟机管理器之间提供了强隔离。

2. 需求分析

随着云计算的发展,越来越多的公司和个人选择业务上云。云计算的安全性也得到了越来越广泛的关注。传统的虚拟化技术无法保证客户虚拟机中数据的安全性。针对这种情况,海光开发了安全加密虚拟化技术,利用CPU内置安全协处理器产生密钥,使用不同的密钥加密不同虚拟机的内存数据,实现了虚拟机之间、虚拟机与虚拟机管理器之间的强隔离,消除了客户数据可能被窃取的风险,满足了市场对高安全云计算技术和产品的急迫需求。

3. 方案架构

3.1 技术架构/产品架构

CSV虚拟机运行时,CPU用ASID(Address Space Identifier)标记虚拟机的所有代码和数据,ASID指示数据属于哪个虚拟机。在虚拟机的整个运行周期,ASID在CPU内部保持不变,确保虚拟机数据能够被正确识别,并且不会被其他虚拟机或者虚拟机管理器访问。ASID用于保护CPU内部的虚拟机数据,而SM4内存加密则用于保护CPU外部的数据。当数据离开或进入CPU时,硬件加解密引擎使用与ASID对应的密钥分别对数据进行加密/解密,CSV虚拟机运行示意图如图1所示。

3.2 部署说明

目前安全加密虚拟化技术已经在多个版本的Linux内核和虚拟机软件上完成适配,搭载海光2号CPU的平台使用适配过的软件就可以使用安全加密虚拟化技术。

3.4 主要功能

海光安全加密虚拟化技术支持在一个虚拟机管理器的控制下运行多个加密虚拟机,通过使用不同的密钥加密虚拟机的内存数据,为虚拟机之间、虚拟机与虚拟机管理器之间提供了强隔离,特别适合用在云计算等领域用于保护虚拟机中客户的机密数据。

3.5 技术指标

使用SPECVIRT性能测试集测试加密虚拟机与普通虚拟机的性能,测试结果显示加密虚拟机的性能与普通虚拟机非常接近。

SPECVIRT性能数据


Tile #

Pct Load

Application Server

Web Server

Mail Server

Batch Server

Per-Tile
Score

Overall
Score


普通虚拟机

1

100%

145.67

179.63

73.40

PASSED

78.16

78.16


CSV虚拟机

1

100%

145.53

179.63

76.11

PASSED

78.77

78.77


3.6 关键技术

海光安全加密虚拟化技术集成在海光CPU架构中。海光CPU的内存控制器中集成了SM4硬件加解密引擎,自动对加密虚拟机的内存数据进行加解密。每个加密虚拟机的加密密钥都不相同。海光CPU中集成了安全处理器,虚拟机加密密钥由安全处理器管理,可以保证密钥安全。

4. 方案特色

海光安全加密虚拟化技术集成在海光CPU架构中,加密虚拟机运行时由硬件自动对虚拟机内存数据进行加解密,不需要软件进行额外的修改就可以实现虚拟机内存数据加密,具有很高的安全性以及良好的兼容性。

5. 适用领域

海光安全加密虚拟化技术通过使用不同的密钥加密虚拟机的内存数据,为虚拟机之间、虚拟机与虚拟机管理器之间提供了强隔离,特别适合用在云计算等领域用于保护虚拟机中客户的机密数据,也可以用于机密计算等领域。

6. 接口说明

海光安全加密虚拟化技术集成在海光CPU架构中,不需要软件进行额外的修改就可以实现加密虚拟机内存数据,客户使用适配好的Linux内核和虚拟机软件运行虚拟机就可以实现虚拟机加密功能,下面是软件架构图。

图 2 海光安全加密虚拟化软件架构

7. 应用案例

(1)平安科技金融云项目

(2)蚂蚁科技加密容器项目





成都海光集成电路设计有限公司

联系人:应志伟

电  话:13681792760