OneKey Transfer es una función dentro de la aplicación OneKey que mueve de forma segura las claves privadas de su billetera de software entre sus dispositivos. Esta guía explica las múltiples capas de seguridad que protegen sus datos.
Nota sobre las billeteras: Esta función es actualmente solo para billeteras de software. El soporte para billeteras de hardware es más complejo y se agregará en una versión futura.
Principios Fundamentales
Nuestra seguridad se basa en tres promesas clave:
Código abierto y confiable
El código de nuestra aplicación y servidor es público. Cualquiera puede revisarlo para verificar nuestras afirmaciones de seguridad.
Código del Servidor: https://github.com/OneKeyHQ/e2ee-server/tree/main/packages/transfer-server
Código del Cliente: https://github.com/OneKeyHQ/app-monorepo
Cifrado de extremo a extremo (E2EE)
Sus datos se cifran en su dispositivo y solo se descifran en el dispositivo de destino. Nadie en el medio, ni siquiera OneKey, puede leerlos.
Cero conocimiento del servidor
Nuestro servidor solo actúa como un controlador de tráfico para conectar sus dispositivos. No tiene acceso ni conocimiento de los datos que se transfieren.
Cómo se construye la clave de cifrado
Sus datos se bloquean con una clave hecha de múltiples partes independientes. Un atacante necesitaría robar todas las partes de diferentes lugares simultáneamente para intentar descifrar el cifrado.
1. Clave compartida dinámica (ECDHE)
Qué es: Una clave compartida temporal y de un solo uso creada directamente entre sus dos dispositivos al inicio de la sesión.
Punto clave: Esta clave nunca se transmite ni la ve el servidor. Hace que la conexión sea segura incluso si su Código de emparejamiento se intercepta (por ejemplo, mediante grabación de pantalla).
2. El Código de emparejamiento
Primeros 10 caracteres: Se envían al servidor para identificar qué dispositivos desean conectarse.
Últimos 40 caracteres: Se utilizan como ingrediente secreto para la clave de cifrado final. Esta parte nunca se envía al servidor.
3. Ingredientes secretos adicionales
De su dispositivo (local): La contraseña de bloqueo de su dispositivo, un número aleatorio para la transferencia, un ID único para su instancia de aplicación y un secreto de aplicación incorporado (sal).
De la nube (servidor): Un ID de conexión temporal y otro número aleatorio generado por el servidor para la sesión.
En resumen, esta composición de claves de múltiples fuentes crea una barrera de seguridad increíblemente alta. Para tener alguna posibilidad de descifrar sus datos, un atacante tendría que violar simultáneamente el servidor (para secuestrar datos, obtener partes de la clave del lado de la nube y manipular la clave ECDHE a través de un ataque de intermediario) Y capturar la pantalla de su aplicación (para robar el código de emparejamiento y otras partes de la clave local).
Defensas y Verificaciones
Utilizamos varias medidas activas para bloquear ataques y garantizar que usted tenga el control.
Protección del lado del servidor
Anti-ataque de fuerza bruta:
Limitación de velocidad: Un solo dispositivo solo puede realizar una solicitud cada 3 segundos, lo que evita ataques de fuerza bruta.
Límites de intentos: El Código de emparejamiento solo se puede intentar 10 veces. Después de 10 fallos, la sesión se termina.
Verificación controlada por el usuario
Comprobación de la contraseña de la pantalla de bloqueo
Qué hace usted: Debe ingresar la contraseña de su teléfono para autorizar la transferencia.
Por qué es importante: Asegura que alguien que tome su teléfono desbloqueado no pueda robar sus claves.
Verificación física de 6 dígitos
Qué hace usted: Después de emparejar, debe confirmar físicamente que un código de 6 dígitos coincide en las pantallas de ambos dispositivos.
Por qué es importante: Esto detiene un ataque de intermediario. Un hacker no puede completar la transferencia porque no puede ver el código en su segundo dispositivo.
Código de emparejamiento para un solo uso
Qué es: El Código de emparejamiento expira después de un uso exitoso.
Por qué es importante: Esto presenta una defensa de "conexión preventiva". Si un hacker roba su código y se conecta primero, su propio intento de conexión legítimo desconectará forzosamente al hacker, asegurando que solo usted pueda continuar.
Opciones avanzadas
Gracias a nuestro código de código abierto, puede mejorar aún más la seguridad y la privacidad de sus transferencias de datos:
Autoalojar su servidor: Implemente nuestro código de servidor en su propio servidor, luego conéctese a él seleccionando la opción "Servidor personalizado" en la aplicación. Esto le da control total sobre sus datos.
Transferencia LAN (Próximamente): En una versión futura, la aplicación de escritorio OneKey podrá actuar como un relevo de red de área local (LAN). Esto permitirá que sus dispositivos transfieran datos sin tocar nunca Internet público, logrando un verdadero aislamiento físico.
