虚拟机克隆与Linux随机数生成器:安全隐患与解决方案
2025-04-12
本文探讨从单个快照恢复多个虚拟机克隆的安全性问题。Linux内核提供/dev/random、/dev/urandom和getrandom系统调用三种主要的随机数生成器接口。克隆虚拟机时,由于多个参数(如计时器数据或CPU HWRNG指令的输出)与每个结果混合,导致不同克隆的随机数生成器状态不一致。文章分析了新旧内核版本中随机数生成器的不同实现,并提出了多种解决方案,包括在恢复后重新初始化随机数生成器,使用virtio-rng设备,以及利用Linux 5.18及以上版本引入的VMGenID机制来解决克隆后随机数生成器状态不一致的问题。