方法: 暗号化設定の操作
重要
2020 年 3 月より前にリリースされた Microsoft Rights Management Service SDK のバージョンは非推奨です。2020 年 3 月のリリースを使用するには、以前のバージョンを使用するアプリケーションを更新する必要があります。 詳細については、 非推奨の通知を参照してください。
Microsoft Rights Management Service SDK の今後の機能強化は計画されていません。 分類、ラベル付け、保護サービスには、Microsoft Information Protection SDK の導入を強くお勧めします。
このトピックでは、暗号化パッケージについて概説し、その使い方を示すいくつかのコード スニペットを紹介します。
AES 256 のサポート, 新しい既定
AES 256 ベースの暗号化は新しい既定なので、RMS SDK 2.1 の 2015 年 3 月の更新プログラムがビルドされていることを想定しており、コードを追加する必要はありません。 AES 256 で強化されたセキュリティ メリットを得るには、このリリースでアプリケーションを更新することを強くお勧めします。
重要
AES 256 で保護されたファイルの消費量のサポートは、2014 年 10 月のリリースより開始されています。 2014 年 10 月より前の SDK のバージョンでビルドされたアプリケーションを実行している場合、この更新プログラムによってアプリケーションは中断されます。 ビルドしているアプリケーションの顧客が更新後の SDK を使用していない場合、最新バージョンのアプリケーションにすぐに更新する意向があることを確認してください。
API 暗号化のサポート
2015 年 3 月の更新より、次の 3 つのフラグが API および関連する暗号化パッケージに組み込まれています。
- IPC_ENCRYPTION_PACKAGE_AES256_CBC4K
- IPC_ENCRYPTION_PACKAGE _AES128_CBC4K
- IPC_ENCRYPTION_PACKAGE _AES128_ECB (非推奨アルゴリズムとも呼ばれます)
暗号化パッケージ フラグは、「 優先暗号化」を参照してください。License Property フラグ - IPC_LI_PREFERRED_ENCRYPTION_PACKAGEと組み合わせて使用できます。
新しいライセンス プロパティの使用方法を示すいくつかの単純なコード スニペットは次のとおりです。
非推奨のアルゴリズム
API で IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS フラグを公開することはなくなりました。 今後、このフラグを参照しても、アプリケーションでコンパイルされませんが、このフラグを使用して既にビルドされたアプリケーションではこのフラグを API コード内でプライベートに使用するため、引き続き機能します。
フラグを 1 つ変更するだけで、古い非推奨の暗号化アルゴリズムのフラグの機能を利用できます。 次のコード スニペットの例をご覧ください。
AES 256 CBC4K によるファイルの保護
コードの変更は必要ありません。AES 256 CBC4K は既定値です。
hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
0,
NULL,
&pLicenseHandle);
AES 128 CBC4K によるファイルの保護
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 (非推奨のアルゴリズム) によるファイルの保護
この例は非推奨のアルゴリズムをサポートする新しい方法も示しています。
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);