
Рис. 19.1. Конвейер стражей
Понятие уровней безопасности
В основном для большей части Web-приложений основные задачи для
реализации защиты (помимо тех, что вы идентифицируете во время моделирования угроз)
всегда одни и те же:
- Аутентификация. Прежде всего, вы должны аутентифицировать
пользователей. Аутентификация задает вопрос: кто идет? В конечном итоге она
определяет, кто работает с вашим приложением на другой стороне.
- Авторизация. Как только вы узнали, кто работает с вашим
приложением, ваше приложение должно решить, какие операции данный
пользователь может выполнять и к каким ресурсам обращаться. Другими
словами, авторизация отвечает на вопрос: каков ваш уровень доступа?
- Конфиденциальность. Когда пользователь работает с приложением, вы
должны гарантировать, что никто другой не сможет видеть важные данные,
которые он обрабатывает. Таким образом, вы должны шифровать канал
между браузером клиента и Web-сервером. Более того, возможно, вам придется
шифровать данные, сохраняемые в базе данных (или в форме cookie-наборов
на стороне клиента), чтобы даже администратор базы данных или другой
персонал вашей компании не мог видеть эти данные.
- Целостность. И, наконец, вы должны гарантировать, что данные,
передаваемые между клиентом и сервером, не изменяются в результате
неавторизованного вмешательства. Цифровые подписи позволяют снизить уровень этой
угрозы.
ASP.NET включает базовую инфраструктуру для выполнения аутентификации
и авторизации. Библиотека базовых классов .NET Framework включает некоторые
классы в пространстве имен System.Security, предназначенные для
шифрования и подписи данных. Более того, SSL — стандартизованный способ обеспечении
конфиденциальности и целостности данных, передаваемых между клиентским
браузером и Web-сервером. Теперь мы рассмотрим подробнее каждую из этих
концепций.
предыдущая следующая страница вначало главы оглавление
804