如果我使用 Java sockets /netty,其他人是否可以伪装成我的服务器,反之亦然?

If I use Java sockets /netty, can someone else masquerade as my server and vice versa?

我在我的一个简单项目中使用 netty,我需要在其中从客户端向服务器以及从服务器向客户端发送消息。

在客户端和服务器之间建立连接后,第三方是否可以将数据发送到同一个客户端端口,就像消息来自我的服务器一样?并且有人可以通过将数据发送到我服务器上的特定端口来假装是先前连接的客户端吗?还是 'connected' 意味着服务器和客户端将知道数据来自它发起连接的实体?

如果重要的话我在 netty 中使用 NioSocketChannel

具体来说,我还没有使用加密频道 (SSL/TLS)。我只想知道I am talking with the same entity that initiated the connection。我不需要知道 it's the same entity I initiated the connection with the previous time(我想这可以通过 username/password 实现)。

在网络级别,您将使用不安全的 TCP/IP 流,它可以被拦截、欺骗等。如果您想要端到端的安全性,并确保您的客户端正在与真实服务器通信(反之亦然),您需要使用 SSL,或(更好)TLSv1 或 TLSv2 .

参考文献: