{{define "content"}}

Криптография (АПК «Валидата Клиент L»)

bj-server общается с СКЗИ «Валидата Клиент L» через сайдкар bj-crypto по UDS /run/bj/crypto.sock. Чтобы подпись и проверка квитанций НРД заработали, нужен ключевой профиль — папка с тремя сущностями: local.pse (зашифрованный контейнер), local.gdbm (база сертификатов) и vdkeys/*.vdk (сам ключ).

Архив от MOEX/НРД содержит «резервную копию», а не готовый профиль. На Linux рабочий local.gdbm нельзя восстановить headless — Валидата Linux требует GUI-операции «Восстановить справочники из резервной копии». Поэтому профиль готовится один раз на Windows и переносится на сервер через USB.

Почему профиль готовится на Windows, а не на сервере

Боевой Astra Linux SE-сервер с ГОСТ-криптографией обязан быть headless: чем меньше пакетов и поверхности атаки, тем проще сертификация ФСТЭК и тем меньше нарушений требований к контуру ЭДО НРД. Установка GUI (X-сервер, GTK, шрифты, VNC/RDP) тянет 50+ пакетов, расширяет surface attack и усложняет аудит — поэтому отказались.

Это стандартная практика в фин-секторе: на admin-станции (под Windows или отдельной защищённой ВМ) генерируются и обновляются профили; на боевые серверы они доставляются готовыми через выделенный USB или защищённый канал. Все инструкции MOEX/НРД написаны именно под Windows — этот путь поддерживается официально.

Альтернативный путь — Linux GUI через X11-forwarding или VNC на дев-стенды — допустим только в песочнице, не в проде. На боевых серверах zcs/vdcsp_cfg не должны запускаться.

✅ Подготовка профиля (Windows → USB → bj-server)

Шаг A — на компьютере под Windows

  1. Установите СКЗИ Валидата CSP для Windows.
    Скачайте дистрибутив с moex.com/s1292 (раздел «СКЗИ для Windows», файл «Валидата CSP v.6.0.482.0 64bit»). Внутри архива есть Readme.txt с регистрационными данными — введите их во время установки.
  2. Распакуйте архив-профиль от MOEX/НРД.
    Например PrUser985.7z с паролем 11 в папку C:\moex-src\. Получится структура:
    C:\moex-src\
      spr985\
        local.pse
        local.gdbm    ← это «резервная копия», на Linux не работает напрямую
      vdkeys\
        XXXXXXXXXXXXXXXX.vdk
      key.reg
  3. Зарегистрируйте ключ в системе Windows.
    Двойной клик по key.reg → «Да» на запрос о записи в реестр. Это нужно, чтобы Валидата увидела ключ при восстановлении справочников.
  4. Откройте «Справочник сертификатов x64» из меню «Пуск» → «АПК Валидата Клиент».
  5. Создайте профиль на флешке:
    • Вставьте чистую USB-флешку, запомните её букву (например E:).
    • В Справочнике: меню ПрофилиНастройка профилейДобавить.
    • Имя профиля: например moex.
    • Каталог профиля: создайте новую пустую папку на флешке, например E:\moex\. Это путь, куда Валидата положит рабочую копию.
  6. Восстановите справочники из резервной копии:
    Меню СервисВосстановить справочники из резервной копии. В диалоге укажите папку C:\moex-src\spr985\. Дождитесь сообщения «Справочники восстановлены».
    После этого в E:\moex\ появятся local.pse и рабочий local.gdbm (отличается от исходной резервной копии).
  7. Скопируйте папку vdkeys на корень флешки.
    Скопируйте папку C:\moex-src\vdkeys\ в корень флешки. Итоговая структура:
    E:\
      moex\         ← рабочий профиль, созданный Валидатой
        local.pse
        local.gdbm  ← теперь правильный
      vdkeys\
        XXXXXXXXXXXXXXXX.vdk
  8. Безопасно извлеките флешку через значок в системном трее Windows.

Шаг B — на сервере (этот веб-интерфейс)

  1. Вставьте флешку в сервер (физический USB-порт или прокинутая через гипервизор виртуальная флешка).
  2. Откройте /admin/setup. Через 2-3 секунды (автодетект монтирования) в блоке «Носители ключей» появится строка 🔌 USB /run/media/.... Внутри неё — сабблок «Профиль Валидаты» с тремя строками: local.pse / local.gdbm / *.vdk.
  3. В поле «Имя профиля» введите осмысленное имя (например moex) и нажмите «Импортировать профиль в Валидату».
    Сервер скопирует файлы в /var/lib/bj/profiles/<имя>/, допишет секцию в /opt/Validata/VDCSP/etc/pki1.conf. Toast подтвердит: «Секция дописана в pki1.conf».
  4. В таблице «Импортированные профили Валидаты» ниже — нажмите «Активировать» в строке вашего профиля.
    Toast: «Валидата: контекст с профилем <имя> инициализирован» → готово.
  5. Можно извлекать флешку — все нужные файлы уже скопированы в /var/lib/bj/profiles/.

Проверка

  1. В блоке «СКЗИ» нажмите зелёную кнопку «✓ Проверить подключение СКЗИ».
  2. Toast должен показать что-то вроде: СКЗИ validata: 0.1.0 (Валидата: контекст с профилем «moex» инициализирован).

Что делать если профиль на флешке не виден

Альтернатива: загрузка как ZIP-архив

Если USB-доступ к серверу неудобен — можно собрать содержимое флешки в обычный .zip на Windows и загрузить через web-форму.

  1. После шага A.7 (когда на флешке готовая структура moex\ + vdkeys\) — выделите обе папки, правый клик → ОтправитьСжатая ZIP-папка.
  2. На сервере: /admin/setup → «Носители ключей» → форма «Загрузить образ или архив» → выберите ZIP, поле «Пароль» оставьте пустым.
  3. Дальше как в Шаге B со 2-го пункта.

Под капотом сервер распаковывает архив через 7z в /var/lib/bj/media/iso/, сканирует на профиль Валидаты — далее всё то же самое, что с USB.

Справочные команды (диагностика)

systemctl status bj-cryptoСостояние Java-сайдкара (UDS-сокет, провайдер).
sudo journalctl -u bj-crypto -n 50Последние строки лога сайдкара.
cat /opt/Validata/VDCSP/etc/pki1.confСписок профилей, которые видит Валидата (наши секции помечены # --- bj-server: профиль ...).
sudo ls -la /var/lib/bj/profiles/Импортированные профили на сервере.
/opt/Validata/VDCSP/bin/amd64/testcsp -silentБазовая проверка провайдера CSP.

Установка Валидаты на сервер (если её ещё нет)

Если этот раздел вам не показывает «✓ ready» — повторите установку:

curl -fsSL https://fs.moex.com/cdp/po/ClientL_ALSE.zip -o ClientL_ALSE.zip
unzip ClientL_ALSE.zip
sudo apt-get install -y libccid pcscd execstack
sudo dpkg -i ClientL_ALSE/zpki-*.deb ClientL_ALSE/zsdk-*.deb
sudo apt-get -f install -y
sudo execstack -c /opt/Validata/VDCSP/lib/amd64/libvdcsp.so
sudo systemctl enable --now pcscd

Дистрибутив для Astra Linux SE — fs.moex.com/cdp/po/ClientL_ALSE.zip. Linux-версия отдельной лицензии не требует.

{{end}}