如何测试基于SSLEngine的TLS的实现?

时间:2018-12-13 16:06:05

标签: java ssl tls1.2 sslengine

我正在考虑通过非TCP 连接实现TLS的可能性。 这个想法是使用 SSLEngine ,它提供了将数据加密/解密到内存缓冲区并通过我们想要的可靠传输方式发送数据的可能性。

我必须实现SSL协议定义的所有握手(客户端问候,服务器问候等)。

如果执行此操作,我将如何测试我的实现是否有效?我可以运行一些“官方TLS测试套件”吗?

感谢您的建议

1 个答案:

答案 0 :(得分:1)

您明确排除TCP的事实使事情变得更加复杂。 TLS对基础传输的工作方式有一些假设。您可以看看QUIC基本上是如何提供基于UDP的TLS及其约束的。

对于官方的“测试套件”,我有一些想法可以提供,由于TCP依赖关系,它可能无法立即使用,但可能是一个开始:

在更抽象的级别上(我不知道它们是否是使用该工具的工具,但是它们可能存在),当同时起草TLS 1.3时,创建了一个文档来收集典型的握手消息,以便您可以使用以它们为例。

在此处查找:https://datatracker.ietf.org/doc/draft-ietf-tls-tls13-vectors/

其摘要是:

  

显示了TLS 1.3握手的示例。私钥和输入   已提供,以便可以复制这些握手。
  包括机密,流量密钥和IV在内的中间值是
  显示,以便可以针对实施进行增量检查
  这些值。