Submit Search
Upload
Apple iOS9 (ATS)への対応
•
6 likes
•
8,032 views
J-Stream Inc.
Follow
2015年10月6日に開催した「 常時SSL化の時代へ」セミナーのプレゼンテーション資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 16
Download now
Download to read offline
Recommended
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
niwatako
MVNO CDN
MVNO CDN
J-Stream Inc.
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
J-Stream Inc.
CDNのトレンド2017 セキュリティCDNとマルチCDN
CDNのトレンド2017 セキュリティCDNとマルチCDN
J-Stream Inc.
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
CDNによるInternet支配の現状とICNの可能性
CDNによるInternet支配の現状とICNの可能性
J-Stream Inc.
セキュリティCDN: Imperva Incapsula
セキュリティCDN: Imperva Incapsula
J-Stream Inc.
Cedexis
Cedexis
J-Stream Inc.
Recommended
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
niwatako
MVNO CDN
MVNO CDN
J-Stream Inc.
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
J-Stream Inc.
CDNのトレンド2017 セキュリティCDNとマルチCDN
CDNのトレンド2017 セキュリティCDNとマルチCDN
J-Stream Inc.
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
CDNによるInternet支配の現状とICNの可能性
CDNによるInternet支配の現状とICNの可能性
J-Stream Inc.
セキュリティCDN: Imperva Incapsula
セキュリティCDN: Imperva Incapsula
J-Stream Inc.
Cedexis
Cedexis
J-Stream Inc.
マルチCDNの概要
マルチCDNの概要
J-Stream Inc.
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
J-Stream Inc.
WordPressのCDN化
WordPressのCDN化
J-Stream Inc.
CDNのパフォーマンス比較/Cedexis
CDNのパフォーマンス比較/Cedexis
J-Stream Inc.
SSLの最新トレンド
SSLの最新トレンド
J-Stream Inc.
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
CDNホットトピック(SSLとパケット着信課金)
CDNホットトピック(SSLとパケット着信課金)
J-Stream Inc.
次世代CDNのトレンド
次世代CDNのトレンド
J-Stream Inc.
ストリーミングのTLS(SSL)化
ストリーミングのTLS(SSL)化
J-Stream Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
More Related Content
More from J-Stream Inc.
マルチCDNの概要
マルチCDNの概要
J-Stream Inc.
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
J-Stream Inc.
WordPressのCDN化
WordPressのCDN化
J-Stream Inc.
CDNのパフォーマンス比較/Cedexis
CDNのパフォーマンス比較/Cedexis
J-Stream Inc.
SSLの最新トレンド
SSLの最新トレンド
J-Stream Inc.
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
CDNホットトピック(SSLとパケット着信課金)
CDNホットトピック(SSLとパケット着信課金)
J-Stream Inc.
次世代CDNのトレンド
次世代CDNのトレンド
J-Stream Inc.
ストリーミングのTLS(SSL)化
ストリーミングのTLS(SSL)化
J-Stream Inc.
More from J-Stream Inc.
(9)
マルチCDNの概要
マルチCDNの概要
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
WordPressのCDN化
WordPressのCDN化
CDNのパフォーマンス比較/Cedexis
CDNのパフォーマンス比較/Cedexis
SSLの最新トレンド
SSLの最新トレンド
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
CDNホットトピック(SSLとパケット着信課金)
CDNホットトピック(SSLとパケット着信課金)
次世代CDNのトレンド
次世代CDNのトレンド
ストリーミングのTLS(SSL)化
ストリーミングのTLS(SSL)化
Recently uploaded
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Recently uploaded
(11)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Apple iOS9 (ATS)への対応
1.
1 Apple iOS9(ATS)への対応 株式会社Jストリーム 配信事業統括本部 事業推進部 マネージャー
佐藤 太一 © 2015 J-Stream Inc. All Rights Reserved.
2.
Apple iOS9(ATS)への対応 ▶アジェンダ ▶ATS(=App Transport
Security)とは ▶サーバー側での対応 ▶アプリケーション側での対応 ▶参考:IPv6 only networkへの対応(DNS64+NAT64) © 2015 J-Stream Inc. All Rights Reserved. 2
3.
ATS(=App Transport Security)とは ▶Apple
iOS9以降、Mac OS X v10.11以降で適用される、アプリケー ション内の通信をセキュアにするためにAppleが導入した仕組み ▶現時点での最適に近いセキュアな接続をデフォルトとして動作させ る ▶ATS対応が出来ていないと、Appleのアプリケーション審査を今後通 過する事が出来なくなる可能性がある ▶公式Webサイト ▶App Transport Security Technote ▶https://developer.apple.com/library/prerelease/mac/technotes/App- Transport-Security-Technote/index.html © 2015 J-Stream Inc. All Rights Reserved. 3
4.
サーバー側での対応① まとめ-1 ▶外部の接続先(アプリ内からの通信先)に以下の要件が要求される 1. HTTPs(TLS version1.2)以上 2.
指定の暗号化スイート(CipherSuite)を利用 3. サーバー証明書の暗号化強度 ▶SHA256以上のフィンガープリント ▶2048ビット以上のRSAキー、もしくは256ビット以上のElliptic-Curve(ECC)キー 4. 無効な証明書を指定した場合は接続不可 ▶チェック用Webサイト ▶https://www.ssllabs.com/ssltest/ ▶“Do not show the results on the boards”にチェックを入れましょう! © 2015 J-Stream Inc. All Rights Reserved. 4
5.
サーバー側での対応② まとめ-2 © 2015 J-Stream
Inc. All Rights Reserved. 5 パラメータ 必要性 デフォルト カスタマイズ デフォルト カスタマイズ SSL証明書 署名 SHA256以上 不可 ー ー 公開鍵の鍵長 RSA2048以上、 EC256以上 不可 ー ー プロトコル SSLバージョン TLS 1.2 可能 ー ー Forward Secrecy (鍵交換アルゴリズム) ECDHE 不可 必要 可能
6.
サーバー側での対応③ 1.HTTPs(TLS version1.2)以上 ▶HTTPs(TLS version1.2)以上 ▶SSL3.0の脆弱性(POODLE:2014/10)によりサーバー側、クライアント側共 にSSL3.0以下は塞がれている事が最近は多い ▶特にフィーチャーフォン対応で一部SSL3.0を残しているWebサイトはあるが、 多くのWebサイトは既に対応済 ▶Internet
Explorer 11は2015/4/14にSSL3.0を既定で無効化 ▶Windows Update経由で自動的に変更されている ▶TLS version1.2をサーバー側でサポートするにはそれなりに新しいサーバー ソフトウェアを利用する必要あり ▶Apache 2.2以降(+openssl1.0.1以降) ▶RHEL/CentOS標準提供のソフトウェアを利用の場合は6以降 ▶Nginx1.1.13以降(+openssl1.0.1以降) ▶IIS 7.5以降 ▶Win2008R2/Win7以降 © 2015 J-Stream Inc. All Rights Reserved. 6
7.
サーバー側での対応④ 2.指定の暗号化スイート(CipherSuite)を利用 ▶指定の暗号化スイート(CipherSuite) ▶TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ▶TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ▶TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ▶TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ▶TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ▶TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ▶TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ▶TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ▶TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ▶TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ▶TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ▶forward secrecy(前方秘匿性)対応が必要 ▶SSL証明書の秘密鍵が漏洩しても、過去の通信に対する解読を不可能とすること ▶ECDHEを満たせば自動的に条件が満たされる ▶上記もある程度新しいソフトウェアでないと対応不可 ▶openssl側では対応出来ていたがWebサーバーソフトウェア側で対応出来ていないといった事も有るので注意 ▶将来的に変更される可能性あり ▶2015/08の対応中にtechnoteが変更されて色々大変でした © 2015
J-Stream Inc. All Rights Reserved. 7
8.
サーバー側での対応⑤ 3.サーバー証明書の暗号化強度 ▶サーバー証明書の暗号化強度 ▶SHA256以上のフィンガープリント ▶2048ビット以上のRSAキー、もしくは256ビット以上のElliptic-Curve(ECC)キー ▶それぞれ業界主導でかなり進んでいるため、それ程大きな問題では ない ▶SHA-1、1024ビットRSAキーのSSL証明書は既に多くのSSL事業者で発行停 止の状況 © 2015 J-Stream
Inc. All Rights Reserved. 8
9.
サーバー側での対応⑥ 4.無効な証明書を指定した場合は接続不可 ▶自己署名証明書(オレオレ証明書)の利用不可 ▶SSL事業者から入手しましょう © 2015 J-Stream
Inc. All Rights Reserved. 9
10.
アプリケーション側での対応① まとめ ▶基本的にはサーバー側での対応を行うのが良 ▶将来的にサーバー側対応が出来ていないとAppleの審査でNGになる可能性が高い ▶ATSがデフォルトで有効になる条件 ▶アプリをiOS9用にビルドした場合(Xcode7) ▶iOS8以前向けにビルドした場合、ATSの強制適用は行われない ▶ATS有効化の影響範囲 ▶概要 ▶アプリからの通信において、HTTPアクセスがエラーとなる ▶対象となるAPI ▶NSURLConnection, CFURL, NSURLSession ▶関連クラス ▶WebView ▶回避方法が用意されている(Info.plist) ▶アプリ内全部のATSを無効にする(Apple非推奨) ▶利用するドメイン限定でATSを無効にする ▶暗号化通信の制限を緩和する ▶SFSafariViewControllerを利用する ©
2015 J-Stream Inc. All Rights Reserved. 10
11.
アプリケーション側での対応② ATS有効化の影響範囲 詳細 ▶NSURLConnection, CFURL,
NSURLSession ▶iOS 9.0 以降と OS X 10.11 以降向けにビルドされたアプリでは、 NSURLConnection、CFURL、NSURLSession を使用するすべての接続は ATS デフォルトの挙動(=HTTPs通信)になる ▶WebView ▶HTTPのWebページは表示しない(内部エラーになる) ▶補足:SFSafariViewControllerはATSの影響を受けない © 2015 J-Stream Inc. All Rights Reserved. 11
12.
アプリケーション側での対応③ 回避方法(Info.plist) ▶アプリ内全部のATSを無効にする(Apple非推奨) ▶利用するドメイン限定でATSを無効にする © 2015 J-Stream
Inc. All Rights Reserved. 12 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>sample.jp</key> <dict> <key>NSIncludesSubdomains</key> →サブドメインでの利用を許可 <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> →HTTPの利用を許可 <true/> </dict> </dict> </dict>
13.
アプリケーション側での対応④ 回避方法(Info.plist) ▶暗号化通信の制限を緩和する ▶SFSafariViewControllerを利用する © 2015 J-Stream
Inc. All Rights Reserved. 13 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>sample.jp</key> <dict> <key>NSTemporaryExceptionMinimumTLSVersion</key> →TLSの最小バージョンを指定 <string>TLSv1.1</string> <key>NSExceptionRequiresForwardSecrecy</key> →ForwardSecrecyの評価をしない(利用できるChiperSuite拡大) <false/> </dict> </dict> </dict>
14.
アプリケーション側での対応⑤ Xcodeを使用してATSをオフにする方法 © 2015 J-Stream
Inc. All Rights Reserved. 14 ▶Projectを選択 ▶Supporting Filesを選択 ▶Project名-info.plistを選択 ▶Information Property List で+ボタンを押してKeyを増 やす ▶増えたKeyに NSAppTransportSecurityを 設定し、TypeはDictionaryに。 ▶NSAppTransportSecurityで +ボタンを押してKeyを増や す。 ▶増えたKeyに NSAllowsArbitraryLoadsを 設定し、TypeはBoolean、 ValueにYESを設定。
15.
参考:IPv6への対応(NAT64+DNS64) ▶WWDC2015で発表 ▶参考(英語資料) ▶http://devstreaming.apple.com/videos/wwdc/2015/719ui2k57m/719/719_your_app _and_next_generation_networks.pdf ▶iOS9ではクライアントアプリ側がIPv6環境で正常に通信出来る必要あり ▶Appleの審査でチェックされる(2016年初頭より) ▶AppStore上の無料TOP100アプリ中、30%のアプリは未対応(2015/07現在) ▶NAT64+DNS64対応と呼ばれる事が多い ▶以下のような実装に注意 ▶IPv4 を前提とした変数/構造体 (uint32_t,
in_addr, sockaddr_in) ▶IPv4 のみで利用可能なAPI (inet_aton, gethostbyname) ▶IPv4 のみで動作するAPI の呼出 (gethostbyname2(hostname, AF_INET)) ▶IPv4 に依存したネットワークの接続チェックが発生する場合 ▶デバイスが IPv4 アドレスを持っているか ▶0.0.0.0 に接続できるか © 2015 J-Stream Inc. All Rights Reserved. 15
16.
まとめ Apple iOS9(ATS)への対応 ▶Apple iOS9以降、Mac
OS X v10.11のアプリケーション内通信は サーバー側で以下を満たす必要がある ▶HTTPs(TLSv1.2以上)、指定のCipherSuteを利用、SHA256/2048bit 他 ▶サーバー側の対応が難しい場合はアプリケーション側で回避策を利 用して対応 ▶参考:IPv6対応も忘れずに! © 2015 J-Stream Inc. All Rights Reserved. 16
Download now