通过启用 Ipsec 的服务器和客户端以纯文本形式传递登录凭据是否安全

Is it secure to pass login credentials as plain text over Ipsec enabled server and client

我有服务器和客户端应用程序通过桌面应用程序的 TCP 套接字进行通信。我在服务器和客户机之间启用了 Windows IP-sec,这样我的网络流量就会被加密。在登录过程中,客户端应用程序将密码的哈希值发送到服务器,服务器在应用服务器端哈希值后在数据库中对其进行验证。 现在有另一种情况,客户端应用程序通过 TCP 从服务器请求 SQL 服务器密码,服务器以纯文本形式发送此密码,然后客户端应用程序使用此密码连接 SQL 服务器,类似于连接其他第三方服务器,客户端应用程序从服务器获取密码,服务器通过 Ipsec 以普通方式发送密码。我的问题是通过启用 ipsec 的服务器和客户端发送密码是否安全?如果不是,我还需要做些什么来确保它安全?

IP-sec 提供加密,因此理论上通过 IP-sec 连接发送 plain-text 密码是安全的。

但是,如果可能的话,最好不要发送 plain-text 密码。

想到的方法是使用 SSH 密钥。客户端将生成 key-pair 并将 public 密钥发送到服务器,服务器会将其转发到 SQL/third-party 服务器。在这种情况下,私钥永远不必离开客户端。这对 set-up 来说更难,但在 运行.

中应该更安全

PS:还请记住,如果攻击者可以访问客户端计算机(直接或通过计算机上的恶意软件),则可以从客户端应用程序中提取 password/key。因此,始终假设通过客户端身份验证的用户将有权访问这些密钥,并且能够执行这些密钥可以执行的所有操作,即使您的客户端不允许。