Подписание платёжного поручения в системе ДБО

Платёжное поручение может содержать несколько десятков различных полей. Однако выводить их все на экран терминала при подтверждении платежа избыточно.

Для того, чтобы защититься от кражи денежных средств вредоносным ПО, достаточно подтвердить на Антифрод-терминале ключевые реквизиты:

  • получатель платежа,
  • банк получателя,
  • сумма,
  • счёт получателя.

В качестве получателя платежа можно выводить либо его название, либо ИНН.

В качестве банка получателя можно выводить либо его название, либо БИК. Рекомендуется выводить БИК.

В качестве счёта получателя для защиты от кражи денежных средств достаточно выводить последние 12 цифр счета, а не все 20, так как последние 12 цифр однозначно идентифицируют счёт. Подтверждать 12 цифр, а не 20 значительно удобнее для пользователей.

Пусть ААА.ББ.ВВВ.Г.ДДДД.ЕЕЕЕЕЕЕ – счёт получателя.

  • ААА (1-3 цифры) – номер балансового счёта первого порядка;
  • ББ (4-5 цифры) – номер балансового счёта второго порядка;
  • ВВВ (6-8 цифры) – код валюты;
  • Г (9 цифра) – контрольная цифра;
  • ДДДД (10-13 цифры) – четырехзначный код подразделения банка;
  • ЕЕЕЕЕЕЕ (14-20 цифры) – семизначный внутренний номер (лицевого) счёта в банке.

На Антифрод-терминал для сверки и подтверждения достаточно выводить Г.ДДДД.ЕЕЕЕЕЕЕ (ниже будет приведён пример).

Защищенный сценарий в этом случае предусматривает следующий порядок действий

../../../_images/scenario.png

Исходные данные

Пользователь ввёл PIN-код для используемого средства ЭП и авторизовался в личном кабинете.

Пользователь

  • Создает платёжное поручение и сохраняет его на сервере ДБО.

    ../../../_images/2.png
  • Даёт приложению команду подписать сохранённое платёжное поручение.

Прикладное ПО на стороне сервера

  • Формирует последовательность из 8 байт для использования в качестве идентификатора журнала операций.
  • Отправляет эту последовательность прикладному ПО на стороне клиента.

Прикладное ПО на стороне клиента

Отображаемый на терминале текст прикладное ПО формирует на основе заданных в системе настроек (см. настройка содержимого и формата вывода текстов на экран Антифрод-терминала).

  • Отображает платёжное поручение на экране ПК и ключевые реквизиты платёжного поручения на Антифрод-терминале. Просит пользователя сверить реквизиты, отображённые на экране ПК, с реквизитами, отображёнными на терминале, и подтвердить (либо отклонить) намерение подписать платёжное поручение с такими реквизитами.

Пример с выводом “получателя платежа”:

../../../_images/3.png

Пример с выводом “ИНН получателя платежа”:

../../../_images/4.png

Пользователь

  • Подтверждает (либо отклоняет) ключевые реквизиты платёжного поручения на терминале. В случае отклонения платёжному поручению на сервере ДБО следует установить статус “Отклонено пользователем”, и сценарий завершается. В случае подтверждения, сценарий продолжается.

Прикладное ПО на стороне клиента

  • Подписывает платёжное поручение ЭП пользователя на средстве ЭП (USB-токене или подключенной к Антифрод-терминалу смарт-карте).
  • Отправляет на Антифрод-терминал команду остановки SWYX-режима работы Антифрод-терминала (см. пример завершения SWYX-режима). В ответ на эту команду Антифрод-терминал подписывает внутренний журнал операций своей ЭП по ГОСТ Р 34.10-2001 и возвращает журнал вместе с подписью в прикладное ПО в качестве результата выполнения этой команды.
  • Отправляет на сервер подписанное ЭП пользователя платёжное поручение и подписанный ЭП терминала журнал операций.

Прикладное ПО на стороне сервера

  • Осуществляет идентификацию ранее зарегистрированного в системе терминала (см. пример идентификации).
  • Осуществляет аутентификация терминала (см. пример аутентификации).
  • Проверяет соответствие текста, отображённого на терминале (который пользователь видел и подтвердил), тексту, который должен был быть отображён на терминале в соответствии с заложенной логикой работы прикладного ПО (см. пример проверки соответствия реально отображённого на терминале текста и ожидаемого).
  • Если отображенный текст соответствует ожидаемому, сервер передаёт управление дальнейшему обработчику на стороне сервера. Если не соответствует, блокирует операцию и уведомляет пользователя о возможной атаке со стороны злоумышленников и необходимости проверить рабочее место на наличие вредоносного ПО.
  • Сохраняет журнал операций на сервере для формирования доказательной базы.

Прикладное ПО на стороне клиента

  • Выводит на экран ПК сообщение о результате выполнения операции.

    ../../../_images/5.png