我想知道在Java中保护TCP连接的最佳方法。我希望只有经过身份验证的客户端才能与我的服务器通信,并在可能的情况下加密传输的数据。
我需要注意哪些问题并进行覆盖,可以使用哪些技术?
谢谢,
蒂姆。
我需要注意哪些问题并进行覆盖,可以使用哪些技术?
谢谢,
蒂姆。
Java提供了一种安全的套接字扩展,即JSSE,支持SSLv3和TLS协议。
它被设计为让你的代码与处理普通套接字类似。
你只需初始化SSLContext并配置它使用要使用的证书和各种参数,例如客户端认证、握手监听器等,其余部分将被透明地处理。
阅读本教程以开始学习。
SSL得到了很好的支持(毕竟它被用于HTTPS)。基于公钥基础设施,它提供了各种加密和身份验证方案。
你需要问问自己你要保护什么。如果你只允许真正的客户端,你需要定义如何确定这一点。如果你允许完全的纯文本流量,这是不安全的,因为任何中间人都可以修改流量。至少你需要对你交换的数据进行完整性保护。
我同意大多数人认为 SSL 可能是最简单的方法来实现这个目标。你需要使用客户端证书来允许验证连接的客户端。你有两种方法来使用客户端证书:
采取哪种方法完全取决于你,而且同样安全。选择最适合当前项目的设计。