我正试图找出如何在我从互联网上下载的Windows可执行文件中建立信任。
我下载的一些软件(如KeepassXC )具有Windows签名,但它们也提供了一个PGP签名,我可以使用从他们的代码库获得的证书手动验证该签名。
我下载的其他软件,如我的税务软件,也是用Windows签名签名的,但它们不提供我可以验证的PGP签名。
发布于 2021-03-03 20:16:45
Windows数字签名和PGP签名是否具有相同的功能?
好吧,是和不是。您所引用的windows数字签名是存在的,因为Windows需要对所有可执行文件进行签名。否则,Windows将抱怨可执行文件来自不受信任的发行者,而防御方SmartScreen将阻止它。Windows使用它来验证可执行文件是否已由信誉良好的发行者(仅仅签署是不够的,你也需要一个积极的声誉。)签名。当然,自签署以来,可执行文件的完整性也会得到验证。差不多了。
那么,如果文件上的数字签名已经验证了文件的完整性,为什么还要使用PGP呢?
问题是KeePassXC是安全意识强的人使用的软件。这些人中有相当一部分人(通常是完全正确的)极端偏执。用于签署可执行文件的Microsoft Authenticode证书的问题是,它们是由Windows信任的CA颁发的。CA可以被黑客攻击(过去也有),或者被盗用。因此,如果CA被泄露、被流氓或被政府强迫,他们可以以KeePass的名义签发假的Authenticode证书。然后,与其签名的任何软件都将作为经过验证的KeePass代码传递,并且可以向用户分发一个假的反向但有签名的版本。偏执的人宁愿不冒这个险。
所以解决办法是用他们自己的PGP密钥来签名。现在,任何在可执行文件上验证PGP签名的人都可以确定,他们没有使用使用欺诈性证书签名的备份版本。
https://security.stackexchange.com/questions/245642
复制相似问题