sshd 设置 RekeyLimit 的重要性是什么?

信息安全 SSH
2021-08-21 18:35:37

man sshd_config页面状态:

密钥限制

指定在重新协商会话密钥之前可以传输的最大数据量,可选地遵循在重新协商会话密钥之前可能经过的最大时间量。[...] RekeyLimit的默认值为“default none”,这意味着在发送或接收密码的默认数据量之后执行密钥更新,并且不进行基于时间的密钥更新。此选项仅适用于协议版本 2。

假设我有一个运行时间很长(几天/几周)的连接,来回传输千兆字节。如果我将该值设置为默认值不基于时间的密钥更新以外的任何值,它是否会对针对中级威胁的保护级别产生任何影响?

此设置是否会阻止任何不寻常的攻击,或者反过来为攻击者提供独特的机会?使用什么密码和密码模式(CBC vs CTR vs OpenSSH 的 GCM 实现)是否重要?

2个回答

密钥更新背后的想法是会话密钥可能容易受到一些未指定的攻击,例如直接密码分析或侧信道攻击。大多数攻击的一个共同主题是它们需要分析大量加密数据才能执行。通过限制使用单个会话密钥传输的数据量,您可以有效地阻止大部分针对您的加密密钥的攻击,无论这些攻击可能是什么。

您使用的密码和链接方法确实会影响对手可能部署的攻击的类型和有效性。但是在几 GB 之后轮换会话密钥的防御是一种相当有效的缓解策略。

据我所知,当你选择合适的值(流量和时间限制)时,你应该主要考虑连接的运行时间和流量。如果您没有足够的流量,则时间限制应确保及时重新协商会话密钥,以“防止”任何时间相关的攻击(例如针对密钥空间的复杂攻击)。另一方面,如果你有很多流量,你不想将流量限制设置得太低,所以它不必过于频繁地重新协商密钥。

这个选项主要是为了防止任何依赖于流量或时间的攻击,因此我怀疑它会直接带来任何新的攻击机会。

使用的密码在某种程度上很重要,因此默认流量设置在1G 和 4G之间,具体取决于密码。

根据您提供的信息,我认为您应该主要关注的是设置一个不太低的流量限制。如果认为连接上的流量在很长一段时间内不会显着减少,时间限制可能是一个有用的补充,但不是必需的。