gpt4 book ai didi

BlackBerry OS 7.1 安全 TLS 连接在很短的时间内关闭

转载 作者:行者123 更新时间:2023-12-04 20:50:23 24 4
gpt4 key购买 nike

问题汇总 :相同的客户端-服务器配置、相同的网络拓扑、相同的设备(粗体 9900) - 在操作系统上运行良好 7.0 但在操作系统上没有按预期工作 7.1 和安全的 tls 服务器在很短的时间内关闭连接。

问题 :OS 7.0 和 OS 7.1 之间的安全 tls 连接打开是否应该有任何区别? RIM 是否在 7.1 中对 tls 基础结构进行了任何更改?在 7.1 中是否有可能导致过早的安全 tls 连接关闭?

我的应用程序打开到服务器的安全 tls 连接。连接由应用层保持事件机制保持事件状态,并保持打开状态,直到客户端关闭它。附件是打开连接并从套接字读取的实际代码的简化版本。该代码在 OS 5.0-7.0 上运行良好,但在 OS 7.1 上无法正常运行。

在 OS 7.1 上运行时,阻塞 read()返回 -1 (已到达流的末尾)在很短的时间(10-45 秒)之后。对于 OS 5.0-7.0,调用 read()保持阻塞直到下一个数据到达并且服务器永远不会关闭连接。

Connection connection = Connector.open(connectionString);
connInputStream = connection.openInputStream();
while (true) {
try {
retVal = connInputStream.read();
if (-1 == retVal) {
break; // end of stream has been reached
}

} catch (Exception e ) {
// do error handling
}

// data read from stream is handled here
}

更新 1 :
显然,只有当我使用安全 时才会出现问题。 tls OS 7.1 上的连接(使用移动网络或 WiFi)。在 OS 7.1 上打开非安全连接时,一切都按预期工作。

对于移动网络上的 tls,我使用以下连接字符串:
connectionString = "tls://someipaddress:443;deviceside=false;ConnectionType=mds-**secret**;EndToEndDesired";

对于 Wifi 上的 tls,我使用以下连接字符串:
connectionString = "tls://someipaddress:443;interface=wifi;EndToEndRequired"

更新 2 :
连接永远不会空闲。我不断地接收和发送数据。使用移动连接和 WiFi 时都会出现此问题。该问题同时出现在真实的 OS 7.1 设备和模拟器上。我开始怀疑它与连接字符串或 tls 握手有某种关系。

更新 3 :
根据我使用 OS 7.1 模拟器进行的 Wireshark 捕获,服务器正在关闭安全的 tls 连接(客户端接收 FIN )。目前我没有服务器的私钥,因此我无法调试 tls 握手,但我比以往任何时候都更确定根本原因是 tls 握手。

更新 4 :
时出现安全 tls 连接断开RSA 2048 AES 256 密码套件仅在 OS 7.1 上协商。相同的密码套件在 OS 7.0 上运行良好。另一方面,当使用 时DHE/DSS 768 AES 128 密码套件,一切都在 OS 7.1 上按预期工作,并且连接保持稳定。它一定与 有某种关系RSA 2048 AES 256 密码套件。想法?

最佳答案

我没有使用 tls 连接,但是对于普通套接字,您可以通过附加程序在连接 URL 中指定以毫秒为单位的显式超时:“;ConnectionTimeout=60000”

此外,您可能需要在套接字上添加某种 ping 机制,否则中间路由器最终可能会关闭连接,即使是保持事件状态。

关于BlackBerry OS 7.1 安全 TLS 连接在很短的时间内关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349193/

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