Comment le Portefeuille Tangem sauvegarde les clés privées

how tangem wallet backs up private keys.png

Pour vous assurer de ne pas perdre l'accès à votre crypto-monnaie si vous perdez votre portefeuille crypto, vous devrez sauvegarder votre clé privée en créant des copies. Cela se fait généralement à l'aide d'une seed phrase. Cependant, le problème est que les seed phrases sont extrêmement peu sûres, car quiconque met la main dessus peut les utiliser.

C'est pourquoi le Portefeuille Tangem offre une solution de clonage sécurisée des clés privées. Vous pouvez cloner votre clé privée sur une ou deux cartes Tangem de sauvegarde sans vous soucier qu'elles soient perdues ou volées.

Mais à quel point cette méthode de sauvegarde est-elle sûre ? Examinons comment le Portefeuille Tangem procède.

Création d'une clé privée

Au départ, avant le processus d'activation, le Portefeuille Tangem n'a pas de clé privée (Kpriv sur le schéma). Lorsque vous achetez un Portefeuille Tangem, vous recevez un paquet qui n'a pas encore été activé et qui n'a pas de clé privée, de sorte que vous pouvez être totalement sûr qu'il n'y a aucune instance de la clé non comptabilisée, n'importe où dans le monde. Après tout, vous ne pouvez pas faire de copie de quelque chose qui n'existe pas.

Pendant le processus d'activation du portefeuille, la puce Tangem génère une nouvelle clé privée basée sur une séquence numérique reçue d'un générateur de nombres aléatoires matériel certifié (TRNG sur le schéma). Vous pouvez lire notre article sur « Comment créer une clé privée pour un portefeuille crypto avec et sans seed phrase » pour comprendre comment ce processus fonctionne.

À ce stade, il n'y a qu'une seule instance de la clé privée. Ensuite, vous devrez créer une ou deux copies en guise de sauvegarde, ce qui doit être fait de manière sécurisée.

Préparation à la création d'une sauvegarde

Pendant le processus de sauvegarde, la clé privée doit être transférée aux autres cartes de telle manière qu'elle ne puisse pas être volée, et l'utilisateur aura un contrôle total sur le nombre de copies de la clé privée qui existent.

Pour cette raison, le processus de sauvegarde de la clé privée se compose de deux sous-tâches :

  • Tout d'abord, vous devez vous assurer absolument que la clé sera transférée à une autre carte Tangem ;
  • La clé doit être protégée de toute interception lors de sa transmission à l'autre ou aux autres cartes, ce qui signifie qu'elle doit être chiffrée de sorte que seule la carte destinataire puisse la déchiffrer.

Lorsque la carte est produite à l'usine, la puce génère sa propre paire de clés : la clé privée Kcardpriv et la clé publique Kcardpub. Ces clés sont uniques à chaque carte et ne sont en aucun cas liées au portefeuille du futur utilisateur de la carte. Elles ne sont nécessaires que pour que la carte puisse prouver son authenticité et indiquer à l'application qu'elle a été produite par Tangem.

La clé publique de cette paire est signée par Tangem à l'aide de la clé privée du fabricant, KTangempriv. Le certificat Cert_Card résultant est ensuite utilisé pour valider la carte.

La clé publique du fabricant, KTangempub, est également écrite sur la puce. Cette clé est la même pour toutes les cartes et constitue le point de départ d'une « chaîne de confiance » entre la carte source et la carte de destination.

NEW_01.png

Le premier défi : L'authentification mutuelle

Pour que chaque carte soit « sûre » que la carte à l'autre bout est une véritable carte Portefeuille Tangem pendant le processus de sauvegarde, une « chaîne de confiance » cryptographique doit être construite à partir des clés et des signatures des cartes.

Pendant l'activation, chaque carte crée une paire de clés à usage unique pour communiquer avec les autres cartes – Klinkpub et Klinkpriv – et signe la clé publique de cette paire avec sa clé privée Kcardpriv, créant la signature Sign_Attest.

NEW_02_en.png

La carte envoie ensuite les informations Sign_Attest, Klinkpub et Kcardpub à l'autre carte.

Ce processus crée la chaîne de confiance suivante : KTangempub — Kcardpub — Klinkpub. La clé publique du fabricant KTangempub est connue de chaque carte, et chacune d'elles l'utilise pour vérifier le certificat Cert_Card. Si elle correspond à la Kcardpub de l'autre carte, alors cette clé est utilisée pour vérifier la signature Sign_Attest de cette carte. Si Sign_Attest correspond à la Klinkpub de l'autre carte, cela signifie que la carte à l'autre bout du canal de communication a été réellement produite par Tangem, que sa clé Klinkpub n'a été modifiée par personne et qu'elle peut être utilisée pour calculer la clé de sauvegarde partagée Ktrans.

NEW_03_en.png

Le deuxième défi : obtenir une clé de chiffrement partagée

À ce stade, les deux cartes doivent générer une clé symétrique partagée, Ktrans, que la carte source utilisera pour chiffrer la clé privée de l'utilisateur tandis que la carte de destination la déchiffre. Étant donné que le canal de communication entre elles est fourni par un appareil non fiable, il est impossible de simplement générer une clé dans une carte et de la transférer à une autre. Ce problème est résolu en utilisant le protocole de clé Diffie–Hellman.

Les cartes viennent d'échanger les clés Klinkpub vérifiées et fiables, chaque carte utilisant sa propre Klinkpriv et la Klinkpub de l'autre carte pour générer la clé de chiffrement symétrique Ktrans, qui finit par être identique pour les deux cartes. C'est la magie de Diffie-Hellman en action.

De plus, si un attaquant prend le contrôle du téléphone de l'utilisateur et est capable « d'espionner » l'échange de cartes, il ne découvrira que les clés publiques Klinkpub et Kcardpub, car ce sont les seules choses transmises par les cartes. Les clés Klinkpriv resteront inaccessibles, ce qui signifie que l'attaquant ne pourra pas générer la même Ktrans.

NEW_04_en.png

Échange de clés chiffrées

En utilisant la clé symétrique Ktrans qu'elle a obtenue, la première carte chiffre un ensemble de données contenant la clé privée de l'utilisateur et le code d'accès, ainsi que le nombre de sauvegardes de clés privées (ensemble de 2 ou 3 cartes). La carte envoie le message chiffré ENC résultant à la deuxième carte, qui le déchiffre en utilisant la même Ktrans. Si quelqu'un réussissait à intercepter l'ENC à ce moment-là, il ne pourrait rien découvrir car, sans la clé Ktrans, il ne peut pas déchiffrer le paquet.

NEW_05_en.png

Lors de la réalisation de la sauvegarde pour la troisième carte, la procédure est exactement la même, mais les cartes génèrent de nouvelles paires Klink, ce qui signifie que la clé Ktrans est différente de celle utilisée lors de la sauvegarde sur la deuxième carte.

Le firmware de la puce Tangem permet d'effectuer une sauvegarde. Après avoir donné ou reçu une clé privée, la carte cessera d'initier la procédure de sauvegarde et la clé privée sera irrécupérable.

Si vous effectuez une réinitialisation d'usine sur votre portefeuille Tangem, la puce oubliera la clé Kpriv et vous pourrez réactiver le portefeuille, générer une nouvelle clé et effectuer une nouvelle sauvegarde. Sachez toutefois que l'ancienne clé sera détruite après la réinitialisation.