方法: 暗号化設定の操作How-to: work with encryption settings

このトピックでは、暗号化パッケージについて概説し、その使い方を示すいくつかのコード スニペットを紹介します。This topic orients you to our encryption packages and shows some code snips for their use.

AES 256 のサポート, 新しい既定Support for AES 256, the new default

AES 256 ベースの暗号化は新しい既定なので、RMS SDK 2.1 の 2015 年 3 月の更新プログラムがビルドされていることを想定しており、コードを追加する必要はありません。No additional code is required to use AES 256 based encryption as it is the new default, assuming you build against the RMS SDK 2.1 March 2015 update or later. AES 256 で強化されたセキュリティ メリットを得るには、このリリースでアプリケーションを更新することを強くお勧めします。We encourage you to seriously consider updating your applications with this release for the additional security benefits of AES 256.

重要

AES 256 で保護されたファイルの消費量のサポートは、2014 年 10 月のリリースより開始されています。Support for consumption of AES 256 protected files has existed since the October 2014 release. 2014 年 10 月より前の SDK のバージョンでビルドされたアプリケーションを実行している場合、この更新プログラムによってアプリケーションは中断されます。If you are running applications built with a version of the SDK from before October 2014, this update will break your application. ビルドしているアプリケーションの顧客が更新後の SDK を使用していない場合、最新バージョンのアプリケーションにすぐに更新する意向があることを確認してください。Please make sure that customers of the applications you are building, are either using the updated SDK, or are willing to immediately update to the most recent version of your application.

 

API 暗号化のサポートAPI encryption support

2015 年 3 月の更新より、次の 3 つのフラグが API および関連する暗号化パッケージに組み込まれています。Beginning with the March 2015 update, we have incorporated the following three flags into our API and their associated encryption packages:

  • IPC_ENCRYPTION_PACKAGE_AES256_CBC4KIPC_ENCRYPTION_PACKAGE_AES256_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_CBC4KIPC_ENCRYPTION_PACKAGE _AES128_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_ECB (非推奨のアルゴリズムとも呼ばれます)IPC_ENCRYPTION_PACKAGE _AES128_ECB (Also known as, Deprecated Algorithms)

暗号化パッケージ フラグ (「Preferred encryption」(推奨される暗号化) を参照) はライセンス プロパティ フラグ (IPC_LI_PREFERRED_ENCRYPTION_PACKAGE) と併用できます。The encryption package flags, see Preferred encryption, can be used in conjunction with the, License Property flag - IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.

新しいライセンス プロパティの使用方法を示すいくつかの単純なコード スニペットは次のとおりです。Following are some simple code snippets that demonstrates how to use the new license property.

非推奨のアルゴリズムDeprecated Algorithms

API の IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS フラグは非公開となりました。We are no longer exposing the IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS flag in our API. 今後、このフラグを参照しても、アプリケーションでコンパイルされませんが、このフラグを使用して既にビルドされたアプリケーションではこのフラグを API コード内でプライベートに使用するため、引き続き機能します。This means that future applications will no longer compile if they reference this flag, but applications already built using it will continue to work since we honor the flag privately in the API code.

フラグを 1 つ変更するだけで、古い非推奨の暗号化アルゴリズムのフラグの機能を利用できます。Getting the benefit of the old deprecated encryption algorithms flag can still be achieved simply by changing one flag. 次のコード スニペットの例をご覧ください。See the following code snippets for an examples.

AES 256 CBC4K によるファイルの保護Protect Files with AES 256 CBC4K

コードの変更は必要ありません。AES 256 CBC4K は既定値です。No change in code needed, AES 256 CBC4K is the default.

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

AES 128 CBC4K によるファイルの保護Protect Files with AES-128 CBC4K

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_CBC4K;

hr = IpcSetLicenseProperty(pLicenseHandle,
                       false,
                       IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                       &dwEncryptionMode);

AES 128 ECB (非推奨のアルゴリズム) によるファイルの保護Protect Files with AES-128 ECB (Deprecated Algorithms)

この例は非推奨のアルゴリズムをサポートする新しい方法も示しています。This sample also shows the new way of supporting deprecated algorithms.

C++

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_ECB;

hr = IpcSetLicenseProperty(pLicenseHandle,
                       false,
                       IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                       &dwEncryptionMode);