配置海光 CSV 环境

更新历史

  • 2025-11-24:创建文档

参考文档

目录索引

海光 CSV 介绍

海光 CSV(China Secure Virtualization)是海光自主研发的基于国产海光 CPU 硬件的安全虚拟化技术,其设计目标是通过 CSV 虚拟机构建可信执行环境(Trusted Execution Environment,TEE),广泛适用于云计算、机密计算等对数据安全要求严苛的场景。

该技术历经 CSV1、CSV2、CSV3 三代迭代:

  • CSV1 实现了虚拟机内存加密能力,采用 国密 SM4 算法,不同虚拟机配备独立加密密钥,由海光安全处理器统一管理,主机无法解密虚拟机加密内存;
  • CSV2 新增虚拟机状态加密机制;
  • CSV3 进一步提供虚拟机内存隔离支持。

基于 CSV 构建的机密计算方案(如 CSV 机密容器),可同时为用户提供虚拟机内存与状态的端到端加密保护。即使云平台主机被攻陷,云厂商或外部攻击者也无法监控或篡改 CSV 实例内部的运行状态,例如进程信息、敏感计算数据等。

在硬件层面,海光 CPU 通过 ASID(Address Space ID)区分不同 CSV 虚拟机与主机,为每个 CSV 虚拟机分配独立的 TLB、Cache 等硬件资源,实现强隔离;在功能层面,CSV 虚拟机支持安全启动、代码验证、远程认证等功能。写内存数据时 CPU 硬件自动加密,读数据时自动解密,构建出安全的硬件级可信执行环境。

如需了解更多技术细节,可参考 Hygon Arch 相关文档。

CSV 硬件环境配置

1. 硬件要求

需使用搭载 海光 CPU 的物理机或裸金属服务器。

不同 CPU 型号对 CSV1/CSV2/CSV3 的支持情况,请查阅文档《安全功能配置要求》中的 表 3:机密计算硬件能力细分说明。

2. BIOS 设置

启用海光加密虚拟化功能(CSV1/CSV2/CSV3)前,需在 BIOS 中完成以下配置:

  • SMEE Control: 设为 Enabled
  • ASID Space Limit: 设为 1
  • RDSEED and RDRAND: 设为 Auto

具体选项名称和默认值可能因主板厂商或 BIOS 版本而异,建议以《安全功能配置要求》中的官方说明为准。

CSV 软件环境配置

1. 操作系统和内核

使用 CSV 功能需依赖支持该特性的 Linux 内核。海光已将 CSV 相关代码合入以下开源社区内核仓库:

因此,推荐优先选用 OpenAnolis 或 openEuler 的较新发行版。但请注意:由于 CSV 支持是逐步合入的,早期正式版可能不包含完整功能。不同发行版的具体版本选择建议如下:

OpenAnolis 系列:

  • 推荐使用 Anolis OS 8.10,并将内核升级至最新版本
  • 如需使用 Anolis OS 23,建议尝试 23.3 Nightly build

openEuler 系列:

  • 推荐使用 24.09 或 25.09 版本
  • 如需使用 5.10 内核,建议尝试 22.03-LTS-SP4 dailybuild

若当前操作系统内核未集成 CSV 支持,可参考文档《安装操作系统和内核》,从海光定制内核仓库(https://gitee.com/anolis/hygon-cloud-kernel.git) 自行构建并安装 5.10 或 6.6 版本的内核。

2. 设置内核启动参数

参考文档《海光机密计算配置汇总》的 表 8 主机 Linux 内核启动的内核命令行参数,启用 CSV 功能至少需要设置以下参数:

kvm-amd.sev=1
kvm-amd.sev_es=1

3. 导入通用安全证书

为使 CSV 虚拟机完成远程认证,需预先导入海光通用安全证书(HGSC)。详细流程请参考官方文档《导入通用安全证书》。

获取 hag 工具

hag 是海光提供的证书与平台管理工具,可通过 hygon-devkit 中的脚本安装:

sudo ./install_hag.sh

默认安装路径为 /opt/hygon/bin/hag。

在线导入证书

若主机可访问互联网,直接运行:

sudo /opt/hygon/bin/hag general hgsc_import

离线导入证书

若主机处于离线环境,请按以下步骤操作:

  1. 获取芯片 ID 和证书版本号:
sudo /opt/hygon/bin/hag general get_id
sudo /opt/hygon/bin/hag general hgsc_version
  1. 在联网机器上访问 https://cert.hygon.cn/hgsc, 输入上述信息下载证书文件。

  2. 将证书文件上传至目标主机,并执行导入命令(替换实际路径):

sudo /opt/hygon/bin/hag general hgsc_import -offline -in /realpath/to/hgsc_certchain

检查软硬件配置

可使用 hag 工具快速验证当前主机的 CSV 软硬件支持状态。

通用状态检查

运行以下命令查看系统整体安全配置:

hag general check

示例输出:

firewalld:                  inactive
selinux:                    Disabled
kernel version:             5.10.134-csv
model name:                 Hygon C86 7285 32-core Processor
Hygon C86 7285 32-core Processor
is Hygon CPU:               YES
failed check sme with psp cmd, retry by x86 method
HW SME:                     enabled
Linux SME support:          YES!
SME:                        enabled
CSV:                        enabled
/dev/sev:                   exist
ERR: do_tpcm_get_info:76: psp_dispatch_cmd failed with ret: -65534, pspret: 65534
csv api version:            1.3
firmware version:           1667
is HGSC imported:           YES
chip id:                    NRKG901061105
/dev/tdm:                   exist
TDM:                        enabled
tdm api version:            1.4
/dev/tpm0:                  nonexist
tpm_acpi:                   nonexist
/dev/tcm0:                  nonexist
tcm_acpi:                   nonexist

结果异常解读:

  • 若CSV字段显示disabled:表明 BIOS 中 SMEE 等 CSV 相关功能未正确配置;
  • 若/dev/sev字段显示nonexist:表明系统内核未集成 CSV 支持,或缺少必要的启动参数(如 kvm-amd.sev=1);
  • 若is HGSC imported字段显示NO:表明尚未完成通用安全证书的导入操作。

CSV 平台能力检查

运行以下命令查看 CSV 特性支持详情:

hag csv platform_status

示例输出:

api_major:          1
api_minor:          3
platform_state:     CSV_STATE_INIT
owner:              PLATFORM_STATE_SELF_OWN
chip_secure:        SECURE
fw_enc:             ENCRYPTED
fw_sign:            SIGNED
CSV:                CSV CSV2
build id:           1667
guest_count:        0
is HGSC imported:   YES
supported csv guest:11

关键指标校验:

  • platform_state正常取值应为CSV_STATE_INIT或CSV_STATE_WORKING,代表 CSV 平台处于初始化或工作状态;
  • CSV字段会显示当前主机支持的 CSV 版本(如示例中的CSV CSV2),反映硬件对 CSV 迭代版本的兼容情况。