这种设置能提供足够的安全性吗?

这种设置能提供足够的安全性吗?

在以下场景中,我想看看我是否可以按原样提供足够的安全性,或者重新架构是否有任何切实的好处(例如将其更改为相关服务位于 DMZ 中,或类似的东西)。假设我试图保护的数据高度敏感,如果泄露,将成为头条新闻。

  • 在可以访问内部网络的服务器上(因为我们还需要访问数据库或其他内部服务),会有一个监听特定 TCP 端口的 gRPC 服务。
  • 我事先知道我只希望来自单个已知、可信 IP 的客户端进行连接,因此我们将在外部防火墙中创建一条规则,以允许从该单个 IP 到 gRPC 服务的 IP 端点的传入 TCP 连接。
  • 对于加密和身份验证,我们还将在 gRPC 服务上进行 TLS 1.2 相互身份验证。

据我所知,这应该是可以接受的,因为能够连接到该端口的唯一方法是合法拥有该 IP(并且它是一个静态 IP,我们信任已分配 IP 的实体)或欺骗它,并且潜在的攻击者必须知道您必须欺骗该特定 IP,这在没有内部信息的情况下似乎不太可能(即使这样,您也只能发送试图破坏事物的数据包并且不会得到响应,因为它们会路由到真实 IP,对吗?)。假设恶意行为者要控制该 IP,他们仍然必须拥有适当的证书才能通过 TLS 部分,知道他们试图利用的协议类型,可能需要应用程序层凭据等。我只认为如果我期望连接的实际客户端计算机受到威胁,这种情况才有可能发生;据我所知,它周围有良好的物理/网络安全性,所以我认为这种情况应该不太可能发生。

此外,如果我根本不设置防火墙会怎么样?安全级别是否仍然可以接受,因为您必须拥有由与服务器证书相同的 CA 签名的合法证书,或者拥有漏洞才能通过 TLS 身份验证?无论如何我都会设置防火墙,因为实际上只有一个客户端我想要连接,但我对此也很好奇。

是否还有其他我没有考虑到的问题,或者有其他充分理由促使我放弃这种不安全的设置?提前致谢。

答案1

您的设置与域名行业中的设置非常相似,请阅读RFC 5734例如。有 3 层安全性:限制客户端可以连接并使用 TLS 的 IP 地址、限制可以使用的 X.509 证书,然后是协议 (EPP) 级别的登录名+密码。

即使使用 TCP,您也不能仅根据 IP 地址进行身份验证,因为会发生 BGP 欺骗,这意味着有人可能会“获取”您的 IP 地址并能够从中发起流量并获得回复。这可能只持续几分钟,但已经足以造成一些伤害。因此,您还需要在 TLS 级别进行身份验证:TLS 提供多种服务,其中包括机密性和身份验证;每个人都更关注机密性(也因为它是容易做到的部分),事实上身份验证更重要,没有它,您可以发送加密内容,但发送给未知方,这可以被视为与发送纯文本类似。

当然,特别是对于 DV 证书,如果发生 BGP 欺骗,有人也将能够生成证书。CA 使用 DNSSEC 感知解析器和多有利点进行验证,可以缓解这种情况。这意味着,只有当您同时失去对 IP 地址空间和权威名称服务器的控制时,才会开始出现该问题。如果您不依赖外部公共 CA,但如果您完全在内部管理它并因此仅信任由您的 CA 生成的证书,也可以缓解此问题。当然,您的 CA 需要受到严密保护,并且其密钥应卸载到某些冷存储中,例如 HSM。

如果您根本不使用某些防火墙规则对 IP 地址进行过滤,则将面临 DOS 和 DDOS 的风险:即使人们不会通过这样做侵入您的系统,他们也可能会使系统不可用,而可用性可以看作是安全性的一部分。

此外,对于当今任何您控制两端且不需要任何向后兼容性的新设置,建议您直接从TLS 1.3因为它比 TLS 1.2 有许多优势

相关内容