- Флешка с готовым ключом (например, с другого сервера bj) используется как есть:
bj-keymedia-install use-media ничего на неё не пишет — справочник для ИШ
пересобирается в копии на диске, из неё — профиль ИШ; этапы и кнопки — «использовать
ключ с флешки», «на неё ничего не записывается».
- Ключевая флешка подключается к ИШ постоянно и только на чтение, как на рабочем
сервере: строка fstab по UUID на /var/lib/igate/keymedia с автомонтированием
(прежний fstab — копией), ссылка реестра ключей igate на флешку. И при обычной
установке (запись архива) — тоже: на свежем сервере Валидата иначе не находила ключ.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
На шаге 1 мастера ключа — второй путь «Ключ уже на флешке»: выбор флешки и
«Взять ключ с флешки». Флешка только читается (bj-keymedia-install stage-media):
ключ (*.vdk) и справочник (local.pse + local.gdbm; раскладка bj — профиль с
key.reg) копируются во временный каталог в раскладке архива, дальше — обычная
установка на ту же флешку под тем же именем профиля (резервная копия флешки,
пересборка справочника, профиль ИШ, перезапуск). Ключ без справочника — понятный
отказ: справочник есть только в архиве НРД. Устройство — только из обнаруженных
съёмных.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
- Мастер установки ключа — общий блок part_keywiz.html: на шаге мастера и на
странице /admin/setup/keywizard. Формы возвращают туда, откуда открыли (ret=
wizard), с выбранным контуром; вид — как у мастера.
- «Установить ключ» у канала на шаге «Шлюз НРД» ведёт на шаг «Ключ подписи» с
контуром этого канала.
- Подсказка «сначала установите шлюз» — по установленному ИШ (раньше — по
готовности шлюза, которая сама требует ключа).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
Продолжение исправлений по security-аудиту.
M1 (MEDIUM) — установщик PHP-ретранслятора был открыт без входа: до создания
админа атакующий из интернета мог завести админа кабинета или подменить адрес
ядра/ключ. Добавлен «код установки»: генерируется в файл install.lock рядом с
данными (вне веб-корня), прочитать его можно только с доступом к файловой
системе (FTP/файловый менеджер) — то есть владельцу сервера. Шаги connect и
admin (включая «пропустить») требуют верный код. Регексп loopback заякорен
(`http://127.0.0.1.attacker.com` больше не проходит как loopback). Код удаляется
по завершении установки. Проверено встроенным php-сервером.
M3 (MEDIUM) — распаковка 7z в мастере ключа (ExtractISO) сохраняла пути из
архива → запись «../…» вышла бы за каталог. Перед распаковкой архив
просматривается (7z l -slt, без записи); при абсолютном пути или выходе за
корень распаковка отклоняется. Тест TestUnsafeArchivePath.
L1 — target_device не проверялся перед root mount: значение не из списка
съёмных теперь отклоняется (иначе root смонтировал бы произвольный девайс).
L5 — likeEscape в ручном поиске DEPO (manualDepoSearch): метасимволы LIKE от
пользователя больше не «расползаются» по базе.
L2a — кука сессии ядра получает Secure и за TLS-терминирующим прокси на loopback
(reqIsHTTPS учитывает X-Forwarded-Proto только от loopback).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk)
- трансферные таблицы FTV_M2M: создание при установке, события, справочник участников
- сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO
- боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК
- онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML)
- модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Инфраструктура M2M (живой обмен с НРД через ИШ):
- обработка M2MTransferResponse: ERROR(M2Mxx) → заявка Отклонена, сохранение
ответа; INFO → ждём Decision; идемпотентность поллера
- fallback-корреляция ответов с нулевым GUID (M2M14/M2M17) по FIFO
- сырой XML ответа НРД в карточке заявки (для пересылки в ТП)
- тестовый пакет роботу приведён к эталону m2m_robot_samples (CostInfo=Yes,
4 бумаги, IsolationStatus, DocumentSeries=сценарий); override паспорта
- редирект из теста сразу в карточку заявки
Мастер установки ключа Валидаты на флешку (admin/setup/keywizard):
- пошаговый: загрузка .7z+пароль → выбор флешки → запись → справочник
сертификатов (CRL) → перезапуск+проверка ИШ → готово
- привилегированный воркер (bj-keymedia) в host-namespace через файл-обмен,
bj-server остаётся в песочнице
- сохранение структуры профиля архива (spr<N>), перечисление съёмных USB
Прочее:
- пакет-доказательство для ТП НРД + форма регистрации участника M2M
- эталонные образцы робота (DOC/m2m_robot_samples)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>