Sti*_*sfa 5 security keepass verification digital-signature gnupg
我试图验证对KeePass的2.14的安装文件的最新版本的PGP签名本签名,但是这是我收到的输出:
C:\Program Files (x86)\GNU\GnuPG>gpg.exe --verify C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.
C:\Program Files (x86)\GNU\GnuPG>
Run Code Online (Sandbox Code Playgroud)
我在这里找到了这个命令,但它没有提到“.sig”或“.asc”文件,所以我想我做错了什么。通过阅读手册页,我进一步尝试了以下内容:
C:\Program Files (x86)\GNU\GnuPG>gpg.exe --pgpfile C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: Invalid option "--pgpfile"
C:\Program Files (x86)\GNU\GnuPG>
Run Code Online (Sandbox Code Playgroud)
如您所见,结果非常令人困惑......
我在 SuperUser 上查看了这个,但似乎没有一个链接真正解决了我的问题,至少还不够直接让我对如何继续推进这个问题有任何想法。
这里有人可以帮助我了解 OpenPGP 的深奥技术和 GnuPG 程序的相关使用吗?我觉得学习 VBS 很愚蠢,但这绝不是羞辱:这绝对削弱并削弱了我对 IT 技能的任何信心(再说一次,我也没有理由吹嘘,因为我还没有获得 A+证书,哈哈)。
更新 04-04-2011
好的,所以我厌倦了在 Windows 上胡闹,决定通过启动 Ubuntu 来做正确的事情;仅此一项就让事情变得更加合乎逻辑!
所以这是我的命令列表以及我所在的位置:
proto@type:~$ cd Desktop/proto@type:~/Desktop$ gpg --import KeePass-2.14-Setup.exe.asc gpg: no valid OpenPGP data found. gpg: Total number processed: 0proto@type:~/Desktop$ gpg --import Dominik_Reichl.asc gpg: /home/proto/.gnupg/trustdb.gpg: trustdb created gpg: key FEB7C7BC: public key "Dominik Reichl " imported gpg: Total number processed: 1 gpg: imported: 1proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe gpg: no valid OpenPGP data found. gpg: the signature could not be verified. Please remember that the signature file (.sig or .asc) should be the first file given on the command line.proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC gpg: Good signature from "Dominik Reichl " 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: 2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BCproto@type:~/Desktop$ gpg --verify Dominik_Reichl.asc gpg: verify signatures failed: unexpected data
按照 Mike 的指示,我将“.exe”和“.asc”文件放在同一目录中,即桌面。正如您在代码中看到的,我还在桌面目录中放置了公钥“Dominik_Reichl.asc”。
请耐心等待,因为我已经被 MD5 彻底宠坏了;我假设上面的第 5 步是与此等效的 GPG:
C:\Users\user\>CD Desktop
C:\Users\user\Desktop>MD5Sum KeePass-2.14-Setup.exe
bae59065b24f0a6f2ed4bb9e0d6fc65f *KeePass-2.14-Setup.exe
Run Code Online (Sandbox Code Playgroud)
我这样说是因为每当我将“KeePass-2.14-Setup.exe”文件移动到桌面上的“temp”文件夹时,行为就会发生变化。当我运行命令时,这是我得到的结果:
proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
gpg: no signed data
gpg: can't hash datafile: file open errorRun Code Online (Sandbox Code Playgroud)
这些结果让我相信我应该从步骤 5 中提取“DSA 密钥 ID”和“主密钥指纹”,并将它们与签名页顶部的值进行比较。 那么,这是与 MD5 验证的相似之处吗?这就是全部吗?或者有进一步的措施吗?是否有我用来验证这两个字符串的命令?这些字符串是我真正需要检查的吗?那些字符串是什么?
现在还有一个我不得不面对的问题。在“主键指纹”结果中,“8065”和“5626”之间有2个空格。当我使用电子表格通过签名页上的字符串验证我的结果时,由于结果中存在额外的空格,我得到了“FALSE”结果。我检查了签名页的来源,看看浏览器是否忽略了多余的空白,但事实并非如此。
2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC # From Source of Signature Page
2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC # From My ResultsRun Code Online (Sandbox Code Playgroud)
只要我删除了多余的空格,我的结果就会与签名页中的结果相匹配,但它们不应该在我没有任何干预的情况下匹配吗? 空白的差异是否应该引起警报?
不幸的是,GPG 手册页对我来说仍然很模糊,或者有些人可能会把它称为“用户敌对”(搜索“用户敌对 gpg”),所以我需要一些额外的胡萝卜。我承认:我很笨。事实上,当我还在学习如何使用 MD5 验证时,我几乎和我在这方面一样挣扎。
在您提供的第一个命令中,您应该引用 .asc 签名文件 - 而不是 .exe 文件。.exe 文件还应与 .asc 文件位于同一目录中。
从 gpg 手册页:
- 核实
假设第一个参数是签名文件或分离签名并验证它而不生成 -
荷兰国际集团的任何输出。如果不带参数,则从 STDIN 读取签名数据包。如果只给出一个 sigfile,
它可能是一个完整的签名或一个独立的签名,在这种情况下,签名的东西应该在一个
不带“.sig”或“.asc”扩展名的文件。如果有多个参数,第一个参数应该是独立的
签名,剩下的文件就是签名的东西。要从 STDIN 读取签名内容,请使用“-”
作为第二个文件名。出于安全原因,分离的签名无法读取来自的签名材料
STDIN,而不用上述方式表示。
| 归档时间: |
|
| 查看次数: |
8455 次 |
| 最近记录: |