Я пытаюсь зашифровать одноранговой связи с использованием TLS
рукопожатия, который использует startTLS
метод GCDAsyncSocket
библиотеки. Сервисы Bonjour публикуются сервером, а клиент соединяется с опубликованным именем хоста. После установления соединения сокета я вызываю startTLS
для сервера, как показано ниже.GCDAsyncSocket с Bonjour Service: делает StartTLS инициировать TLS рукопожатие
[settings setObject:[NSNumber numberWithBool:YES]
forKey:(NSString *)kCFStreamSSLIsServer];
[settings setObject:(__bridge id _Nonnull)(certs)
forKey:(NSString *)kCFStreamSSLCertificates];
CFRelease(certs);
settings[GCDAsyncSocketSSLProtocolVersionMin] = [NSNumber numberWithInteger:8];
[connectedSockets addObject:newSocket];
[newSocket startTLS:settings];
и клиентская сторона ниже - это настройка, которую я использую.
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
settings[GCDAsyncSocketSSLProtocolVersionMin] = [NSNumber numberWithInteger:4];
settings[GCDAsyncSocketSSLProtocolVersionMax] = [NSNumber numberWithInteger:8];
[settings setObject:[NSNumber numberWithBool:YES]
forKey:GCDAsyncSocketManuallyEvaluateTrust];
[settings setObject:(__bridge id _Nonnull)(certs)
forKey:(NSString *)kCFStreamSSLCertificates];
[sock startTLS:settings];
После этого рукопожатия между клиентом и сервером. Я отлаживал передачу данных между этими двумя с помощью wireshark
. В журнале wireshark
он показывает, что рукопожатие происходит с протоколом TCP не с TLS
. Я хочу, чтобы рукопожатие должно происходить по протоколу TLSv1.2. Прикрепление экрана для этого же. Может ли любой орган помочь мне с образцом кода.
Возможно, вы должны прочитать о SSL/TLS и каком рукопожатии. Рукопожатие - это то, что требуется для настройки туннеля TLS. Это нужно сделать через открытый TCP-канал, иначе он не будет. Единственный способ сделать рукопожатие над TLS - запустить TLS внутри уже установленного туннеля TLS. – creker
@creker Итак, ssl рукопожатие произойдет только по протоколу TCP. Не могли бы вы сообщить мне, когда на картинке появится TLSv1.2. – Gyanendra
после успешного установления связи – creker