您将个人 GPG 私钥存储在哪里?

信息安全 隐私 密钥管理 备份 gnupg
2021-08-08 22:24:35

所以,我想开始使用pass,但我需要一个 GPG 密钥。此应用程序将存储我的所有密码,这意味着一旦生成我的私钥就不会丢失,这一点非常重要。

硬盘坏了,云提供商一般不信任。并不是说我不相信他们不会弄乱我的密钥,而是他们的安全性可能会受到损害,并且我的所有密码都可以找到。

那么,我可以在哪里安全地存储我的 GPG 私钥?

4个回答

我喜欢把我的存储在纸上。

使用 JavaScript(阅读:离线)二维码生成器,我以 ASCII 装甲形式创建了我的私钥图像,然后将其打印出来。在旁边记下密钥 ID,并将其存储在物理上安全的位置。

无论您使用什么操作系统,只要您拥有支持 JavaScript 的浏览器,以下这些都应该适合您。

对于 Windows 用户:

点击此处下载 JavaScript 二维码生成器:https ://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.zip

在某处提取文件,然后index.html按照以下说明进行编辑。

对于 MacOS 或 Unix 用户:

$ # This specific version is to avoid the risk that if someone hijacks `davidshimjs`'s 
$ # repository (or he goes rogue), you will still be using the version that I vetted.
$ # For the truly paranoid you don't trust GitHub either, and you will want to verify the code you download yourself.
$ wget https://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.zip
$ unzip qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674.zip
$ cd qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674/
$ # We need to edit index.html so that it supports pasting your PGP key
$ # Open the file in a text editor like Notepad, vi, or nano
$ vi index.html

将第 11 行从:

<input id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /><br />

到:

<textarea id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /></textarea><br />

现在使用 Explorer、Finder 或 Nautilus 等导航到您在此处获得的目录。

例如:

$ pwd
/Users/george/Documents/Code/qrcodejs/qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674
$ open .

在 Finder 中查看目录

现在,双击index.html您刚刚编辑并保存的文件。

正在生成二维码

您很可能需要将您的 PGP 密钥分成四等分甚至更小,以创建漂亮的大 QR 码,以便以后轻松扫描。粘贴到文本区域后,点击远离文本框,您的二维码应该会出现。随时保存并适当命名它们,以便您了解它们的顺序!

创建所有代码后,使用例如手机二维码扫描仪应用程序扫描它们。对于偏执狂,一旦安装了条形码阅读器,请让此设备保持离线状态,然后在重新上线之前对设备执行完全擦除和恢复出厂设置。这将防止 QR 扫描仪应用程序泄露您的 PGP 密钥。


如果您有一个大密钥或很多密钥,我推荐使用paperbak,但请务必写下有关稍后如何恢复数据的说明。与如何备份它一样重要的是如何从备份中恢复它。我可能会尝试使用虚拟数据来确保您确切知道它是如何工作的。

值得注意的是,您可以使用密码保护您的私钥,因此即使它由云提供商托管,他们也看不到您的私钥,但是您的所有密码安全性都会降低到该密码而不是完整的私钥,而不是提到云提供商可能会在一夜之间消失。

在我的妄想症就像一个成熟的西红柿,乞求我去摘它的日子里,我将私钥(自然它已经受密码保护)分成两半,然后通过 XOR 将它们组合在一起形成第三串。然后我对每个字符串使用简单的密码加密 ( gpg --symmetric),并将每个字符串放在不同大陆的远程服务器上。理想情况下,每个远程服务器都使用不同的 ISP 或云提供商。

但随着药物的作用——至少在我意识到 NSA 的雄心勃勃之前——我过去实际上所做的只是加密了(整个)私钥(再次使用gpg --symmetric)并将其放在我的智能手机上。

现在,在阅读了其他答案后,我发现三个 QR 码的想法,嵌入到三张家庭照片中,非常吸引人。是时候买更强的药了?

这不是我目前使用的,但我正在考虑它:

  1. 用很长的对称加密密钥加密私钥
  2. 使用Shamir's Secret Sharing将对称加密密钥拆分为 7 份(如 Voldemort),至少需要 5 份才能成功合并。
  3. 弄清楚在哪里放置7 个秘密备份,一些想法:
    • 家中保险箱中的媒体卡
    • 我钱包里的印刷纸
    • 在 Dropbox
    • 海外保险箱
    • 皮肤植入物
    • 埋在某个随机的家伙的坟墓里
    • 有毒的宠物蛇纹身

这样,我可以失去对几个共享的访问权限,但仍然可以访问密钥;而攻击者将不得不攻陷 5 个不同的单独安全的地方,我很容易进入,但对于邪恶的黑暗领主的追随者来说,在房子前面的那辆黑色汽车中很难进入 <贴上锡纸>。

一种选择是使用密码加密您的密钥,并将加密的密钥存储在云服务中。

我的笔记本电脑(硬件加密驱动器)和外部硬盘驱动器上的 Truecrypt 容器上都有密钥作为备份。好的,这不是数据丢失的零风险,但已降至我可以接受的水平。