【问题标题】:How to delete a UEFI Authenticated Variable?如何删除 UEFI 认证变量?
【发布时间】:2020-04-01 02:56:17
【问题描述】:

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

通过 SecurityPkg\Library\AuthVariableLib\AuthService.c 中的 EDKII 代码,我可以看到要删除经过身份验证的变量,UserPhysicalPresent() 函数必须返回 TRUE。 UserPhysicalPresent() 的默认实现在 PlatformSecureLibNull.c 中,总是返回 TRUE,但显然主要 OEM 的几款真机确实实现了该功能,删除总是失败。

删除从 UEFI Shell 或操作系统中创建的 UEFI 认证变量的正确方法是什么?如何满足用户的物理存在需求?

【问题讨论】:

    标签: uefi


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-01-11
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2012-05-31
      • 2020-07-16
      • 1970-01-01
      相关资源
      最近更新 更多