我对通过NWProtocolTLS.Options()传递的弱密码很好奇。因为它在iOS 12上运行得很好,但是在iOS 13上,他们做了一些改变,所以它停止使用了。
这里有一件事是:如何使用弱cipher(TLS_DHE_RSA_WITH_AES_256_GCM_SHA384)并建立OpenSSL连接。以及为什么iOS 13 Network.framework没有。
基本上,我的套接字服务器已经冻结了弱密码TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 --这是我通过OpenSSL使用WireShark从server捕获的。现在,我使用iOS 13在下面的方法中传递这个密码,但是它不起作用。
sec_protocol_options_append_tls_ciphersuite(tlsOptions.securityProtocolOptions, tls_ciphersuite_t.ECDHE_RSA_WITH_AES_256_GCM_SHA384)注意:我们已经提出了反馈助理查询,但我们仍然在等待他们。这不是一个网络套接字,我们通过服务器连接Wifi Hotspot。
我们在OpenSSL库(https://github.com/levigroker/GRKOpenSSLFramework)的帮助下解决了这个问题,但是经过长时间的数据轮询和字节缓冲机制,在处理较长时间的数据时遇到了很多问题。
在OpenSSL iOS应用程序中,在查看客户端Hello之后,它会传递86个密码及其工作。
但是在iOS Network.framework中,传递客户机Hello,它会传递36个密码,而它不起作用。
如果有人想要查看WireShark数据包,请添加一个评论,我会进一步附上它。
所以任何想法或帮助都值得赞赏!
发布于 2020-07-13 10:20:05
网络框架内部使用BoringSSL。在尝试连接弱密码(TLS_DHE_RSA_WITH_AES_256_GCM_SHA384)时,iOS 13.0和更高版本不支持它,BoringSSL不会放弃握手,而是提供一个默认密码数组,该默认密码数组包括
TLS_AES_128_GCM_SHA256,
TLS_AES_256_GCM_SHA384,
TLS_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_RSA_WITH_AES_256_GCM_SHA384,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA唯一的解决方案是,请尝试在服务器端实现上述任何一个密码。
https://stackoverflow.com/questions/62788064
复制相似问题