Как мы храним ключи бирж
Что происходит с ключом после подключения, кто может его увидеть и что будет в худшем случае.
Коротко
Ключ биржи, который вы подключаете, шифруется в момент подключения и с этого момента нигде не существует в открытом виде: ни в базе, ни в логах, ни в интерфейсе. Открывается он только для запроса к бирже, в изолированной части системы, куда серверы приложения доступа не имеют, и ровно на время этого запроса. Ключ с правом вывода средств не принимается вовсе.
Что происходит при подключении
- Один запрос на чтение к бирже — убедиться, что ключ работает и что у него нет права вывода.
Ключ с таким правом не сохраняется. Ключ с правом торговли подключится, но будет отмечен, и мы посоветуем заменить его на ключ только для чтения.
- Ключ шифруется. У каждого ключа свой ключ шифрования, а те защищены управляемой службой ключей
с аппаратным модулем в европейском регионе (Франкфурт), из которой главный ключ не выгружается — никем, включая нас. В базе лежит только шифртекст.
- С этого момента в интерфейсе видны только первые и последние четыре символа ключа. Показать его
целиком невозможно: такой функции нет ни у вас, ни у нас.
Как ключ используется
- Единственное, что продукт делает с ключом, — читает историю сделок и начислений. Ордеров не
ставит, средств не двигает, баланс не читает.
- Расшифровка происходит в отдельном изолированном сервисе, у которого нет ни публичного адреса,
ни доступа к базе. Серверы, которые принимают ваши запросы, ключей не видят и открыть их не могут.
- Каждое использование ключа записывается: подключение, проверка, импорт, удаление. Каждое
обращение к службе ключей тоже — в независимый журнал, который мы не можем поправить.
- В форме подключения показаны адреса, с которых мы ходим на биржу. Ограничьте ключ ими на стороне
биржи — и он станет бесполезен откуда-либо ещё.
Что будет в худшем случае
- Утекла копия базы. В ней шифртекст без ключей шифрования — прочитать его нельзя.
- Взломан сервер приложения. Ключей там нет и открыть их оттуда нельзя.
- Кто-то добрался до самого ключа. Ключ только для чтения с ограничением по IP даёт ровно то,
что даёт вам Arbiq: историю сделок. Вывести или торговать им нельзя — прав таких у него нет.
- Вы удалили ключ. Он стирается насовсем, сразу. Импортированные черновики и записи журнала
остаются вашими.
Что можете сделать вы
- Создавать ключ только для чтения и без вывода — журналу больше ничего не нужно.
- Ограничить ключ по IP адресами из формы подключения.
- Завести под Arbiq отдельный ключ и отзывать его на бирже, когда захотите: удаление ключа на
бирже отключает импорт мгновенно.
- У DEX: Hyperliquid работает вообще без секретов, по публичному адресу; у Aster мы храним
приватный ключ только API-кошелька, права которого отзываются на бирже одним нажатием. Подробнее — Подключение DEX.