Конфиденциальные данные
#
Васильев Андрей Михайлович
Версии презентации
Управление конфиденциальными данными
#
Конфиденциальность – это предоставление пользователю возможности контроля за своими данными:
- Как данные собираются
- Где данные хранятся
- Как данные используются
Вопросы работы с персональными данными зачастую регулируется законодательством
стран, в которых работает веб-приложение
Для реализации возможностей по контролю и доступу к данным необходимо
реализовать разделение полномочий пользователей
Системы прав доступа
#
Простейшая схема разделения полномочий
#
Для информационного ресурса можно разделить пользователей на читателей и администрацию
- Читатели могут только просматривать информацию, не требует аутентификации
- Администрация может добавлять новые страницы на ресурс, требуется вход
Сложные системы разделения полномочий
#
- Пользователю может быть доступна только часть функций
- Предоставление функций может определяться динамически приложением
Примером такой системы является приложение-форум
- Участники форума добавляют новые тематики для обсуждения
- Для каждой тематики назначаются модераторы, обладающие правами изменения чужих сообщений
Идентификация, аутентификация и авторизация
#
- Идентификация – процедура, в результате выполнения которой для субъекта
идентификации выявляется его идентификатор, однозначно определяющий её в
информационной системе, например имя пользователя
- Аутентификация – это процедура проверки подлинности субъекта, например путём
сравнения введённого им пароля с паролём, сохранённым в базе данных
- Авторизация – предоставление субъекту прав на выполнение определённых
действий, например на просмотр конфиденциальной информации
Авторизация или запрет действия – основа любой системы предоставления прав доступа
Пример процедуры аутентификации
#
Локальная аутентификация в веб-приложениях обычно включает следующие шаги
- Пользователь заходит на сайт и нажимает на кнопку «войти в систему»
- Система показывает экран для входа в систему
- Пользователь вводит имя пользователя, идентифицирует себя
- Пользователь вводит пароль, задаёт данные для аутентификации
- Пользователь нажимает на кнопку «Войти», начинает процедуру аутентификации
- Система получает введённые имя пользователя и пароль, выполняет их проверку и выполняет аутентификацию
- Если введённые данные верны, то аутентификационный токен передаётся пользователю в ответе
- При следующих обращениях к серверу веб-браузер передаёт данный токен, сервер использует его для авторизации действий
Почему так сложно?
#
- Аутентификация без идентификации невозможна – нельзя определить субъекта, операцию выполнить невозможно
- Авторизация без аутентификации невозможна – нельзя понять какие действия можно разрешать данному пользователю
Авторизация без идентификации возможна:
- публичная информация обычно доступна любому пользователю
- в этом случае неявная авторизация всё-равно выполняется
Как оно может стать ещё сложнее
#
- Вариантов решения задач идентификации, аутентификации и авторизации много
- Зачастую требуется реализовать несколько вариантов аутентификации в рамках одного приложения
Самостоятельно придуманные процессы аутентификации могут быть небезопасны, в приложениях следует реализовывать сценарии, проверенные специалистами по безопасности
Варианты аутентификации пользователей
#
- Аутентификация согласно встроенным возможностям протокола HTTP
- Аутентификация с сохранением сессии
- Аутентификация с использованием сертификатов
- Аутентификация по одноразовому паролю
- Аутентификация по ключам доступа
- Аутентификация по токенам
- Стандарты аутентификации OAuth и OpenID Connect