Достаточно ли безопасен билет проверки подлинности с помощью форм?

Когда пользователь входит в систему на основе метода проверки подлинности с помощью форм по умолчанию, сервер создает файл cookie, содержащий зашифрованные данные (используя машинный ключ в качестве ключа для шифрования).

Это означает, что если кто-то найдет/угадает/получит доступ к машинному ключу для сервера, он войдет в веб-приложение.

Я разработал несколько приложений, которые находятся на 4 серверах. Итак, я жестко запрограммировал один и тот же машинный ключ для всех серверов в machine.config и не могу использовать режим автоматической генерации.

  1. Можно ли взломать машинный ключ?
  2. Есть ли другие методы? (Я не хочу использовать Windows и Passport)
  3. И достаточно ли безопасен билет проверки подлинности с помощью форм? (т.е. приемлемо для приложений электронного банкинга)

person Amir Pournasserian    schedule 26.03.2012    source источник
comment
Не забудьте отметить ответ, который помог больше всего :-)   -  person reach4thelasers    schedule 27.03.2012


Ответы (2)


Билеты проверки подлинности форм ASP.NET шифруются с использованием алгоритма Rijndael. Rijndael был создан как замена стандарту DES (стандарт шифрования данных), который предлагал неограниченные способы шифрования данных, а также был подвержен атакам грубой силы. В конце 90-х компания RSA Security организовала ряд испытаний DES Challenge, чтобы призвать команды взломать DES и выявить присущие ему уязвимости: http://en.wikipedia.org/wiki/DES_Challenges

Для сравнения, Rijndael (также известный как Advanced Encryption Standard AES) использует более длинные ключи — 256 бит и алгоритм двойного шифрования. Для взлома 256-битного ключа Rijndael (например, машинного ключа ASP.NET) потребуется 2 ^ 200 операций (около 10 ^ 60 — десять с 60 нулями), что практически невозможно взломать методом грубой силы. Объедините это с тем фактом, что билет ASP.NET регулярно меняется, и при расшифровке в основном выглядит как случайная строка букв и цифр (поэтому невозможно определить, правильно ли то, что вы расшифровали методом грубой силы, или нет), вы можете быть уверены, что никто в ближайшее время взломает ваш файл cookie аутентификации форм.

Подробнее о Rijndael и его возможных атаках здесь:

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

person reach4thelasers    schedule 26.03.2012

Первое правило шифрования состоит в том, что сообщение защищено настолько, насколько защищен ключ. Если кто-то имеет доступ к вашему ключу, нет достаточно безопасного метода.

  1. Я сомневаюсь, что можно взломать машинный ключ в любое разумное время.
  2. Я считаю, что Fomrs Authentication — единственное настоящее веб-решение, готовое к использованию в ASP.NET. Вы можете реализовать свой собственный, но я сомневаюсь, что он будет более безопасным.
  3. Достаточно безопасно для чего? Он может быть перехвачен человеком посередине в незашифрованном соединении и уязвим для атак XSRF, если вы отключите проверку событий (в веб-формах) или не используете токены безопасности (MVC). В противном случае это безопасно для эксплойтов, которые постоянно обнаруживаются и исправляются во всех технологиях.
person Stilgar    schedule 26.03.2012
comment
Почему для перебора машинного ключа требуется, чтобы серверы были отключены? Грубая сила в основном проверяет каждую возможную комбинацию, чтобы попытаться угадать машинный ключ. - person reach4thelasers; 26.03.2012
comment
Я считаю, что это потребует отправки файла cookie на сервер? Или нет? В любом случае машинный ключ действительно длинный, и его нелегко взломать. - person Stilgar; 26.03.2012
comment
Rijndael — это всего лишь алгоритм, его можно запустить на любой машине. Если вы можете УГАДАТЬ ключ от автомата, проверив все возможные комбинации для ключа от автомата, то вы сможете взломать билет на любом компьютере. Сервер уже знает машинный ключ, поэтому ему не нужно угадывать его при отправке билета. - person reach4thelasers; 26.03.2012