例如,该项目提供了一个*.asc
带有 PGP 签名的文件来验证下载的内容(与校验和相反,您可以看到空列):https ://ossec.github.io/downloads.html
我将如何使用这个文件?我尝试gpg --verify
了其他变体,但它似乎将名称与文件匹配,但是下载的文件名并不完全相同......不确定它应该如何工作。
例如,该项目提供了一个*.asc
带有 PGP 签名的文件来验证下载的内容(与校验和相反,您可以看到空列):https ://ossec.github.io/downloads.html
我将如何使用这个文件?我尝试gpg --verify
了其他变体,但它似乎将名称与文件匹配,但是下载的文件名并不完全相同......不确定它应该如何工作。
EE1B0E6B2D8387B7
的 keyid。输出
这进一步完善了Евгений Новиков 的答案。它不使用已弃用的 GnuPG 命令,并避免使用潜在的欺骗性密钥 ID 进行身份验证:
下载文件
获取作者用来签发签名的 OpenPGP 证书:
然后获取作者发出的分离签名:
最后获取您要认证的文件:
显示并彻底比较指纹
在导入证书之前,显示完整的 40 个字符长的 OpenPGP 证书指纹,并确保它与作者证书的指纹完全匹配。
注意:您应该通过作者的安全渠道获取指纹。除了亲自与作者会面以交换指纹外,下一个最好的方法是在作者的网站上显示指纹并通过
https:
方案 URI 访问。作者确实在这里发表了一篇。注意:如果作者只显示短 ID(8 个字符长,例如
2D8387B7
)或长 ID(16 个字符长,例如EE1B0E6B2D8387B7
)最好保持怀疑并要求作者发布完整的指纹,因为短 ID 和长 ID 都有被证明是可欺骗的(在这里阅读更多)默认情况下,旧版本的 GnuPG 不显示完整的指纹。
--fingerprint
如果未显示,请尝试添加标志。输出应该如下所示:
本例中的 OpenPGP 证书指纹为:
有时指纹以 4 个字符的片段显示,每个字符带有空格,以便于人类阅读。在这种情况下,忽略空格进行比较是安全的:
注意:确保不仅要比较指纹的某些部分,因为这再次为欺骗攻击打开了空间。
为了方便和彻底的比较,只需在您选择的文本编辑器中复制后续行中格式相同的两个指纹并在视觉上匹配它们。
导入证书
如果完整指纹完全匹配,请将证书导入本地 GnuPG 密钥环:
验证文件
现在,您可以加密验证文件与作者发布和签名的文件完全匹配。
注意:请务必在此处始终列出分离的签名和要进行身份验证的文件。除了分离的签名之外,还有其他类型的签名,如果只列出签名文件,如果没有意识到这一点,可能会导致对真实性的错误假设。
输出应该如下所示:
注意:如果文件被操纵,您应该会看到如下内容:
如果发生这种情况,作为预防措施,您不应使用或执行文件的内容并联系作者。如果无法联系到作者,那么公开提高意识是下一个最好的事情。
验证作者一次又一次发布的文件
最后一步中显示的警告提示,在确保导入作者的签名证书合法后,最好使用您自己的个人 OpenPGP 证书对其进行认证。
如果您长期保留和维护您的 GnuPG 密钥库,则无需再次为每个新文件验证作者的证书,并使整个过程更容易,并且将来更不容易受到攻击。
注意:为此必须提供个人 OpenPGP 证书。创建一个的说明不是这个答案的主题。
颁发认证的工作方式如下:
它告诉 GnuPG 和未来的你自己,你已经彻底验证了这个作者的证书。
之后的输出
gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz
看起来更加干净和可靠,如下所示: