🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝

在这里插入图片描述


前言

机密计算是最近几年非常热门的技术,采用加密、隔离等技术保护CPU使用中的数据,配合传输加密和存储加密技术,能够实现数据全流程安全保护。一言以蔽之,都是为了安全可靠。
在这里插入图片描述
目前,主流的CPU厂商都推出了自家的机密计算技术,国产的海光CPU在机密计算支持上做的是比较好的,阿里云上已经支持。今天花十分钟在阿里云上体验了一下CSV内存加密和远程认证,确实是不错,以后云上的数据安全算是有保证了,下面简单说一下体验过程。

1、构建CSV机密计算环境

首先在阿里云的官网手册上找到“[构建CSV机密计算环境]”,按照手册上的步骤创建CSV实例。
在这里插入图片描述

这里只是体验一下,选择“按量付费”比较划算。
在这里插入图片描述
选择实例时,处理器选择“Hygon”,规格选择“ecs.g7h.2xlarge”。
在这里插入图片描述
镜像选择“Alibaba Cloud Linux”,并且要勾选“机密虚拟机”。
在这里插入图片描述
其他选项用默认值,就可以创建一台CSV机密虚拟机实例了。
接下来用创建的实例体验一下CSV内存加密和远程认证功能。

2、检查CSV使能状态

我们在使用CSV加密计算环境前,先检查对应实例的CSV使能状态,以确保对应实例处于安全保护中。

2.1、检查CSV使能状态

通过访问CSV_STATUS(0xC0010131)来检查CSV功能是否开启,该MSR为只读且访问行为无法被Hypervisor拦截,可以在命令行下直接执行。

sudo yum install msr-tools

在这里插入图片描述
在这里插入图片描述

继续执行rdmsr 0xC0010131 ,可以看到有一个CPU支持内存加密。

sudo rdmsr 0xC0010131 --bitfield 1:0

在这里插入图片描述

2.2、检查CSV相关驱动安装情况

sudo modprobe csv-guest
ls -l /dev/csv-guest

下图表示已经安装CSV相关驱动。
在这里插入图片描述

3、跑测试程序

内存加密功能,CSV虚拟机在读写内存时,CPU会自动对内存数据进行加解密,数据加密之后才写入到内存中。

参考龙蜥社区上的测试手册,跑一下测试程序。
在这里插入图片描述

可以看到原始数据和加密之后的数据。
在这里插入图片描述

4、远程认证功能

接下来再测试一下远程认证功能,CSV虚拟机可以生成远程认证报告,报告用每颗芯片独有的芯片密钥签名,用对应的芯片证书对认证报告验签,就可以认证CSV虚拟机的身份。参考阿里云上的测试手册,跑一下测试程序。
在这里插入图片描述

4.1、下载阿里云提供的远程证明样例工具

下载样例工具,可提前检查Python环境。

wget https://enclave-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/csv/requirements.txt

在这里插入图片描述

wget https://enclave-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/csv/csv-attestation.py

在这里插入图片描述

sudo pip3 install -r requirements.txt
chmod +x ./csv-attestation.py

在这里插入图片描述
给py程序授予读写权限

chmod +x ./csv-attestation.py

在这里插入图片描述

4.2、为本机生成远程证明报告

sudo ./csv-attestation.py generate -r ./

返回如下结果,代表远程证明报告已被下载下来。
在这里插入图片描述

4.3、验证远程证明报告

sudo ./csv-attestation.py verify -r ./report

执行的样例结果如下,POLICY中的NODEBUG表示当前CSV实例处于非调试状态,NOKS表示虚拟机的加密密钥为当前实例独享,即处于安全的受保护模式。
在这里插入图片描述

4.4、生成指定UserData的远程证明报告

生成远程证明报告时,你可以通过指定UserData,从而生成期望的远程证明报告。

sudo ./csv-attestation.py generate -r ./ -u your-data-like-pubkey-digest

在这里插入图片描述

总结

最后给CSV虚拟机的数据保护功能种个草,安全性、稳定性都不错,起码再也不用担心云上的数据被偷或者被改了。墙裂推荐给业内小伙伴!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐