gpt4 book ai didi

ios - 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用以禁用弱密码

转载 作者:可可西里 更新时间:2023-11-01 03:17:33 26 4
gpt4 key购买 nike

我正在尝试禁用一些密码(弱),例如单个 DES、单个 DES 40 位等。

我试过使用 How does one set SSL ciphers when using CFSocket/CFStream in Cocoa? 中的这段代码并来自邮件列表消息 CFNetwork SSL and long blocking delays但我需要访问套接字数据才能获取 CFDataRef

这是我尝试在 AFURLConnectionOperation 类的握手方法中插入的代码:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge (NSURLAuthenticationChallenge *)challenge{
CFReadStreamRef stream = [sock getCFReadStream];
CFDataRef data = CFReadStreamCopyProperty(stream, kCFStreamPropertySocketSSLContext);

// Extract the SSLContextRef from the CFData
SSLContextRef sslContext;
CFDataGetBytes(data, CFRangeMake(0, sizeof(SSLContextRef)), &sslContext);

// Get all enabled ciphers
size_t numCiphers;
SSLGetNumberEnabledCiphers(sslContext,&numCiphers);
SSLCipherSuite ciphers[numCiphers];
SSLGetEnabledCiphers(sslContext,ciphers,&numCiphers);

// Create a new cipher array with only non-DH ciphers, and set it
SSLCipherSuite finalCiphers[numCiphers];
int numFinalCiphers = 0;
for(int i=0; i<numCiphers; i++) {
SSLCipherSuite suite = ciphers[i];
if(!cipherSuiteUsesDH(suite)) {
finalCiphers[numFinalCiphers] = suite;
numFinalCiphers++;
}
}
SSLSetEnabledCiphers(sslContext,finalCiphers,numFinalCiphers);
}

任何和所有帮助将不胜感激。

编辑:不幸的是,这是一个现有项目,它仍然使用 AFNetworking 的版本 1。

最佳答案

Using SSLSetEnabledCiphers with AFNetworking to disable weak ciphers

好吧,这个引起了我的兴趣,因为它是我用其他语言做的事情,但不是 Cocoa/CocoaTouch。它在我的 TODO 列表中已经有一段时间了。答案是在使用像 NSURLConnection 这样的高级对象时你不能这样做。

无法找到一种方法来弥合 NSURLConnection 和 friend 之间的差距以及设置密码套装所需的低级内容。如果您有兴趣,低级别的“最高”是 CFSocketStream。因此,工作是让 NSURLConnectionCFSocketStream 一起工作(或访问 NSURLConnection 中的 CFSocketStream)。

我也在 Apple 的 Network Programming 上反射(reflect)了你的问题。邮件列表,Jens 和 Quinn 都证实了这一点(Quinn 在 CFSocketStream 上提供了信息)。参见 Configure socket used by NSURLConnection? .

此外,如果您没有意识到,尝试修改 -connection:didReceiveAuthenticationChallenge: 中的属性为时已晚。当您收到身份验证质询时,握手已经在进行中(即 ClientHello 已经发送)。

如果您确实找到了破解方法,请发布。

关于ios - 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用以禁用弱密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002556/

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