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