Xcode7(iOS9SDK) ATS의 미스터리

3900 단어 XCode7iOS9iOSXcodeATS
2015.10.13 추기
본문의 모바일.twitter.com의 연결을 확인했습니다.
Firefox 등으로 확인하면 트위터 측 서버 측 암호화 방식
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
된 것 같은데?태그 요소의 표시 속성을 수정합니다.
결과적으로 암호화 방식이 문제인지 모르기 때문에 SSL/TLS 주위에서 다시 한 번 공부해 보겠습니다.
자세히 못 써서 죄송합니다(ω・‘)
어쨌든 ATS 대응이 필요하기 때문에 응용 프로그램으로 대응할지 서버로 대응할지
각 항목에 대한 적절한 대응이 중요하다(´·ω・‘)
난잡한 문장과 내용이 없어서 죄송합니다.
틀리면 댓글로 지적해주세요!!!

ATS(App Transport Security)란 무엇입니까?


두루뭉술하게 말하다
Xcode7(iOS9SDK)으로 구축하면 HTTPS 통신 이외에는 금지됩니다!대단하다!안전해!
의 기능.
※ 자세한 내용은 iOS9ATS 문제 기사 요약을 참조하세요!
통신을 전혀 사용하지 않는 응용 프로그램이 많지 않을 것 같아서 WebAPI와 교환하는 경우가 많을 것 같습니다.
특히 개인 개발에서 HTTPS 자체가 자신의 웹 API에서 하는 경우가 적기 때문에 상당히 좋은 사람을 대상으로 할 것이라고 생각합니다.

HTTPS지만


읽었습니다 App Transport Security Technote
  • TLS는 1.2여야 합니다!

  • 비밀번호 방식은 이 안에 있는 것이어야 해!
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • 2048bit 이상의 RSA 키 또는 256bit 이상의 ECC 키의 SHA256 손자국이 필요합니다!
  • 잘못된 인증서를 연결할 수 없습니다!
  • 이런 조건이 있는 것 같습니다.

    그럼 한번 해보자!


    검증을 위해 HTTPS화 & 상기 조건에 부합되는 사이트에서 실제로 WebView에서 시도했습니다.
    연결Google하면... HTTPS에 잘 나와요!OK!

    Twitter 연결 후 그 오류!?

    어휴!왜!?
    그렇다면 원인을 탐색해 보았다
    NSExceptionRequiresForwardSecrecy
    A Boolean value for overriding the requirement that the domain support forward secrecy using ciphers.
    YES is the default value and limits the ciphers to those shown in Default Behavior.
    Setting the value to NO adds the following the list of accepted ciphers:
    TLS_RSA_WITH_AES_256_GCM_SHA384
    TLS_RSA_WITH_AES_128_GCM_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_AES_128_CBC_SHA256
    TLS_RSA_WITH_AES_128_CBC_SHA
    의 예외를 "NO"로 지정하면 됩니다!
    mobile.twitter.com 암호화 방식
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    그래서'예'를 유지해도 문제없을 거예요.

    깊은 수수께끼, 그리고 어떻게


    설명된 대로 추가총결산의 예외가 지정되면 동작합니다.하지만 결국 임시 대응이어서 향후 거부될 가능성이 있다.
    이유를 모르면 문서대로 대응하더라도 실제로 시도하지 않으면 알 수 없는 최악의 상태에 빠지게 되는데...누가 좀 도와주세요."д` ;

    혼잣말


  • App Transport Security Technote에 애플 공식 메시지가 적혀 있으니 자세히 읽어주세요!
  • 단순한 HTTPS가 아니면 좋으니 여러 개의 외부 서비스를 이용하려면 각각의 대응을 의뢰해야 합니다!
  • WebView의 링크 주소 등도 ATS 대상이므로 TOP 페이지만 해당할 수 없으므로 주의하세요!
  • PaaS로 웹 API를 만드는 사람 Paas가 대응하기 때문에 괜찮을 수 있습니다!
  • 이를 계기로 HTTP2도 단숨에 확대되었으면 좋겠다!
  • 좋은 웹페이지 즐겨찾기