次の方法で共有


ASP.NET Core でのマシン全体のデータ保護ポリシーのサポート

作成者: Rick Anderson

Windows で実行する場合、データ保護システムでは、ASP.NET Core Data Protection を使用するすべてのアプリに対して既定のコンピューター全体のポリシーを設定するためのサポートが制限されています。 一般的な考え方は、管理者は、コンピューター上のすべてのアプリを手動で更新しなくても、使用されるアルゴリズムやキーの有効期間などの既定の設定を変更したい場合があります。

Warning

システム管理者は既定のポリシーを設定できますが、適用することはできません。 アプリ開発者は、任意の値を自分で選択していつでもオーバーライドできます。 既定のポリシーは、開発者が設定に明示的な値を指定していないアプリにのみ影響します。

既定のポリシーの設定

管理者は、既定のポリシーを設定するために、システム レジストリで次のレジストリ キーの下に既知の値を設定できます。

HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection

64 ビット オペレーティング システムを使用していて、32 ビット アプリの動作に影響を与える場合は、上記のキーと同等の Wow6432Node を構成することを忘れないでください。

サポートされている値を次に示します。

Value タイプ Description
EncryptionType 文字列 データ保護に使用するアルゴリズムを指定します。 値は CNG-CBC、CNG-GCM、または Managed である必要があり、以下で詳しく説明します。
DefaultKeyLifetime ダブルワード 新しく生成されたキーの有効期間を指定します。 値は日数で指定され、 > = 7 である必要があります。
KeyEscrowSinks 文字列 キー エスクローに使用される型を指定します。 値は、キー エスクロー シンクのセミコロン区切りのリストです。リスト内の各要素は、 IKeyEscrowSinkを実装する型のアセンブリ修飾名です。

Encryption types

EncryptionType が CNG-CBC の場合、システムは、Windows CNG によって提供されるサービスの信頼性のために CBC モードの対称ブロック暗号を使用し、HMAC を使用するように構成されます (詳細については、 カスタム Windows CNG アルゴリズムの指定を 参照してください)。 次の追加値がサポートされています。各値は CngCbcAuthenticatedEncryptionSettings 型のプロパティに対応しています。

Value タイプ Description
EncryptionAlgorithm 文字列 CNG によって認識される対称ブロック暗号アルゴリズムの名前。 このアルゴリズムは CBC モードで開かれます。
EncryptionAlgorithmProvider 文字列 アルゴリズム EncryptionAlgorithm を生成できる CNG プロバイダー実装の名前。
EncryptionAlgorithmKeySize ダブルワード 対称ブロック暗号アルゴリズムの派生するキーの長さ (ビット単位)。
HashAlgorithm 文字列 CNG によって認識されるハッシュ アルゴリズムの名前。 このアルゴリズムは HMAC モードで開かれます。
HashAlgorithmProvider 文字列 アルゴリズム HashAlgorithm を生成できる CNG プロバイダー実装の名前。

EncryptionType が CNG-GCM の場合、システムは、Windows CNG によって提供されるサービスの機密性と信頼性のために Galois/Counter Mode 対称ブロック暗号を使用するように構成されます (詳細については、 カスタム Windows CNG アルゴリズムの指定を 参照してください)。 次の追加値がサポートされています。各値は CngGcmAuthenticatedEncryptionSettings 型のプロパティに対応しています。

Value タイプ Description
EncryptionAlgorithm 文字列 CNG によって認識される対称ブロック暗号アルゴリズムの名前。 このアルゴリズムは Galois/Counter モードで開かれます。
EncryptionAlgorithmProvider 文字列 アルゴリズム EncryptionAlgorithm を生成できる CNG プロバイダー実装の名前。
EncryptionAlgorithmKeySize ダブルワード 対称ブロック暗号アルゴリズムの派生するキーの長さ (ビット単位)。

EncryptionType が管理されている場合、システムは機密性のために管理された SymmetricAlgorithm を使用し、信頼性のために KeyedHashAlgorithm を使用するように構成されます (詳細については、 カスタム管理アルゴリズムの指定を 参照してください)。 次の追加の値がサポートされており、それぞれが ManagedAuthenticatedEncryptionSettings 型のプロパティに対応しています。

Value タイプ Description
EncryptionAlgorithmType 文字列 SymmetricAlgorithm を実装する型のアセンブリ修飾名。
EncryptionAlgorithmKeySize ダブルワード 対称暗号化アルゴリズムの派生するキーの長さ (ビット単位)。
ValidationAlgorithmType 文字列 KeyedHashAlgorithm を実装する型のアセンブリ修飾名。

EncryptionType に null または空以外の値がある場合、データ保護システムは起動時に例外をスローします。

Warning

型名 (EncryptionAlgorithmType、ValidationAlgorithmType、KeyEscrowSinks) を含む既定のポリシー設定を構成する場合は、その型をアプリで使用できる必要があります。 ASP.NET Core アプリの場合は、これらの種類を含むパッケージをインストールする必要があります。