OneKey Transfer — это функция приложения OneKey, которая безопасно передает закрытые ключи вашего программного кошелька между вашими устройствами. В этом руководстве объясняются множественные уровни безопасности, защищающие ваши данные.
Примечание о кошельках: В настоящее время эта функция предназначена только для программных кошельков. Поддержка аппаратных кошельков более сложна и будет добавлена в будущей версии.
Основные принципы
Наша безопасность основана на трех ключевых обещаниях:
Открытый исходный код и надежность
Код нашего приложения и сервера является общедоступным. Любой может просмотреть его, чтобы проверить наши заявления о безопасности.
Сквозное шифрование (E2EE)
Ваши данные шифруются на вашем устройстве и расшифровываются только на целевом устройстве. Никто посередине, даже OneKey, не может их прочитать.
Нулевое разглашение информации сервером
Наш сервер действует только как диспетчер для соединения ваших устройств. Он не имеет доступа к передаваемым данным и не знает о них.
Как формируется ключ шифрования
Ваши данные защищены ключом, состоящим из нескольких независимых частей. Злоумышленнику потребуется украсть все части из разных мест одновременно, чтобы попытаться взломать шифрование.
1. Динамический общий ключ (ECDHE)
Что это: Временный, одноразовый общий ключ, создаваемый непосредственно между вашими двумя устройствами в начале сеанса.
Ключевой вывод: Этот ключ никогда не передается и не виден серверу. Он обеспечивает безопасное соединение, даже если ваш код сопряжения перехвачен (например, с помощью записи экрана).
2. Код сопряжения
Первые 10 символов: Отправляются на сервер для идентификации устройств, желающих соединиться.
Последние 40 символов: Используются как секретный ингредиент для окончательного ключа шифрования. Эта часть никогда не отправляется на сервер.
3. Дополнительные секретные ингредиенты
С вашего устройства (локально): Пароль блокировки вашего устройства, случайное число для передачи, уникальный идентификатор вашего экземпляра приложения и встроенный секретный ключ приложения (соль).
Из облака (сервера): Временный идентификатор соединения и еще одно случайное число, сгенерированное сервером для сеанса.
Короче говоря, состав такого ключа из множества источников создает невероятно высокий барьер безопасности. Чтобы иметь хоть какой-то шанс расшифровать ваши данные, злоумышленнику пришлось бы одновременно взломать сервер (чтобы перехватить данные, получить части ключа с сервера и подменить ключ ECDHE с помощью атаки «человек посередине») И записать экран вашего приложения (чтобы украсть код сопряжения и другие локальные части ключа).
Защита и проверки
Мы используем несколько активных мер для блокировки атак и обеспечения вашего контроля.
Защита на стороне сервера
Защита от перебора:
Ограничение частоты запросов: Одно устройство может делать запрос только раз в 3 секунды, предотвращая атаки быстрой рассылки.
Ограничение попыток: Код сопряжения можно ввести только 10 раз. После 10 неудачных попыток сеанс завершается.
Проверки, контролируемые пользователем
Проверка пароля на экране блокировки
Что вы делаете: Вы должны ввести пароль вашего телефона для авторизации передачи.
Почему это важно: Гарантирует, что человек, взявший ваш разблокированный телефон, не сможет украсть ваши ключи.
Физическая проверка 6-значного кода
Что вы делаете: После сопряжения вы должны физически подтвердить, что 6-значный код совпадает на экранах обоих ваших устройств.
Почему это важно: Это останавливает атаку «человек посередине». Хакер не сможет завершить передачу, потому что он не увидит код на вашем втором устройстве.
Одноразовый код сопряжения
Что это: Код сопряжения истекает после одного успешного использования.
Почему это важно: Это функция защиты «превентивного соединения». Если хакер украдет ваш код и подключится первым, ваша собственная законная попытка подключения принудительно отключит хакера, гарантируя, что продолжить сможете только вы.
Дополнительные параметры
Благодаря нашему открытому исходному коду вы можете дополнительно повысить безопасность и конфиденциальность ваших передач данных:
Самостоятельный хостинг сервера: Разверните наш код сервера на собственном сервере, затем подключитесь к нему, выбрав в приложении опцию «Пользовательский сервер». Это дает вам полный контроль над вашими данными.
Передача по ЛВС (скоро): В будущей версии настольное приложение OneKey сможет выступать в качестве ретранслятора локальной вычислительной сети (ЛВС). Это позволит вашим устройствам передавать данные, никогда не подключаясь к общедоступному Интернету, достигая полной физической изоляции.
