gpt4 book ai didi

android - TLS Client Hello 请求在 iOS 或 Android 中包含未知版本

转载 作者:行者123 更新时间:2023-12-04 22:39:02 25 4
gpt4 key购买 nike

我注意到我的 iOS 和 Android 原生移动应用程序由于未知原因在俄罗斯的一些供应商上停止工作。
我对 Wireshark 的快速研究向我展示了这种行为的原因(我错了 - 请参阅下面的帖子更新):
(blocked packet wireshark screenshot)
如果 TLS 客户端 Hello 数据包在 supported_version 字段中包含未知版本,则它被提供商的 DPI 阻止,并且我的后端服务器没有收到它。
但与此同时,当我尝试从 JS 浏览器或 Insomnia 发出相同的 REST API 请求时,它可以正常工作,并且 TLS 客户端 Hello 数据包不包含任何“未知版本”。
(normal passed packet wireshark screenshot)
未知版本的TLS每次都会随机变化,可能是:
0xbaba、0xcaca、0x1a1a 等等 - 任何 0xaa 模板。
我不确定,但怀疑,由于我国大多数供应商开始使用政府防火墙设备,会发生这种过滤,因为在没有这种设备的网络上,不会发生这个问题。因此,不幸的是,我无法在供应商方面解决这个问题。
如何强制我的 Swift 和 Kotlin 应用程序不要在 TLS 协议(protocol)中使用这个未知版本?
更新:
看来,不受支持的版本不是这种行为的原因。
当我在同一设备上的 Safari 中打开此 URL 时,它也包含在数据包中。
但我发现 TLS 数据包的另一个区别:
此数据包被阻止(我的应用程序):
Blocked packet
此数据包已通过(Safari):
Passed packet
更新2:
设置 NSExceptionRequiresForwardSecrecy=NO 解决了这个问题。

最佳答案

尽管您现在已确定通过禁用前向保密要求已解决了该问题,但我将对您关于未知 TLS 版本的原始问题留下我的解释。
原答案
这些是 GREASE值,旨在清除不能正确支持未知 TLS 版本的系统。
看起来它正在完成它的工作,并且他们部署的任何过滤系统都具有 GREASE 想要找到的错误。
不幸的是,除了尝试向提供商报告问题外,您无能为力。

关于android - TLS Client Hello 请求在 iOS 或 Android 中包含未知版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69142745/

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