服务器到服务器加密:无线密钥轮换。它可以提高安全性吗?

信息安全 密码学 加密 密钥管理
2021-08-15 17:00:10

我的另一个问题中,我探讨了是编写自己的加密还是使用现有的加密。有人建议我使用 TLS 或 AES 或已建立的东西。

这个问题是关于密钥轮换的。似乎只要有足够的资源,窃听者可能可以解密信息,但当他到达解密产品时,它已经很老了。但他有钥匙。

明显的缓解措施是定期更改密钥,但将数据物理带到该位置以创建新密钥可能不切实际。

但是,如果数据不断作为对密钥的调整,或者如果通过加密连接定期发送新密钥,则攻击者可能必须在完成解密之前存储大量数据,然后必须重新播放该数据数据以获取最新信息。

您对此有何看法?是否已经存在使用数据调整密钥或自动新密钥传输的加密例程?

3个回答

使用适当的 TLS-with-AES 会话,窃听者“解密信息”所需的时间将在几个世纪之内,至少如果“足够的资源”仅限于将整个木星质量转化为能量的话。那时我很确定所涉及的计算机会变成一堆锈迹斑斑,所以这一点有点没有实际意义。简而言之,对称加密不是TLS 的弱点;可以说,在过去的二十年里(至少),正确使用的加密并不是任何事情的弱点。

然而,对于真正的偏执狂,想要从仪式密码咒语中获得一种温暖而模糊的安全感,您可以随时在现有会话中协商新的握手。客户端和服务器都可以启动它。请参阅TLS 标准,尤其是第 7.4.1.1 和 7.4.1.2 节。

Thomas 完全支持 TLS 和/或 AES。

如果您使用的是不太现代的算法或者您更加偏执,那么您提到的两种关键刷新方法都已在不同时间点尝试过,它们都有缺点:

  • 数据作为新密钥的种子- 这是一些流密码的基础 - 例如,请参阅 DES 常用的密码反馈和输出反馈模式。诀窍是 - 接收者需要与发送者保持同步。如果传输中存在间隙,如果将错误的密钥应用于加密数据,则传输很快就会变成乱码。

  • 将新密钥包装在旧密钥中- 这个很少使用,因为如果您假设攻击者(给定时间)已经获得了您的密钥,那么您必须假设他已经捕获了您的所有密文并且他不会有获取新密钥的问题。大多数情况下,在这一点上,你已经为他节省了找出新密钥的工作。

该问题的典型解决方案是使用辅助密钥来传输对称密钥。这正是 TLS 所做的——它使用非对称密钥来保护对称密钥的分发。这增加了额外的负担——为了获得这种传输,攻击者必须找出用于对称密钥传输的非对称对的私钥。这里不会有太多曝光,因为它们唯一可能被加密的是新的会话(对称)密钥对。

另一个无法处理非对称密钥的系统是使用仅用于密钥分发的辅助密钥分发密钥。这将有一个保质期,因为该密钥也会有暴露问题,但它在一定程度上降低了风险。

密钥分配是密码学中最棘手的问题之一。不管你怎么切,你至少要以一种有点痛苦的方式把第一把钥匙弄出来。然后,您需要一种方法来使密钥保持适当的新鲜度,并且如果密钥丢失或受损,您需​​要一种方法来恢复。所有这些技术的差异很大,具体取决于您是在谈论非对称密码还是对称密码,并且一些最好的系统将两者混合以获得最大效力。

我讨厌我即将给出的答案,但在这种情况下它是正确的。如果您必须询问是否使用预先存在的加密库或尝试创建自己的加密库,那么您肯定已经有了答案。即便如此,创建 AES 或 Skein 之类的东西或类似的东西最好还是作为学习练习而不是生产练习。也许我误读了您的意图,但不要试图创建自己的加密货币,而不是为自己带来乐趣。

不过,要回答您的问题,加密强度的重点是使用适当的强加密来确保数据的机密性,只要它有用。如果通过使用今天的计算能力,您正在传输需要保密 9 年的数据,但破解加密需要 100 年,我认为您在不旋转密钥的情况下可能会很好。

我问什么是引入额外复杂性的好理由,没有任何好处。听起来您要求在深夜解决一些试图检索一些关键信息的神秘错误。