Passar para o conteúdo principal

Mecanismo de Segurança do OneKey Transfer

Atualizado essa semana

OneKey Transfer é um recurso dentro do OneKey App que move com segurança as chaves privadas da sua carteira de software entre seus dispositivos. Este guia explica as múltiplas camadas de segurança que protegem seus dados.

Observação sobre carteiras: Este recurso é atualmente apenas para carteiras de software. O suporte a carteiras de hardware é mais complexo e será adicionado em uma versão futura.


Princípios fundamentais

Nossa segurança é construída sobre três compromissos principais:

  • Código aberto e confiável

    O código do nosso aplicativo e do servidor é público. Qualquer pessoa pode revisá-lo para verificar nossas declarações de segurança.

  • Criptografia de ponta a ponta (E2EE)

    Seus dados são criptografados no seu dispositivo e somente descriptografados no dispositivo de destino. Ninguém no meio — nem mesmo a OneKey — pode lê-los.

  • Servidor sem conhecimento (zero-knowledge)

    Nosso servidor atua apenas como um controlador de tráfego para conectar seus dispositivos. Ele não tem acesso aos dados transferidos, nem conhecimento sobre eles.


Como a chave de criptografia é construída

Seus dados são protegidos por uma chave composta por várias partes independentes. Um atacante precisaria roubar todas as partes de lugares diferentes simultaneamente para sequer tentar quebrar a criptografia.

1. Chave compartilhada dinâmica (ECDHE)

  • O que é: Uma chave compartilhada temporária e de uso único criada diretamente entre seus dois dispositivos no início da sessão.

  • Ponto principal: Essa chave nunca é transmitida nem vista pelo servidor. Ela torna a conexão segura mesmo se seu Código de Emparelhamento for interceptado (por exemplo, por gravação de tela).

2. O Código de Emparelhamento

  • Primeiros 10 caracteres: Enviados ao servidor para identificar quais dispositivos desejam se conectar.

  • Últimos 40 caracteres: Usados como um ingrediente secreto para a chave de criptografia final. Esta parte nunca é enviada ao servidor.

3. Ingredientes secretos adicionais

  • Do seu dispositivo (local): A senha de bloqueio do seu dispositivo, um número aleatório para a transferência, um ID único da sua instância do aplicativo e um segredo embutido do aplicativo (salt).

  • Da nuvem (servidor): Um ID de conexão temporário e outro número aleatório gerado pelo servidor para a sessão.

Em resumo, essa composição de chave de múltiplas fontes cria uma barreira de segurança extremamente alta. Para ter qualquer chance de descriptografar seus dados, um atacante teria que invadir simultaneamente o servidor (para sequestrar dados, obter partes da chave no lado da nuvem e manipular a chave ECDHE por meio de um ataque man-in-the-middle) E capturar a tela do seu aplicativo (para roubar o código de emparelhamento e outras partes locais da chave).


Defesas e verificações

Usamos várias medidas ativas para bloquear ataques e garantir que você tenha controle.

Proteção do lado do servidor

  • Proteção contra força bruta:

    • Limitação de taxa: Um único dispositivo só pode fazer uma solicitação a cada 3 segundos, impedindo ataques em alta velocidade.

    • Limite de tentativas: O Código de Emparelhamento só pode ser tentado 10 vezes. Após 10 falhas, a sessão é encerrada.

Verificações controladas pelo usuário

  • Verificação da senha da tela de bloqueio

    • O que você faz: Você deve digitar a senha do seu telefone para autorizar a transferência.

    • Por que isso é importante: Garante que alguém que pegue seu telefone desbloqueado não possa roubar suas chaves.

  • Verificação física de 6 dígitos

    • O que você faz: Após o emparelhamento, você deve confirmar fisicamente que um código de 6 dígitos corresponde em ambas as telas dos seus dispositivos.

    • Por que isso é importante: Isso impede um ataque man-in-the-middle. Um invasor não pode concluir a transferência porque não consegue ver o código no seu segundo dispositivo.

  • Código de emparelhamento de uso único

    • O que é: O Código de Emparelhamento expira após um uso bem-sucedido.

    • Por que isso é importante: Isso apresenta uma defesa de "conexão preventiva". Se um invasor roubar seu código e se conectar primeiro, sua própria tentativa legítima de conexão desconectará o invasor forçosamente, garantindo que apenas você possa prosseguir.

Opções avançadas

Graças ao nosso código aberto, você pode aprimorar ainda mais a segurança e a privacidade das suas transferências de dados:

  • Hospede seu próprio servidor: Implemente nosso código de servidor em seu próprio servidor, depois conecte-se a ele selecionando a opção "Servidor personalizado" no aplicativo. Isso lhe dá controle total sobre seus dados.

  • Transferência via LAN (em breve): Em uma versão futura, o aplicativo OneKey para desktop poderá atuar como um relé de Rede Local (LAN). Isso permitirá que seus dispositivos transfiram dados sem nunca passar pela internet pública, alcançando isolamento físico verdadeiro.

Respondeu à sua pergunta?