我是使用 GnuPG 的新手,并试图了解如何最好地使用它。我已经阅读了针对非技术人员的 GPG/PGP 的简短易懂的解释?,但大多数指南都是从单机角度解释 PGP 的。
我想在三种计算设备上使用 GnuPG:Linux PC、Linux 笔记本电脑和 Android 手机。
基本用例是加密/解密由 IMAP 服务管理的电子邮件,因此所有设备都需要相同的私钥进行解密。
我想我的选择是:
只需将我所有的密钥复制到每台设备上的密钥环,并主要依靠私钥密码进行保护。
创建一个主密钥(使用 --gen-key)来代表我的身份,然后创建一个单独的一次性密钥(再次使用 --gen-key)用于加密/解密电子邮件并使用主密钥签名。前者只驻留在我的电脑上,后者分布在每个设备上。只要我的移动设备没有受到损害,一次性密钥就一直有效。
我可能过于偏执,让事情变得比实际情况更复杂,但请幽默我。我相信不要把所有的鸡蛋放在一个篮子里。
主密钥应该是我的数字身份。将花费大量精力围绕该身份建立信任,而我宁愿忍受偏执带来的不便,也不愿因疏忽而丢失我的密钥,不得不围绕新的主密钥建立信任(也许这不像我那么糟糕)想,但我对此很陌生)。
与 PC 相比,我更容易丢失笔记本电脑或手机。如果丢失 == 妥协,那么我宁愿丢失一个一次性密钥对(我可以撤销)而不是我的主密钥对。我总是可以将我的主钥匙的信任赋予新的一次性钥匙。
抱歉问了这么长的问题。:-)
TL; 博士
密码是否足以保护我在多个设备上存储我的主私钥?
我的选项#2 计划可行吗?我做错了什么还是可以改进?
如果选项#2 是个坏主意,那么在多个设备上为单个用户使用 GnuPG 时的最佳实践是什么?
我想在公共服务器上上传我的 PGP 公钥。在 PGP 还是一个独立的组织之前,我听说过很多关于 KeyServers 的事情,但是在赛门铁克收购 PGP 之后,这些服务器的未来是什么?
有没有其他替代方法可以让我的公钥保持在线?
我有两封经常使用的电子邮件,对于这两封电子邮件,我都想使用由 GnuPG 生成/管理的 PGP 密钥。如果可能的话,我想避免为每封电子邮件创建不同的密钥对,因为这对于我的情况是不必要的,即我可以互换使用两封电子邮件。
有没有办法做到这一点?
我使用的是 Mac OS X 10.5 和 Ubuntu 11.04,以及 Thunderbird 3.1.10。
提前致谢!
假设我向 GPG/PGP 密钥添加了到期日期,然后由于某种原因我无法在其时间到期之前延长密钥的到期日期。
假设我仍然可以访问私钥(并且公钥只是过期,没有被撤销)我还能续订吗?
有没有人有一个链接到一个很好的,但简短的(1-2 段)解释使用 GPG/PGP 签名和加密电子邮件的好处,重点是非技术读者?也就是说,为什么有人会关心签名的电子邮件?
我已经看过了,但我发现的都是技术性很强、充满行话的文件;也许我的 Google-fu 让我失望了。
在 ssh-keygen 生成的公钥文件“id_rsa.pub”中,==后面的部分重要吗?
我问是因为当我将“root@somedomain.com”更改为“root”时,它似乎仍然有效。
更一般地说,我很好奇那一半的目的是什么。
我了解密钥块本身以及密钥散列的效用,但我不知道为什么需要附加信息,因此我无法开始猜测附加信息的效用。
具体来说,
它往往会被间接提及,这会导致混淆,因为spacewalk清楚地识别出了指纹和 ID 之间的差异,而Fedora 发布的一些 GPG 文档中包含了这句话
对于 KEYNAME,替换主密钥对的密钥 ID 或指纹,
这使得两者似乎有着相同的目的;但这没有意义,因为如果是这样的话,为什么你需要两者都开始呢?
我最近切换到基于 Arch 的发行版,称为Manjaro。
我在从aur arch 存储库安装一些软件包时遇到问题
curl-7.54.0.tar.gz ... Passed
curl-7.54.0.tar.gz.asc ... Skipped
==> Verifying source file signatures with gpg...
curl-7.54.0.tar.gz ... FAILED (unknown public key 5CC908FDB71E12C2)
==> ERROR: One or more PGP signatures could not be verified!
Run Code Online (Sandbox Code Playgroud)
我需要做什么来解决这个问题?
除了名义上的问题,这两种技术是否兼容?如果是,在什么情况下?
这两种技术的相对优势是什么?
如果您创建新的 GPG 密钥,默认情况下您将获得一个仅签名的主密钥对和一个仅加密的子密钥对。
pub 2048R/XXXXXXXX created: 2013-02-09 expires: 2014-02-09 usage: SC
sec 2048R/XXXXXXXX 2013-02-09 [expires: 2014-02-09]
sub 2048R/ZZZZZZZZ created: 2013-02-09 expires: 2014-02-09 usage: E
ssb 2048R/ZZZZZZZZ 2013-02-09 [expires: 2014-02-09]
Run Code Online (Sandbox Code Playgroud)
(输出组合自gpg --list-keys和gpg --list-secret-keys)
还建议不要使用您的主密钥进行常规签名(邮件/数据),而是创建另一个仅签名子密钥并将您的主密钥删除/备份到安全和离线位置,仅用于密钥签名.
这是有道理的,因为大多数加密端点是笔记本电脑/电话或其他始终在线的移动设备,它们会使您的私钥面临被盗或丢失的风险。使用安全存储的主密钥,您可以随时撤销此类丢失的子密钥,而不会丢失您的密钥签名。
因此,虽然主密钥 <-> 子密钥分离对我来说很清楚,但我不明白为什么要强调分离签名和加密密钥(即使它们都是子密钥)。有人可以解释为什么这是必要的,或者至少从安全或实用的角度解释有什么好处?
从技术上讲,创建签名和加密子密钥是完全可行的,并且由 GnuPG 支持。
pub 2048R/YYYYYYYY created: 2013-08-13 expires: 2014-08-13 usage: SCEA
sub 2048R/VVVVVVVV created: 2013-08-13 expires: 2014-08-13 usage: SEA
Run Code Online (Sandbox Code Playgroud) pgp ×10
gnupg ×6
email ×2
encryption ×2
security ×2
arch-linux ×1
linux ×1
openssh ×1
pacman ×1
ssh ×1