Безопасность
Ключи бирж
Ключи бирж хранит не сервер торговли, а отдельный исполнитель ордеров. Ключ шифруется на вашем устройстве, и ни сервер торговли, ни поддержка его не видят. Открывающие ордера исполнитель отправляет только в пределах разрешения, подписанного вашим устройством.
Исполнитель ордеров
Исполнитель ордеров — отдельный сервер, единственный, у кого есть API-ключи бирж. Он выполняет все приватные вызовы бирж: ордера, потоки счёта, балансы. Сервер торговли хранит только ссылку на ключ (биржа и номер ключа) и прочитать сам ключ не может: в протоколе между ними нет команды, которая вернула бы ключ.
Исполнителей может быть несколько; каждая биржа закреплена за одним. Их список — реестр исполнителей — подписан ключом выпусков Profit Cloud, и номер реестра может только расти: приложение проверяет подпись само и не примет подменённый или старый реестр. По реестру мастер подключения показывает адреса для белого списка ключа.
Нет связи с исполнителем — см. «Торговля → Исполнение → Нет связи с исполнителем».
Шифрование ключа
При добавлении подключения приложение шифрует API-ключ, секрет и пароль ключа на вашем устройстве открытым ключом исполнителя ордеров (ECDH P-256, HKDF-SHA256, AES-256-GCM) и подписывает результат ключом устройства (см. «Устройства»). Сервер торговли передаёт исполнителю только зашифрованный пакет; исполнитель проверяет подпись устройства, прежде чем расшифровать.
Зашифрованный ключ действителен 10 минут: при неверном времени на устройстве исполнитель его не примет. Открытые ключи исполнителей приложение берёт только из своего выпуска или из подписанного реестра.
Разрешение связки. Сохраняя связку, устройство подписывает: связку и её версию, время подписи и для каждой ноги — подключение, биржу, рынок, инструмент, «Предел позиции» и «Плечо» (см. «Торговля → Связка → Предел позиции», «Торговля → Связка → Плечо»). Исполнитель ордеров:
- всегда выполняет чтение, отмены и выходы — уменьшение позиции на перпетуальных контрактах и продажу на споте;
- открывающие ордера — только по действующему разрешению на этот инструмент и рынок и только если позиция ноги вместе с ожидающими ордерами и новым ордером не превысит подписанный «Предел позиции»;
- не выставит на бирже плечо выше подписанного «Плеча».
Подписана ли связка, приложение решает по подписанной квитанции исполнителя, а не по слову сервера. Архив отзывает разрешение. Разрешение засыпает через 72 часа без открывающих ордеров при пустых ногах — нужно подписать заново.