2014-02-21 2 views
7

Конечно, файлы cookie могут быть украдены, а сеансы захвачены, но насколько безопасно шифрование самих файлов cookie сеанса (в ASP.NET Identity)? Могло ли это манипулировать современным оборудованием и немного времени?Насколько безопасным является cookie сессии ASP.NET Identity?

Я спрашиваю, потому что я хотел бы добавить заявку, которая идентифицирует группу, но это безопасно, только если файл cookie действительно безопасен. В противном случае злоумышленник может зарегистрироваться для легитимной учетной записи, а затем прорваться в другие группы, даже не украв пароли.

+3

взгляните на это [вопрос] (http://stackoverflow.com/questions/4306543/is-it-safe-to-store-only-userid-using-setauthcookie-in-asp-net). есть комментарий «Все содержимое токена FormsAuth зашифровано и подписано, включая имя пользователя/пользователя, поэтому его нельзя подделать». который, я думаю, может ответить на ваш вопрос. – KevDevMan

+0

Сортировка, но есть также критика стандартного хэширования Microsofts, которое многие считают ниже стандартным. Так что все еще интересно, были ли файлы cookie подписаны и зашифрованы в сильном ключе. Если злоумышленник может сломать его через неделю, это будет недостаточно. –

ответ

10

ответа обновлены для .NET Framework 4 и больше:

machineKey элемент, который используется для:

шифрования, дешифрования и проверки данных форм-аутентификации и просматривать данные о состоянии-

использует AES в качестве алгоритма дешифрования по умолчанию с минимальной длиной ключа 128 бит.

Он также использует HMACSHA256 по умолчанию для проверки, который является HMAC по SHA-256. HMAC предотвращает length extension attack, что позволяет злоумышленнику добавлять данные к значению, которое имеет хэш над ним, таким образом, что хэш все еще проверяет.

Там нет известных практических атак против AES-128 (в отличие от 192 и 256, которые могут пострадать от related key attack) и SHA-256 далеко не была нарушена, хотя есть academic attack against its sister SHA-1, что ставит под сомнение его collision resistance. Сопротивление столкновению на самом деле не имеет значения при аутентификации значений токенов, однако теоретически это один шаг к разрыву preimage resistance. Поэтому вы можете быть уверены, что находитесь в безопасности от атак с AES-128 и HMAC SHA-256.

Однако, как и при любом алгоритме шифрования или хеширования, все будет сводиться к тому, насколько безопасен ваш ключ. Настройки AutoGenerate и IsolateApps будут прекрасными, однако если вы установите свой собственный, убедитесь, что они созданы криптографически надежным генератором псевдослучайных чисел (CSPRNG) и имеют длину 128 бит. Что-то меньшее, чем это означает, что вы можете быть скомпрометированы атакой грубой силы (теоретически). 128 бит означает, что даже использование каждого компьютера в мире в распределенной атаке грубой силы на ваш ключ никогда не завершится в вашей жизни. Конечно, злоумышленники могут попытаться обойти это, схватив свой ключ каким-то другим способом. Держите его в безопасности.

+3

Я считаю, что ASP.NET Identity использует более современный алгоритм и количество циклов хэширования, чем это было ранее в ASP.NET, - поэтому этот ответ может быть не совсем точным. – pwdst

+0

@pwdst: ответ обновлен. – SilverlightFox

Смежные вопросы