ATSでiOSアプリ開発者が気をつけるべきこと【https接続制限がポイント】
新聞やニュースを見ても、インターネット・通信分野におけるセキュリティ関連の記事がない日はありません、最近は国レベルのサーバ攻撃など、その規模、影響度合いはますます拡大しています。このような背景の中で、iOSのアプリ開発において、ATS(App Transport Security)の必須化が開発者の中で注目されています。
この記事ではATSの概要と開発者が今後気をつけるべき点について整理します。
ATSにおけるセキュアな接続で何が可能となるか
ATSが有効化されると、なりすましによる中間攻撃を防ぐことができます。ATSでセキュアとされる通信の条件を以下に整理します。サーバ証明書に関しては、SSL通信であっても自己証明書では無効で、接続失敗になります。また、サーバ証明書のコモンネーム(FQDNまたはIPアドレス)と接続先のドメインが異なる場合も接続失敗となり、サーバ証明書のないhttpへの接続は難しくなります。
以下、ATSの条件となります。
① TLSのバージョンがTLS 1.2以上
② 暗号化はTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384等を採用
③ サーバ証明書は、iOS、OSXに組み込まれた認証局によって発行されたものか、信頼されたルートCAによって証明されたもの
④ サーバ証明書の署名に使われるキーは、2048bit以上のRSAキーか、256bit以上のECCキー
⑤ サーバ証明書のハッシュアルゴリズムはSHA-256以上(256bit以上のSHA2)
これらすべてを満たさないと、接続エラーとして処理されてしまいます。今後App Storeの全てのアプリケーションに対しATSを必須化しますので、アプリのコーディングだけでなく、これらのセキュリティインフラ部分への理解と対応が必須となります。
https接続制限ATS対応ではアプリ審査申請に工夫が必要
ATSは「サーバとアプリケーション間でセキュアな通信を保証するための機能」で、AppleのiOS9、MacのOS X El Capitan以降で利用可能になります。iPhoneアプリ、MacアプリとWebサービスの間の通信がセキュアであることが必須条件になり、セキュアな通信でない接続に関しては、すべて接続失敗として扱われます。
つまり今後、ATSの有効化が必須条件になると、Webサービスとの通信をセキュア化しなければ、アプリの承認が取得できなくなります。
既に、iOS9では、WebViewなどのクラスでhttpへの通常アクセスが不可能になっているとの指摘もされています。
ATSの設定の影響を受けるのは、ネットワーク通信を担うクラスになります。
現状では、例えば、httpのウェブページを利用するために NSAllowsArbitraryLoads を YES にしていた場合は、NSAllowsArbitraryLoadsInWebContent の部分で YES を設定してからWKWebViewのみhttp通信を許可することや、UIWebViewやNSURLSessionでhttp通信を行わざるを得ない場合もあります。
そうした場合、そのまま NSAllowsArbitraryLoads のみ YES に設定するなどの工夫をして、審査時に説明することになりそうです。
このあたりは、開発側としても試行錯誤をしながら、アップル発表の公式ドキュメントを読み込みつつ対応していくことが必要となるでしょう。
ATS必須化と、開発の指針
2016年6月のWWDCで、Appleは、2016年末を目処にATSを必須化することを表明しました。しかし、Appleは2016年12月になると、さらに猶予期間の延長を表明しました。現状では猶予期間の期限がいつになるか、公式見解は発表されていません。
ATSが厳格に適用されるのかといえば、今のところ交渉の余地があるというのが通説です。実はAppleに対して一部セキュリティ未達成の正当な理由を提示することによって、審査時にAppleにアプリが例外的に認定されることもあるといわれています。
しかし、その基準は明快でないので、あまり、安易に考えない方が良いでしょう。基本通り、ATSが厳格に適応されても動作するような水準で設計・開発を行うべきだといえます。
アプリ開発者にとっては、現在開発中のアプリが、いちから作り直しなることは、大きなリスク要因です。ATSが有効化される将来を見越して開発を進めていく必要があるといえるでしょう。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介