iOS9, что на самом деле означает NSAppTransportSecurity в отношении трафика https?
iOS9 имеет новый параметр для info.plist, который называется NSAppTransportSecurity. До сих пор я не смог найти конфигурацию, которая позволила бы мне подключиться к моему веб-сервису https. В качестве обходного пути у меня есть следующая строка в моем списке:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Я пытаюсь понять, что NSAppTransportSecurity на самом деле означает или делает. Я смотрю на эту техническую заметку Apple, и она не совсем понятна:
Все соединения, использующие API-интерфейсы NSURLConnection, CFURL или NSURLSession, используют поведение App Transport Security по умолчанию в приложениях, созданных для iOS 9.0 или более поздней версии и OS X 10.11 или более поздней версии. Соединения, которые не соответствуют требованиям, потерпят неудачу.
Является ли NSAppTransportSecurity просто средством защиты конфигурации, которое будет блокировать TLS менее 1.2, или оно действительно применяет какой-то особый вид безопасности транспорта к веб-соединениям?
- Отключает ли использование NSAllowsArbitraryLoads отключение всех форм связи https?
- ИЛИ сервер все еще устанавливает связь https/ssl/tls, кроме как без наблюдения Apple?
- Применяется ли это требование ко всем приложениям, работающим на iOS9 или имеющим iOS9 в качестве минимальной цели развертывания?
1 ответ
Отказ от использования NSAllowsArbitraryLoads не приведет к отключению https. Это просто прекратит блокировать незащищенные соединения, такие как http и https с TLS менее 1.2
Вы должны справиться с этим во всех приложениях, которые работают на iOS9