0

我正在使用连接的 openssl 客户端检查我们的 java 应用程序在 jsse tls 加密和解密方面的行为。

首先,我观察到,当我为客户端数据调用 unwrap 时,它总是展开消耗 37 个字节并产生 0。下一次展开消耗一些字节并产生一些。

起初我以为客户端会先包装一个空数组。但后来我发现 jsse 代码的作用相同,只是它产生 1 个字节而不是 0。

因此,对 a 的每次调用都会wrap消耗 X 字节并产生 Y 字节,但需要两个unwrap,而第一个调用消耗 37 个字节并产生 1 个字节,第二个调用消耗 Y-37 个字节并产生 X-1 个字节。

虽然 openssl 和 jsse 做的几乎一样,但我希望这是正确的。但是我想知道,为什么会这样。我看不出有什么原因,它需要额外的资源......?

4

1 回答 1

4

您所看到的是减轻 BEAST 攻击的两种略有不同的方法。一种方法是使用空片段,就像使用 OpenSSL 一样JSSE 通过分别发送 1 个字节的数据和其余部分来执行类似的操作。

以下是一些可能感兴趣的链接:

于 2013-03-05T14:10:15.210 回答