对于 Debian 存储库中的软件包,将按照所述检查哈希值和签名这里(以及与之相关的问题)以至少在一定程度上确保软件的完整性(正在开发中)。
但是 GNU/Linux 上如何保证固件的完整性呢?
我认为一般来说只有一种方法可以可靠地确保完整性:固件是开源的并且可重现的,文件的可重复哈希值是公开的,并且是根据这些哈希值检查本地固件的可靠方法。我认为目前情况并非如此——尽管如此,不太理想的方法也可以在很大程度上帮助确保安全。
目前如何确保固件的完整性以及如何手动确保?
对于固件,我指的是计算机组件上预装的固件(包括与其连接的设备)以及使用 fwupd ( fwupdmgr update
) 进行的固件更新。
除了 fwupd 之外,我不知道有什么工具可以在 GNU/Linux 上更新非特定 PC 固件,但也许还有更多。在 Debian11/KDE 上,默认情况下固件更新是独立于包管理器的。人们只能配置 KDE 包管理器“Discover”来显示(提示用户)并执行这些更新。我想知道默认情况下它是否仍然不是包管理器的一部分,因为下载的更新文件的完整性没有像可以从包管理器安装的其他包(例如 Apper)那样安全地进行检查。
答案1
fwupd
通过、KDE Discover 或 GNOME 软件提供的固件更新是通过Linux 供应商固件服务。
更新内容是由 LVFS 签署;这是假定供应商访问受到严格控制,并且供应商上传的文件是值得信赖的。安装工具(最终fwupd
)将拒绝安装签名无法验证的固件包。
许多设备将拒绝未以某种方式验证的固件更新,但这与用于应用更新的工具无关。 (这也适用于您的发行版附带的 CPU 微代码更新。)