对有意义信任的需求

有什么能够阻止某人创建一个伪造密钥,声称属于某个开发者,并将其发布到 pgp.mit.edu (一个流行的密钥服务器),然后用匹配的虚假版本替换该开发者的软件程序包及其分离的签名文件呢?没有任何东西可以阻止。但就像 Tripwire 一样,PGP 并不能阻止文件篡改;它只是提醒我们注意。

理想情况下,如果软件包及其附带的签名都被替换或篡改,以下情况之一将会发生:

幸运的是,只需要一个拥有签名者真实密钥的合法副本的人注意到这种差异并发出警报,希望能够及时阻止不太警惕的用户下载和安装木马程序。但这里真正的教训是双重的:尽可能多的人经常使用 GnuPG 检查软件包的签名,并且人们必须采取必要的额外步骤来确定这些签名是否是由合法密钥创建的,这一点极其重要。

依我拙见,这种情况也说明了将软件包、其分离的签名和签名者的公钥都托管在同一站点上的可疑价值。整个网站与其中的单个部分一样容易受到攻击。

关于假定信任的陷阱的最后一个例子:还记得今年三月,微软宣布 VeriSign 证书颁发机构(密钥服务器)上的两个微软数字证书实际上是伪造的吗?(微软使用其自身实现的数字签名来验证微软软件程序包和更新,其功能与 GnuPG 和 PGP 等效。)

如果有人使用这些伪造的证书来签名,例如签名一个被植入木马的 Internet Explorer 版本,并且他们设法将他们的木马放置在微软的 Web 服务器上,那么安装木马的用户会看到一个弹出窗口,告知他们由于用于签署该软件的数字证书已通过 VeriSign 验证,因此该软件是完全安全的。

这就是当人们,尤其是像 VeriSign 这样的密钥/证书颁发机构,对他们信任甚至担保的密钥变得马虎时会发生的事情。顺便说一句,微软在伪造的证书发布后将近三个月才发布声明。检查签名,不要自动认为您遇到的每个密钥都是真实的。

© . All rights reserved.