同一数据中心的两台主机之间的流量是否应该加密?

信息安全 加密 隧道
2021-08-27 21:52:02

我们有两台主机,理论上在同一个数据中心。这两台机器托管在 Online.net 上。我们有一点争论:是否应该加密两台主机之间的流量。

我们需要交换的流量是 Redis 查询。将要交换的数据是 Twitter 和 Facebook 用户 ID、指示要做的工作的代码和市场 ID,它本身就是一个 UUID。典型的查询和响应是:

> hgetall Twitter:12345
1) 1) "c4a9c7f0-78d1-0132-b14c-70921c10876c"
   2) "F"

我们正在考虑的两个实现:

  1. 使用带有端口转发的 SSH 隧道将 Redis 服务器隐藏在公共 Internet 之外。在托管 Redis 服务器的机器上,使用单个 aurthorized_keys 创建一个单独的用户,并使用适当的安全性以不允许运行任意程序;

  2. 只需使用防火墙将流向 Redis 的流量限制为我们需要的单个 IP 地址,仅此而已。

我们不确定哪个会“更安全”(或更恰当地说,风险更小)。添加用户和配置 SSH 会带来复杂性,而添加防火墙规则则要简单得多。另一方面,如果攻击者读取飞行中的数据包,他们能收集到哪些有用的数据?

我要防止的是,在获得对客户端计算机的访问权之后,攻击者可以在 Redis 服务器计算机中获得立足点,该服务器计算机托管更多服务。

3个回答

如果机器在您自己的网络上(家庭、公司的数据中心等),简单的基于 IP 的限制和/或将与 Redis 相关的机器放在单独的 VLAN 上就足够了。

但是,如果是托管服务提供商,我建议将他们的网络视为敌对网络并等同于开放 Internet,在这种情况下,您应该在计算机之间使用 IPSec 创建自己的内部网络,并通过该网络传递您想要的任何未加密流量。

它不会防止托管公司对您进行流氓攻击,但至少攻击者必须做更多的事情(需要管理程序或物理访问的内存分析)才能获取 IPSec 密钥并理解您的数据,而不是被动的抓包非常简单。

在这种情况下,我想说防火墙中允许进出相关设备的流量的显式 ACL 应该没问题。

听起来正在交换的信息只是用户 ID?如果是这种情况并且信息不一定是敏感的,我认为仅确保规则到位以允许流量不会有问题。

Facebook 最终致力于加密其私有数据中心内的所有数据。

加密流量会产生开销……如果操作正确,CPU 性能会有点小,但在管理时间上有点不重要,以弄清楚如何顺利配置它。我会推荐一个你没有列出的选项:SSL with connection pooling and Perfect Forward Secrecy。SSL 中的大部分开销都在初始的非对称握手中,因此池有助于提高性能。PFS 意味着如果主机密钥在以后被泄露,记录的加密传输将没有价值。

这意味着如果您有良好的证书控制,即使通过网络窃听进行窃听对攻击者来说也基本上是无用的。