[iOS] ATSをどうするか?レンタルサーバーを対応させる その2

 その1ではATSでAppleに説明しなくて済む理想的な仕様をダーっと書きました。

では、実際、自分が借りているレンタルサーバーはどうなんでしょう?その1にあったSSL Server Testのサイトでチェックして見ました。まずは、このサイトでも利用しているserverqueen、もう一つは別に利用しているvalue-serverです。両方とも格安サーバーですが、どんな感じでしょうか?

(1)ServerQueen

まず、ServerQueenです。ProtocolsのTLS1.2がNOとなっていますね(笑)。この時点で、Appleへの説明なしでの対応は無理なので諦めましょう。ATSを無効にするか、TLSを下げるかですが、いずれも説明が必須です。

(2)Value-Server

次にValue-Serverです。TLS1.2はOKのようです。つぎにみるのがCipher suite(暗号化スイーツ)です。鍵交換アルゴリズムがECDHEに対応していません。このままでは使えません。ここでドメイン毎にNSExceptionRequiresForwardSecrecyをNOに設定します。

An optional Boolean value for overriding the requirement that a server support perfect forward secrecy (PFS). Use this key to describe your app’s intended connection behavior for a domain whose security attributes you have control over.

Default value is

1
YES

, which limits the accepted ciphers to those listed in ATS Configuration Basics.

Setting the value to

1
NO

results in the following ciphers, which do not support FS, also being accepted:

  • 1
    TLS_RSA_WITH_AES_256_GCM_SHA384
  • 1
    TLS_RSA_WITH_AES_128_GCM_SHA256
  • 1
    TLS_RSA_WITH_AES_256_CBC_SHA256
  • 1
    TLS_RSA_WITH_AES_256_CBC_SHA
  • 1
    TLS_RSA_WITH_AES_128_CBC_SHA256
  • 1
    TLS_RSA_WITH_AES_128_CBC_SHA

上は、NSExceptionRequiresForwardSecrecyについての公式説明ですが、NOにすると、上の6つの暗号化スイーツが利用できる様になります。このプロパティには

Use of this key triggers App Store review and requires justification.

の文言がないので、変更してもAppleへの説明が不要です。というわけで、plist.infoのプロパティを以下の様にすると接続できる様になりました。

このように、なんとかすれば使えるレンタルサーバーもあれば、全く無理なところもあります。レンタルサーバーにアクセスするアプリを作る際は、借りる時によく調べておくのがいいと思います。

 

Posted in iOS

One thought on “[iOS] ATSをどうするか?レンタルサーバーを対応させる その2

Comments are closed.