也许这个问题听起来很明显,但我想知道为非对称加密系统发布公钥有多危险?
我知道公钥用于加密任何有意这样做的人的消息,这就是为什么我们甚至可以从 Web 浏览器下载最常见 CA 的公共证书的原因。
但是如果我在网络服务器上发布我的公钥以便任何人都可以下载它是否安全?我这样做会面临什么风险?
谢谢。
也许这个问题听起来很明显,但我想知道为非对称加密系统发布公钥有多危险?
我知道公钥用于加密任何有意这样做的人的消息,这就是为什么我们甚至可以从 Web 浏览器下载最常见 CA 的公共证书的原因。
但是如果我在网络服务器上发布我的公钥以便任何人都可以下载它是否安全?我这样做会面临什么风险?
谢谢。
没有,这就是为什么它被称为公钥。如果不解决目前难以解决的数学问题,它就不能用于访问为您加密的任何内容。将来有可能解决这些问题,这将导致公钥允许消息被解码,但目前没有已知的威胁。
另一方面,如果您不共享您的公钥,那么您的私钥对您没有任何好处。使用非对称加密而不是对称加密的唯一原因是如果您需要让某人拥有您的公钥。否则,如果您只是为自己做事,对称会更快、更安全。
只是为了扩展上面提到的一些信息,基本上有两个风险需要考虑,它们都与算法无关(这些都是安全的)。
首先,是偶然的数据泄露。您是否以 Slate 先生的身份运行 slaterockandgravel.com,但您的密钥签名为 fflintstone@slaterockandgravel.com?贝蒂签署了你的钥匙,你不想让全世界知道吗?这些都是不太可能的情况,但请考虑一下。
其次,也许更多的是要防止有人在您的网站上进行中间人,并向您的朋友提供一个假密钥,他们计划用它来拦截他与您的通信。同样不太可能,但是您可以做两件事来避免该问题:a)将其放在 TLS 下 - 或 - b)(更好)将您的密钥上传到公共密钥服务器(sks 或类似服务器)并且只将密钥 ID 放在您的网站上(您甚至可以通过查找您的密钥 ID 提供到 sks 网络服务器的网络链接)。人们已经弄清楚了密钥分配,所以利用他们的工作。
对于这些事情中的大多数,受到这种攻击的可能不是你,而是某个人,所以我们每个人都应该表现得好像是我们自己,这样我们就有了一个更安全的社区。
但是,您必须发布您的公钥,以便人们加密打算发送给您的消息。这就是为什么您必须发布您的公钥并由您认识的人(最好是个人)签名。
更多信息:Web of Trust和密钥签名方
风险在于信任。非直观地,如果您不发布您的密钥,那么某人很容易发布他们自己的密钥并声称它是您的。公钥应该是非常公开的。
您最好的防御措施是确保您的密钥已正确签名。