gpt4 book ai didi

java - JSSE wrap 创建两个需要两次解包的 tls 数据包。为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:23 25 4
gpt4 key购买 nike

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

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

一开始我以为客户端会先包装一个空数组。但后来我发现 jsse 代码做同样的事情,除了它产生 1 个字节而不是 0。

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

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

最佳答案

您看到的是缓解 BEAST 攻击的两种略有不同的方法。一种方法是使用 an empty fragment as it's done with OpenSSL . JSSE does something similar by sending 1 byte of data and the rest separately .

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

关于java - JSSE wrap 创建两个需要两次解包的 tls 数据包。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15224909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com