ATS(App Transport Security)をコントロールしよう!

スポンサーリンク
Sample Code

20150902_001
iOS9から追加されたATS(App Transport Security)

「HTTPS (TLSv1.2以上)以外は、通信制限がはいりますよ〜」

なかなか、やっかいですが
世の中の流れ?
長いものには巻かれろ?

しかしながら、色々事情があり対応が・・・。

私も含めて、そんな人たちの為に、ATSの無効の仕方です。

info.plistに記述します。

動作確認環境

Xcode7beta6

iOS9 beta5

ATSの動作を完全に無効にする

appleは非推奨です。

atsyes

 

<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
</dict>

 

ドメイン指定でATSの動作を無効にする

appleの考えはATSを無効にする事は推奨していませんが、暫定対応として推奨してるようです。

HTTP

HTTPドメインのATS制限を無効にします。

NSExceptionAllowsInsecureHTTPLoadsらしいのですが、iOS9beta5では動作しないのでNSTemporaryExceptionAllowsInsecureHTTPLoadsをしようしています。

http

 

<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<false/>
		<key>NSExceptionDomains</key>
		<dict>
			<key>xxxxx.xx.jp</key>
			<dict>
				<key>NSIncludesSubdomains</key>
				<true/>
				<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>
</dict>

HTTPS

HTTPSのドメインのセキュリティレベルを下げてATS制限を無効にします。
例は、TLSv1.1以上であればアクセスが可能になります。

https

 

<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<false/>
		<key>NSExceptionDomains</key>
		<dict>
			<key>xxx.xx.jp</key>
			<dict>
				<key>NSIncludesSubdomains</key>
				<true/>
				<key>NSExceptionMinimumTLSVersion</key>
				<string>TLSv1.1</string>
				<key>NSExceptionRequiresForwardSecrecy</key>
				<false/>
			</dict>
		</dict>
	</dict>
</dict>

 

まとめ

暫定処置と考えておいたほうがいいかもしれません。
サーバー担当を説得させ、セキュリティーレベルをあげてもらうようにしましょう。

 

コメント

タイトルとURLをコピーしました