AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 896228
Accepted
user8897013
user8897013
Asked: 2018-02-08 18:49:15 +0800 CST2018-02-08 18:49:15 +0800 CST 2018-02-08 18:49:15 +0800 CST

如何使用 asc 签名文件验证文件?

  • 772

例如,该项目提供了一个*.asc带有 PGP 签名的文件来验证下载的内容(与校验和相反,您可以看到空列):https ://ossec.github.io/downloads.html

我将如何使用这个文件?我尝试gpg --verify了其他变体,但它似乎将名称与文件匹配,但是下载的文件名并不完全相同......不确定它应该如何工作。

gpg
  • 2 2 个回答
  • 47330 Views

2 个回答

  • Voted
  1. Best Answer
    Евгений Новиков
    2018-02-08T19:34:00+08:002018-02-08T19:34:00+08:00
    • 下载密钥文件:
    wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc
    
    • 检查密钥文件以确认它EE1B0E6B2D8387B7的 keyid。
    gpg --keyid-format long --list-options show-keyring OSSEC-ARCHIVE-KEY.asc
    
    • 如果正确,则导入密钥:
    gpg --import OSSEC-ARCHIVE-KEY.asc
    
    • 下载软件包
    wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz
    
    • 下载签名文件
    https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc
    
    • 验证它
    gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz
    

    输出

    gpg: Signature made Sat Dec 23 16:13:01 2017 UTC
    gpg:                using RSA key EE1B0E6B2D8387B7
    gpg: Good signature from "Scott R. Shinn <[email protected]>" [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
    
    • 33
  2. aef
    2020-12-09T21:18:02+08:002020-12-09T21:18:02+08:00

    这进一步完善了Евгений Новиков 的答案。它不使用已弃用的 GnuPG 命令,并避免使用潜在的欺骗性密钥 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 <[email protected]>
    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 <[email protected]>" [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 <[email protected]>" [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 <[email protected]>" [full]
    
    • 10

相关问题

  • gpg中制作密钥对时随机数的生成方法

  • GPG/PGP 签名和加密 - 一个学术安全问题

  • 为什么 apt-get update 告诉我运行 apt-get update?

  • 输出/管道 ntbackup 直接到 GPG

  • 一般 GnuPG 技巧

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve