iOSアプリにSSL対応を!
こんにちは!(株)まえびー アプリ業務担当の新人Mといいます。
以前WEBサイトのSSL対応について記事をあげさせていただきましたが、
今回はiPhoneやiPadといったiOSのアプリのSSL対応についてです。
アップルから「2017年1月1日以降AppStoreにリリースする全iOSアプリに対して、App Transport Security(ATS)適用の義務化を実施する」
発表があったことはご存知でしょうか?(2017年1月23日現在、ATS義務化の延期が発表され、最終期限は未定です) 1
App Transport Security(ATS)とは
ATSはiOS9以降から導入された、セキュアなネットワーク接続を使用するようにアプリケーションに要求し、
ユーザーのセキュリティとプライバシーを向上させるための機能2です。大雑把にいうとHTTPS通信以外は許可しません!という機能ですね。
現在はATSをiOSアプリで無効化や一部の除外設定をすることでSSL未対応の通信でもリリースが可能です。
ですが、義務化になった場合、前述の対応では審査に通らなくなります。(審査時に正当な理由が必要です)2
ATS義務化の場合
また、ATSの義務化はサーバーとの通信を行うアプリだけでなく、
アプリ内でWebページを表示するような場合にも対応が必須になります!
そのため、延期している今のうちにサーバーのSSL対応とiOSアプリのATS対応を行いましょう!
ATSの実装
・アプリ
対象となるiOSアプリはサーバーとの通信や、Webページを表示するアプリになります。
アプリで通信を行う場合は、ATSの有効化と通信先をセキュアな通信先に向ける必要があります。
・サーバー
セキュアな通信先ということは、もちろんサーバー側のSSL対応が必要になります(サーバー側のSSL対応については第一回目の記事が参考になります!)。
なお、単純にSSLに対応しているサーバーというだけでなく、適切な設計2を行わなければ、ATSが正しく適用できない可能生があります。
サーバー側の状況も確認し、場合によっては対応が必要になってくるでしょう。
ATSのまとめ
開発者側ではやや負担になりがちなATS対応ですが、実際にお使いになるお客様にとっては
「信頼できる相手との通信を保証」してくれたり、「中間者攻撃の対策に有効」だったりと、安心してシステムをご利用できる機能になっています。
義務化の期限が延期されている今、ATS未対応のiOSアプリを提供されている方は、これを機にATS対応をご検討してみてはいかがでしょうか。
記事作成日:2017年1月23日
参考
1.Supporting App Transport Security
https://developer.apple.com/news/?id=12212016b
2.Apple Information Property List Key Reference