gpt4 book ai didi

java - 没有证书的两个对等点之间的安全链接?

转载 作者:行者123 更新时间:2023-12-01 22:25:09 24 4
gpt4 key购买 nike

我正在用 Java 编写可在 Android、Windows、Linux 和 OSX 上运行的软件,并希望所有设备都能安全地相互通信。

我最初的想法只是使用非对称算法(例如 RSA)并手动共享公钥。然后 session 将仅使用 RSA 进行加密。由于缓冲区大小,我遇到了这个问题,然后我读到了 CBC 等内容,以及如果未执行某种形式的数据 XOR 则导致数据泄漏的问题。

所以...我考虑使用 AES/CBC/{padding}。最初这听起来不错:只需分享 key 、静脉输液即可。

但是这些应用程序随时都会在两个方向上相互通信,因此保持 IV 同步似乎不可能,导致每条消息都会发送一个新的 IV。没什么大不了的,但 AES 相对于 RSA 的优势之一是数据大小,现在我将向每条消息添加 32 个字节。虽然我想保留一个“接收者”和一个“发送者”密码可能会起作用。

现在我又开始考虑替代方案,并试图避免过多的自行动手。

是否有任何实质性理由不使用手动完成的 RSA 和 CBC(或类似的)? IE。将数据分成 block ,根据需要填充,并使用 RSA 加密,执行任何看起来最可靠的 XOR 策略。

是否有更好的方法可以在不创建 SSL CA 的情况下保持对等点之间的安全和可信通信?或者,是否有一种方法可以连接到证书验证程序,以便我可以使用预共享的公钥来验证对等连接?

对于最佳/简单的多平台点对点安全通信还有其他建议/示例吗?

最佳答案

您应该考虑实现 hybrid cryptosystem 。如果我能正确猜测您对该主题的了解,您应该确实使用预先存在的协议(protocol),例如 TLS 或 DTLS,因为您不会突然设计一个加密安全协议(protocol)。

请注意,创建 PKI 需要证书,并且非对称加密当然也随之而来。但是,您应该只需要在握手期间使用非对称加密,其中包括初始身份验证和 session key 协商。

关于java - 没有证书的两个对等点之间的安全链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926269/

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