tldr 版本:当我尝试比较应该用于同一实体的公钥时,我通过不同渠道获得的版本不一样,而我下载为像 somekey.sig.asc 这样的文件的版本是较小的文件。
我正在尝试学习整个 gpg 并练习正确使用它。一个关键步骤是验证公钥确实属于它应该属于的一方。在没有个人联系链的情况下,显而易见的事情是从不同来源获取多个副本并验证它们是否相同。我似乎永远无法做到这一点。我怀疑部分问题在于换行符、回车符、空格、制表符和其他由 SCOPTDUI(程序员的秘密阴谋使用户发疯)发明的字符。这是一个示例,我相当确定密钥是相同的,但我无法想出一个程序来证明它。
来自 MIT 密钥服务器的 Veracrypt 团队密钥: https ://pgp.mit.edu/pks/lookup?op=get&search=0xEB559C7C54DDD393
Veracrypt 网站的 Veracrypt 团队密钥: https ://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc
我都直接下载了。我已将两者复制并粘贴到文本文件中。我已经去掉了序言和结尾,留下了每个以相同的乱码开头和以相同的乱码结束的块。
我已经通过各种 tr 过滤器运行它们,例如:
cat file | tr -d '\040\011\012\015' > file-tred
麻省理工学院的文件仍然大得多。我已经将它们加载到 gedit 中,我可以复制一个的大量块并在另一个块中搜索该块并找到一个相同的子字符串,但不是整个文件。
这不是一个孤立的例子。麻省理工学院并不是独一无二的。我检查的第二个密钥服务器(在新西兰,但我不允许在这里发布第三个链接)有同样的问题。Veracrypt 也不是一个特例。每次我决定学习以“正确的方式”做 gpg 并且在放弃前几天在同一堵墙上敲打我的头时,我都会遇到这个问题。这些东西没有以标准化形式发布是否有某些原因?有什么方法可以让这件事变得简单吗?我错过了一些明显的东西吗?是什么让 MIT 文件如此之大?
附录:作为一个实际问题:
gpg --keyserver address.like-this-with-no-protocol-prefix-and-no-trailing-slash.net --search SOMETHING
似乎正在检查我已经拥有的密钥的重复项并报告“没有变化”,前提是我选择了一些东西。所以,从功能上讲,我想这没问题。我仍然想知道为什么我的手动比较失败。