【发布时间】:2020-10-28 11:12:14
【问题描述】:
我很好奇通过 NWProtocolTLS.Options() 传递弱密码。因为它在 iOS 12 中运行良好,但在 iOS 13 Apple 上我猜他们做了一些更改,所以它停止了。
这里有一件事是:OpenSSL 如何使用弱密码(TLS_DHE_RSA_WITH_AES_256_GCM_SHA384)并建立连接。以及为什么不使用 iOS 13 Network.framework。
基本上,我的 Socket 服务器已经被弱密码 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 冻结了,这是我使用 WireShark 通过 OpenSSL 从 Server Hello 捕获的。所以现在我通过以下方法使用 iOS 13 传递这个密码,但它不起作用。
sec_protocol_options_append_tls_ciphersuite(tlsOptions.securityProtocolOptions, tls_ciphersuite_t.ECDHE_RSA_WITH_AES_256_GCM_SHA384)
注意:我们已经提出了反馈助手的查询,但我们仍在等待他们。 这不是 Web Socket,我们通过 Server Wifi Hotspot 连接。
借助适用于 iOS 的 OpenSSL 库 (https://github.com/levigroker/GRKOpenSSLFramework),我们以某种方式解决了这个问题,但是在长数据轮询和字节缓冲机制之后,在处理长数据时遇到了很多问题。
在 OpenSSL iOS App 中查看 Client Hello 它通过了 86 种密码及其作品。
但在 iOS Network.framework 中通过客户端 Hello 它通过了 36 个密码,但它不起作用。
如果有人想查看 WireShark 数据包,请添加评论,我会进一步附上。
所以任何想法或帮助表示赞赏!
【问题讨论】:
-
DHE 和 ECDHE 是不同的算法(尽管具有相似的数学基础)并且 DHE_RSA 和 ECDHE_RSA 是完全独立的 TLS 密钥交换;如果你想要前者,不要使用后者。
-
好的 @dave_thompson_085 但我们在 iOS 13 更新的密码套件中没有得到 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 的完全匹配
标签: openssl ios13 certificate-pinning swift-nio network-framework