Linux(或其他操作系统)下签名的可执行文件

Linux(或其他操作系统)下签名的可执行文件

这个问题首先被问到堆栈溢出。60 次浏览后,我只收到一条回复。现在我正在尝试服务器故障- 我想,这是一个相关的话题。

出于安全原因,最好在执行之前检查代码的完整性,避免软件被篡改攻击者。所以我的问题是

如何对可执行代码进行签名并仅在 Linux 下运行受信任的软件?

我读过 van Doom 等人的著作《Linux 签名可执行文件的设计和实现》,以及 IBM 的TLC(可信 Linux 客户端)作者:Safford & Zohar。TLC 使用 TPM 控制器,这一点很不错,但这篇论文是 2005 年的,我找不到当前的替代方案。

您知道还有其他选择吗?

更新:还有其他操作系统吗?OpenSolaris?BSD 系列?

答案1

Solaris 已将elfsign(1)X.509 证书附加到 ELF 二进制文件。Sun 已签署了其发布的大多数(如果不是全部)二进制文件,但是我不确定如何让 Solaris 只运行已签署的二进制文件。Linux 有和elfsignbsign但最近都没有维护。

答案2

看一下数字签名

答案3

seLinux 可能提供您正在寻找的内容。

答案4

Windows 有软件限制策略,最近又增加了应用程序锁用于对代码执行实施基于签名的访问控制。(Internet Explorer 也曾验证码已经有一段时间了,但它不太像通用的可执行签名验证机制,而更适合于浏览器内代码。)

强制执行已签名的可执行文件当然是件好事,但它并不是万能药(正如我们在视频游戏机上看到的,它们大量使用代码签名来强制执行开发许可证)。由于对不受信任的输入验证不力,已签名的可执行文件中的漏洞仍然允许执行任意代码。话虽如此,但它确实增加了一层额外的安全性。

相关内容