|   |      1 
                                  5
                             共享签名密钥没有什么错,即使它当然不应该被视为已验证的密钥,除非通过其他方式进行验证。与根本不共享密钥相比,另一方必须通过签名中包含的指纹引用从密钥服务器获取密钥——密钥仍然不受信任,但依赖于密钥服务器。 例如,为什么包含密钥可能会很有用:许多(企业)公司对服务器系统有非常严格的防火墙规则。您可能能够获得存储库服务器的许可(或者在默认情况下获得Github许可),但为关键服务器添加引用可能会很乏味。在构建软件时,您很可能会从存储库导入密钥,并基于硬编码的公钥指纹发出信任。不过,这比静态地将密钥存储在本地要好,例如滚动子密钥意味着除非更新本地密钥副本,否则构建会中断。当从存储库中提取密钥(并通过公钥指纹验证)时,无需采取任何操作。 此外,还有豆腐的概念:“信任第一次使用”。当您第一次获取密钥时(例如,在初始开发期间),您希望没有攻击者在场,但希望确保以后不会分发任何被操纵的源。开发人员在其本地开发机器上获取密钥并将其设置为受信任可能已经很好了,这取决于您的攻击模型和可接受的风险。 无论如何,还有钥匙(或者至少是指纹, never use short key IDs )正如你所提议的,在一个可信的来源上。一个网站可以通过HTTPs获得一个可信的证书,这是一个开始。特别是如果你喜欢开源项目,试着在开源会议上认证你的密钥(或者至少认证开发者密钥,然后开发者密钥可以认证项目密钥)。 |