发送私钥和 SSL 私钥的推荐方式和最佳实践是什么?我正在考虑压缩文件,然后使用gpg:
gpg -c thefile.zip
那么问题就变成了如何将用于加密的密码发送到另一端?有更好的解决方案吗?
发送私钥和 SSL 私钥的推荐方式和最佳实践是什么?我正在考虑压缩文件,然后使用gpg:
gpg -c thefile.zip
那么问题就变成了如何将用于加密的密码发送到另一端?有更好的解决方案吗?
TL;DR:私钥被称为私有是有原因的。
您可以通过根本不传输它们来保护私钥。
编辑:对于主机提供商的私钥的规定用例,您最好还是在原地生成它们。
GPG 可以让您安全地发送这些信息,而无需发送密码。如果目的地有自己的 GPG 密钥,您可以加密文件,以便只有他们可以打开它。
例如,下面的命令将允许我只thefile.zip
用我的 GPG 密钥打开,而我们中的任何一个人都不会交流密码。
gpg -e -r E9053BDA thefile.zip
或者,此命令将在一个命令中zip
加密所有*.crt
文件。
gpg-zip -e -r E9053BDA *.crt
文档参考:
对于以任何安全方式私下传输密钥(或您加密它们的任何密钥/密码),您别无机会,只能从一开始就使用预先建立的受信任的安全通道。
根据您的需求和可用的可能性,这可能包括
实际使用什么方法完全取决于您的需求和潜在的 evedroppers。如果政府机构和秘密机构可能是攻击者,那么这些方式中的大多数将从一开始就受到损害:电话和普通邮件都将不再安全——可能还有其他方式。
如果你只是想和别人通信,两端都应该生成自己的密钥对,分发公钥,同时保持私钥的私密性。您仍然必须通过如上所述的预先建立的可信通道交换有关公钥的信息,例如指纹。
首先,阅读 Deer Hunter 上面写的内容。安全发送私钥的最佳方法是从一开始就永远不要发送它们。句号。
话虽如此,在某些情况下,您可能合法地需要将一些存在于您手中和一个位置的私钥转移到另一个位置的其他人手中。 您应该尽可能减少这些时间,最好只是让需要它们的客户端自己生成密钥。但有时由于某种原因(或者,更有可能)这不是你的决定,这可能是不切实际的。那么,你会怎么做呢?
好吧,当政府和科技公司需要将非常敏感的加密密钥(如果最常见的是对称或什至一次性密匙分发场景,而不是使用非对称私钥)分发到远程位置时,您会做他们所做的事情:您:
(1.)使用仅为一次传输创建然后销毁的唯一“外部”密钥在要传输的密钥/它们离开您的设施之前对其进行加密。如果该保护性加密密钥是从密码或密码短语生成的,则密码或短语满足非常高的强度要求。
(2.)使用比现有的通用网络(也称为 Internet! )具有更高安全性的通道将加密的包裹送到目的地。包含加密密钥的存储设备的物理交付是最简单但并不总是最实用的渠道。
(3.)将解锁保护性加密的“外部”密钥(或构成密钥基础的密码/密码)保留在您的手中,直到您需要传输您要传输的密钥,然后在客户的位置。这意味着您要么亲自参加密钥传输事件以解密保护性加密,要么使用另一个独立的高安全性电子通道发送解锁保护性加密的密钥,以便在解密时将其送到客户处。
(为什么不直接跳到 #3 并通过最高安全性的电子渠道将您需要移动到客户端的原始私钥发送给客户?因为我们不信任任何一个渠道,甚至不相信我们认为具有特别 -良好的安全性,几乎足以处理像私钥这样的信息。我们让可能的对手拦截至少两个传输通道/机制,并且我们很难从任何一个中拦截任何有用的东西,更不用说两者了。
现在,这一切听起来既艰巨又复杂。但实际上,它也不一定需要。(假设我们处于一个常见的情况下,这个键很重要但它不会成为真正的灾难性如果它被妥协。)例如,你可以:
- 使用备受推崇的硬件加密保护 USB 设备 - 不乏选择 - 用于传输。将私钥写入其中,用唯一的强密码/代码/短语将其锁定,然后将其穿过城镇到达需要密钥的客户位置。当你到达那里时插入它,解锁它,并将私钥复制到客户的系统。
- 拿一个新的(以前没有用过的)普通 U 盘。使用您非常信任的软件程序来加密文件中的私钥。将文件传输到 USB。然后仔细检查 USB——只是为了确定——它上面唯一的东西就是现在加密的包。做挂号信或联邦快递将其送到客户的网站。当它到达时,使用 Off-the-Record 或类似的安全消息传递应用程序将保护加密的密钥(或重新生成它所需的密码/短语)传送给客户端,然后客户端解密并获取私钥.
- 需要能够以按需和电子方式反复向客户分发密钥?如上一个示例所示,加密文件中的私钥。拥有一个简单但安全的 VPN 或 SSH 访问服务器,仅用于加密密钥文件分发,该客户端已预先共享身份验证信息以登录,并且您通常与任何远程访问保持断开连接。当客户打电话给您并告诉您他已准备好接收密钥时,将其从您的内部存储环境传输到服务器。启用从客户端 IP 地址到服务器的远程连接。客户端连接并获取加密的密钥文件。最后,您然后使用高安全性消息传递应用程序(或其他)将保护密钥传输给您的客户端。
很多选择。确实,如果您希望转移安全可靠,则每项工作都涉及一些工作。对工作的前景感到厌烦?这是可以理解的。在这种情况下,请参阅第 1 点(Deer Hunter 提出的原始观点):创建一个您根本不需要转移私钥的技术安排。