【发布时间】:2018-10-11 00:46:54
【问题描述】:
我有一个设置,我有多个计算机/节点通过 LAN 进行通信,TCP 在 java 8 运行时上运行。他们都知道一个对所有计算机都相同的共享密钥。密钥仅在运行时才知道。目标是使用共享密钥加密 TCP 上的通信。加密和解密都必须可以通过共享密钥进行。
我想使用 java Socket 类在节点之间进行 TCP 通信,因此 java SSLSocket 类似乎是合乎逻辑的解决方案,但我不知道如何将其设置为仅使用已知的共享密钥两端的节点。据我了解,SSLSocket 使用证书对另一端进行身份验证,但我不知道如何调整它以使用共享密钥。
【问题讨论】:
-
Java 的 SSL api 不支持所谓的“预共享”密钥。看来 Bouncycastle java 库确实基于 some classes 那里,但我从未尝试过。您将拥有支持 SSL/TLS 和预共享密钥的客户端和服务器组件。
标签: java sockets ssl encryption tcp