From 36da29a3791507ec611022754751448fdf9325cf Mon Sep 17 00:00:00 2001 From: Pingsheng Pan Date: Wed, 15 Jan 2025 20:12:14 +0800 Subject: [PATCH] Optimized sealing key technology document --- ...60\346\212\200\346\234\257\344\273\213\347\273\215.md" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename "sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/2-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" => "sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/3-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" (76%) diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/2-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/3-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" similarity index 76% rename from "sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/2-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" rename to "sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/3-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" index 0ba623664..dcc2cff59 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/2-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/10-\346\212\200\346\234\257\344\273\213\347\273\215/3-CSV\347\247\230\351\222\245\345\260\201\345\215\260\346\212\200\346\234\257\344\273\213\347\273\215.md" @@ -1,12 +1,12 @@ 测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 概要 -CSV虚拟机可以从海光安全固件中获取由机器根密钥和虚拟机相关信息派生出的密钥。该密钥可以被客户用于任何目的,例如秘钥封印或与外部实体通信。 +CSV虚拟机可以从海光安全固件中获取由机器根密钥和虚拟机相关信息派生出的密钥。该key不需要存储,只能通过账号密码登录或访问虚拟机中服务等方式从虚拟机内部获取,没有泄漏风险,key绑定了虚拟机和主机的相关信息,可信唯一,该密钥可以被客户用于任何目的,例如加密磁盘中的敏感数据,通过派生出的密钥对磁盘中存储的数据进行加密,确保即使攻击者访问存储介质,也无法读取数据,虚拟机启动后从虚拟机中获取该key并用其对磁盘中的敏感数据进行解密。 ## 原理介绍 ![](../../../assets/sealing-key.png) -1、海光安全固件通过硬件派生出的root-key 、固件中csv-sealing-key 字符串、虚拟机| policy | user_pubkey_digest | user_vm_digest | vm_id | vm_version | 内容派生出sealing key,该key 只能从虚拟机内部获取,key在虚拟机生命周期不变。 +1、海光安全固件通过硬件派生出的root-key 、固件中csv-sealing-key 字符串、虚拟机| policy | user_pubkey_digest | user_vm_digest | vm_id | vm_version | 内容派生出sealing key,该key 只能从虚拟机内部获取,确保了key的可信,在相同的主机上使用相同的虚拟机参数和虚拟机相关文件启动虚拟机,虚拟机中的key保持不变,key绑定了虚拟机和主机的相关信息,确保了key的唯一性。 2、虚拟机通过相应的接口获取海光安全固件中产生的sealing key。 @@ -19,7 +19,7 @@ CSV虚拟机可以从海光安全固件中获取由机器根密钥和虚拟机 |root-key|海光安全固件通过硬件派生出的root-key,每台机器唯一且固定不变。| |csv-sealing-key|海光安全固件提供的字符串,固定不变,作为派生秘钥的参数之一。| |policy|csv虚拟机的启动策略,用户通过 hag csv generate_policy --nodebug 生成默认的配置,csv generate_policy --help 可以查看详细配置说明,qemu 启动虚拟机的policy 参数配置需要和hag 设置的一致。| -|user_pubkey_digest|DH公钥的SM3摘要值,用于确认启动虚拟机的用户身份。DH密钥由虚拟机用户生成,用于对虚拟机启动参数进行签名。DH公钥在使用hag csv generate_launch_blob -build $build_id -bios OVMF.fd -kernel vmlinuz -initrd initramfs.img 计算虚拟机组件摘要时候自动生成,DH证书文件为guest_owner_dh.cert,作为qemu的参数传入。| +|user_pubkey_digest|DH公钥的SM3摘要值,用于确认启动虚拟机的用户身份。DH证书在使用hag csv generate_launch_blob -build $build_id -bios OVMF.fd -kernel vmlinuz -initrd initramfs.img 计算虚拟机组件摘要时候自动生成,证书中包含DH公钥,DH证书文件为guest_owner_dh.cert,作为qemu的参数传入。| |user_vm_digest|虚拟机组件启动摘要,通常由ovmf,内核image,文件系统initrd组成,通过hag csv generate_launch_blob -build $build_id -bios OVMF.fd -kernel vmlinuz -initrd initramfs.img 命令生成launch_blob.bin文件,该文件中包含虚拟机启动摘要,文件作为qemu 启动参数传入。| |vm_id|虚拟机id,用户自己定义,hag csv generate_launch_blob --help 中 通过-id 参数传入,字段默认都为0。| |vm_version|虚拟机版本号,用户自己定义,hag csv generate_launch_blob --help 中 通过-version 参数传入,字段默认都为0。| @@ -42,7 +42,7 @@ hag csv generate_policy --nodebug ``` hag csv generate_launch_blob -build $build_id -bios OVMF.fd -kernel vmlinuz -initrd initramfs.img ``` -guest_owner_dh.cert 为用户dh证书,对应的私钥对launch_blob.bin中的字段进行签名,guest_owner_dh.cert 作为qemu的参数传入,海光安全固件获取证书中的公钥,对launch_blob.bin 中的内容进行验签。 +guest_owner_dh.cert 为用户dh证书,对应的私钥对launch_blob.bin中的字段进行签名,dh证书和私钥都由hag中 generate_launch_blob 命令自动生成,guest_owner_dh.cert 作为qemu的参数传入,海光安全固件获取证书中的公钥,对launch_blob.bin 中的内容进行验签。 launch_blob.bin作为qemu启动参数传入,launch_blob.bin内容对应为SESSION的数据结构,内容如下: -- Gitee