インターネットのセキュリティについて調べていました。 Cookieのセクションにたどり着いたとき、たまたまCookie内の値は一般に暗号化された後にのみ保存されると読みました。しかし、暗号化は、Cookieを改ざんできる誰かによって簡単に解読できます。クッキーを改ざんした場合、暗号化されているかどうかにかかわらず、そのクッキーに対応するセッションにアクセスすることが可能です。では、実際にCookieを暗号化する目的は何ですか?
暗号化キーがサーバーに格納されている場合、サーバーのみがCookieを復号化でき、サーバーのみがCookieに予測可能な変更を加えることができます。攻撃者はCookieの暗号文を変更できますが、それらの変更がどのような影響を与えるかを事前に知ることはできません。 Cookieに メッセージ認証コード またはその他の改ざん対策がさらに含まれている場合、攻撃者は暗号化されたCookieを無効にすることなく変更を加えることはできません。
Cookieを暗号化すると、同じコンピューター上のユーザーと他のユーザーが、どの情報が保存されているかを確認できなくなります。これにより、サーバーは、セッションのサーバー側を追跡する必要なく、機密情報をユーザーに関連付けることができます(「自動的にログインする」情報など)。
Cookieの暗号化は、Cookieを盗む攻撃がユーザーを偽装するために使用されるのを防ぐためには何もしません。それを防ぐには、他の対策が必要です。
Cookieはさまざまな理由で使用されます。最も単純なレベルでは、追跡の目的で、またはユーザー設定などの拡張機能を提供するために、以前に訪問したのと同じ人物であることをサイトに通知する乱数が含まれる場合があります。このようなCookieを暗号化する必要はありません。
暗号化されたCookieは、クライアント側で変更したくない、またはユーザーに見られたくないものを永続化したい場合に使用されます。たとえば、認証プロセスの完了時に、後続の各リクエストで提示されるユーザーの詳細を含む暗号化されたCookieを設定します。これは、実際にはブラウザーが一連のその他の無関係なアトミック要求を行っているときに、「ログオンしたセッション」の外観を提供するものです。ほとんどの大規模なWebサイトでは、この認証されたセッション管理は、この複雑さをアプリケーション開発者から隠すフロントエンドインフラストラクチャサービスによって処理されます。
Cookieを使用して現在のアプリケーションの状態を含めることもできます。これは、アプリケーションが複数の地理的サイトにわたって実行され、ユーザーがデータを複製する前に別のサイトに戻ることが期待される場合に役立ちます。
最後のポイントについて言えば、暗号化されたデータを改ざんすると、ほとんどの場合、それが意図された目的のためにデータが役に立たなくなります。アプリケーションに応じて、サーバー側アプリケーションが失敗するか、暗号化されたデータの検証が失敗します。