Подписание произвольных неструктурированных документов

Антифрод-терминал позволяет отображать на своем экране за 1 раз любые текстовые данные длиной до 400 символов. Если требуется вывести больше 400 символов, это можно сделать путём последовательного отображения порций данных размеров до 400 символов в рамках одного SWYX-режима работы терминала. Информация обо всех отображенных и подтвержденных пользователем порциях данных будет накоплена в журнале операций.

Это позволяет подтверждать на Антифрод-терминале не только реквизиты платёжных документов, но и операции подписания произвольных неструктурированных документов. Для таких документов следует отображать на Антифрод-терминале их ключевые данные, которыми могут быть, например, существенные условия договоров или соглашений, параметры электронных заявлений и т.д.

Сценарий подписания произвольного документа предполагает, что:

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

В качестве примера рассмотрим сценарий удалённого подписания кредитного договора

Пользователю в приложении может быть предложено:

  1. Ознакомиться с общими условиями договора кредитования.
  2. Указать/выбрать из представленных вариантов конкретные условия договора, на которых он хотел бы взять кредит.

Для кредитного договора такими условиями могут быть, например:

  • размер денежных средств, предоставляемых кредитором заёмщику,
  • цель кредита,
  • срок кредита,
  • предоставляемые заёмщиком гарантии,
  • размер платы за пользование кредитом в процентах годовых,
  • порядок внесения платы за пользование кредитом,
  • и т.д.

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

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

  • Пользователь ввёл PIN-код для используемого средства ЭП и авторизовался в личном кабинете.
  • На сервере хранится шаблон документа с общими условиями договора, для которого пользователь должен указать конкретные условия и подписать результирующий документ.
  • Сервер предоставил пользователю возможность ознакомления с общими условиями договора (это может быть сделано в виде отображения текста договора в формате HTML, либо пользователю может быть предложено скачать общие условия договора в виде PDF-документа и т.п.).

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

  • Выбирает (указывает) ключевые условия, на которых он согласен подписать договор.
  • Выражает намерение оформить договор с выбранными ключевыми условиями.

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

Отправляет выбранные пользователем ключевые условия на сервер.

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

  • На основе выбранных пользователем ключевых условий подготавливает договор в формате, который должен быть подписан пользователем (например, в формате PDF), включающий эти ключевые условия.
  • Сохраняет сформированный договор в БД.
  • Формирует последовательность из 8 байт для использования в качестве идентификатора журнала операций.
  • Отправляет эту последовательность и подготовленный для подписания договор прикладному ПО на стороне клиента.

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

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

  • Отправляет на Антифрод-терминал команду старта SWYX-режима работы Антифрод-терминала, передавая в качестве параметра reference полученный от сервера идентификатор журнала операций (см. пример старта SWYX-режима).

  • Отправляет на Антифрод-терминал команду, в соответствии с которой терминал:

    • отображает ключевые данные этого документа, требующие подтверждения;
    • запрашивает у пользователя подтвердить подписание документа (см. примеры работы в SWYX-режиме).

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

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

../../../_images/unstruct_docs.png

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

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

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

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

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

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

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

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