Подпись данных в деталях

Реагируя на новые вызовы компания Protectimus реализовала мощное средство защиты от автозаливов, инжектов и прочего зловредного ПО, которое тем или иным образом производит подмену данных при совершении транзакции.

Существуют различные схемы реализации, например, при осуществлении перевода подменяется получатель, не зная об этом пользователь вводит одноразовый код подтверждения из СМС. Проблема заключается в том, что пользователь самостоятельно выполняет и подтверждает ложную транзакцию, не имея представления о том, что она ложная.

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

RnD отдел компании Protectimus нашел способ решить эту проблему. В соответствии с RFC 6287 challenge для challenge-response алгоритма генерируется случайным образом. Мы пошли дальше и разработали специальный алгоритм генерации challenge на основе данных транзакции, которую совершает пользователь. Это позволяет ввести зависимость между подтверждаемыми данными и одноразовым паролем, следовательно, если данные пользователя были подменены, то введенный одноразовый пароль не сможет их подтвердить, т.к. он был сгенерирован на основании других данных, что позволяет предотвратить махинации.

Новая функция подпись данных CWYS (Confirm What You See) доступна в токенах Ultra, Smart, SMS, Mail.

Процесс выполнения операции, требующей подтверждения изображен на рисунке 1.

Процесс выполнения транзакции с использованием функции CWYS

Рисунок 1 — Процесс выполнения транзакции с использованием функции CWYS

Для того, чтобы отправить данные в Protectimus и получить challenge необходимо вызвать метод POST по адресу

https://api.protectimus.com/api/v1/token-service/tokens/sign-transaction

c такими обязательными параметрами:

  • tokenId — идентификатор токена пользователя;
  • transactionData — данные транзакции, которые должны принимать участие в генерации ОТР;
  • hash — НМАС-SHA256 хеш строки transactionData для подтверждения целостности полученных данных, в качестве ключа используется Ваш API-ключ.

В ответе Вы получите XML или JSON с такими элементами:

  • challenge — challenge для алгоритма генерации ОТР;
  • transactionData — зашифрованные данные транзакции;
  • tokenType — тип токена;
  • tokenName — имя токена;
  • id — идентификатор токена.

Для пользователей с токеном Smart нужно сформировать и отобразить QR-код, для пользователей с другими токенами или для тех, кто не может сканировать QR-код нужно показать challenge, который они должны ввести в токен для генерации ОТР.

Например, если в ответе вы получили challenge равный 191565, а значение transactionData = 9/vhmVzLIm/M+8w9QXiJDA==, то строка для формирования QR кода будет выглядеть следующим образом:

transaction://challenge=191565&transactionData=9/vhmVzLIm/M+8w9QXiJDA==

Для завершения процесса и подтверждения транзакции пользователю нужно предоставить полученный ОТР защищаемой системе. После получения ОТР система снова отправляет POST запрос по адресу:

https://api.protectimus.com/api/v1/token-service/tokens/verify-signed-transaction

с параметрами:

  • tokenId — идентификатор токена пользователя;
  • transactionData — данные подтверждаемой транзакции (важно, чтобы здесь передавались именно те данные, которые будут отправлены в проводку, а не те, которые были получены на предыдущих шагах);
  • hash — хеш от строки transactionData, сформированный таким же образом, как и при вызове предыдущего метода;
  • otp — одноразовый пароль, предоставленный пользователем.

В ответ защищаемая система получит информацию о валидности предоставленного одноразового пароля.

Функциональность CWYS будет доступна в новой версии программного обеспечения Protectimus, если Вы хотите обезопасить себя уже сегодня — обратитесь в службу поддержки для получения прогрессивного инструмента уже сегодня.

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!

Author: Denis Shokotko

Жил-был в одном небольшом городе маленький мальчик, а звали его Дениска. Годы шли, он рос, а вместе с ним и рос интерес ко всему новому и непознанному. Особенно Денису нравились информационные технологии. Их чувства друг к другу были взаимными. Новое увлечение настолько манило, что он решил посвятить ему всю свою жизнь. В скором будущем он написал первую программу, потом еще, еще и еще... Тут ему не было равных. Его талант не мог быть не замечен. И вот, он уже стоит у истоков нового инновационного проекта. Теперь Protectimus в жизни Дениса как любовница, которая не будет его делить с другой и не потерпит измену :)

Share This Post On

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подпишитесь на нашу рассылку!

Подпишитесь на нашу рассылку!

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

Спасибо за подписку на нашу рассылку!

Share This