Достаточно ли безопасен билет для проверки подлинности с помощью форм?
Когда пользователь входит в систему на основе метода проверки подлинности с помощью форм по умолчанию, сервер создает файл cookie, содержащий зашифрованные данные (используя ключ компьютера в качестве ключа для шифрования).
Это означает, что если кто-то найдет / угадает / получит доступ к Ключу машины для сервера, он войдет в веб-приложение.
Я разработал несколько приложений, которые находятся на 4 серверах. Итак, я жестко запрограммировал один и тот же ключ компьютера для всех серверов в machine.config и не могу использовать режим автоматической генерации.
- Можно ли грубо взломать Ключ машины?
- Есть ли другие методы? (Я не хочу использовать Windows и паспорт)
- И достаточно ли безопасен билет для проверки подлинности с помощью форм? (т.е. приемлемо для приложений электронного банкинга)
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 для проверки подлинности форм в ближайшее время.
Больше информации о Рейндаэле и его возможных атаках здесь:
Первое правило шифрования заключается в том, что сообщение является таким же безопасным, как и ключ. Если у кого-то есть доступ к вашему ключу, то нет надежного метода.
- Я сомневаюсь, что в любой разумный срок можно грубо взломать Ключ машины.
- Я считаю, что Fomrs Authentication - это единственное настоящее веб-решение, которое поставляется в ASP.NET. Вы можете реализовать свои собственные, но я сомневаюсь, что это будет более безопасно.
- Достаточно безопасно для чего? Он может быть взломан человеком посередине в незашифрованном соединении и уязвим для атак XSRF, если вы отключите проверку событий (в веб-формах) или не используете маркеры безопасности (MVC). В противном случае он безопасен для эксплойтов, которые постоянно обнаруживаются и исправляются во всех технологиях.