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