データを暗号化するのではなく、データが改ざんされるのを実際に防ぎたいようです。簡単な方法の 1 つは、HMACを使用することです。基本的に、サーバー シークレットがあり、サーバー シークレットを使用してデータをハッシュし、ハッシュされた出力を Cookie に入れます。それを検証するには、Cookie からハッシュを削除し、サーバー シークレットを使用して残りのデータのハッシュを計算し、Cookie のハッシュと照合します。攻撃者はサーバーの秘密を知らないため、正しいハッシュを計算できないため、データを改ざんすることはできません。
したがって、たとえば、データが「foo=bar&baz=qux」の場合、「foo=bar&baz=qux」の安全なハッシュを計算し、「EN0RmBxNGyo」と言って、Cookie を「foo=bar&baz=qux&hash=EN0RmBxNGyo」に設定します。 "。次に、Cookie を取得したら、ハッシュを削除して "foo=bar&baz=qux" を取得し、そのハッシュを計算します。再び「EN0RmBxNGyo」を取得します。これは Cookie のハッシュと一致するため、Cookie を受け入れます。
攻撃者が「foo=bar&baz=qux」を変更すると、ハッシュが一致せず、Cookie が拒否されます。ハッシュの計算に使用されたサーバーの秘密を知らないため、変更されたデータに対応するハッシュを計算できません。
有能な暗号技術者に実装をレビューしてもらう必要があることに注意してください。実装が不十分な HMAC は、長さ拡張攻撃に対して脆弱である可能性があります.Flickr が困難な方法を発見したという事実.