🌹作者主页:青花锁 🌹简介: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虚拟机的数据保护功能种个草,安全性、稳定性都不错,起码再也不用担心云上的数据被偷或者被改了。墙裂推荐给业内小伙伴!