2016-11-07 5 views
0

보안 연결을 설정할 때 URLSession 클라이언트가 사용하려고하는 암호 집합을 명시 적으로 지정하는 방법이 있습니까?URLSession에 대해 원하는 암호 집합을 지정할 수 없습니다.

NSAppTransportSecurity 사전에는 NSExceptionRequiresForwardSecrecy 키가 있지만 그게 내가 필요한 것 같지 않습니다.

나는 기본적으로 그냥 다음 암호 스위트 사용하기 만 기꺼이 서버에 통지하도록 클라이언트를 말할 수 있어야 할

:

TLS_RSA_WITH_RC4_128_SHA, 
TLS_RSA_WITH_3DES_EDE_CBC_SHA, 
TLS_RSA_WITH_AES_128_CBC_SHA, 
TLS_RSA_WITH_AES_256_CBC_SHA, 
TLS_RSA_WITH_AES_128_GCM_SHA256, 
TLS_RSA_WITH_AES_256_GCM_SHA384, 

나는 HTTP/2 트래픽을 해독 할 수 있습니다 그 방법을 그 클라이언트와 서버 및 통신.

답변

0

알고있는 한, NSURLSession 레벨에서이를 수행 할 수있는 방법이 없습니다. 물론 보안 전송 API를 기반으로 코드를 작성할 수는 있지만 AFAIK에는 NSURLSession 사용자 정의 기본 소켓을 사용하는 쉬운 방법이 없습니다. CFHTTPMessage와 친구들을 사용하여 전체 HTTP 스택을 직접 작성하는 것보다 약간 덜 끔찍하게 만들 수도 있지만 여전히 귀엽지는 않습니다.

그런데 HTTPS 프록시를 사용하는 경우 (예 : Charles Proxy), 지원되는 암호 스위트를 지정할 수 있어야하며 app 자체에서 사용자 정의 코드를 필요로하지 않고 연결을 MitM 할 수 있어야합니다.

귀하의 요구 사항을 충족시키지 못하는 경우, bugreport.apple.com에서 개선 요청을 제기하고 귀하가하려는 일과 그 이유를 설명하는 것이 좋습니다. 다른 옵션을 제안 할 수도 있습니다.