AMD SEV 中允许确定加密密钥的漏洞

来自 Google Cloud 团队的开发者 确定 AMD SEV(安全加密虚拟化)技术实施中存在漏洞(CVE-2019-9836),该漏洞允许使用该技术保护的数据受到损害。 AMD SEV 在硬件级别提供虚拟机内存的透明加密,其中只有当前客户系统可以访问解密的数据,其他虚拟机和管理程序在尝试访问该内存时会收到一组加密的数据。

所发现的问题使得完全恢复私有 PDH 密钥的内容成为可能,该密钥在单独的受保护 PSP 处理器(AMD 安全处理器)级别进行处理,主操作系统无法访问该处理器。
有了PDH密钥,攻击者就可以恢复创建虚拟机时指定的会话密钥和秘密序列,并获得对加密数据的访问权限。

该漏洞是由椭圆曲线加密 (ECC) 实施中的缺陷引起的,该加密允许 攻击 恢复曲线参数。 在执行受保护的虚拟机启动命令期间,攻击者可以发送不符合 NIST 推荐参数的曲线参数,导致在与私钥数据的乘法运算中使用低阶点值。

ECDH协议的安全性直接 这取决于顺序 生成的曲线起点,其离散对数是一项非常困难的任务。 在 AMD SEV 环境的初始化步骤之一期间,私钥计算使用从用户接收的参数。 本质上,该操作是将两个点相乘,其中一个点对应于私钥。 如果第二点指的是低阶素数,那么攻击者可以通过搜索所有可能的值来确定第一点的参数(模运算中使用的模数的位)。 为了确定私钥,可以使用以下方法将选定的素数片段拼凑在一起 中国剩余定理.

该问题影响使用最高版本 0.17 build 11 的 SEV 固件的 AMD EPYC 服务器平台。AMD 已经 опубликовала 固件更新添加了对不符合 NIST 曲线的点的阻止。 同时,之前生成的 PDH 密钥证书仍然有效,这使得攻击者可以实施攻击,将虚拟机从受漏洞保护的环境迁移到易受该问题影响的环境。 还提到了进行攻击将固件版本回滚到旧的有漏洞版本的可能性,但这种可能性尚未得到证实。

来源: opennet.ru

添加评论