在中型企业部署 PGP 的最佳实践是什么?
我的想法是:
- 设置所有邮件客户端使用的 PGP 密钥服务器
- 创建一个 PGP[电子邮件保护]
- 所有用户都安装并信任密钥管理员的密钥
- 所有用户创建一个密钥,然后由密钥管理员签名,并安装在密钥服务器中
这看上去满足了我基本的需求,但是不知道还有其他考虑因素吗?
另外,我不确定密钥服务器在网络上的位置。如果它在内部网络上,那么没有 VPN 访问权限的远程工作人员将无法访问它。如果它在互联网上,那么我担心外部人员能够获取员工名单的隐私风险。是否可以使用密码保护密钥服务器?
答案1
使用通用证书颁发机构是合理的,尤其是当许多人使用 OpenPGP 时。使用这样的 CA 并不违背去中心化的信任网络方法,它只是信任网络中一小部分的中央信任点,并且仍然允许绕过 CA 进行信任连接。
您提出的基本概念看起来完全正确且合理。下面是一些我认为可以考虑的事情,可能它仍然可以通过其他想法进行扩展。
创建/选择 CA
您可以创建自己的 CA,您一定可以信任它(您的员工也应该可以信任它)。如果您想与外部参与者沟通,他们仍然必须信任您的 CA。
还有已经很好地集成的 CA在信任网络中。最重要的可能是 CAcert,还有德国 Heise Verlag(但每位员工都必须前往德国汉诺威进行签名 - 这可能不是一个可行的解决方案)。另一方面,CAcert 提供组织保证,并允许您轻松创建 X.509 和 OpenPGP 证书。CAcert 拥有最好的集成 OpenPGP 密钥之一并且很可能受到许多 OpenPGP 用户的信任,并且可能值得考虑用作 CA。
内部或外部密钥服务器
内部密钥服务器(位于 VPN/防火墙/NAT 后面)无法从外部访问,因此没有“陌生人”可以查询它。如果仅在内部使用 OpenPGP,这可能会引起人们的兴趣,但如果客户和其他利益相关者也应该能够与您的员工私下沟通,那么您可能应该让他们可以访问互联网。这可以通过将您自己的密钥服务器暴露在互联网上并找到其他要同步的服务器来实现,或者直接依赖已经可用的密钥服务器。
无论如何,需要考虑的是很难阻止密钥上传到其他密钥服务器。一些客户收到了密钥并且(有意或无意地)上传了它?一些员工错误配置了他的设置并使用了外部密钥服务器而不是本地密钥服务器,例如当他想要查询其他密钥时?
关于这些风险及其可能性,讨论使用密码保护密钥服务器似乎不是主要问题。我认为协议无论如何都不支持这一点(但它们是基于 HTTP 的,也许 HTTP 身份验证有效?)。如果您想保持密钥服务器的私密性,将密钥服务器置于 VPN 后面可能是最佳解决方案。
公开宣布使用 OpenPGP也可能会引起人们的兴趣,因为这是一种非常重视安全和隐私的广告,增加信任贵公司的(未来)客户。
集中撤回员工的 OpenPGP 密钥
如果你希望能够撤回员工的 OpenPGP 密钥,例如在他因冲突离开后,请查看OpenPGP 有可能创建一个撤销密钥绑定签名。如果员工的密钥使用此签名来表示 CA 的主密钥,则此人可以撤销其他人的密钥。不过:我不知道此功能的实施范围有多广。
或者,已经收集撤销证书在创建密钥时,并将它们集中存储 - 那么撤销日期是固定的,但至少你有一条逃生路线。
您可能还想设置签名过期(该功能通常不使用,但被广泛实施)到不久的将来的某个日期,例如一个月。自动签署员工的密钥很容易,如果有人离开你的公司,他的密钥很快就会过期。如果通知来得足够早,你甚至可以在他辞职之前及时停止签名。
定期更新员工的密钥存储
如果您对员工的计算机进行了集中管理,请考虑定期更新密钥库。如果员工缺少新密钥的信息,他们可能会意识到要查询密钥服务器,但他们不会意识到在撤销密钥的情况下要进行更新……考虑使用简单的 cron 作业或类似方法,例如每天更新密钥库。