我可以使用 GnuPG 来验证文件未经修改且来自正确的发送者吗?
让我们来看一个简单的用例:
- 我有这个包含一些重要内容的文件,假设它在 .tar.gz 文件中。
- 我使用类似 GnuPG 的东西对这个文件进行签名
- 我将此文件发送给另一个人。
- 另一个人想知道文件是否被中间人修改,以及我是否是发送者。所以他使用相同的工具来验证文件是否正常。
GnuPG 之类的工具可以提供帮助吗?
注意:两台计算机都是基于Linux的,命令行很好:)
/谢谢
这就是我所做的。
安装:
sudo aptitude install gnupg
生成密钥并导出:
gpg --gen-key
gpg --export -a "Johan Simonsson" > public.key
将 public.key 放在 U 盘上交给对方
创建一个测试文件并对其进行签名:
tar -cvzf test.tar.gz ~/.vim
gpg --output test.sig --detach-sig test.tar.gz
tar -cvzf file.tar.gz test.sig test.tar.gz
另一个人将我给他的密钥导入到 USB 记忆棒上。
gpg --import public.key
然后我将 file.tar.gz 通过电子邮件发送给另一个人,他可以使用以下命令验证我发送给他的文件:
tar -xvzf file.tar.gz
gpg --verify test.sig test.tar.gz
这似乎是一个不错的解决方案(因为钥匙并不到处都是)
注意:或者我们可以使用 PGP 服务器来存储密钥,但那是另一个话题。
答案1
是的,使用 GPG 的分离签名功能。它将创建一个包含签名的单独文件,并且可以使用该签名来验证该文件。
签署:
gpg --output yourfile.sig --detach-sig yourfile.tgz
核实:
gpg --verify yourfile.sig yourfile.tgz