推荐用于生成主密钥对的操作安全性?

信息安全 密钥管理 pgp RSA 不对称 gnupg
2021-08-26 18:15:59

我一直在寻找为(开放)PGP 生成非对称密钥对的操作安全指南。例如,我找到了大量关于如何使用 GnuPG 生成 RSA 密钥对的技术指南,但没有太多关于如何安全地生成密钥对的有组织的内容。

用例是希望使用非对称加密对电子邮件和其他文件类型进行签名、加密和解密的普通用户。创建密钥对的威胁模型不包括必须抵御三字母机构、有组织犯罪、恐怖分子或恶意公司(即,不需要雇佣保镖或获得 24/7 全天候服务)安全系统)。

我从网上的各种来源(包括非常有用的 GnuPG 邮件列表和文档Debian WikiRiseUp.net本指南)收集了以下步骤作为一般指南,但我不确定我是否遗漏了什么。在这种情况下还需要考虑什么?


  1. 查找您认为相对没有恶意软件的计算机
  2. 下载 Live Linux 发行版 CD/DVD/USB,并验证其签名以确保您没有安装受污染的版本
  3. 启动经过验证的 Linux 发行版
    1. 在继续之前确保发行版与任何网络连接完全断开
    2. 通过编辑 .gnupg/gpg.conf 文件来配置 GnuPG 以遵循此处的指南
  4. 使用 GnuPG 创建私有 RSA 密钥和两个子密钥(签名和加密)
    1. 在(公共)子密钥上设置到期日期
    2. 创建主私钥的纸质和数字备份
    3. 将备份存储在两个不同的物理位置,因此不会出现单点故障
    4. 为私有主密钥创建吊销证书
    5. 创建吊销证书的纸质和数字备份
    6. 将备份存储在两个不同的物理位置,因此不会出现单点故障
  5. 从钥匙串中剥离主私钥
  6. 将没有主私钥的 GnuPG 钥匙串复制到工作计算机、个人笔记本电脑等。
1个回答

如果您要在已安装的操作系统上运行密钥生成,“相对没有恶意软件”可能还不够好,如果您要使用 LiveOS,则可能与(密钥生成)无关。(我在这里忽略了固件利用又名 BadBIOS 的可能性,因为您的威胁模型似乎没有包含它们,而且鉴于当前的情况,它们基本上不可能防御。)

您的过程似乎很合理,但请记住,即使没有主私钥,在其他机器上拥有您的加密和签名子密钥也会带来一些风险。虽然如果它们被泄露,您可以随时更换它们,但这不会阻止某人解密在轮换密钥之前加密的数据,并且他们仍然可以像您一样签署东西,直到您撤销您的密钥(并且验证者拿起撤销!)。

此外,请记住,诸如此类的设置cert-digest-algo SHA512可能会导致与使用旧版本软件的人的互操作性问题,尤其是旧版本的商业 PGP。如果你不担心,那就继续吧。

对于您的纸质备份,我会查看Paperkey,它是由 RFC 4880(OpenPGP 规范)的作者之一 David Shaw 编写的,它剥离了重建它所需的裸组件的密钥。这意味着您可以打印更小的密钥,从而在您进行扫描+OCR 或重新输入纸质备份时增加成功的可能性。