Linux有可执行文件的签名系统吗?

Windows有一个签名系统,可以确保在签名后未对可执行文件进行修改。我过去在Windows中使用这个作为安全措施。 enter image description here enter image description here Linux是否有类似的系统,允许开发人员在可执行文件和.deb文件中放置签名,以便用户可以验证它们?例如,如果有人给我一个修改过的程序版本,我可以查看程序的签名是否有效,或者是否存在签名。
2个回答

软件存储库中的软件实际上不需要签名。我们可以假设来自这些存储库的软件是可信的。
但是可以通过其MD5校验和进行检查。在MD5校验和上的Launchpad页面 第2步:
引用: 第2步:打开终端,切换到保存文件和相关签名的目录,然后输入以下内容:
gpg --verify signaturefilename

将signaturefilename替换为签名文件的文件名。 gpg现在将尝试使用签名者的公钥来验证签名。如果您的gpg版本已配置为自动检索公钥,则可以跳过第4步。否则,您需要手动获取签名者的公钥。

谢谢你提供的信息。但是对于那些不在软件源中的便携可执行文件和.deb安装包,又该如何操作呢?还有那些我用"apt on cd"备份的包,有没有办法在安装之前检查它们的数字签名呢? - Ufoguy
3Launchpad是关于非存储库软件包的:任何人都可以在Launchpad上上传自己的私有软件包,并创建一个sources.list行来进行安装。如果上传者签名了它,您可以使用它,但无论如何,Launchpad也会为任何人创建md5哈希以供验证。只要您拥有md5哈希,就可以检查任何文件。事实上,我敢说:没有md5哈希=不可信任。 - Rinzwind
大多数Linux软件的哈希值都存在http网站上。因此,在中间人攻击的情况下,可以替换哈希值。 - user3620828

DigSig(数字签名...在内核中)和DSI(分布式安全基础设施),但不幸的是,这个项目已经不再维护。
DigSig是一个Linux内核模块,用于在运行之前检查ELF二进制文件和库的RSA数字签名。二进制文件需要使用BSign进行签名。
DSI(分布式安全基础设施)是一个针对分布式环境的安全框架,旨在解决此类平台可能涉及的任何特定安全问题。更具体地说,它旨在满足电信领域的运营级Linux集群的安全需求。[1]