Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 通过启用Ipsec的服务器和客户端以纯文本形式传递登录凭据是否安全_Sockets_Password Protection_Ipsec - Fatal编程技术网

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

Sockets 通过启用Ipsec的服务器和客户端以纯文本形式传递登录凭据是否安全,sockets,password-protection,ipsec,Sockets,Password Protection,Ipsec,我有服务器和客户端应用程序通过TCP套接字(即桌面应用程序)进行通信。我已在服务器和客户端计算机之间启用Windows IP sec,以便对网络流量进行加密。在登录过程中,客户端应用程序将密码的哈希发送到服务器,服务器在应用服务器端哈希后在数据库中验证密码,这很好。 现在还有另一种情况,客户机应用程序通过TCP从服务器请求SQL server密码,服务器以明文形式发送此密码,然后客户机应用程序使用此密码连接SQL server,类似于连接其他第三方服务器,客户机应用程序从服务器获取密码,服务器通

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

IP sec提供加密,因此理论上通过IP sec连接以明文形式发送密码是安全的

但是,如果可能的话,最好不要发送纯文本密码

想到的方法是使用SSH密钥。客户端将生成密钥对并将公钥发送到服务器,服务器将其转发到SQL/第三方服务器。在这种情况下,私钥永远不必离开客户端。这很难设置,但从长远来看应该更安全


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

是,这是有意义的。而不是使用SSH密钥。服务器启动时将具有RSA密钥对并将公钥发送给客户端,客户端生成AES随机密钥并使用服务器公钥加密,然后在客户端应用程序需要时,此密钥将用于通过网络对SQL密码进行加密和解密。就像TLS握手一样。这有意义吗?如果您不想/无法摆脱SQL密码,那么这是有意义的。只有一个细节:例如Diffie Hellman,使用密钥协商可能比使用服务器来编写加密密钥更好