Ir para conteúdo principal

Mecanismo de Segurança de Transferência OneKey

OneKey Transfer é um recurso do aplicativo OneKey que movimenta 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.

Nota 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 principais

Nossa segurança baseia-se em três compromissos principais:

  • Código aberto e confiável

    O código do nosso app e do servidor é público. Qualquer pessoa pode revisá-lo para verificar nossas alegaçõ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

    Nosso servidor funciona apenas como um controlador de tráfego para conectar seus dispositivos. Ele não tem acesso a, nem conhecimento dos, dados que estão sendo transferidos.


Como a chave de criptografia é construída

Seus dados são protegidos por uma chave composta de várias partes independentes. Um atacante precisaria roubar todas as partes de locais 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 pareamento for interceptado (por exemplo, via gravação de tela).

2. O código de pareamento

  • 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 app e um segredo incorporado do app (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 do lado da nuvem e adulterar a chave ECDHE por meio de um ataque man-in-the-middle) E capturar a tela do seu app (para roubar o código de pareamento e outras partes locais da chave).


Defesas e verificações

Usamos várias medidas ativas para bloquear ataques e garantir que você esteja no 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 de alto volume.

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

Verificação controlada pelo usuário

  • Verificação da senha da tela de bloqueio

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

    • Por que isso importa: 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 pareamento, você deve confirmar fisicamente que um código de 6 dígitos corresponde em ambas as telas dos seus dispositivos.

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

  • Código de pareamento de uso único

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

    • Por que isso importa: Isso possui uma defesa de "conexão preventiva". Se um hacker roubar seu código e se conectar primeiro, sua própria tentativa legítima de conexão irá desconectar forçosamente o hacker, 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 de suas transferências de dados:

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

  • Transferência via LAN (em breve): Em uma versão futura, o app desktop OneKey poderá atuar como um relé de rede local (LAN). Isso permitirá que seus dispositivos transfiram dados sem jamais tocar a internet pública, alcançando isolamento físico real.

Isto respondeu à sua pergunta?