Доработка торгового терминала - добавить возможность запрашивать состояние токенов и отдавать поручение на продажу и покупку посредством HTTP API

20 000 руб. за проект
08 апреля 2021, 15:07 • 2 отклика • 47 просмотров
Требуется добавить в существующую программу торгового терминала (здесь и далее - “терминал”) возможность запрашивать состояние токенов и отдавать поручение на продажу и покупку посредством HTTP API (вместо существующего способа посредством telegramm). Требуется обеспечить безопасность передачи данных в обе стороны, чтобы исключить возможность утечки или подмены данных. Терминал должен предоставлять endpoints для следующих запросов:

1. Узнать состояние токена по его названию. В ответ отправляется строка, характеризующая состояние токена: не в работе, получен запрос на покупку, куплен, получен запрос на продажу.

2. Отправить запрос на покупку токена. Основной параметр - название токена, дополнительные параметры оговариваются с заказчиком отдельно.

3. Отправить запрос на продажу токена. Основной параметр - название токена

4. Возможно добавление дополнительных параметров

Обеспечение безопасного соединения.
Предлагается рассмотреть следующие подходы к обеспечению безопасности передачи данных:

Вариант1: использование HTTPS и дайджест-аутентификации
В этом варианте пароль хранится в открытом виде на стороне терминала и на стороне каждого из клиентов, который будет взаимодействовать с терминалом. Накладные расходы по настройке HTTPS (покупка сертификата, сетевые настройки и т.д.) на стороне терминала нужно отдельно обсудить с заказчиком.

Вариант 2: использование симметричного шифрования
В этом варианте для транспорта используется открытое (незашифрованное) соединение HTTP, при этом данные как запроса (HTTP request body), так и ответа (HTTP response body) шифруются при помощи алгоритма симметричного шифрования, используя ключ, заранее известный обеим сторонам. Для упрощения разработки алгоритм предлагается выбрать из тех, которые доступны в стандартной библиотеке Java и Python (например, AES-128). Алгоритм должен обладать базовой стойкостью к перебору и не должен требовать значительных вычислительных ресурсов. В этом варианте ключ генерируется заказчиком и передаётся разработчику терминала. Реализуя этот вариант, нужно предусмотреть отдельный endpoint для обновления ключа.

Запуск терминала на удалённом сервере