gpt4 book ai didi

Java客户端服务器安全通信

转载 作者:行者123 更新时间:2023-11-30 04:37:33 24 4
gpt4 key购买 nike

Possible Duplicate:
network communication encryption in java

我正在设计一个客户端服务器应用程序。我希望整个 session 都被加密。我正在考虑以下步骤来做到这一点(使用 RSA 进行公钥加密,使用 AES-128 进行对称加密):

客户端连接到服务器并发送“hello”消息。服务器用它的公钥进行响应。客户端生成一个 128 位 AES key ,并使用服务器的公钥加密后发送。应用程序协议(protocol)的其余部分使用 AES key 进行加密。

这个逻辑好吗?有什么缺陷吗?使用 SSL 可以吗?或者更好?基本上我关心的是重放攻击和中间人攻击。

最佳答案

您正在做的是描述 SSL 的基本思想,由于实现该方案可能会犯很多小错误,因此使用 SSL 会更好。

正如您所描述的那样,您的方案将存在缺陷,因为您没有任何方法来验证服务器的公钥。任何人都可以发送它。此外,您如何知道加密的 AES key 实际上是由客户端生成的?任何人都可以拦截公钥。这就是 SSL(或现在的 TLS)使用信任库和 Diffie-Hellman 以及其他技巧的原因。

如果您不想购买自签名证书,则可以在某些带外过程(例如与客户端应用程序一起分发)中使用可信任的自签名证书。

关于Java客户端服务器安全通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com