例如,该项目提供一个带有PGP签名的*.asc
文件来验证下载的内容(与校验和不同,您可以看到空列):https://ossec.github.io/downloads.html
我该如何使用这个文件?我尝试了gpg --verify
和其他变体,但它似乎与文件的名称相匹配,但是下载的文件名并不完全相同.不知道该怎么做。
发布于 2018-02-08 03:34:00
EE1B0E6B2D8387B7
作为其密钥。gpg --键-格式长-列表-选项显示-密钥环OSSEC-存档-KEY.asc发布于 2020-12-09 05:18:02
这进一步完善了ЕвгенийНовиков的S答案。它不使用不推荐的ЕвгенийНовиков命令,也避免了用于身份验证的可能伪造的密钥ID:
获取作者用来颁发签名的OpenPGP证书:
wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc
然后获取提交人签发的独立签名:
wget https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc
最后获取要验证的文件:
wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz
导入证书前,显示完整的40个字符长OpenPGP证书指纹,并确保其与作者证书的指纹完全匹配。
注意:你应该通过一个安全的渠道从作者那里获取指纹。除了与作者见面交换指纹之外,第二个最好的方法是在作者的网站上显示一个指纹,并通过一个https:
计划URI访问。作者确实出版了一个这里。
注意:如果作者只显示短ID (8个字符长,如2D8387B7
)或长ID (16个字符长,例如EE1B0E6B2D8387B7
),最好持怀疑态度,并要求作者发布完整的指纹,因为短ID和长ID都已被证明是可伪造的(请阅读更多的这里)。
gpg --import --import-options show-only OSSEC-ARCHIVE-KEY.asc
旧版本的GnuPG默认不会显示完整的指纹。如果没有显示--fingerprint
标志,请尝试添加它。
输出应该如下所示:
pub rsa4096 2011-03-10 [SC]
B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7
uid Scott R. Shinn <scott@atomicorp.com>
sub rsa4096 2011-03-10 [E]
本例中的OpenPGP证书指纹是:
B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7
有时指纹会以4个字符的片段显示,每个字符都有空格,这样人类就能更容易地阅读。在这种情况下,忽略空白比较是安全的:
B50F B194 7A0A E311 45D0 5FAD EE1B 0E6B 2D83 87B7
注意:不要只比较指纹的部分,因为这再次为欺骗攻击打开了空间。
为了方便和彻底的比较,只需在您选择的文本编辑器中复制在后续行中格式化的两个指纹,并在视觉上匹配它们。
如果完整指纹完全匹配,则将证书导入本地GnuPG密钥环:
gpg --import OSSEC-ARCHIVE-KEY.asc
现在,您可以加密地验证该文件与作者发布和签名的文件完全匹配。
gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz
注意:一定要始终列出分离的签名和要在这里进行身份验证的文件。除了分离的签名之外,还有其他类型的签名,如果只列出签名文件,没有意识到这会导致错误的真实性假设。
输出应该如下所示:
gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg: using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <scott@atomicorp.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: B50F B194 7A0A E311 45D0 5FAD EE1B 0E6B 2D83 87B7
注意:如果文件已被操纵,您应该看到如下内容:
gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg: using RSA key EE1B0E6B2D8387B7
gpg: BAD signature from "Scott R. Shinn <scott@atomicorp.com>" [unknown]
如果发生这种情况,您不应该使用或执行文件的内容作为预防措施,并与作者联系。如果无法联系到作者,那么提高公众意识是第二件最好的事情。
最后一步中显示的警告是一个提示,即在确保导入的作者的签名证书是合法的之后,用您自己的个人OpenPGP证书来验证它是一个好主意。
如果您长期保存和维护您的GnuPG密钥存储库,您就不需要再次验证每个新文件的作者证书,从而使整个过程变得更容易,也不太容易在将来受到攻击。
注意:个人OpenPGP证书是必须的。创建一个人的指导不是这个答案的主题。
签发证书的工作如下:
gpg --lsign B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7
它告诉GnuPG和您自己,您已经彻底验证了作者的证书。
之后,gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz
的输出看起来更干净、更可靠,如下所示:
gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg: using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <scott@atomicorp.com>" [full]
https://serverfault.com/questions/896228
复制相似问题