JSSE包创建需要两个解开2个TLS包。 为什么?(JSSE wrap creates two

2019-07-21 00:46发布

我检查我们的Java应用程序的行为相对于JSSE TLS加密和解密的连接了OpenSSL的客户端。

首先,我观察到,当我请解包客户端数据,它总是解开消耗37个字节,并产生0的下一个解包消耗一些字节,并产生一些。

起初我以为客户将首套空数组。 但后来我发现,JSSE代码不一样的,只不过它会产生1个字节,而不是0。

这样可以在每个呼叫wrap消耗X字节,并产生ÿ字节,但需要两个unwrap s,而第一个占用37个字节,并产生1个字节,而第二个消耗的Y 37个字节,并产生X-1个字节。

虽然OpenSSL和JSSE都在做几乎一样,我期望这是正确的。 不过,我想知道,为什么出现这种情况。 我没有看到一个原因,它需要额外的资源......?

Answer 1:

你看到的是两个略有不同减轻BEAST攻击的方式。 这样做的一个方法是使用,因为它与OpenSSL的做了一个空的片段 。 该JSSE不单独发送1个字节的数据,其余类似的东西 。

以下是可能会感兴趣的几个环节:

  • 这个答案对一个类似问题。
  • 与TLS 1.1 / 1.2和更击败兽
  • 兽总结- TLS,CBC,对策(更新4) 。
  • Tor和野兽SSL攻击


文章来源: JSSE wrap creates two tls packets requiring two unwraps. Why?