有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在客户端和服务器端使用相同的私钥进行SSL连接

我在一个收集环境信息并将其数据发送回单个服务器进行处理的板上工作。与该服务器的唯一连接将由最终投入现场的电路板进行。大部分开发已经完成,但现在我想尝试保护所有连接。速度是至关重要的,因为数据是实时敏感的,并且电路板上有一个相当小的处理器(8Mhz)。由于我对这一切都有如此严格的控制,我希望在WiFi芯片和接受连接的基于Java的服务器之间共享相同的私钥。这将有望使我能够通过SSL解密和加密消息,而无需在每次一块板连接时通过握手过程。对吗

我已经试验了几天,运气不好。但在我深入兔子洞之前,我想确保这是可能的。谢谢,如果您有任何建议,我们将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    您似乎对SSL/TLS的工作原理感到困惑

    在握手过程中,服务器向客户端出示其证书(除非使用匿名密码套件)以证明其身份,然后与客户端就共享密钥达成一致(通过交换预主密钥)。握手完成后,只有共享密钥用于加密。(更多详情here。)

    服务器的私钥用于向客户端证明其身份(通过其证书)。其目的是防止MITM攻击

    将服务器的私钥提供给客户机除了允许任何客户机模拟服务器之外将一无所获

    您无法真正避免握手,如果您建立了多个连续连接,您也可以使用会话恢复。 您还可以使用TLS PSK(预共享密钥)密码套件(共享对称密钥,而不是私钥),但Oracle JSSE提供程序中不提供这些套件