这个问题首先要求在stackoverflow 。 经过60多次的意见,我只得到了一个回应。 现在我正在尝试serverfault – 这是一个相关的主题,我猜。
出于安全考虑,最好在执行前检查代码的完整性, 避免攻击者篡改软件 。 所以,我的问题是
如何在Linux下签名可执行代码并运行可信软件?
我已经阅读了van Doom等人的着作“Linux的签名可执行文件的devise与实现”以及Safford&Zohar的IBM TLC(Trusted Linux Client) 。 TLC使用TPM控制器,这很好,但是纸张是从2005年开始的,我无法find目前的替代品。
你知道另一种select吗?
更新 :关于其他操作系统的? OpenSolaris的? BSD家庭?
Solaris具有elfsign(1) ,它将X.509证书附加到ELF二进制文件。 Sun已经签署了大部分(如果不是所有的)二进制文件,但是我不知道如何让Solaris只运行签名的二进制文件。 Linux有elfsign和bsign ,但最近都没有维护。
看看DigSig
seLinux可能提供你正在寻找的东西。
Windows具有软件限制策略 ,最近又添加了AppLocker来强制执行代码上的基于签名的访问控制。 (IE浏览器也有一段时间Authenticode ,但它不是一个通用的可执行签名validation机制,更多的浏览器代码。)
执行已签名的可执行文件当然是一件好事,但这不是万能的(正如我们在video游戏控制台中大量使用代码签名来实施开发许可证)。 通过对不可信input的不良validation,已签名可执行文件中的漏洞仍允许执行任意代码。 尽pipe如此,它确实增加了一个额外的安全层。