PC – программный комплекс, предназначенный для подтверждения пользователем операций в системах дистанционного банковского обслуживания и/или электронного документооборота.

PC призван, в первую очередь, повысить уровень удобства подтверждения и информационной безопасности по сравнению с такими способами подтверждения как SMS, одноразовые пароли (One-Time Password), скретч-карты, MAC-токены и пр.

При помощи PC могут подтверждаться волеизъявления на совершение банковских транзакций, аутентификация, создание и исполнение документов, факты получения и/или ознакомления с определённой информацией.

Назначение

Настоящий документ предназначен работникам организаций, выполняющим прикладные задачи по обслуживанию серверов PC.

Общее описание

Сервер PC функционирует на базе фреймворка Spring Boot, работающего в среде Java 17 или 21, и состоит из следующих модулей:

  • PC Server (PCS) – основной модуль PC. Располагается внутри локальной сети. Взаимодействует с прикладной системой. Хранит данные в БД PCS. Отправляет данные на PCP, получает данные с PCE.
  • PC External (PCE). С этим сервером взаимодействуют приложения на мобильных устройствах для получения информации о данных платежа и отправки результатов подтверждения транзакций. Располагается в DMZ-зоне с доступом извне. Должен иметь внешний фиксированный IP-адрес. Должно быть присвоено доменное имя и выпущен сертификат внешним УЦ для обеспечения TLS (исключением может являться эксплуатация в тестовомо контуре).
  • PC Pusher (PCP) – опциональный модуль, отправляющий Push-уведомления о появлении неподтверждённой транзакции у пользователя (без содержания информации о транзакции). Как правило располагается в DMZ-зоне, имеющей доступ к сети Интернет. Требуется доступ к серверам Google, Apple и Huawei. Может быть размещён в т.ч. на одном сервере с PCS или PCE (в зависимости от требований по ИБ к ИТ инфраструктуре и функциональных возможностей ИТ инфраструктуры).
  • АРМ РКС (PCCRT, сокр. от PC Conflict Resolving Tool) - опциональный модуль, который устанавливается отдельно. Предназначен для получения подробной информации о пользователе PC, его транзакциях и событиях, а также для проверки значения ЭП с возможностью формирования акта по факту проверки, загрузки лицензионных файлов PC и получения общей информации о сервере PC.
  • PC Server Signer (PCSS) - опциональный модуль, который устанавливается во внутреннем контуре сети, возможна установка на один сервер с PCS. Этот модуль позволяет подтверждать транзакции от имени представителя организации, где развёрнут PC, и работает аналогично мобильному клиенту PC. Ключи ЭП пользователей, созданных в компоненте содержатся в зашифрованном виде в БД PCSS. Взаимодействует с сервером PC.

Развёртывание

Схема включения

PC инсталлируется в инфраструктуру заказчика, в соответствии с одной из выбранных схем включения в инфраструктуру из предложенных в документе Варианты включения в инфраструктуру.

Руководство по инсталляции

Руководство по инсталляции PC доступно по ссылке.

Перевод PC в промышленную эксплуатацию

При переводе комплекса PC в промышленную эксплуатацию необходимо убедиться, что:

  • сервер PC External доступен из сети Интернет по протоколу HTTPS и только по нему;
  • отключён вывод расширенного логирования (либо спланировать выделение достаточного количество дискового пространства для хранения журналов);
  • включена очистка данных транзакций (включена по умолчанию).

Запуск и остановка служб сервера PC

Linux

Запуск, остановка и перезапуск производится с помощью системной утилиты systemctl. Названия служб:

  • pcs.service
  • pce.service
  • pcp.service
  • pccrt.service
  • pcss.service

Примеры

Запуск

systemctl start pcs.service

Остановка:

systemctl stop pcs.service

Перезапуск:

systemctl restart pcs.service

Windows

Из графического интерфейса

Запуск, остановка и перезапуск службы осуществляется из консоли управления службами сервера (консоль services.msc).

С помощью командной строки

Запуск:

sc start pc-server
sc start pc-pusher
sc start pc-external
sc start pc-crt
sc start pc-server-signer

Остановка:

sc stop pc-server
sc stop pc-pusher
sc stop pc-external
sc stop pc-crt
sc stop pc-server-signer

Журналирование

Для журналирования процесса фукционирования PC используются механизмы среды, в которых запущены модули PC. В случае, если PC запущен в среде ОС, то запись осуществляется в системный журнал ОС, если в среде контейнеризации, то в stdout.

Доступ к данным журнала в среде ОС Linux

В общем случае записываются только сведения об ошибках, при их возникновении.

Просмотр логов осуществляется с помощью системной утилиты journalctl, указав навание интересующего сервиса (pc-server,pc-external,pc-pusher,pc-crt,pc-server-signer):

Пример вывода логов для PCS:

journalctl -fu pc-server.service

Включение вывода информационных данных работы PC

Для расширенного логирования процесса работы модуля необходимо в application.yml добавить:

logging:
  level:
    tech.paycon: debug

Также включить режим отладки можно задав переменную окружения:

LOGGING_LEVEL_TECH_PAYCON=debug

В обоих случаях, после установки параметра необходимо перезапустить сервис.

PCS

Опциональным вариантом включения режима отладки модуля PCS, является установка знчения 1 для параметра DEBUG_INFO путём отправки HTTP POST запросов на сервер PCS — http[s]://PCS/pc-api/system_settings с телом в формате JSON с названиями параметров в качестве ключа, и желаемым значением. Пример:

{
  "DEBUG_INFO":"1"
}

Также включить вывод отладочной информации на PCS (DEBUG_INFO=1) можно через интерфейс АРМ РКС (при наличии), в разделе настроек сервера PCS.

Вывод журнала в другие приёмникиx

Для вывода логов, например в файл, и более гибкой их настройки воспользуйтесь документацией на фреймворк Spring Boot:

Пример настройки для вывода логов компонента PCS в файл:

  1. Добавить в application.yml
logging:
  config: logback-spring.xml
  1. Создать файл logback-spring.xml и добавить туда
 <?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
           <File>/opt/pc/pcs/pcs.log</File>
           <encoder>
                <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
        </encoder>
   </appender>
   <root level = "INFO">
      <appender-ref ref = "FILE"/>
   </root>
</configuration>
  1. Перезапустить сервис.

Вывод в журнал идентификатора пользователя и запроса

Пример настройки для вывода в лог идентификатора пользователя(PCS) и идентификатора запроса(PCS,PCE):

  1. Добавить в application.yml
logging:
  config: logback-spring.xml
  1. Создать файл logback-spring.xml и добавить туда
 <?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "console" class = "ch.qos.logback.core.ConsoleAppender">
           <encoder>
                <pattern>%d{HH:mm:ss.SSS} user_id - [%X{user_id}] request_id - [%X{request_id}] [%thread] %-5level %logger{36} - %msg%n</pattern>
           </encoder>
   </appender>
   <root level = "INFO">
      <appender-ref ref = "console"/>
   </root>
</configuration>
  1. Перезапустить сервис.

Вывод HTTP-запросов и результатов их выполнения

Для записи запросов и результатов их выполнения в журнал работы сервера необходимо добавить в файл application.yml следующие строки:

logging:
  level:
    org:
      springframework:
        web:
          servlet:
            mvc:
              method:
                annotation:
                  RequestResponseBodyMethodProcessor: TRACE

и перезапустить службу.

Установка лицензии

Если установка лицензионного файла не проводилась на сервер, то он работает в демонстрационном режиме, ограничивающем возможность заведения более 20 пользователей PC. Также при включённом выводе информационных данных работы PC, в журнал выводятся сообщения сообщения вида:

2018-12-07 11:51:07,295 INFO  [ru.safetech.ws.PayControl.services.utils.licenseManager.LicenseManager] (default task-2)    --- no license found in database
2018-12-07 11:51:07,295 INFO  [ru.safetech.ws.PayControl.services.impl.PayControlServiceV3Impl] (default task-2)    --- Error load License, cheking if free users count exceeded
2018-12-07 11:51:07,295 INFO  [ru.safetech.ws.PayControl.services.impl.PayControlServiceV3Impl] (default task-2)    --- ATTENTION! LICENSE NOT FOUND! You are using unlicensed demo-only version of the service

Загрузка через АРМ РКС

При наличии модуля

В АРМ РКС загрузка файла лицензии производится на вкладке Система (System Info) с помощью кнопки Загрузить файл лицензии (Upload license file).

Перед обновлением лицензии убедитесь, что в директории загрузки файла лицензии не находится старый файл лицензии.

Путём копирования лицензионного файла на сервер

Файл лицензии необходимо скопировать на сервер PCS в одну из папок:

  • /opt/pc/
  • C:\pc\
  • По пути, заданному в параметре LICENSE_FILE_LOCATION (БД PCS, таблица pc_sys_property).

После установки лицензии через файловую систему, файл следует убрать из директории, в которую он был размещён для загрузки.

Через запрос по API сервера Change System Settings

Посредством передачи содержимого файла лицензии в качестве параметра при вызове метода изменения параметров системы, описанного в актуальной версии API сервера PC.

Перед обновлением лицензии убедитесь, что в директории загрузки файла лицензии не находится старый файл лицензии.

Эксплуатация

Контроль

Администратору PC необходимо в плановом режиме выполнять проверку:

  • Достаточности свободного места на серверах PC;
  • Достаточности свободного места, выделенного дискового пространства базам данных PC (БД PCS).

Плановые работы

В состав плановых работ по обслуживанию входит:

  • Замена сертификата для обеспечения HTTPS защиты сервера PCE;
  • Замена сертификатов для обеспечения HTTPS защиты на серверах PCS и PCP при их наличии.