【发布时间】:2018-12-13 16:06:04
【问题描述】:
我正在考虑通过非 TCP 连接实现 TLS 的可能性。 我们的想法是使用 SSLEngine,它提供了加密/解密数据到内存缓冲区的可能性,并通过我们想要的可靠传输方式发送它们。
我必须实现 SSL 协议定义的所有握手(客户端问候、服务器问候……等)。
如果我这样做,我将如何测试我的实现是否正常工作?有没有我可以运行的“官方 TLS 测试套件”?
感谢您的建议
【问题讨论】:
-
我使用了一个名为 TestSSLServer4,exe 的程序来验证我的服务器运行的 TLS 版本。也许这可以满足您的需求。
-
SSLEngine 实现了握手,以及 TLS 协议的其余部分;它唯一没有实现的正是传输,因此它可以与 Java Socket 以外的传输实现一起使用。如果您使用 SSLEngine 实现(ed)一个客户端和服务器,它们共享一些有序、可靠的传输,并且它们成功通信,那么它就可以工作; TLS 的一个要点和特点是在传输过程中检测数据的任何“篡改”。如果您的传输不是 TCP,当然您将无法与任何使用 TCP 的符合标准的实现进行互操作。