遵循本指南,我能够注册机器所有者密钥 (MOK) 来签署我的 NVIDIA(专有)驱动程序。设置起来相当容易,而且运行良好。到目前为止,我对它很满意。
我必须输入密码才能注册密钥,但密码仅与 MOK 注册相关,密码将被丢弃,不会再使用。注册完成后,用户不再持有任何秘密(如密码)来限制 MOK 的使用。
显然,第三方驱动程序更新将在安装过程中自动使用 MOK 进行签名。换句话说,如果攻击者能够操纵我的第三方驱动程序,从而将其访问权限提升到 root 用户,那么他就可以像系统更新程序一样,轻而易举地对操纵的驱动程序进行签名。
我认为使用 MOK 安全启动的唯一好处是:
- 通过添加额外的检查,它为针对内核和驱动程序的攻击场景增加了一些复杂性,尽管我的理解是这个检查很容易被绕过。
- 它允许我在 BIOS 中启用安全启动,这是 Windows 11 等某些操作系统的安全要求。
- 如果 BIOS 中默认启用了安全启动,我就不需要找出如何禁用它来使我的 NVIDIA(专有)驱动程序正常工作。
我是不是漏掉了什么?在仅启动一个操作系统的机器上使用 MOK 安全启动是否有任何安全优势?
答案1
我想我在 Unix Stack Exchange 上发现了类似的问题。
在答案中,对我来说有意义的重要部分是:
其主要思想是,只有经过签名的代码才允许在加载操作系统 (OS) 时运行。一旦启动,操作系统就可以接替 BIOS 负责保护系统安全。
因此,基本上,如果操作系统存在漏洞并且攻击者可以获得 root 权限,则可以在下次启动时执行被操纵的驱动程序,这正是我的理解。
您需要 MOK 和安全启动吗?如果您永远不会被黑客成功攻击,尤其是那些可能物理访问您的笔记本电脑或通过浏览器/办公室/Linux 漏洞从互联网获得 root 访问权限的黑客,那么就不需要了。
就我而言,设置 MOK 相当容易,并且给潜在攻击增加了一点复杂性,所以我会保留它。