iOS での OpenSSL の有効化

MobileFirst iOS SDK は、暗号化にネイティブの iOS API を使用します。 iOS アプリケーションで OpenSSL の暗号化ライブラリーを使用するように、IBM MobileFirst™ Platform Foundation V8.0.0 を構成できます。

暗号化/暗号化解除は、WLSecurityUtils.encryptText()WLSecurityUtils.decryptWithKey() の API で提供されます。

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

ネイティブの暗号化および暗号化解除は、OpenSSL を使用せずにデフォルトで提供されます。 これは、以下のように暗号化または暗号化解除の動作を明示的に設定することと同じです。

WLSecurityUtils enableOSNativeEncryption:YES

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

OpenSSL はデフォルトで無効になっています。これを有効にするには、以下のようにします。

  1. 以下のようにして、OpenSSL フレームワークをインストールします。
    • CocoaPods を使用する場合: CocoaPods で IBMMobileFirstPlatformFoundationOpenSSLUtils ポッドをインストールします。 CocoaPods での OpenSSL の追加を参照してください。
    • Xcode で手動で行う場合: 「ビルド・フェーズ (Build Phases)」タブの「バイナリーをライブラリーとリンク (Link Binary with Libraries)」セクションで、 IBMMobileFirstPlatformFoundationOpenSSLUtilsopenssl のフレームワークを手動でリンクします。 手動での OpenSSL フレームワークの追加を参照してください。
  2. 以下のコードは、暗号化/暗号化解除の OpenSSL オプションを有効にします。

    WLSecurityUtils enableOSNativeEncryption:NO

    このコードは、 OpenSSL 実装が見つかれば使用し、そうでない場合、フレームワークが正しくインストールされなければエラーをスローします。

このセットアップにより、暗号化/暗号化解除の呼び出しで、製品の以前のバージョンと同様に OpenSSL が使用されます。

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

以前のバージョンで作成された MobileFirst プロジェクトがある場合、引き続き OpenSSL を使用するには、変更を組み込むことが必要になる場合があります。
  • アプリケーションが暗号化/暗号化解除 API を使用しておらず、デバイスでキャッシュに入れられた暗号化データがない場合、アクションは不要です。
  • アプリケーションが暗号化/暗号化解除 API を使用している場合、これらの API で OpenSSL を使用することも、使用しないことも可能です。.
ネイティブ暗号化へのマイグレーション
  1. デフォルトのネイティブの暗号化/暗号化解除オプションが選択されていることを確認します (『オプション 1』を参照)。
  2. キャッシュ・データのマイグレーション: IBM MobileFirst Platform Foundation の以前のインストール済み環境で OpenSSL を使用してデバイスにキャッシュ・データを保存した場合、 オプション 2 に記述されているように OpenSSL フレームワークがインストールされていなければなりません。 アプリケーションは、初めてデータを暗号化解除しようとしたとき、 OpenSSL にフォールバックし、その後、ネイティブ暗号化を使用してそれを暗号化します。 OpenSSL フレームワークがインストールされていない場合、エラーがスローされます。 このように、データがネイティブ暗号化に自動マイグレーションされ、後続のリリースは、OpenSSL フレームワークを使用せずに動作することができます。
引き続き OpenSSL を使用
OpenSSL が必要な場合は、『オプション 2』に記載されているセットアップを使用してください。