Реагируя на новые вызовы компания Protectimus реализовала мощное средство защиты от автозаливов, инжектов и прочего зловредного ПО, которое тем или иным образом производит подмену данных при совершении транзакции.
Существуют различные схемы реализации, например, при осуществлении перевода подменяется получатель, не зная об этом пользователь вводит одноразовый код подтверждения из СМС. Проблема заключается в том, что пользователь самостоятельно выполняет и подтверждает ложную транзакцию, не имея представления о том, что она ложная.
Большая угроза для банков и платежных систем заключается в том, что клиенты не признавая свои собственные ошибки перекладывают вину на сами системы, что очень отрицательно сказывается на деловой репутации компании.
RnD отдел компании Protectimus нашел способ решить эту проблему. В соответствии с RFC 6287 challenge для challenge-response алгоритма генерируется случайным образом. Мы пошли дальше и разработали специальный алгоритм генерации challenge на основе данных транзакции, которую совершает пользователь. Это позволяет ввести зависимость между подтверждаемыми данными и одноразовым паролем, следовательно, если данные пользователя были подменены, то введенный одноразовый пароль не сможет их подтвердить, т.к. он был сгенерирован на основании других данных, что позволяет предотвратить махинации.
Новая функция подпись данных CWYS (Confirm What You See) доступна в токенах Ultra, Smart, SMS, Mail.
Процесс выполнения операции, требующей подтверждения изображен на рисунке 1.
Для того, чтобы отправить данные в 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.
Подпишитесь на нашу рассылку!
Подпишитесь на нашу рассылку и получайте последние новости из мира информационной безопасности от блога Protectimus.
Спасибо за подписку на нашу рассылку!