ATS必須化が延期されている理由とは、ATSの課題を説明

Appleによって、ATS(App Transport Security)がiOS9から導入されました。
当初、Appleは2016年12月にAppStoreで公開するアプリは全てATSに対応している必要があるという発表をWWDC2016で行いました。
しかし、このATS必須化の強制については、実際のところ2016年12月には行われずに延期られて現在のところは対応必須課の期限は未定となっています。
ATS(App Transport Security)とは
ATSとは、「サーバとアプリケーション間でセキュアな通信を保証するための機能」であり、ATSを有効にすることによって、Appleがセキュアと認める通信方法のみが許可され、其れ以外の通信は遮断されるというものです。
自己証明のSSL証明書による通信が遮断されるのは当然として、Appleがセキュアであるとする通信の条件を満たさないものについても通信が遮断されるという厳しいものです。
影響を大きく受けるアプリとは
ATS必須化の影響を大きく受けるのがWeb Viewを使用しているアプリです。
自社サービスをアプリ化する際に、全てネイティブアプリ化することが難しく、一部をWeb Viewで対応するというアプリは実際のところ結構多いようです。
また、広告配信を行なっているアプリなどは、広告配信側がATSに準拠した通信に変更してくれない限り、通信が遮断されてしまうということなります。
通信遮断はユーザに与える影響が大きい
ATSによって、通信が遮断されるとWeb Viewの画面は真っ白な表示になり、サービスが落ちているのか、通信待ちなのかわかりにくい状況になります。
ユーザは、白い画面を見続けて、結局そこでドロップしてしまう恐れがあるなど、Web Viewを使って購入や問い合わせをおこなっているアプリにとっては、収益の減少やユーザのサービスからの離脱など、大きな影響があると考えられます。
ATS自体のバグの問題
実は、ATS自体にもバグ(不具合)が存在していることがわかっています。これが延期の理由かどうかは不明ですが、Appleのインストラクション通りにアプリを作ってもATSによって通信を遮断されるという問題が報告されています。
iOS10.0以降のWeb ViewでATSを無効化するのに”NSAllowsArbitraryLoadsInWebContent”を利用するように推奨されています。
しかし、この”NSAllowsArbitraryLoadsInWebContent”に不具合があり、本来ならWeb ViewではHTTPとHTTPSの両方に接続できるはずが、ATSの基準を満たさないHTTPSに接続できない不具合が存在しています。
UIWebView では、iOS10.0と10.1で(10.2では解消しているとのこと)、WKWebView ではiOS10.0以降、最新の10.2においてもいまだにATS基準を満たさないHTTPSに接続できない状況が続いています。
今後、このような不具合はいずれ改修されるとはいえ、現状急いでATS対応を行ったために、WebViewで表示できなくなるという問題が発生する可能性があるので注意が必要です。
ATS対応が目的ではなく、セキュア対応は常に心がけよう
現在のところ不具合の報告もあり、ATSの必須化の期限はアナウンスされていません。
もちろん、将来的にはATSは必須化されると思われますが、ATSの対応を行うというよりは、日頃から通信のセキュア化(暗号化)には、留意しておくべきでしょう。
ATSを機会にサービスや通信のセキュア化について見直してみるのも良いのではないでしょうか。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介