【问题标题】:GCDAsyncSocket with bonjour Service: does startTLS initiate TLS handshake带有 bonjour 服务的 GCDAsyncSocket:startTLS 是否启动 TLS 握手
【发布时间】:2017-02-06 07:54:21
【问题描述】:

我尝试使用TLS 握手加密点对点通信,该握手使用startTLS 库的startTLS 方法。 Bonjour 服务由服务器发布,客户端连接到发布的主机名。建立套接字连接后,我正在为服务器调用startTLS,如下所示。

[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 好的,所以 ssl 握手只会通过 TCP 协议发生。你能告诉我什么时候 TLSv1.2 协议会出现。
  • 握手成功后
  • @creker 握手后感谢,如果我将任何数据写入 Wireshark 中的套接字,它应该显示 TLSv1.2?即使我在成功握手后将一些数据写入套接字,它也仅显示为 TCP 协议。

标签: ios objective-c tls1.2 bonjour gcdasyncsocket


【解决方案1】:

我能够找出问题所在。这是wireshark的问题。在 wireshark 中,安全端口是 443,但对于 bonjour 服务,该端口是本地端口,因此我将 bonjour 服务的端口硬编码为 ex 12120 并发布了 bonjour 服务。

现在在wireshark Edit->Preferences->Protocol->HTTP 中,在此wireshark 开始通过TLSv1.2 显示正确的日志(例如客户端问候和服务器问候等)后,将安全端口更改为12120。谢谢大家的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 2012-03-13
    • 2019-02-28
    • 2021-10-13
    • 2012-06-11
    相关资源
    最近更新 更多