次の方法で共有


machineKey 要素 (ASP.NET 設定スキーマ)

更新 : 2007 年 11 月

フォーム認証 Cookie データおよびビューステート データの暗号化と復号、およびアウトプロセス セッション ステート ID の検証に使用するキーを構成します。

configuration 要素 (全般設定スキーマ)
  system.web 要素 (ASP.NET 設定スキーマ)
    machineKey 要素 (ASP.NET 設定スキーマ)

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="SHA1" [SHA1 | MD5 | 3DES | AES]
  decryption="Auto" [Auto | DES | 3DES | AES]
/>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

説明

decryption

省略可能な String 属性です。

データの復号化に使用するハッシュ アルゴリズムの種類を指定します。

この属性には、次のいずれかの値を指定できます。

値説明
Auto 構成設定に基づいて、使用する復号化アルゴリズムを決定するように指定します。これは既定の machineKey の復号化値です。
AES ASP.NET でデータの復号に AES (ラインダール) アルゴリズムを使用することを指定します。AES はデータ復号の既定のアルゴリズムです。
3DES TripleDES アルゴリズムを使用してデータを復号化するように指定します。TripleDES (3DES) アルゴリズムでは、DES アルゴリズムが 3 回連続して反復処理されます。
DES データ暗号化標準 (DES : Data Encryption Standard) アルゴリズムを使用してデータを復号化するように指定します。
w8h3skw9.alert_note(ja-jp,VS.90).gifメモ :
この属性は .NET Framework Version 2.0 で新たに追加されました。

decryptionKey

必須の String 属性です。

データの暗号化および復号に使用されるキー、またはキーを生成するプロセスを指定します。validation を TripleDES フィールドに設定すると、この属性は Forms 認証の暗号化と復号、およびビューステートの暗号化に使用されます。

decryptionKey 値の IsolateApps 修飾子は、ASP.NET でアプリケーションの ID を使用し、アプリケーションごとに一意の暗号化キーを生成するように指定します。IsolateApps は既定値の一部として含まれます。

Web サーバーのネットワーク (Web ファーム) 全体の構成をサポートする必要がある場合は、構成に一貫性を持たせるために、この属性を手動で設定します。

この属性には、次のいずれかの値を指定できます。既定値は、AutoGenerate,IsolateApps です。

値説明
AutoGenerate, IsolateApps AutoGenerate 修飾子は、ASP.NET で乱数キーを生成し、ローカル セキュリティ機関 (LSA: Local Security Authority) を格納するように指定します。IsolateApps 修飾子は、ASP.NET で各アプリケーションのアプリケーション ID を使用し、アプリケーションごと一意の暗号化キーを生成するように指定します。これは既定値です。
値 手動で割り当てられたキーを指定します。この値は、Web ファーム上での設定に一貫性を持たせるために、16 進の文字の文字列に手動で設定する必要があります。DES 暗号を使用する場合はキーの長さを 16 進の 16 文字にする必要があり、Triple DES (3 DES) または AES の暗号を使用する場合はキーの長さを 16 進の 48 文字にする必要があります。最大長よりも短いキーを使用する場合は、RNGCryptoServiceProvider クラスを使用するなど、完全にランダムな方法で作成されたキーを使用する必要があります。ASP.NET では、128 ビットの暗号化が利用可能なコンピュータでだけ Triple DES を使用できます。

validation

必須の MachineKeyValidation 属性です。

データの検証に使用する暗号化の種類を指定します。

この属性には、次のいずれかの値を指定できます。既定値は、SHA1 です。

値説明
AES AES (Rijndael) アルゴリズムを使用してデータを検証するように指定します。
MD5 メッセージ ダイジェスト 5 (MD5) ハッシュ アルゴリズムを使用してデータを検証するように指定します。このアルゴリズムは、パフォーマンスの点で SHA1 より優れています。
SHA1 SHA1 ハッシュ アルゴリズムを使用してデータを検証するように指定します。このアルゴリズムを使用すると、セキュリティが向上します。 これは既定値です。
3DES TripleDES アルゴリズムを使用してデータを検証するように指定します。TripleDES アルゴリズムでは、DES アルゴリズムが 3 回連続して反復処理されます。

validationKey

必須の String 属性です。

暗号化されたデータの検証に使用されるキーを指定します。validationKey は、enableViewStateMAC が true の場合に、ビューステートが改ざんされないようにするメッセージ認証コード (MAC) を作成するために使用されます。validationKey は、アウトプロセスでアプリケーション固有のセッション ID を生成し、セッション状態の変数をセッション間で切り離すためにも使用されます。

validationKey 値の IsolateApps 修飾子は、ASP.NET でアプリケーションの ID を使用し、アプリケーションごとに一意の暗号化キーを生成するように指定します。IsolateApps は既定値の一部として含まれます。

Web サーバーのネットワーク (Web ファーム) 全体の構成をサポートする必要がある場合は、構成に一貫性を持たせるために、validationKey 属性を手動で設定します。

この属性には、次のいずれかの値を指定できます。既定値は、"AutoGenerate,IsolateApps" です。

値説明
AutoGenerate, IsolateApps AutoGenerate 修飾子は、ASP.NET で乱数キーを生成し、ローカル セキュリティ機関 (LSA) を格納するように指定します。IsolateApps 修飾子は、ASP.NET で各アプリケーションのアプリケーション ID を使用し、アプリケーションごとに一意の暗号化キーを生成するように指定します。これは既定値です。
値 手動で割り当てられたキーを指定します。この値は、Web ファーム上での設定に一貫性を持たせるために、16 進の文字の文字列に設定する必要があります。DES 暗号を使用する場合はキーの長さを 16 進の 16 文字にする必要があり、Triple DES (3 DES) または AES の暗号を使用する場合はキーの長さを 16 進の 48 文字にする必要があります。最大長よりも短いキーを使用する場合は、RNGCryptoServiceProvider クラスを使用するなど、完全にランダムな方法で作成されたキーを使用する必要があります。ASP.NET では、128 ビットの暗号化が利用可能なコンピュータでだけ Triple DES を使用できます。

子要素

なし。

親要素

要素

説明

configuration

共通言語ランタイムおよび .NET Framework ベースのアプリケーションで使用されるすべての構成ファイルで必要なルート要素です。

system.web

構成ファイルの ASP.NET 構成設定のルート要素を指定します。ASP.NET Web アプリケーションを構成する構成要素やアプリケーションの動作を制御する構成要素が含まれます。

解説

validationKey 属性と decryptionKey 属性を両方とも AutoGenerate に設定する方法を次のコード例に示します。サーバー上の各アプリケーションに一意のキーを生成するために、isolateApps 値が指定されています。

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

要素情報

構成セクション ハンドラ

MachineKeySection

構成メンバ

MachineKey

構成できる場所

Machine.config ファイル

ルート レベルの Web.config ファイル

アプリケーション レベルの Web.config ファイル

必要条件

Microsoft Internet Information Services (IIS) 5.0、5.1、または 6.0

.NET Framework Version 1.0、1.1、または 2.0

参照

処理手順

チュートリアル : 保護された構成を使用した構成情報の暗号化

方法 : Location の設定を使用して特定のディレクトリを構成する

方法 : ASP.NET 構成設定をロックする

概念

ロールのセキュリティ保護

メンバシップのセキュリティ保護

プロファイル プロパティの保護

セッション状態の保護

ASP.NET 構成ファイルの階層と継承

ASP.NET 構成の保護

ASP.NET の構成のシナリオ

参照

system.web 要素 (ASP.NET 設定スキーマ)

configuration 要素 (全般設定スキーマ)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

その他の技術情報

全般構成設定 (ASP.NET)

ASP.NET 構成設定

ASP.NET Web サイトの管理

ASP.NET 構成 API