Cómo Tangem Wallet respalda las claves privadas

Author logo
Andrey Lazutkin
Post image

Para asegurarte de no perder el acceso a tus criptomonedas si extravías tu billetera, es fundamental respaldar tu clave privada creando copias de seguridad. Normalmente, esto se hace utilizando una frase semilla. Sin embargo, el problema es que las frases semilla son extremadamente inseguras porque cualquier persona que las obtenga puede usarlas.
 

Por eso, Tangem Wallet ofrece una solución segura de clonación de claves privadas. Puedes clonar tu clave privada en una o dos tarjetas Tangem de respaldo sin preocuparte de que una de ellas se pierda o sea robada.

¿Pero qué tan seguro es este método de respaldo? Analicemos cómo lo logra Tangem Wallet.
 

Creación de una clave privada

Antes de la activación, Tangem Wallet no tiene una clave privada (Kpriv, como se muestra en el diagrama). Cuando compras una Tangem Wallet, recibes un paquete que aún no ha sido activado y no tiene una clave privada, así que puedes estar completamente seguro de que no existen copias de la clave en ningún otro lugar del mundo. Después de todo, no puedes hacer una copia de algo que no existe.
 

Durante la activación de la billetera, el chip de Tangem genera una nueva clave privada basada en una secuencia numérica producida por un generador de números aleatorios de hardware certificado (TRNG), como se muestra en el diagrama. Para saber cómo funciona este proceso, consulta nuestro artículo Cómo crear una clave privada para una billetera cripto con y sin frase semilla.

En esta etapa, solo existe una instancia de la clave privada. Después, deberás crear una o dos copias como respaldo, lo cual debe hacerse de forma segura.

Preparación para crear un respaldo

Durante el proceso de respaldo, la clave privada debe transferirse a las otras tarjetas de forma que se evite que sea robada, y el usuario debe mantener el control total sobre la cantidad de copias de la clave privada.

Por eso, el proceso de respaldo de la clave privada consta de dos tareas:

  1. Primero, debes asegurarte de que la clave se transfiera a otra tarjeta Tangem.
     
  2. La clave debe estar protegida contra la interceptación mientras se transmite a la(s) otra(s) tarjeta(s), lo que significa que debe estar cifrada para que solo la tarjeta receptora pueda descifrarla.

Cuando se fabrica la tarjeta, el chip genera su propio par de claves: la clave privada Kcardpriv y la clave pública Kcardpub. Estas claves son únicas para cada tarjeta y no están vinculadas de ninguna forma a la billetera del futuro usuario. Solo se requieren para que la tarjeta pueda probar su autenticidad y notificar a la app que fue producida por Tangem.

La clave pública de este par es firmada por Tangem usando la clave privada del fabricante, KTangempriv. El certificado resultante, Cert_Card, se utiliza para validar la tarjeta.

La clave pública del fabricante, KTangempub, también se graba en el chip. Esta clave es la misma para todas las tarjetas y constituye el punto de partida de una “cadena de confianza” entre la tarjeta de origen y la de destino.

 

Cómo Tangem Wallet respalda las claves privadas

 

Primer desafío: autenticación mutua

Para que cada tarjeta esté “segura” de que la tarjeta en el otro extremo es una Tangem Wallet genuina durante el respaldo, se debe construir una “cadena de confianza” criptográfica a partir de las claves y firmas de las tarjetas.

Durante la activación, cada tarjeta crea un par de claves de un solo uso para comunicarse con las otras tarjetas – Klinkpub y Klinkpriv – y firma la clave pública de este par con su clave privada Kcardpriv, generando la firma Sign_Attest.

 

Cómo Tangem Wallet respalda las claves privadas_2

Luego, la tarjeta envía la información de Sign_Attest, Klinkpub, y Kcardpub a la otra tarjeta.

Este proceso crea la siguiente cadena de confianza: KTangempub — Kcardpub — Klinkpub. La clave pública del fabricante, KTangempub, es conocida por todas las tarjetas, y cada una la usa para verificar el certificado Cert_Card. Si coincide con la Kcardpub de la otra tarjeta, entonces esta clave se usa para verificar la firma Sign_Attest de esa tarjeta. 

 

Si Sign_Attest coincide con la Klinkpub de la otra tarjeta, significa que la tarjeta al otro lado del canal de comunicación fue realmente producida por Tangem y que nadie ha modificado su clave Klinkpub. Puede usarse para calcular la clave de respaldo compartida Ktrans.

NEW_03_en.png

Segundo desafío: obtener una clave de cifrado compartida

En esta etapa, ambas tarjetas deben generar una clave simétrica compartida, Ktrans, que la tarjeta de origen usará para cifrar la clave privada del usuario y la tarjeta de destino utilizará para descifrarla. Como el canal de comunicación entre ellas es un dispositivo no confiable, no es posible simplemente generar una clave en una tarjeta y transferirla a la otra. Este problema se resuelve utilizando el protocolo de clave Diffie–Hellman.
 

Las tarjetas acaban de intercambiar las claves Klinkpub verificadas y confiables, y cada tarjeta usa su propia Klinkpriv y la Klinkpub de la otra tarjeta para generar la clave simétrica de cifrado Ktrans, que termina siendo idéntica para ambas tarjetas. Así funciona Diffie–Hellman.
 

Si un atacante toma el control del teléfono del usuario y puede “escuchar” el intercambio entre tarjetas, solo podrá ver las claves públicas Klinkpub y Kcardpub, ya que son los únicos datos transmitidos por las tarjetas. Las claves Klinkpriv permanecerán inaccesibles, lo que significa que el atacante no podrá generar la misma Ktrans.

 

Cómo Tangem Wallet respalda las claves privadas_3

 

Intercambio de claves cifradas

Usando la clave simétrica Ktrans que ha obtenido, la primera tarjeta cifra un conjunto de datos que incluye la clave privada del usuario y el código de acceso, así como la cantidad de respaldos de la clave privada (2 o 3 tarjetas). 
 

La tarjeta envía el mensaje cifrado ENC resultante a la segunda tarjeta, que lo descifra usando la misma Ktrans. Si alguien logra interceptar el ENC en ese momento, no podrá descubrir nada porque, sin la clave Ktrans, no es posible descifrar el paquete.
 

Cómo Tangem Wallet respalda las claves privadas_4

El procedimiento para completar el respaldo en la tercera tarjeta es exactamente el mismo; sin embargo, las tarjetas generan nuevos pares Klink, por lo que la clave Ktrans será diferente a la utilizada en el respaldo de la segunda tarjeta.


El firmware del chip Tangem permite completar un solo respaldo. Después de dar o recibir una clave privada, la tarjeta dejará de iniciar el proceso de respaldo y la clave privada será irrecuperable.
 

Si realizas un restablecimiento de fábrica en tu Tangem Wallet, el chip olvidará la clave Kpriv. Luego podrás reactivar la billetera, generar una nueva clave y completar un nuevo respaldo. Sin embargo, debes tener en cuenta que la clave anterior se destruirá tras el restablecimiento.

Author logo
Autor Andrey Lazutkin

Chief Technology Officer at Tangem.

Author logo
Revisado por Andrey Lazutkin

Chief Technology Officer at Tangem.