2016年末に迫った iOS審査時のApp Transport Security (ATS) 必須化について

F.O.Xでセールスエンジニアを担当してる鳥居です。

2016年末のApp Transport Security (以下 ATS) の必須化の期限が迫ってきました。

本件はF.O.Xに限った話ではないのですが、不安に感じた方からのお問い合わせも多くなっているため、今回はATSとその必須化について解説したいと思います。


ATSとは

ATSは、iOS 9の時から導入された、アプリとサーバー間で保護された通信を保証するための機能です。

具体的には、アプリからの通信を、通信内容を暗号化する「HTTPS」に制限する機能で、全ての通信が暗号化されるためセキュリティを向上することができます。

ATSの詳細な要件については公式のドキュメント(英語)を参照してください。


今回のATS必須化とは

Appleは、2016年6月のWorldwide Developers Conference (WWDC) 2016のセッションで、

App Storeに公開するアプリケーションは2016年末を目処にATSを必須化することを発表しました。

ATSが必須化された場合、対応していないアプリはAppStoreの審査に出せなくなります。そのため、原則としてアプリケーションからの通信は全てHTTPS通信を利用する必要があります。

※How iOS Security Really Works 100ページ目から抜粋


(少し横道)なぜATSは登場したのか

※公式な見解ではなく、あくまで個人的な意見として捉えてください。

ATSが登場した背景としては、セキュリティ向上が理由として挙げられます。前述の通り、ATSを有効にするとHTTPS通信しか利用できません。

例えば、スマートフォンの普及と共に、公共のWi-Fi環境が整備されつつあり便利になる一方で、セキュリティ面で信頼できない公共Wi-Fiも一定数存在します。このような環境下では比較的容易に通信の傍受・盗聴をされてしまうため、HTTPSによる暗号化が重要となってきます。

通信を暗号化していれば、具体的な通信内容を直ちに読み取られることはないため、より安全に通信を行うことができます。


また、インターネット全体の傾向として常時HTTPS通信を行うことが推奨されている流れもあります。

FacebookやGoogle、Twitterなど海外の大手のサービスは既に常時HTTPS化していますし、GoogleはHTTPSページをSEO上優遇することを発表しています。

このような背景からATSが導入されたのだと思います。


ATSに対応するには

アプリとサーバーとの通信や、WebViewで読み込むページなど全てHTTPSでやり取りするようにします。

どうしてもHTTP通信を行う必要がある場合は、例外を設定することでHTTP通信が可能となりますが、App Storeへの審査時にHTTP通信を行う正当な理由の説明が求められるとのことなので、特別な理由がない限りはHTTPS通信を利用するのが良いでしょう。

審査時の条件についても公式ドキュメントに記載がありますので、参照してください。


F.O.XにおけるATSへの対応

F.O.Xが提供する全てのサーバーはHTTPS通信に対応していますので、F.O.Xへの通信のURLをhttpsに変更するだけで対応が完了します。

詳しくはF.O.Xサポート窓口までお問い合わせください。


おわりに

ATSについてまとめると以下のようになります。

  • 2016年末を目処にiOSアプリの審査時、ATS対応が必須化される
  • 今まで通りHTTP通信を使用する際は、アプリの審査時に正当な理由の説明が求められる

実際にATS必須化が実施されるタイミングについて、2016/12/02現在公式アナウンスはありませんが、ATS対応がお済みでない場合は早急に対応されることをお勧めします。
不明なことがあればお気軽にF.O.Xサポート窓口までご相談ください。