メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Web ファームに展開されている Microsoft ASP.NET Web サイトにサービスを提供するサーバーに、セキュリティ更新プログラム MS10-070 を適用した後、Web ファーム内の一部のサーバーまたはアプリケーションで、以下のいずれかの現象が発生する場合があります。

  • データを暗号化解除できない

  • WebResource または ScriptResource ハンドラーで例外が発生する

  • フォーム認証を使用する場合に認証が失敗する

  • "無効な viewstate" 例外が発生する

  • フォーム認証 Cookie などのデータを暗号化解除しようとすると "データを検証できません" という例外が発生する

エラーは ASP.NET アプリケーションにアクセスする際のアプリケーション例外として表示される可能性があり、またアプリケーション ログには次のような情報が記録されている場合もあります。


メッセージ 1:

System.Web.HttpException : Unable to validate data. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
メッセージ 2:


種類: 警告
イベント ソース: ASP.NET 2.0.50727.0
イベント カテゴリ: Web イベント
イベント ID: 1309
日付: Date
時刻: Time
ユーザー: N/A
説明:
エラー コード: 3005
エラー メッセージ: ハンドルされていない例外が発生しました。
例外の情報:
例外の種類: HttpException
例外のメッセージ: データを検証できません。

原因

セキュリティ情報 MS10-070 で提供されるセキュリティ更新プログラムにより、ASP.NET の暗号化の既定の動作が変更されます。セキュリティ更新プログラムがインストールされた後の新しい既定の動作では、暗号化のみが要求されている場合であっても、暗号化に加えて検証を実行します。この既定の動作により、この更新プログラムが適用されたサーバーでは、暗号化されたペイロードが変更されます。ペイロードには、ビュー ステートとフォーム認証 Cookie が含まれる場合があります。Web ファームで、一部のサーバーにのみセキュリティ更新プログラムが適用される場合、Web ファーム内の異なるサーバーで、同じペイロードに対する暗号化と復号化の方法に相違が生じ、動作でのこの相違により例外が発生します。この動作は、セキュリティ更新プログラムが適用された後、セキュリティ更新プログラムを適用する前にシステム上で永続化されたフォーム認証 Cookie が消費された場合にも発生する可能性があります。

また、Microsoft .NET Framework 2.0 の Service Pack のバージョンが異なると、暗号化と復号化の方法が異なります。そのため、このセキュリティ更新プログラムがインストールされている Web ファーム環境で .NET Framework の Service Pack のレベルが異なると、暗号化されたペイロードが異なり、また同じような復号化のエラーが発生します。

解決方法

ASP.NET コンテンツをサービス提供するすべてのサーバーで、以下の条件がすべて該当することを確認します。

  • Web ファームで ASP.NET Web サイトにサービスを提供するすべてのサーバーで、セキュリティ更新プログラムをインストールする必要があります。一部のサーバーでセキュリティ更新プログラムがインストールされていない場合、これらサーバーに更新プログラムを適用する必要があります。

  • システム全体に MS10-070 セキュリティ更新プログラムを適用する場合、Web ファームであるバージョンの .NET Framework 2.0 を実行しているすべてのコンピューターでは、Service Pack のレベルが同じである必要があります。サーバー上の Service Pack のレベルに違いが存在する場合、すべてのサーバーを最新の Service Pack に更新し、すべてのセキュリティ更新プログラムを再度適用する必要があります。そのため、Web ファームの一部のサーバーが .NET Framework 2.0 SP1 を実行していて、他のサーバーが .NET Framework 2.0 SP2 を実行している場合は、Web ファームのすべてのサーバーにセキュリティ更新プログラムを適用する前に、すべての .NET Framework 2.0 SP1 のサーバーを .NET Framework 2.0 SP2 にアップグレードする必要があります。

  • 更新プログラムが適用される前に生成されたフォーム認証 Cookie などの暗号化されたデータを、アプリケーションが消費していないことを確認します。セキュリティ更新プログラムが適用された後に、以前に暗号化されたデータを更新する必要があります。

.NET Framework のバージョンを確認する方法の詳細、およびサーバーでのセキュリティ更新プログラムのインストールについては、「関連情報」を参照してください。

関連情報

ASP.NET ビュー ステートの詳細については、以下の資料を参照してください。

ASP.NET ビューステートの概要ASP.NET フォーム認証の詳細については、以下の資料を参照してください。

ASP.NET フォーム認証の概要ASP.NET 2.0 フォーム認証のチケットと Cookie の詳細については、以下のサポート技術情報番号をクリックしてください。

910443 フォーム認証のチケットと Cookie について ASP.NET の Web リソース ハンドラーの詳細については、以下のサポート技術情報番号をクリックしてください。

910442 ASP.NET 2.0 の Web リソースの操作

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×