がvalidationKeyとdecryptionKeyが総当たり攻撃から暗号化されたクッキーはどのようなものか?
-
21-08-2019 - |
質問
私は、以下のコードを生成する暗号化トークン:
var ticket = new System.Web.Security.FormsAuthenticationTicket(
2,
"",
DateTime.Now,
DateTime.Now.AddMinutes(10),
false,
"user id here");
var cipherText = System.Web.Security.FormsAuthentication.Encrypt(ticket);
このコードを鍵とアルゴリズムに指定のアプリ/web.config:
<system.web>
<machineKey validationKey="SOME KEY"
decryptionKey="SOME OTHER KEY"
validation="SHA1" />
</system.web>
今私は、暗号テキストが生成されるパートナーです。はっきの総当たり攻撃:
- の価値に格納される暗号化(ユーザidを示すものではありませんの機密情報やく気になっていませんか)
- の値をvalidationKeyとdecryptionKeyを作成するために使用するcipherのことを知る必要があり壊されるかを生成できるが、トークンの成りすます行為ユーザー)
よいのではないでしょうか答えは両方の質問にはありが表現できているか、さらなる彼のチャンスと思いた暗号のう安全保障への脅威の私のシステム?おかげさまでおります。
解決
あなたがここで説明することはクリブです。攻撃者は平文と対応する暗号文の両方を学習し、彼の目標は、鍵を見つけることです。現代暗号は攻撃のこの種に対して安全であるように設計されています。
は、実際には任意の現代暗号は、そのような選択平文攻撃と選択暗号文攻撃などのさらに強力な攻撃に対して安全になるように設計されています。攻撃者は平文と対応する暗号文を選択するか、暗号文の任意の数を選択し、それを復号化を学ぶために許可されている場合でも、その後、彼/彼女はまだ鍵を学ぶことができないようにする必要があります。
これは非常に難しい、新たな暗号を設計することができます。しかし、幸いなことに、我々はすでにAESなどの優れた暗号を持っています。
私は上記のすべての攻撃は、攻撃者が使用されている暗号のすべての詳細を知っていることを前提としていることも追加する必要があります。彼は知らない唯一のものは使用されているキーです。これはKerkhoffの法則として知られています。
所属していません StackOverflow