Обычное решение этой проблемы заключается в применении SSL (как было описано в предыдущей главе). Теперь аргументом в пользу использования SSL может быть то, что SSL используется только для защиты регистрационной страницы, а не всего приложения. Можно сконфигурировать аутентификацию форм так, чтобы она шифровала и подписывала cookie-наборы, в результате существенно затрудняя злоумышленнику задачу получения информации из нее. Кроме того, cookie-наборы не должны содержать никакой важной информации, и потому не включают пароли, использованные при аутентификации.

Но что если злоумышленник перехватит нешифрованный трафик, получит cookie-набор (зашифрованный) и использует его в своих целях? Ему не нужно расшифровывать его; ему достаточно просто снабдить им свои собственные запросы, пересылаемые по проводам. Противостоять такой атаке повтором можно только путем выполнения всего сайта через SSL.

Другие механизмы аутентификации не требуют дополнительной работы. При Windows-аутентификации вы можете использовать протокол, который автоматически обеспечивает безопасный процесс регистрации (с тем замечанием, однако, что он поддерживается не всеми браузерами и не всеми сетевыми средами). При Passport-аутентификации процесс регистрации прозрачно обрабатывается Passport-серверами, которые всегда используют SSL.

Почему бы не реализовать
cookie-аутентификацию самостоятельно?

Аутентификация с применением cookie-наборов на первый взгляд кажется весьма простой системой. У вас может возникнуть вопрос: а почему бы не реализовать ее самостоятельно, применяя cookie-наборы и сеансовые переменные?

Причина состоит в том же, почему разработчики не реализуют другие средства ASP.NET — от состояния сеанса до каркаса Web-элементов управления. Дело не только в том, что система ASP.NET избавляет вас от забот, но также и в том, что она предлагает безопасную, хорошо протестированную и расширяемую реализацию. Ниже перечислены некоторые преимущества реализации аутентификации форм ASP.NET:

Обеспечение безопасности cookie-наборов аутентификации

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

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

предыдущая    следующая страница    вначало главы    оглавление

832

Hosted by uCoz