表单身份验证票证是否足够安全?

Ami*_*ian 9 asp.net forms-authentication machinekey machine.config formsauthenticationticket

当用户基于默认的表单身份验证方法登录时,服务器会创建一个包含加密数据的cookie(使用Machine Key作为加密密钥).

这意味着如果有人找到/猜测/访问服务器的机器密钥,他将登录到Web应用程序.

我开发了一些在4台服务器上的应用程序.所以,我为machine.config中的所有服务器硬编码了相同的机器密钥,我无法使用自动生成模式.

  1. 是否可以暴力破坏机器钥匙?
  2. 还有其他方法吗?(我不想使用Windows和Passport)
  3. 表单身份验证票证是否足够安全?(即电子银行应用程序可接受)

rea*_*ers 19

ASP.NET表单身份验证票证使用Rijndael算法加密.Rijndael是作为DES(数据加密标准)的替代品而创建的,它提供了无限的方式来加密数据,并且还容易受到暴力攻击.RSA安全公司在90年代后期组织了一系列DES挑战,挑战团队破解DES,以突出其固有的漏洞:http://en.wikipedia.org/wiki/DES_Challenges

相比之下,Rijndael(也称为高级加密标准AES)使用更长的密钥 - 256位和双重加密算法.要破解256位Rijndael密钥(例如ASP.NET机器密钥)将需要2 ^ 200次操作(大约10 ^ 60 - 10个,具有60个零),几乎不可能发生暴力破解.将其与ASP.NET票据定期更改的事实相结合,并且当解密时基本上看起来像一个随机的字母和数字字符串(因此无法确定您是否已经解密的蛮力是否正确)您可以放心将很快破解您的表单身份验证cookie.

有关Rijndael及其可能的攻击的更多信息:

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Known_attacks