ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • iOS10에서 ATS에 바뀐점! SSL/TLS관련
    앱등이에게 살충제를 뿌린다./일기는 일기장에 2016. 9. 30. 11:04

    <화질 왜이럼..>



    iOS9발표와 함께 NSAppTransportSecurity라는 키가 생겼습니다. 

    iOS8까지 http 통신을 사용하던 커넥션이 iOS9에서는 먹통이 되었는데요, 바로 이 키 값에 대한 sub키들을 설정하면서 수정할 수 있었습니다.

    http://rhammer.tistory.com/67 에서도 꼼수를 소개했었구요.


    iOS10에서는 그럼 변동사항이 없느냐? 있습니다.

    일부만 소개합니다.. 여기에 적은 변동사항 외에도 엄청 많습니다.

    WKWebView 관련된 이슈가 좀 대표적일 것 같네요.


    그냥 이해안되도 한번 읽어보시면 도움이 될 것 같네요. 저도 이해안되요...



    iOS10에서는 NSAppTransportSecurity키에 아래의 서브키가 추가됩니다.

    • NSAllowsArbitraryLoadsInMedia

    • NSAllowsArbitraryLoadsInWebContent

    • NSRequiresCertificateTransparency

    • NSAllowsLocalNetworking

    서브키가 추가 됩니다.



    ATS Basic


    The primary ATS keys are: iOS10에서 추가된 키는 빨간색으로 표시했어요

    • NSAllowsArbitraryLoads

      YES로 설정되면 ATS 제한을 해제하게 됩니다. 그 결과, NSExceptionDomains에 등록한 도메인을 제외한 모든 도메인에 대해 http통신이 간으해집니다. 디폴트 값은 NO입니다.

    • NSAllowsArbitraryLoadsInMedia

      YES로 설정하면 AV Foundation framework를 사용한 미디어 로딩에 대한 ATS제한을 해제합니다. 안전한 HLS나 FairPlay로 보호되며 개인정보가 없는 파일같은, 이미 암호화된 미디어를 로딩하는 경우에 이 키를 사용하면 좋습니다. 디폴트 값은 NO입니다.

    • NSAllowsArbitraryLoadsInWebContent

      YES,로 설정하면 웹뷰에서 생성되는 커넥션에 대한 ATS 제한이 해제됩니다. 그 결과 앱에 내장된 브라우저가 ATS에 제한받지 않고 모든 컨텐트를 로드할 수 있게 됩니다. 디폴트 값은 NO입니다.

    • NSAllowsLocalNetworking

      YES,로 설정하면 ATS에 제한받지 않고 로컬 리소스를 로딩할 수 있게 됩니다. 디폴트는 NO입니다. (이거 쓸일이 있으려나??)

    • NSExceptionDomains

      Optionally include this dictionary to configure ATS for one or more named domains.

      NSAppTransportSecurity 의 서브키로 사용됩니다. 이 키에 입력한 도메인은 NSAllowsArbitraryLoadskey값과 관계없이 ATS를 적용받게 됩니다. domain-name키의 서브키로 해당 도메인에 대한 ATS설정을 따로 지정할 수 있습니다.



    좀 더 자세항 사항을 표로 살펴보도록 합니다.








    출처 : https://developer.apple.com/library/prerelease/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

Designed by Tistory.