【问题标题】:Secure communication between two servers两台服务器之间的安全通信
【发布时间】:2023-06-24 23:28:01
【问题描述】:

我想将我的用户的私钥安全地存储在单独的服务器上(我们称之为 B),它用于签名、解密信息。 B 将密钥存储在数据库 (postgres) 中。服务器 A(公开)向 B 发送信息。理想情况下,B 需要获取私钥,使用 信息 对令牌进行签名并将其发送回 A。而不是将私钥发送给 A,这可能是一个安全问题(如果服务器 A 受到威胁)。

我的选择是:

  1. 网络套接字
  2. https 请求 (https://nodejs.org/api/https.html#https_https_request_options_callback)

问题:

  1. 还有其他选项可以安全地与两台服务器通信吗?
  2. 如果服务器 B 位于端口“7000”上,我如何确保只有服务器 A 可以访问它?
  3. 在我的情况下,HSM 服务器如何提供帮助以及它如何与其他服务器(websocket 或 https 请求)通信?

我可以采取简单的路线,在端口“7000”上连接服务器 B 的数据库,然后从 A 运行查询,但正如我所说,它并不安全。我听说 HSM 处理/解密信息并将其发回,所以我虽然可以对普通服务器做类似的事情。

感谢任何帮助,将不胜感激


更新

@zaph 已回答问题 2 和 3。

问题:服务器A是否需要做一个https请求并包含服务器的私有ip地址B,例如https://203.0.113.25?然后服务器 B 将使用 API 路由器 来处理请求。但是 ip 不是 DNS,因此由于证书原因它无法工作。那么服务器如何通信、发送/接收数据呢?

参考:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario3.html

【问题讨论】:

  • 第二季度。不要将服务器 B 连接到 Internet,使用服务器 B 与服务器 A 上的第二个以太网端口之间的直接以太网连接。这种方式使服务器 B 像一个没有防篡改功能的 HSM。
  • @zaph haha​​,谢谢 tamper-resstance 是我需要的 :) 如果使用 HSM,服务器 A 是否需要特别/不同地配置?除了防篡改之外,它还有其他特殊功能吗?您将如何将信息存储在 HSM、内存或数据库中?
  • 下方投票者评论...
  • 没有特定于服务器 A 的内容,服务器 B 必须是完全安全的,或者尽可能安全,必须仔细控制访问,至少 2 因素身份验证。但真正的第一步是创建一个威胁模型,什么是有风险的,以及对包括攻击者在内的各方的价值。您在时间、技能和资源方面要防御的攻击者的能力:一个好奇的青少年到一个资助良好的民族国家。您无法创建 100% 的安全性,因此您需要定义所需的内容。
  • 再说一次,我无能为力。

标签: security amazon-web-services networking amazon-ec2 hsm


【解决方案1】:

对于其他人:使用安全组,将它们配置为只有特定实例才能访问它。发出正常请求,例如:domain.com:PORT。 PORT 是正在监听请求的实例...

当您指定一个安全组作为一个安全组的源或目标时 规则,该规则影响与安全相关的所有实例 团体。根据私有 IP 地址允许传入流量 与源安全组关联的实例 (而不是公共 IP 或弹性 IP 地址)。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

【讨论】:

    最近更新 更多