web-dev-qa-db-ja.com

Webサイトの所有者は、ASP.NETのビューステートとCookieをどのように復号化しますか

クライアントに送信したくない情報がないかビューステートを監査したいのですが。この情報を人間が読める形式に復号化するために必要な手順は何ですか?

Cookieを復号化するにはどうすればよいですか?

プロセスに役立つツール(Firesheepのようなもの)はありますか?


3

@ blowdartが言及したように 、デフォルトではビューステートを暗号化しません(ここでも、最新バージョンで変更されたと思います)。

監査のみを行う場合は、ビューステートを暗号化しないように設定し(デフォルトか、手動でオフにする)、それを復号化する必要はありません。その後、完了したら、ビューステート暗号化を元に戻すことができます。

とにかく機密情報がないことを確認している場合は、おそらく暗号化は必要ありません。署名に設定するだけです...

ツールについては、次のいずれかを試してください(暗号化されていない場合)。

スタックオーバーフローで この質問 も見つけました。

3
AviD

デフォルトではない暗号化をオンにしたとすると、ASP.NETはWebサイト machine key をViewStateとCookieの暗号化と署名に使用されるキーとして使用します。 (検証と復号化のための)マシンキーをweb.configの既知の値に設定できるので、必要に応じてこれを使用して手動で復号化できます。

構成では、使用するアルゴリズムをオーバーライドすることもできるため、既知の開始点を取得するには、web.configでもそれらを設定する必要があります。

デフォルトでは、PKCS7パディングを使用したECBの3DESであり、ビューステート自体はbase 64文字列であるため、base64文字列を取得し、バイト配列に変換してから、3DES復号器を介してプッシュしてデータを取得します。 。

1
blowdart