Конфиденциальные данные #

Васильев Андрей Михайлович, 2025

Версии презентации

Управление конфиденциальными данными #

В веб-приложениях зачастую необходимо реализовать разделение полномочий пользователей для обеспечения конфиденциальности

Пример. Деление на читателей и администрацию #

  • Большинство пользователей может только просматривать информацию
  • Администрация может добавлять новые элементы на ресурс

Сложные системы разделения полномочий #

  • Пользователю может быть доступна только часть функций
  • Предоставление функций может определяться динамически приложением

Примером такой системы является приложение-форум, в котором пользователь добавляет данные, а выделенные люди проверяют их на соответствие требованиям и могут удалить, если они не соответствуют требованиям

Идентификация, аутентификация и авторизация #

  • Идентификация — процедура, в результате выполнения которой для субъекта идентификации выявляется его идентификатор, однозначно определяющий её в информационной системе, например имя пользователя
  • Аутентификация — это процедура проверки подлинности субъекта, например путём сравнения введённого им пароля с паролём, сохранённым в базе данных
  • Авторизация — предоставление субъекту прав на выполнение определённых действий, например на просмотр конфиденциальной информации

Пример процедуры аутентификации #

  1. Пользователь заходит на сайт и нажимает на кнопку «войти в систему»
  2. Система показывает экран для входа в систему
  3. Пользователь вводит имя пользователя, идентифицирует себя
  4. Пользователь вводит пароль, задаёт данные для аутентификации
  5. Пользователь нажимает на кнопку «Войти», начинает процедуру аутентификации
  6. Система получает введённые имя пользователя и пароль, выполняет их проверку и выполняет аутентификацию
  7. Если введённые данные верны, то аутентификационный токен передаётся пользователю в ответе
  8. При следующих обращениях к серверу браузер передаёт данный токен, сервер использует его для авторизации действий

Почему так сложно? #

  • Аутентификация без идентификации невозможна — нельзя определить субъекта, операцию выполнить невозможно
  • Авторизация без аутентификации невозможна — нельзя понять какие действия можно разрешать данному пользователю

Авторизация без идентификации возможна — публичная информация обычно доступна любому пользователю. Но даже в этом случае неявная авторизация выполняется

Как оно может стать ещё сложнее:

  • Вариантов решения задач идентификации, аутентификации и авторизации много
  • Зачастую требуется реализовать несколько вариантов аутентификации в рамках одного приложения

Самостоятельно придуманные процессы аутентификации могут быть небезопасны, в приложениях следует реализовывать сценарии, проверенные специалистами по безопасности

Варианты аутентификации пользователей #

  • Аутентификация согласно встроенным возможностям протокола HTTP
  • Аутентификация с сохранением сессии
  • Аутентификация с использованием сертификатов
  • Аутентификация по одноразовому паролю
  • Аутентификация по ключам доступа
  • Аутентификация по токенам
  • Стандарты аутентификации OAuth и OpenID Connect