Mac 10.6 sdk에 대해 구축 된 기존 앱이 있습니다. 웹 전화를 걸려면 NSURLMutableRequest
및 NSURLConnection
을 사용하고 있습니다. Wireshark를 사용하여, 10.9 - 10.11.2에서 TLSv1에 대한 모든 호출이 이루어진다는 것을 알았습니다. 10.11.6 이상 (또한 10.13 베타)TLSv1.2에서 이루어집니다.NSURLConnection을 사용할 때 Mac OS 10.9의 기본 SSLLevel
CFURLRequestSetSSLProperties
(dlsym)을 사용하여 코드를 TLSv1.2로 변경했습니다. 나는 kCFStreamSSLLevel
을 "kCFStreamSocketSecurityLevelTLSv1_2
"으로 설정했습니다. 이 후 나는 TLSv1.2에서 전화가 걸리게된다는 것을 알 수있다.
kCFStreamSSLLevel
에 애플의 문서에서 기본적으로
, 스트림의 보안 수준은 kCFStreamSocketSecurityLevelNegotiatedSSL입니다.
및 kCFStreamSocketSecurityLevelNegotiatedSSL
에서
는 협상 할 수있는 가장 높은 수준의 보안 프로토콜 소켓 스트림에 대한 보안 프로토콜로 설정하도록 지정합니다.
TLSv1.2가 10.9에서 지원된다는 것을 알고 있습니다. 테스트로, 나는 kCFStreamSocketSecurityLevelNegotiatedSSL
에 kCFStreamSSLLevel
을 설정하고 10.9에 여전히 호출 TLSv1의했다.
나는이 개 질문이 : 통화 10.9-10.11.2에 대한 TLSv1의에 만든 도착 이유는 무엇
? 자동으로 최상위 버전 즉, TLSv1.2을 자동으로 선택하면 안됩니다.
kCFStreamSocketSecurityLevelTLSv1_2
를 사용하여,이 서버가 TLSv1.2을 지원하지 않는 경우 버전을 낮출 폴백 (fallback) 또는 전화 단순히 실패 할 것입니까? 두 세트, 스트림 속성 값과 작업을 복사
kCFStreamSocketSecurityLevelNegotiatedSSL
토론 : 나는이 동안 검사를 발견했다. 버전을 낮추기 위해 TLS 또는 SSL을 사용할 것을 나타냅니다. 이것은 인스턴스에 대해 HTTPS가 수행하는 작업입니다.
는 kCFStreamSocketSecurityLevelTLSv1_2
또는 kCFStreamSocketSecurityLevelTLSv1
에 대한 이러한 선언이 없습니다. 그래서 그들은 버전을 낮추기 위해 대체 될 것인가 아닌가?