2
机密计算
CSV3虚拟机内运行sme_test,结果与主机不一致
2026-03-25 17:55:54
121
我在CSV3的虚拟机内运行了 sme_test:https://c86.sourcefind.cn/documents/2/1971517885863104551 发现跟在主机上运行的结果不一样。 第二个打印 clear C bit, sme encrypted data: 数据全部都是0. 请问这是预期结果吗?
全部评论(7)
只看楼主
老
老秦人
3楼
请问这是预期结果吗? 
在CSV3虚拟机内部,这是预期结果。CSV3的原始内存为隔离内存,清除C bit后,系统会为CSV3的gpa建立共享内存。由于您没有将原来隔离内存上的数据复制到共享内存,所以直接读取共享内存返回0。
3/30
K
Kevin Peng
回复 @老秦人
明白了,所以在CSV3内部用户好像只是修改了memory属性(既清除C bit),而实际上”系统“会重新分配一块物理内存(HPA) 并映射给同一个GPA。在回复C bit时,同一个GPA又回重新指回远来的HPA。
那请问下,这两个动作具体是谁做的,我理解应该是安全处理器?
4/3
老
老秦人
回复 @Kevin Peng
你说的是对的。这个动作是guest kernel告知安全处理做的。
4/3
方
方保顺
2楼
@Kevin Peng 这里回复效率较低,请扫描下面网页中的图片,添加微信群提问,谢谢!
https://c86.sourcefind.cn/support
3/30
K
Kevin Peng
楼主
1楼
另外我在decrypted状态下修改内存数值
在encrypt回去之后并没有反映出来,即encrypt状态读出来的还是decrypt之前的的值
感觉上decrypt和encrypt各有一份内存。

而在host上面decrypted下的修改encrypted是能感知的。

请问这也是预期行为吗。
3/26
K
Kevin Peng
回复 @Kevin Peng
如上讨论,确实有两份不同的物理内存。
4/3
老
老秦人
回复 @Kevin Peng
在decrypt状态下,GPA映射的是HPA_share页面,在encrypt状态下,GPA映射的是HPA_private页面。
用户将CSV3 GPA页面在encrypt <--> decrypt状态转换时,需要用户手动复制数据,即在页面 HPA_private <--> HPA_share 之间复制数据,只调用set_memory_encrypted或者set_memory_decrypted不会自动复制底层HPA页面上的数据。
4/3
没有更多内容了
--
楼主
Level.3
0 帖子
楼主热帖
暂无数据