追加情報

improve this page | report issue

iOS アプリケーションでの TLS セキュア接続の適用

iOS 9 以降、すべてのアプリケーションでバージョン 1.2 の Transport Layer Security (TLS) プロトコルを適用する必要があります。 開発目的のため、このプロトコルを無効にして iOS 9 の要件を回避することができます。

Apple の App Transport Security (ATS) は、アプリケーションとサーバーの間の接続にベスト・プラクティスを適用する iOS 9 の新しいフィーチャーです。 デフォルトでは、このフィーチャーはセキュリティーを向上させるいくつかの接続要件を適用します。 これには、クライアント・サイドの HTTPS 要求とサーバー・サイド証明書、および前方秘匿性を使用して Transport Layer Security (TLS) バージョン 1.2 に準拠する接続暗号が含まれます。

開発目的のため、App Transport Security Technote で説明するように、アプリケーション内の info.plist ファイルで例外を指定することによって、デフォルトの動作をオーバーライドすることができます。 ただし完全な実稼働環境では、すべての iOS アプリケーションで、正しく機能するために TLS セキュア接続を適用する必要があります。

非 TLS 接続を有効にするには、project-name\Resources フォルダーにある project-name-info.plist ファイル内に、以下の例外が記述されている必要があります。

<key>NSExceptionDomains</key>
    <dict>
        <key>yourserver.com</key>
    
            <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>

            <!--Include to allow insecure HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>

実働の準備手順

  1. このページの前述のコードを削除またはコメント化します。
  2. 以下のエントリーを使用して HTTPS 要求をディクショナリーに送信するようにクライアントをセットアップします。

    <key>protocol</key>
    <string>https</string>
    
    <key>port</key>
    <string>10443</string>
    

    SSL ポート番号は、サーバー上の server.xml 内の httpEndpoint 定義で定義されています。

  3. TLS 1.2 プロトコル用に有効になっているサーバーを構成します。 詳しくは、『Configuring MobileFirst Server to enable TLS V1.2』を参照してください
  4. ご使用のセットアップに適用される暗号および証明書の設定を行います。 詳しくは、「App Transport Security Technote」、『Secure communications using Secure Sockets Layer (SSL) for WebSphere Application Server Network Deployment』、および『Liberty プロファイルの SSL 通信の使用可能化』を参照してください。

Cordova アプリケーションでの OpenSSL の有効化

MobileFirst Cordova SDK for iOS は、暗号化にネイティブの iOS API を使用します。 代わりに Cordova iOS アプリケーションで OpenSSL 暗号化ライブラリーが使用されるように、アプリケーションを構成できます。

暗号化/暗号化解除機能は、以下の JavaScript API を使用して提供されます。

  • WL.SecurityUtils.encryptText
  • WL.SecurityUtils.decryptWithKey

オプション 1: ネイティブの暗号化/暗号化解除

デフォルトで、MobileFirst は OpenSSLを使用しないネイティブの暗号化/暗号化解除を提供します。 これは、以下の暗号化/暗号化解除の動作を明示的に設定することと同じです。

  • WL.SecurityUtils.enableNativeEncryption(true)

オプション 2: OpenSSL の有効化

MobileFirst 提供の OpenSSL は、デフォルトでは無効になっています。

OpenSSL をサポートするために必要なフレームワークをインストールするには、まず、以下のように Cordova プラグインをインストールします。

cordova plugin add cordova-plugin-mfp-encrypt-utils

以下のコードは、暗号化/暗号化解除の OpenSSL オプションを有効にします。

  • WL.SecurityUtils.enableNativeEncryption(false)

このセットアップにより、暗号化/暗号化解除の呼び出しは、以前のバージョンの Mobile Foundation と同様に OpenSSL を使用します。

マイグレーション・オプション

以前のバージョンの MobileFirst 製品で作成されたプロジェクトがある場合、引き続き OpenSSL を使用するためには、変更の組み込みが必要になる場合があります。

  • アプリケーションが暗号化/暗号化解除 API を使用しておらず、デバイスでキャッシュに入れられた暗号化データがない場合、アクションは不要です。
  • アプリケーションが暗号化/暗号化解除 API を使用している場合、これらの API で OpenSSL を使用することも、使用しないことも可能です。
    • **ネイティブ暗号化へのマイグレーション: **
      1. デフォルトのネイティブの暗号化/暗号化解除オプションが選択されていることを確認します (『オプション 1』を参照)。
      2. キャッシュ・データのマイグレーション: 製品の以前のインストール済み環境において OpenSSL を使用してデバイスに暗号化データを保存していたが、今回、ネイティブの暗号化/暗号化解除オプションを選択した場合、保管されているデータは暗号化解除される必要があります。 アプリケーションが初めてデータを暗号化解除しようとしたとき、OpenSSL にフォールバックし、ネイティブ暗号化を使用してデータが暗号化されます。 このように、データはネイティブ暗号化に自動的にマイグレーションされます。 注: OpenSSL からの暗号化解除を可能にするには、次のように入力して Cordova プラグインをインストールすることによって、OpenSSL フレームワークを追加する必要があります。cordova plugin add cordova-plugin-mfp-encrypt-utils
    • OpenSSL の継続: OpenSSL が必要な場合は、『オプション 2』に記載されているセットアップを使用します。
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on February 28, 2020