Подписание произвольных неструктурированных документов
Антифрод-терминал позволяет отображать на своем экране за 1 раз любые текстовые данные длиной до 400 символов. Если требуется вывести больше 400 символов, это можно сделать путём последовательного отображения порций данных размеров до 400 символов в рамках одного SWYX-режима работы терминала. Информация обо всех отображенных и подтвержденных пользователем порциях данных будет накоплена в журнале операций.
Это позволяет подтверждать на Антифрод-терминале не только реквизиты платёжных документов, но и операции подписания произвольных неструктурированных документов. Для таких документов следует отображать на Антифрод-терминале их ключевые данные, которыми могут быть, например, существенные условия договоров или соглашений, параметры электронных заявлений и т.д.
Сценарий подписания произвольного документа предполагает, что:
- Шаблон документа, который пользователь должен подписать, предварительно создается на сервере и известен серверу.
- Пользователю предоставляется возможность изменить (выбрать, указать) в этом шаблоне значения каких-то ключевых данных в соответствии со своими предпочтениями.
- Оставшаяся часть шаблона при этом остаётся неизменной.
В качестве примера рассмотрим сценарий удалённого подписания кредитного договора
Пользователю в приложении может быть предложено:
- Ознакомиться с общими условиями договора кредитования.
- Указать/выбрать из представленных вариантов конкретные условия договора, на которых он хотел бы взять кредит.
Для кредитного договора такими условиями могут быть, например:
- размер денежных средств, предоставляемых кредитором заёмщику,
- цель кредита,
- срок кредита,
- предоставляемые заёмщиком гарантии,
- размер платы за пользование кредитом в процентах годовых,
- порядок внесения платы за пользование кредитом,
- и т.д.
Защищенный сценарий в этом случае предусматривает следующий порядок действий
Исходные данные
- Пользователь ввёл PIN-код для используемого средства ЭП и авторизовался в личном кабинете.
- На сервере хранится шаблон документа с общими условиями договора, для которого пользователь должен указать конкретные условия и подписать результирующий документ.
- Сервер предоставил пользователю возможность ознакомления с общими условиями договора (это может быть сделано в виде отображения текста договора в формате HTML, либо пользователю может быть предложено скачать общие условия договора в виде PDF-документа и т.п.).
Пользователь
- Выбирает (указывает) ключевые условия, на которых он согласен подписать договор.
- Выражает намерение оформить договор с выбранными ключевыми условиями.
Прикладное ПО на стороне клиента
Отправляет выбранные пользователем ключевые условия на сервер.
Прикладное ПО на стороне сервера
- На основе выбранных пользователем ключевых условий подготавливает договор в формате, который должен быть подписан пользователем (например, в формате PDF), включающий эти ключевые условия.
- Сохраняет сформированный договор в БД.
- Формирует последовательность из 8 байт для использования в качестве идентификатора журнала операций.
- Отправляет эту последовательность и подготовленный для подписания договор прикладному ПО на стороне клиента.
Прикладное ПО на стороне клиента
Выполняет проверку, подключен ли Антифрод-терминал. Если не подключен, но операция требует его использования, прикладное ПО просит подключить Антифрод-терминал (см. пример поиска Антифрод-терминала, подключенного к ПК).
Отправляет на Антифрод-терминал команду старта SWYX-режима работы Антифрод-терминала, передавая в качестве параметра reference полученный от сервера идентификатор журнала операций (см. пример старта SWYX-режима).
Отправляет на Антифрод-терминал команду, в соответствии с которой терминал:
- отображает ключевые данные этого документа, требующие подтверждения;
- запрашивает у пользователя подтвердить подписание документа (см. примеры работы в SWYX-режиме).
Отображаемый на терминале текст прикладное ПО формирует на основе заданных в системе настроек (см. настройка содержимого и формата вывода текстов на экран Антифрод-терминала).
Отображает весь документ на экране ПК (например, в формате HTML). Просит пользователя подтвердить операцию подписания на Антифрод-терминале, предварительно убедившись в том, что терминал отобразил корректные ключевые данные документа.
Пользователь
Подтверждает (либо отклоняет) на терминале операцию подписания. В случае отклонения документу на сервере ДБО следует установить статус “Отклонено пользователем”, и сценарий завершается. В случае подтверждения, сценарий продолжается.
Прикладное ПО на стороне клиента
- Подписывает присланный сервером для подписания документ ЭП пользователя на средстве ЭП (USB-токене или подключенной к Антифрод-терминалу смарт-карте).
- Отправляет на Антифрод-терминал команду остановки SWYX-режима работы Антифрод-терминала (см. пример завершения SWYX-режима). В ответ на эту команду Антифрод-терминал подписывает внутренний журнал операций своей ЭП по ГОСТ Р 34.10-2001 и возвращает журнал вместе с подписью в прикладное ПО в качестве результата выполнения этой команды.
- Отправляет на сервер подпись документа и подписанный ЭП терминала журнал операций.
Прикладное ПО на стороне сервера
- Осуществляет идентификацию ранее зарегистрированного в системе терминала (см. пример идентификации).
- Осуществляет аутентификация терминала (см. пример аутентификации).
- Проверяет соответствие текста, отображённого на терминале (который пользователь видел и подтвердил), ключевым данным подписанного документа (см. пример проверки соответствия реально отображённого на терминале текста и ожидаемого).
- Сравнивает (побайтно) присланный подписанный документ с тем документом, который был отправлен пользователю на подписание (чтобы проверить, что другие (не отображённые на терминале данные документа) не были изменены вредоносным ПО.
- Если сравнения не выявили несоответствий, сервер передаёт управление дальнейшему обработчику на стороне сервера. Если выявлены несоответствия, сервер блокирует операцию и уведомляет пользователя о возможной атаке со стороны злоумышленников и необходимости проверить рабочее место на наличие вредоносного ПО.
- Сохраняет журнал операций на сервере для формирования доказательной базы.
Прикладное ПО на стороне клиента
- Выводит на экран ПК сообщение о результате выполнения операции.