Безопасность и контроль целостности

ESIA-Adapter : 7. Безопасность и контроль целостности


Страница для администратора безопасности. Полные требования — в Руководстве администратора (разделы 3 и 6).

Роли и ключевые правила

  • В организации назначается администратор безопасности; только он имеет доступ к серверу, устанавливает и настраивает ОС, КриптоПро и адаптер.
  • Режим работы однопользовательский; модели разграничения доступа в адаптере нет.
  • Установка только из дистрибутива, полученного по доверенному каналу.
  • Ключевая пара и сертификат хранятся в контейнере на пассивном носителе HDIMAGE. Облачное хранение ключей запрещено; активные носители (SESPAKE) требуют дополнительных исследований.

Контроль целостности

Перед установкой и после — утилитой cpverify (полученной доверенным способом):

cpverify -mk <файл> [-alg GR3411|GR3411_2012_256|GR3411_2012_512]

Контролируются: esia-adapter_linux_amd64 и genguids (эталонные суммы в Руководстве администратора, табл. 2), 51 файл КриптоПро (/opt/cprocsp/..., табл. 1) и файлы ОС: ядро /boot/vmlinuz-*, /boot/grub/grub.cfg, /etc/fstab, /etc/passwd, /etc/pam.d/*, /etc/sysctl.conf, модули PARSEC и PAM.

Периодичность: после каждой перезагрузки и раз в 7 дней. При ошибке проверки администратор безопасности приостанавливает использование, выясняет причину и переустанавливает ПО.

Ограничения на сервере

Средства отладки и трассировки (без санкции администратора безопасности), посторонние устройства, радиоканалы, беспроводные клавиатуры и мыши, несанкционированное копирование ключевых носителей, работа с просроченными ключами, обход встроенного теста ОЗУ при загрузке.

Основные меры

  • Пароли: не менее 8 символов, разные регистры, цифры и спецсимволы, смена не реже раза в 6 месяцев; пароль BIOS отличается от пароля ОС.
  • Сертифицированный ФСБ модуль доверенной загрузки (МДЗ), контроль до загрузки ОС.
  • Замкнутая программная среда в ОС.
  • Только одна ОС на сервере; удалённое администрирование только по каналам, защищённым СКЗИ класса не ниже КС3.
  • Запрет аварийного дампа памяти; стирание временных файлов и файла подкачки.
  • Серверная комната с ограниченным доступом, ИБП на корректное завершение работы.
  • Резервные копии ключевых носителей хранятся в запираемых сейфах, учёт и уничтожение — по акту.

Защита кодов авторизации и токенов

Коды авторизации, маркеры (токены) доступа и обновления, которые выдаёт адаптер, являются объектами защиты: доступ к ним и к функциям адаптера предоставляется только набору сервисов информационной системы в соответствии с её политикой безопасности. Адаптер ограничивает круг сервисов и защищает коды и токены от перехвата; разграничение доступа к серверу, процессу и сетевым интерфейсам обеспечивают средства защиты ОС и информационной системы.

Меры, реализованные в адаптере

УгрозаМера
Обращение несанкционированного сервисаЗапросы принимаются только от клиентов из clients.json. У клиента свой ID, секрет (для конфиденциальных клиентов) и зарегистрированный хост (Domain)
Подмена redirect_uri, перенаправление кода на чужой адресredirect_uri проверяется по зарегистрированному хосту клиента (Domain)
Перехват кода авторизацииPKCE включён по умолчанию (FORCE_PKCE=true): обмен кода на токен возможен только с code_verifier. Код одноразовый, привязан к клиенту и redirect_uri, имеет ограниченный срок жизни (CODE_TTL)
Использование токена ЕСИА приложениемОбмен кода на токены ЕСИА и проверку их подписи выполняет адаптер. Приложение получает только токены адаптера, подписанные его ключом (RS256)
Повторное использование токена обновленияПри обновлении прежние токены доступа и обновления удаляются, выдаётся новая пара
Кэширование токеновОтвет с токенами отдаётся с заголовками Cache-Control: no-store и Pragma: no-cache
Перехват сессииCookie сессии помечается HttpOnly и Secure, идентификатор сессии в URL не передаётся
Утечка из хранилищаПо умолчанию коды, токены, сессии и данные пользователя хранятся в оперативной памяти и удаляются по истечении срока жизни

Рекомендуемая конфигурация

ПараметрЗначениеНазначение
CODE_TTL5m–10mсрок жизни кода авторизации
TOKEN_TTLпо политике ИСсрок жизни токена доступа
FORCE_PKCEtrueобязательный PKCE для всех клиентов
Метод PKCE в клиентахS256метод plain не использовать
DEBUGfalseв отладочном журнале присутствуют параметры запросов, включая коды и токены
DB_URLне задаватьтокены остаются только в памяти; при использовании БД токены сохраняются в таблице tokens, доступ к БД ограничивается как к объекту защиты
SESSION_COOKIE_SECUREtrueпередача cookie только по защищённому каналу
TLSзавершается на балансировщике или обратном проксиадаптер принимает HTTP, ISSUER и BASE_URL задаются с https://
clients.json, key.pem, extidp.jsonчтение только для пользователя службы и администратора безопасностисекреты клиентов и ключ подписи токенов

Распределение ответственности

УровеньЧто обеспечивает
Адаптерперечень допустимых клиентов, проверка redirect_uri по хосту клиента, PKCE, одноразовость и срок жизни кодов, ротация токенов обновления, подпись токенов
ОС серверауправление доступом к процессу, памяти и файлам адаптера (Astra Linux), запрет аварийного дампа, очистка файла подкачки, ЗПС, контроль целостности
Информационная системаполитика безопасности: какие сервисы регистрируются как клиенты, права администраторов, защита сетевого периметра, TLS, журналирование и мониторинг

Данные пользователей

Адаптер получает персональные данные из ЕСИА и передаёт приложению. Рекомендации: запрашивать минимум scope и документов, передавать в атрибуты только необходимые значения, не хранить содержимое документов, учитывать USERINFO_TTL (кэш данных пользователя).

Обсуждение