如何删除UEFI身份验证变量?

问题描述 投票:2回答:1

我编写了一个UEFI Shell应用来尝试UEFI Authenticated变量。我可以创建一个Authenticated变量,然后通过使用相同的私钥签名来更新它。但是,稍后尝试删除它时,出现安全冲突错误。

逐步浏览SecurityPkg \ Library \ AuthVariableLib \ AuthService.c中的EDKII代码,我看到要删除已验证的变量,UserPhysicalPresent()函数必须返回TRUE。 UserPhysicalPresent()的默认实现在PlatformSecureLibNull.c中,始终返回TRUE,但是显然来自主要OEM的多个实际设备确实实现了此功能,并且删除总是失败。

删除从UEFI Shell或从OS内部创建的UEFI身份验证变量的正确方法是什么?如何满足用户的物理状态要求?

uefi
1个回答
0
投票

显然,这似乎是EDKII变量服务实现中的一个错误-应该没有物理存在要求才能删除经过身份验证的变量。如果固件受此问题影响,则可能无法删除已验证的变量。注意-写入后,自定义身份验证变量可以更新,但不能删除。我必须在我尝试过的设备上物理刷新固件,以摆脱我编写的身份验证变量。

© www.soinside.com 2019 - 2024. All rights reserved.