2

Asp.net MVC アプリケーションごとに、静的または動的キーを使用してユーザーの要求/応答を検証します。たとえば、web.config ファイルでは、静的検証のためにこれを使用できます。

<machineKey validationKey="AC7308C5274D969E665AC7BED7A863582B571D97D9ED03B314952BD3DD159CDFC164E2341D44BDE8F0284FA924052817B3D7429433AABC3F53A118BB7B3F9ABB" decryptionKey="1EDB4490EC0074F7FF3099D450D5E92F1D39F577F9799D14033D1B27DB0F7A93B" validation="SHA1" decryption="AES" />

一方、Web アプリのセキュリティをアップグレードするための SSL (Secure Socket Layer) というツールがあります。SSL には否認防止メカニズムもあります。

これを念頭に置いて、私の質問は次のとおりです。

それらの間にどのような違いがありますか?また、それらに関連する仕事にはどのようなものがありますか? それぞれがアプリのどの部分を保護しますか? 言い換えれば、SSL を使用する代わりに MVC ValidationKey を使用することで、アプリから信頼できるでしょうか?

私を困惑させる概念は次のとおりです。暗号化/復号化の両方があります。

4

1 に答える 1

4

非常に大まかな答えは、さまざまなものを保護するというものです。それらは補完的です。セキュリティで保護された ASP.NET アプリケーションは、両方を同時に使用します。

SSL は、信頼できない第三者からクライアントとサーバーを保護するために使用されます。認証を提供します。クライアントは、自分が話しているサーバーの ID を知っています。また、整合性保護も提供します。クライアントは、自分が取得しているページが実際には攻撃者ではなくサーバーから来たものであることを知っています。また、機密性も提供します。チェックアウト時にクライアントがサーバーに送信するクレジット カード番号を読み取ることはできません。

一方、<machineKey> 要素は、悪意のあるクライアントからサーバーを保護します。あなたのサーバーが「levi」というログイン Cookie を私に送ったとします。Cookie の内容を「amir」に変更するとどうなりますか? <machineKey> 暗号化サービスにより、サーバーは、Cookie やフォーム フィールド (__VIEWSTATE など) などの情報がサーバー -> クライアント -> サーバーから往復するときに、クライアントが悪意のある方法でペイロードを改ざんしていないことを確認できます。ファッション。

于 2013-08-28T03:41:05.927 に答える