FR3144465A1 - Method for personalized backup and restoration of a secret held by a cryptoasset wallet - Google Patents

Method for personalized backup and restoration of a secret held by a cryptoasset wallet Download PDF

Info

Publication number
FR3144465A1
FR3144465A1 FR2214387A FR2214387A FR3144465A1 FR 3144465 A1 FR3144465 A1 FR 3144465A1 FR 2214387 A FR2214387 A FR 2214387A FR 2214387 A FR2214387 A FR 2214387A FR 3144465 A1 FR3144465 A1 FR 3144465A1
Authority
FR
France
Prior art keywords
user
identity
backup
server
bcki
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2214387A
Other languages
French (fr)
Inventor
Laurent Castillo
Andrianina Sandra RASOAMIARAMANANA
Daniel ROCHA FURTADO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR2214387A priority Critical patent/FR3144465A1/en
Priority to PCT/FR2023/000197 priority patent/WO2024134039A1/en
Priority to PCT/FR2023/000198 priority patent/WO2024134040A1/en
Priority to PCT/FR2023/000196 priority patent/WO2024134038A1/en
Priority to PCT/FR2023/000195 priority patent/WO2024134037A1/en
Publication of FR3144465A1 publication Critical patent/FR3144465A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé pour la sauvegarde et la restauration d’un secret (S) détenu par un premier portefeuille de cryptoactifs (CW1), comprenant les étapes consistant à générer, au moyen du portefeuille de cryptoactifs, une pluralité de données secrètes (Si) à partir du secret (S), sauvegarder les données secrètes dans une pluralité de serveurs de sauvegarde (BCKi), et restaurer le secret dans un deuxième portefeuille de cryptoactifs à partir des données secrètes détenues par les serveurs de sauvegarde. L’étape de sauvegarde est précédée d’une étape initiale de collecte d'informations relatives à l’identité de l’utilisateur, et d'une étape de communication, à chaque serveur de sauvegarde, des informations relatives à l’identité de l’utilisateur. L’étape de restauration est précédée d’une pluralité d’étapes de vérification de l’identité de l’utilisateur par des serveurs de sauvegarde, ces derniers étant configurés pour refuser de restituer la donnée secrète qu’ils détiennent si la vérification de l’identité de l’utilisateur n’est pas concluante. Figure pour l'abrégé : Fig. 3AMethod for backing up and restoring a secret (S) held by a first cryptoasset wallet (CW1), comprising the steps of generating, by means of the cryptoasset wallet, a plurality of secret data (Si) from the secret (S), saving the secret data in a plurality of backup servers (BCKi), and restoring the secret in a second cryptoasset wallet from the secret data held by the backup servers. The backup step is preceded by an initial step of collecting information relating to the identity of the user, and a step of communicating, to each backup server, information relating to the identity of the user. 'user. The restoration step is preceded by a plurality of steps of verifying the identity of the user by backup servers, the latter being configured to refuse to restore the secret data that they hold if the verification of the The identity of the user is inconclusive. Figure for abstract: Fig. 3A

Description

Procédé pour la sauvegarde et la restauration personnalisées d’un secret détenu par un portefeuille de cryptoactifsMethod for personalized backup and restoration of a secret held by a cryptoasset wallet

La présente invention concerne un procédé pour la sauvegarde et la restauration d’un secret détenu par un dispositif électronique, et un procédé pour sécuriser la sauvegarde et la restauration d’un secret détenu par un dispositif électronique. La présente invention concerne également la sécurisation d'une liaison de données sécurisée entre un dispositif électronique et un serveur. La présente invention concerne notamment les portefeuilles matériels déterministes hiérarchiques utilisés pour le stockage de clés privées permettant de gérer des comptes sur la blockchain.The present invention relates to a method for backing up and restoring a secret held by an electronic device, and to a method for securing the backup and restoration of a secret held by an electronic device. The present invention also relates to securing a secure data link between an electronic device and a server. The present invention relates in particular to hierarchical deterministic hardware wallets used for storing private keys for managing accounts on the blockchain.

Arrière-planBackground

Ces dernières années, le développement des cryptomonnaies ou autres types de cryptoactifs gérés par la blockchain, tels que les jetons non fongibles ("NFT") et les contrats intelligents ("Smart Contracts"), a donné naissance à divers moyens de stockage et de conservation des clés privées et publiques attachées à ces différents types de cryptoactifs. C’est ainsi que sont apparus les portefeuilles de cryptoactifs communément appelés "wallets" permettant le stockage et la conservation de ces clés. Un portefeuille de cryptoactifs est un dispositif matériel ou logiciel dont la fonction est de stocker les clés privées et publiques attachées à des comptes de cryptoactifs, et de signer des transactions au moyen de ces clés. On distingue les portefeuilles dits "chauds" ("hot wallets") et les portefeuilles dit froids ("cold wallets"). Les portefeuilles "chauds " sont connectés à l’Internet et susceptibles d’attaques de pirates ou d’exposition à des virus et malwares. Il peut s’agir de portefeuilles gérés par des plateformes d’échange centralisé ou de programmes installés sur des téléphones mobiles, tablettes ou ordinateurs personnels ("software wallets"). De tels portefeuilles sont connectés à Internet et donc eux-mêmes susceptibles d’attaques. Les portefeuilles "froids" ou portefeuilles matériels ("hardware wallet") sont en revanche dépourvus de tout accès direct à Internet, ce qui réduit la surface d'attaque et donc le risque de vol par piratage informatique. Un portefeuille matériel est généralement un dispositif électronique portatif, équipé d’un processeur ayant des moyens de calcul cryptographique. Les transactions mettant en jeu des clés privées sont signées dans un environnement hors ligne. Toute transaction réalisée en ligne est temporairement transférée vers le portefeuille matériel pour y être signée numériquement hors ligne, avant que la signature ne soit transmise au réseau en ligne. Comme les clés privées ne sont pas communiquées aux serveurs en ligne pendant le processus de signature, un pirate informatique ne peut pas y accéder.In recent years, the development of cryptocurrencies or other types of cryptoassets managed by the blockchain, such as non-fungible tokens ("NFTs") and smart contracts ("Smart Contracts"), has given rise to various means of storage and conservation of private and public keys attached to these different types of cryptoassets. This is how cryptoasset wallets commonly called “wallets” appeared, allowing the storage and conservation of these keys. A cryptoasset wallet is a hardware or software device whose function is to store private and public keys attached to cryptoasset accounts, and to sign transactions using these keys. We distinguish between so-called "hot wallets" and so-called cold wallets. “Hot” wallets are connected to the Internet and susceptible to hacker attacks or exposure to viruses and malware. These may be wallets managed by centralized exchange platforms or programs installed on mobile phones, tablets or personal computers (“software wallets”). Such wallets are connected to the Internet and therefore themselves susceptible to attacks. “Cold” wallets or hardware wallets, on the other hand, do not have any direct access to the Internet, which reduces the attack surface and therefore the risk of theft by hacking. A hardware wallet is generally a portable electronic device, equipped with a processor with cryptographic calculation means. Transactions involving private keys are signed in an offline environment. Any transaction made online is temporarily transferred to the hardware wallet to be digitally signed offline, before the signature is transmitted to the online network. Because private keys are not communicated to online servers during the signing process, a hacker cannot access them.

Un tel type de portefeuille matériel est donc aujourd’hui considéré comme la solution la plus sûre contre les attaques de pirates informatiques. Son seul inconvénient réside dans le risque de perte, de vol ou de destruction (incendie par exemple) du portefeuille matériel, ou de perte du mode de passe personnel de l'utilisateur permettant de s’en servir. Les clés qu’il contient doivent donc généralement être sauvegardées en lieu sûr.Such a type of hardware wallet is therefore today considered the safest solution against hacker attacks. Its only drawback lies in the risk of loss, theft or destruction (fire for example) of the hardware wallet, or loss of the user's personal password allowing it to be used. The keys it contains must therefore generally be saved in a safe place.

Un premier problème qui s’est posé dans le passé a été de trouver un moyen de simplifier le nombre de clés à sauvegarder, celles-ci pouvant être très nombreuses si l’utilisateur possède de nombreux comptes de cryptoactifs sur la blockchain. Pour solutionner ce problème, le portefeuille déterministe hiérarchique a été proposé par Bitcoin. D'abord proposé dans la norme BIP32, puis optimisé avec les normes BIP39, BIP43 et BIP44, il permet à un utilisateur de ne pas avoir à réaliser une nouvelle sauvegarde pour toute nouvelle paire de clés générée, une unique sauvegarde pour l'ensemble des clés de son portefeuille étant suffisante. Cette solution est aujourd’hui utilisée par la grande majorité des portefeuilles de cryptoactifs logiciels ou matériels.A first problem that arose in the past was to find a way to simplify the number of keys to save, these can be very numerous if the user has many cryptoasset accounts on the blockchain. To solve this problem, the hierarchical deterministic wallet was proposed by Bitcoin. First offered in the BIP32 standard, then optimized with the BIP39, BIP43 and BIP44 standards, it allows a user to not have to make a new backup for any new pair of keys generated, a single backup for all of the keys to his wallet being sufficient. This solution is today used by the vast majority of software or hardware cryptoasset wallets.

Avec un portefeuille déterministe hiérarchique, toutes les clés privées de l’utilisateur sont générées à partir d’une graine aléatoire d’origine, généralement appelée "seed" ou "master key" (clé maître). Il suffit qu’un utilisateur conserve en lieu sûr la graine pour récupérer toutes ses clés, qui sont dérivées de la graine et peuvent être reconstituées à partir de celle-ci ("clés enfants").With a hierarchical deterministic wallet, all of the user's private keys are generated from an original random seed, usually called a "seed" or "master key". A user only needs to keep the seed in a safe place to recover all of their keys, which are derived from the seed and can be reconstituted from it ("child keys").

Afin de faciliter la mémorisation et le stockage de la graine, la norme BIP39 prévoit également d'exprimer la graine, qui est un nombre binaire de grande longueur, sous la forme d’une phrase mnémonique appelée aussi "phrase de récupération" ("recovery phrase"). Le type exact de graine BIP39 utilisé actuellement dans les appareils de la demanderesse est une phrase de récupération qui se compose de 24 mots choisis dans une liste de 2048 mots définis par la norme précitée.In order to facilitate the memorization and storage of the seed, the BIP39 standard also provides for expressing the seed, which is a long binary number, in the form of a mnemonic phrase also called "recovery phrase". sentence"). The exact type of BIP39 seed currently used in the applicant's devices is a recovery phrase which consists of 24 words chosen from a list of 2048 words defined by the aforementioned standard.

Pour la génération d’une phrase de récupération, un portefeuille matériel génère une séquence de 256 bits aléatoires à l'aide d’un générateur de nombres aléatoires. Les 8 premiers bits d’un hachage SHA-256 des 256 bits initiaux sont ajoutés à cette chaîne de bits, ce qui donne 264 bits. Les 264 bits sont répartis en 24 groupes de 11 bits par l’appareil. Chaque groupe de 11 bits est interprété comme un nombre compris entre 0 et 2047, qui sert d'index à la liste de mots BIP39, ce qui permet d’obtenir la phrase mnémonique de 24 mots. Ce type de portefeuille ne nécessite donc qu’une seule sauvegarde de la graine, de préférence au moment de sa mise en service, à partir de laquelle il est possible de dériver l’ensemble de l’arbre descendant de clés.For generating a recovery phrase, a hardware wallet generates a sequence of 256 random bits using a random number generator. The first 8 bits of an SHA-256 hash of the initial 256 bits are added to this bit string, resulting in 264 bits. The 264 bits are divided into 24 groups of 11 bits by the device. Each group of 11 bits is interpreted as a number between 0 and 2047, which serves as an index to the BIP39 word list, resulting in the 24-word mnemonic phrase. This type of wallet therefore only requires a single backup of the seed, preferably at the time of its commissioning, from which it is possible to derive the entire descending tree of keys.

La montre schématiquement un portefeuille de cryptoactifs comprenant un portefeuille matériel HW, par exemple le dispositif commercialisé par la demanderesse sous l’appellation "Nano" ou "Stax", et un dispositif hôte HDV exécutant une application compagnon HSW, par exemple l’application "Ledger Live" développée par la demanderesse. Le dispositif HW ne pouvant pas se connecter directement à l’Internet, il est associé au dispositif hôte HDV pour réaliser des transactions sur la blockchain. Le dispositif hôte HDV est par exemple un ordinateur, un téléphone mobile, une tablette ou équivalent. La connexion entre le dispositif HW et le dispositif hôte HDV peut être de type USB ou Bluetooth par exemple.There schematically shows a portfolio of cryptoassets comprising an HW hardware wallet, for example the device marketed by the applicant under the name "Nano" or "Stax", and an HDV host device running a HSW companion application, for example the "Ledger" application Live" developed by the applicant. Since the HW device cannot connect directly to the Internet, it is associated with the HDV host device to carry out transactions on the blockchain. The HDV host device is for example a computer, a mobile phone, a tablet or the like. The connection between the HW device and the HDV host device can be USB or Bluetooth for example.

Une fois relié au dispositif hôte, le dispositif HW peut interagir avec le logiciel compagnon pour permettre à un utilisateur USR de réaliser des transactions sur la blockchain BCN ou sur des sites d’échange décentralisé. Le dispositif HW peut par ailleurs communiquer avec un module de sécurité HSM ("Hardware Security Module") situé dans un datacenter. Le module HSM est classiquement un boîtier de chiffrement matériel permettant de générer, stocker et protéger des clés cryptographiques. . Le module HSM ne stocke aucune clé privée de l’utilisateur et assure seulement le contrôle de l’authenticité du dispositif HW, sa mise en service, la mise à jour de son système d’exploitation, le téléchargement de programmes d’application certifiés, etc.Once connected to the host device, the HW device can interact with the companion software to allow a USR user to carry out transactions on the BCN blockchain or on decentralized exchange sites. The HW device can also communicate with a HSM (“Hardware Security Module”) security module located in a data center. The HSM module is typically a hardware encryption box for generating, storing and protecting cryptographic keys. . The HSM module does not store any private key of the user and only ensures the verification of the authenticity of the HW device, its commissioning, updating of its operating system, downloading of certified application programs, etc.

Lors de la première mise en service du dispositif HW, celui-ci fournit à l’utilisateur une phrase de récupération de 24 mots que celui-ci devra conserver sur un support physique approprié, par exemple une feuille de papier ou un support inaltérable tel une plaque de métal gravée, qu'il devra conserver en lieu sûr.When the HW device is first put into service, it provides the user with a 24-word recovery phrase which the user must keep on an appropriate physical medium, for example a sheet of paper or an unalterable medium such as a engraved metal plate, which he must keep in a safe place.

Une telle conservation en lieu sûr de la phrase de récupération ne va pas sans poser de problèmes. En effet, si un tiers s’empare de la phrase de récupération, le tiers pourra accéder à l’ensemble des comptes de cryptoactifs de l’utilisateur générés à partir de la graine et transférer sur d’autres comptes les sommes qu’ils comportent, et il sera ensuite très difficile de l’identifier.Such safekeeping of the recovery phrase is not without problems. Indeed, if a third party takes possession of the recovery phrase, the third party will be able to access all of the user's cryptoasset accounts generated from the seed and transfer the sums they contain to other accounts. , and it will then be very difficult to identify it.

Il pourrait donc être souhaité de prévoir un moyen permettant d’offrir aux utilisateurs un moyen simple et pratique pour conserver leur phrase de récupération de manière hautement sécurisée.It might therefore be desirable to provide a means of providing users with a simple and practical means of storing their recovery phrase in a highly secure manner.

RésuméSummary

Des modes de réalisation concernent un procédé pour la sauvegarde et la restauration d’un secret détenu par un premier portefeuille de cryptoactifs qui est la propriété d’un utilisateur, le procédé comprenant les étapes consistant à générer, au moyen du portefeuille de cryptoactifs, une pluralité de données secrètes à partir du secret, sauvegarder les données secrètes dans une pluralité de serveurs de sauvegarde, chaque serveur de sauvegarde recevant au moins une donnée secrète, restaurer le secret dans un deuxième portefeuille de cryptoactifs à partir de tout ou partie des données secrètes détenues par les serveurs de sauvegarde. Selon le procédé, l’étape de sauvegarde des données secrètes est précédée d’une étape initiale de collecte d'informations relatives à l’identité de l’utilisateur, et d'une étape de communication, à chaque serveur de sauvegarde, des informations relatives à l’identité de l’utilisateur, et l’étape de restauration est précédée d’une pluralité d’étapes de vérification de l’identité de l’utilisateur par au moins une partie des serveurs de sauvegarde, un serveur de sauvegarde configuré pour vérifier l’identité de l’utilisateur étant également configuré pour refuser de restituer la donnée secrète qu’il détient si la vérification de l’identité de l’utilisateur n’est pas concluante.Embodiments relate to a method for backing up and restoring a secret held by a first cryptoasset wallet that is owned by a user, the method comprising the steps of generating, using the cryptoasset wallet, a plurality of secret data from the secret, saving the secret data in a plurality of backup servers, each backup server receiving at least one secret data, restoring the secret in a second cryptoasset wallet from all or part of the secret data held by the backup servers. According to the method, the step of saving the secret data is preceded by an initial step of collecting information relating to the identity of the user, and a step of communicating, to each backup server, the information relating to the identity of the user, and the restoration step is preceded by a plurality of steps of verifying the identity of the user by at least part of the backup servers, a backup server configured to verify the identity of the user also being configured to refuse to return the secret data it holds if the verification of the identity of the user is not conclusive.

Selon un mode de réalisation, le procédé comprend également, après l'étape initiale de collecte d'informations relatives à l’identité de l’utilisateur, une étape de vérification de l'identité de l'utilisateur.According to one embodiment, the method also comprises, after the initial step of collecting information relating to the identity of the user, a step of verifying the identity of the user.

Selon un mode de réalisation, l’étape de sauvegarde des donnés secrètes n’est pas effectuée si la vérification initiale de l’identité de l’utilisateur n’est pas concluante.According to one embodiment, the step of saving the secret data is not carried out if the initial verification of the identity of the user is not conclusive.

Selon un mode de réalisation, les informations relatives à l’identité de l’utilisateur définissent une identité pivot de l’utilisateur qui comprend au moins le prénom de l’utilisateur, le nom de famille de l’utilisateur et la date de naissance de l’utilisateur, et dans lequel au moins une étape de vérification de l’identité de l’utilisateur se rapporte à la vérification de son identité pivot.According to one embodiment, the information relating to the identity of the user defines a pivotal identity of the user which includes at least the first name of the user, the last name of the user and the date of birth of the user. the user, and in which at least one step of verifying the identity of the user relates to the verification of his pivot identity.

Selon un mode de réalisation, au moins une étape de vérification de l’identité de l’utilisateur est conduite par un serveur de vérification d’identité, l'étape de vérification de l’identité de l’utilisateur comprenant une étape de création d'un chemin de données entre le portefeuille de cryptoactifs et le serveur de vérification d’identité, pour la communication au serveur de vérification d’identité d’informations recueillies par le portefeuille de cryptoactifs.According to one embodiment, at least one step of verifying the identity of the user is conducted by an identity verification server, the step of verifying the identity of the user comprising a step of creating a data path between the cryptoasset wallet and the identity verification server, for communicating to the identity verification server information collected by the cryptoasset wallet.

Selon un mode de réalisation, l’étape de restauration comprend, en relation avec la restauration d’au moins deux données secrètes par deux serveurs de sauvegarde, au moins deux étapes de vérification de l’identité de l’utilisateur différentes, et dans lequel deux étapes de vérification de l’identité de l’utilisateur différentes se fondent sur des informations différentes fournies par l'utilisateur, et/ou sur des méthodes différentes pour recueillir les informations fournies par l'utilisateur, et/ou sur des méthodes ou des algorithmes différents pour analyser les informations fournies par l'utilisateur.According to one embodiment, the restoration step comprises, in relation to the restoration of at least two secret data by two backup servers, at least two different steps of verifying the identity of the user, and in which two different user identity verification steps are based on different information provided by the user, and/or different methods for collecting the information provided by the user, and/or different methods or different algorithms to analyze the information provided by the user.

Selon un mode de réalisation, une étape de vérification de l'identité de l'utilisateur comprend une étape d'acquisition d'au moins une photographie ou vidéo de l'utilisateur et/ou d'une pièce d'identité de l'utilisateur.According to one embodiment, a step of verifying the identity of the user comprises a step of acquiring at least one photograph or video of the user and/or an identity document of the user .

Selon un mode de réalisation, des étapes de vérification de l’identité de l’utilisateur sont conduites par des services exécutés par des serveurs et comprennent des étapes automatisées de vérification de l’identité comprenant des étapes d’acquisition à distance d’informations à partir desquelles l’identité de l’utilisateur est vérifiée, les étapes d’acquisition à distance d’informations comprenant au moins deux des étapes suivantes : acquisition d’une photo d’une pièce d’identité comprenant une photo de l’utilisateur, acquisition d’une ou de plusieurs photos du visage de l’utilisateur, acquisition d’un enregistrement vidéo montrant le visage de l’utilisateur en mouvement, acquisition d’une justification de domicile, acquisition d’une empreinte digitale de l’utilisateur, acquisition d’un code de validation reçu par l’utilisateur dans un message, activation par l’utilisateur d’un lien reçu par l’utilisateur dans un message, et acquisition d’un hologramme présent sur une pièce d'identité.According to one embodiment, steps of verifying the identity of the user are carried out by services executed by servers and include automated steps of verifying the identity comprising steps of remotely acquiring information to be from which the identity of the user is verified, the steps of remotely acquiring information comprising at least two of the following steps: acquisition of a photo of an identity document comprising a photo of the user, acquisition of one or more photos of the user's face, acquisition of a video recording showing the user's face in movement, acquisition of proof of address, acquisition of a fingerprint of the user, acquisition of a validation code received by the user in a message, activation by the user of a link received by the user in a message, and acquisition of a hologram present on an identity document.

Selon un mode de réalisation le procédé comprend, lorsque les étapes automatisées de vérification de l’identité de l’utilisateur ne sont pas concluantes, des étapes de vérification de l’identité de l’utilisateur conduites par des personnes physiques, telles que la conduite d’un entretien téléphonique avec l’utilisateur, la conduite d’une vidéo conférence avec l’utilisateur, la conduite d’un entretien en face à face avec l’utilisateur, la validation d'un parcours scolaire ou d’un parcours d'employé de l’utilisateur.According to one embodiment, the method comprises, when the automated steps of verifying the identity of the user are inconclusive, steps of verifying the identity of the user carried out by natural persons, such as driving a telephone interview with the user, conducting a video conference with the user, conducting a face-to-face interview with the user, validation of a school course or a training course 'employee of the user.

Selon un mode de réalisation, le procédé comprend la prévision d’un programme orchestrateur exécuté par un serveur, le premier ou le deuxième portefeuilles de cryptoactifs étant configurés pour établir une liaison de données avec le programme orchestrateur avant de réaliser l’étape de sauvegarde ou de restauration, le programme orchestrateur étant configuré pour conduire ou contrôler au moins une étape de collecte d'informations relatives à l’identité de l’utilisateur.According to one embodiment, the method comprises predicting an orchestrator program executed by a server, the first or second cryptoasset wallets being configured to establish a data link with the orchestrator program before carrying out the backup step or restoration, the orchestrator program being configured to conduct or control at least one step of collecting information relating to the identity of the user.

Selon un mode de réalisation, le programme orchestrateur est configuré pour, lors de la restauration des données, recevoir de chaque serveur de sauvegarde configuré pour conduire une vérification de l’identité de l’utilisateur une information sur le succès de la vérification d’identité conduite par le serveur de sauvegarde, et si un nombre déterminé de serveurs de sauvegarde n’a pas vérifié avec succès l’identité de l’utilisateur, suspendre le processus de restauration des données dans son ensemble, y compris par les serveurs qui ont vérifié avec succès l’identité de l’utilisateur, et optionnellement soumettre l’utilisateur à une étape supplémentaire de vérification de son identité.According to one embodiment, the orchestrator program is configured to, when restoring the data, receive from each backup server configured to conduct a verification of the identity of the user information on the success of the identity verification conducted by the backup server, and if a specified number of backup servers have not successfully verified the identity of the user, suspend the data restoration process as a whole, including by the servers that verified successfully identify the user, and optionally subject the user to an additional identity verification step.

Selon un mode de réalisation, le programme orchestrateur est également configuré pour recevoir de chaque serveur de sauvegarde, lors de la restauration des données, un score de certitude quant à vérification de l’identité de l’utilisateur, et si la moyenne des scores est inférieure à un premier seuil, ou si l’un des scores est inférieur à un deuxième seuil, suspendre le processus de restauration des données dans son ensemble et optionnellement soumettre l’utilisateur à une étape supplémentaire de vérification de son identité.According to one embodiment, the orchestrator program is also configured to receive from each backup server, when restoring the data, a certainty score as to verification of the identity of the user, and if the average of the scores is lower than a first threshold, or if one of the scores is lower than a second threshold, suspend the data restoration process as a whole and optionally subject the user to an additional step of verifying their identity.

Selon un mode de réalisation, le premier portefeuille de cryptoactifs est configuré pour, après avoir reçu l’autorisation de sauvegarde des données secrètes, établir avec chaque serveur de sauvegarde une liaison de données par laquelle il fournit à chaque serveur la donnée secrète qui lui est destinée.According to one embodiment, the first cryptoasset wallet is configured to, after having received authorization to save the secret data, establish a data link with each backup server by which it provides each server with the secret data which is assigned to it. destiny.

Selon un mode de réalisation, le premier portefeuille de cryptoactifs est configuré pour générer la pluralité de données secrètes à partir de clé maître au moyen d’une fonction de partage de secret configurée pour générer un nombremde données secrètes et permettre la reconstitution de la graine à partir d’un seuil dendonnées secrètes, et le deuxième portefeuille de cryptoactifs est configuré pour reconstituer la clé maître à partir d’au moinsndonnées secrètes reçues lors de l’étape de restauration.According to one embodiment, the first cryptoasset wallet is configured to generate the plurality of secret data from master key by means of a secret sharing function configured to generate a number m of secret data and allow the reconstitution of the seed from a threshold of n secret data, and the second cryptoasset wallet is configured to reconstitute the master key from at least n secret data received during the restoration step.

Selon un mode de réalisation, le premier et le deuxième portefeuilles de cryptoactifs comprennent chacun un portefeuille matériel dépourvu de moyen de connexion à l’Internet et un dispositif hôte pourvu d’une connexion à l’Internet et exécutant un logiciel compagnon.According to one embodiment, the first and second cryptoasset wallets each comprise a hardware wallet without a means of connection to the Internet and a host device provided with a connection to the Internet and running companion software.

Selon un mode de réalisation, le procédé est mis en œuvre avec trois serveurs de sauvegarde et utilisant une fonction de partage de secret configurée pour générer m données secrètes à partir du secret et permettre la reconstitution du secret à partir d'au moins n données secrètes, n étant inférieur à m.According to one embodiment, the method is implemented with three backup servers and using a secret sharing function configured to generate m secret data from the secret and allow the reconstitution of the secret from at least n secret data , n being less than m.

Des modes de réalisation concernent également un procédé pour la sauvegarde et la restauration d'un secret détenu par un portefeuille de cryptoactifs, le procédé comprenant, pour la sauvegarde du secret, les étapes consistant à prévoir une pluralité de serveurs de sauvegarde ; collecter des informations relatives à l’identité de l’utilisateur ; communiquer à chaque serveur de sauvegarde les informations relatives à l’identité de l’utilisateur ; au moyen du portefeuille de cryptoactifs, générer une pluralité de données secrètes à partir du secret, et transférer à chaque serveur de sauvegarde l'une des données secrètes fournies par le portefeuille de cryptoactifs, sous une forme chiffrée, et associer la donnée secrète à l'identité de l'utilisateur dans le serveur de sauvegarde.Embodiments also relate to a method for backing up and restoring a secret held by a cryptoasset wallet, the method comprising, for backing up the secret, the steps of providing a plurality of backup servers; collect information relating to the identity of the user; communicate to each backup server information relating to the identity of the user; by means of the cryptoasset wallet, generating a plurality of secret data from the secret, and transferring to each backup server one of the secret data provided by the cryptoasset wallet, in an encrypted form, and associating the secret data with the user identity in the backup server.

Selon un mode de réalisation, chaque donnée chiffrée est chiffrée au moyen d'une clé de chiffrement qui n'est connue que par le portefeuille de cryptoactifs et le serveur de sauvegarde à qui elle est destinée.According to one embodiment, each encrypted data is encrypted by means of an encryption key which is only known by the cryptoasset wallet and the backup server for which it is intended.

Selon un mode de réalisation, les informations relatives à l’identité de l’utilisateur comprennent au moins le prénom de l’utilisateur, le nom de famille de l’utilisateur et la date de naissance de l’utilisateur.According to one embodiment, the information relating to the identity of the user includes at least the user's first name, the user's last name and the user's date of birth.

Selon un mode de réalisation, le portefeuille de cryptoactifs est configuré pour générer une pluralité de données secrètes au moyen d’une fonction de partage de secret prévue pour générer un nombre m de données secrètes à partir du secret et permettre la reconstitution du secret à partir d’un seuil de n données secrètes.According to one embodiment, the cryptoasset wallet is configured to generate a plurality of secret data by means of a secret sharing function provided to generate a number m of secret data from the secret and allow the reconstitution of the secret from of a threshold of n secret data.

Selon un mode de réalisation, le portefeuille de cryptoactifs comprend un portefeuille matériel dépourvu de moyen de connexion à l’Internet relié ou configuré pour être relié à un dispositif hôte exécutant un logiciel compagnon et pourvu d’une connexion à l’Internet.According to one embodiment, the cryptoasset wallet comprises a hardware wallet without means of connection to the Internet connected or configured to be connected to a host device running companion software and provided with a connection to the Internet.

Selon un mode de réalisation, le procédé comprend, pour la restauration du secret, les étapes suivantes : communication à chaque serveur de sauvegarde des informations relatives à l’identité de l’utilisateur, réception par le portefeuille de cryptoactifs, sous une forme chiffrée, de tout ou partie des données secrètes détenues par les serveurs de sauvegarde, et reconstitution du secret par le portefeuille de cryptoactifs à partir des données secrètes fournies par les serveurs de sauvegarde et après déchiffrement de celles-ci.According to one embodiment, the method comprises, for the restoration of the secret, the following steps: communication to each backup server of information relating to the identity of the user, reception by the cryptoasset wallet, in encrypted form, of all or part of the secret data held by the backup servers, and reconstitution of the secret by the cryptoasset wallet from the secret data provided by the backup servers and after decryption thereof.

Selon un mode de réalisation, le procédé comprend les étapes consistant à prévoir un programme orchestrateur exécuté par un serveur, et configurer le programme orchestrateur et le portefeuille de cryptoactifs pour qu'ils exécutent au moins l'une des étapes suivantes : lors de la sauvegarde du secret, transfert au programme orchestrateur par le portefeuille de cryptoactifs des données secrètes générées par le portefeuille de cryptoactifs, et transfert aux serveurs de sauvegarde, par le programme orchestrateur des données secrètes reçues du portefeuille de cryptoactifs ; lors de la restauration du secret, réception par le programme orchestrateur de tout ou partie des données secrètes détenues par les serveurs de sauvegarde, et transfert de ces données secrètes au portefeuille de cryptoactifs par le programme orchestrateur.According to one embodiment, the method comprises the steps of providing an orchestrator program executed by a server, and configuring the orchestrator program and the cryptoasset portfolio so that they execute at least one of the following steps: during backup of secrecy, transfer to the orchestrator program by the cryptoasset wallet of the secret data generated by the cryptoasset wallet, and transfer to the backup servers, by the orchestrator program of the secret data received from the cryptoasset wallet; during the restoration of the secret, reception by the orchestrator program of all or part of the secret data held by the backup servers, and transfer of this secret data to the cryptoasset wallet by the orchestrator program.

Selon un mode de réalisation, le procédé comprend les étapes consistant à : établir un premier canal de communication sécurisé entre le portefeuille de cryptoactifs et le programme orchestrateur, au moyen d'une première clé de session générée après un échange de clés entre le portefeuille de cryptoactifs et le programme orchestrateur, et établir un deuxième canal de communication sécurisé entre le portefeuille de cryptoactifs et chaque serveur de sauvegarde par l'intermédiaire du programme orchestrateur, au moyen d'une pluralité de deuxième clés de session générées après un échange de clés entre le portefeuille de cryptoactifs et chaque serveur de sauvegarde par l'intermédiaire du programme orchestrateur.According to one embodiment, the method comprises the steps consisting of: establishing a first secure communication channel between the cryptoasset wallet and the orchestrator program, by means of a first session key generated after a key exchange between the cryptoasset wallet cryptoassets and the orchestrator program, and establishing a second secure communication channel between the cryptoasset wallet and each backup server via the orchestrator program, by means of a plurality of second session keys generated after a key exchange between the cryptoasset wallet and each backup server through the orchestrator program.

Selon un mode de réalisation, le programme orchestrateur, le portefeuille de cryptoactifs possèdent chacun une clé privée, une clé publique, un certificat signé par une autorité de certification, et une clé publique fournie par l’autorité de certification et le procédé comprend les étapes suivantes : le programme orchestrateur transfère son certificat au portefeuille de cryptoactifs, le portefeuille de cryptoactifs transfère son certificat au programme orchestrateur, le programme orchestrateur génère une clé privée éphémère, une clé publique éphémère et un certificat éphémère signé avec sa clé privée, et transfère son certificat éphémère au portefeuille de cryptoactifs, le portefeuille de cryptoactifs génère une clé privée éphémère, une clé publique éphémère et un certificat éphémère signé avec sa clé privée, et transfère son certificat éphémère au programme orchestrateur, le portefeuille de cryptoactifs génère la première clé de session à partir de sa clé privé éphémère et de la clé publique éphémère du programme orchestrateur, et le programme orchestrateur génère la première clé de session à partir de sa clé privé éphémère et de la clé publique éphémère du portefeuille de cryptoactifs.According to one embodiment, the orchestrator program, the cryptoasset wallet each have a private key, a public key, a certificate signed by a certification authority, and a public key provided by the certification authority and the method comprises the steps following steps: the orchestrator program transfers its certificate to the cryptoasset wallet, the cryptoasset wallet transfers its certificate to the orchestrator program, the orchestrator program generates an ephemeral private key, an ephemeral public key and an ephemeral certificate signed with its private key, and transfers its ephemeral certificate to the cryptoasset wallet, the cryptoasset wallet generates an ephemeral private key, an ephemeral public key and an ephemeral certificate signed with its private key, and transfers its ephemeral certificate to the orchestrator program, the cryptoasset wallet generates the first session key from its ephemeral private key and the ephemeral public key of the orchestrator program, and the orchestrator program generates the first session key from its ephemeral private key and the ephemeral public key of the cryptoasset wallet.

Selon un mode de réalisation,, avant de transférer son certificat éphémère au programme orchestrateur, le portefeuille de cryptoactifs génère une première signature de sa clé publique éphémère à partir de sa clé privé, le portefeuille de cryptoactifs chiffre la première signature au moyen de la première clé de session, pour obtenir une signature chiffrée, le portefeuille de cryptoactifs transfère à l'orchestrateur un certificat éphémère comprenant sa clé publique éphémère et la signature chiffrée, puis le programme orchestrateur génère la première clé de session à partir de sa clé privé éphémère et de la clé publique éphémère du portefeuille de cryptoactifs, et au moyen de la première clé de session, le programme orchestrateur déchiffre la signature présente dans le certificat éphémère.According to one embodiment, before transferring its ephemeral certificate to the orchestrator program, the cryptoasset wallet generates a first signature of its ephemeral public key from its private key, the cryptoasset wallet encrypts the first signature by means of the first session key, to obtain an encrypted signature, the cryptoasset wallet transfers to the orchestrator an ephemeral certificate comprising its ephemeral public key and the encrypted signature, then the orchestrator program generates the first session key from its ephemeral private key and of the ephemeral public key of the cryptoasset wallet, and using the first session key, the orchestrator program decrypts the signature present in the ephemeral certificate.

Selon un mode de réalisation, avant de générer la première signature de sa clé publique éphémère à partir de sa clé privé, le portefeuille de cryptoactifs concatène sa clé publique éphémère avec une donnée.According to one embodiment, before generating the first signature of its ephemeral public key from its private key, the cryptoasset wallet concatenates its ephemeral public key with data.

Selon un mode de réalisation, le procédé comprend les étapes suivantes : le portefeuille de cryptoactifs chiffre son certificat avec la première clé de session avant de le transférer au programme orchestrateur, et au moyen de la première clé de session, le programme orchestrateur déchiffre le certificat du portefeuille de cryptoactifs.According to one embodiment, the method comprises the following steps: the cryptoasset wallet encrypts its certificate with the first session key before transferring it to the orchestrator program, and using the first session key, the orchestrator program decrypts the certificate of the cryptoasset portfolio.

Selon un mode de réalisation, les serveurs de sauvegarde possèdent chacun une clé privée, une clé publique, un certificat signé par une autorité de certification, et une clé publique fournie par l’autorité de certification, le programme orchestrateur transfère le certificat du portefeuille de cryptoactifs et le certificat éphémère du portefeuille de cryptoactifs à chacun des serveurs de sauvegarde, chaque serveur de sauvegarde transfère son certificat au programme orchestrateur, qui le transfère au portefeuille de cryptoactifs, chaque serveur de sauvegarde génère une clé privée éphémère, une clé publique éphémère et un certificat éphémère signé avec sa clé privée, et transfère le certificat éphémère au programme orchestrateur qui le transfère au portefeuille de cryptoactifs, chaque serveur de sauvegarde génère la deuxième clé de session à partir de sa clé privé éphémère et de la clé publique éphémère du portefeuille de cryptoactifs, et le portefeuille de cryptoactifs génère la deuxième clé de session de chaque serveur de sauvegarde à partir de sa clé privé éphémère et de la clé publique éphémère du serveur de sauvegarde.According to one embodiment, the backup servers each have a private key, a public key, a certificate signed by a certification authority, and a public key provided by the certification authority, the orchestrator program transfers the certificate from the portfolio of cryptoassets and the ephemeral certificate of the cryptoasset wallet to each of the backup servers, each backup server transfers its certificate to the orchestrator program, which transfers it to the cryptoasset wallet, each backup server generates an ephemeral private key, an ephemeral public key and an ephemeral certificate signed with its private key, and transfers the ephemeral certificate to the orchestrator program which transfers it to the cryptoasset wallet, each backup server generates the second session key from its ephemeral private key and the ephemeral public key of the wallet of cryptoassets, and the cryptoasset wallet generates the second session key of each backup server from its ephemeral private key and the ephemeral public key of the backup server.

Selon un mode de réalisation, le procédé comprend les étapes suivantes : pour chaque serveur de sauvegarde, le portefeuille de cryptoactifs chiffre la donnée secrète destinée au serveur de sauvegarde avec la deuxième clé de session, transfère la donnée secrète chiffrée au programme orchestrateur qui la transfère au serveur de sauvegarde, et chaque serveur de sauvegarde déchiffre la donnée secrète reçue au moyen de la deuxième clé de session, et la stocke dans une mémoire.According to one embodiment, the method comprises the following steps: for each backup server, the cryptoasset wallet encrypts the secret data intended for the backup server with the second session key, transfers the encrypted secret data to the orchestrator program which transfers it to the backup server, and each backup server decrypts the secret data received by means of the second session key, and stores it in a memory.

Selon un mode de réalisation, le portefeuille de cryptoactifs vérifie la validité du certificat du programme orchestrateur au moyen de la clé publique de l’autorité de certification, le portefeuille de cryptoactifs vérifie la validité du certificat éphémère du programme orchestrateur au moyen de la clé publique du certificat du programme orchestrateur, le portefeuille de cryptoactifs vérifie la validité du certificat de chaque serveur de sauvegarde au moyen de la clé publique de l’autorité de certification, le portefeuille de cryptoactifs vérifie la validité du certificat éphémère de chaque serveur de sauvegarde au moyen de la clé publique du certificat de chaque serveur de sauvegarde, le programme orchestrateur vérifie la validité du certificat du portefeuille de cryptoactifs au moyen de la clé publique de l’autorité de certification, le programme orchestrateur vérifie la validité du certificat éphémère du portefeuille de cryptoactifs au moyen de la clé publique du certificat du portefeuille de cryptoactifs, chaque serveur de sauvegarde vérifie la validité du certificat du portefeuille de cryptoactifs au moyen de la clé publique de l’autorité de certification, et chaque serveur de sauvegarde vérifie la validité du certificat éphémère du portefeuille de cryptoactifs au moyen de la clé publique du certificat du portefeuille de cryptoactifs.According to one embodiment, the cryptoasset wallet verifies the validity of the certificate of the orchestrator program by means of the public key of the certification authority, the cryptoasset wallet verifies the validity of the ephemeral certificate of the orchestrator program by means of the public key of the certificate of the orchestrator program, the cryptoasset wallet verifies the validity of the certificate of each backup server by means of the public key of the certification authority, the cryptoasset wallet verifies the validity of the ephemeral certificate of each backup server by means of the public key of the certificate of each backup server, the orchestrator program verifies the validity of the cryptoasset wallet certificate by means of the public key of the certification authority, the orchestrator program verifies the validity of the ephemeral certificate of the cryptoasset wallet using the public key of the crypto-asset wallet certificate, each backup server verifies the validity of the crypto-asset wallet certificate using the public key of the certificate authority, and each backup server verifies the validity of the ephemeral certificate of the cryptoasset wallet using the public key of the cryptoasset wallet certificate.

Selon un mode de réalisation, des données transmises au programme orchestrateur par un serveur de sauvegarde sont retransmises par le programme orchestrateur au portefeuille de cryptoactifs sous une forme chiffrée au moyen de la première clé de session, et certaines de ces données sont préalablement hachées par le serveur de sauvegarde au moyen d’une fonction de hachage, puis chiffrées au moyen de la deuxième clé de session.According to one embodiment, data transmitted to the orchestrator program by a backup server is retransmitted by the orchestrator program to the cryptoasset wallet in encrypted form using the first session key, and some of this data is previously hashed by the backup server using a hash function and then encrypted using the second session key.

Selon un mode de réalisation, avant de fournir la donnée secrète qu'il détient, au moins un serveur de sauvegarde soumet l'utilisateur à une étape de vérification de son identité, et refuse de restituer la donnée secrète si la vérification de l’identité de l’utilisateur n’est pas concluante.According to one embodiment, before providing the secret data it holds, at least one backup server subjects the user to a step of verifying his identity, and refuses to restore the secret data if the identity verification of the user is not conclusive.

Des modes de réalisation concernent également un portefeuille de cryptoactifs détenant ou prévu pour détenir un secret, configuré pour proposer à un utilisateur les options suivantes : sauvegarder le secret manuellement sous la forme d'une phrase de récupération qui devra être conservée par l'utilisateur, ou sauvegarder le secret dans une pluralité de serveurs de sauvegarde, et, si l'utilisateur choisit de sauvegarder le secret dans une pluralité de serveurs de sauvegarde, conduire une étape de collecte d'informations relatives à l'identité de l'utilisateur, en présence de l'utilisateur, et à une étape de communication à chaque serveur de sauvegarde des informations relatives à l’identité de l’utilisateur, générer une pluralité de données secrètes à partir du secret, et transférer les données secrètes à la pluralité de serveurs de sauvegarde, sous une forme chiffrée.Embodiments also relate to a portfolio of cryptoassets holding or intended to hold a secret, configured to offer a user the following options: save the secret manually in the form of a recovery phrase which must be kept by the user, or save the secret in a plurality of backup servers, and, if the user chooses to save the secret in a plurality of backup servers, conduct a step of collecting information relating to the identity of the user, in presence of the user, and in a step of communicating to each backup server information relating to the identity of the user, generating a plurality of secret data from the secret, and transferring the secret data to the plurality of servers backup, in encrypted form.

Selon un mode de réalisation, le portefeuille de cryptoactifs est configuré pour proposer également à l'utilisateur les options suivantes : restaurer le secret manuellement à partir d'une phrase de récupération, ou restaurer le secret à partir d'une pluralité de serveurs de sauvegarde, et, si l'utilisateur choisit de restaurer le secret à partir d'une pluralité de données secrètes détenues par une pluralité de serveurs de sauvegarde, reconstituer le secret à partir des données fournies par les serveurs de sauvegarde.According to one embodiment, the cryptoasset wallet is configured to also offer the user the following options: restore the secret manually from a recovery phrase, or restore the secret from a plurality of backup servers , and, if the user chooses to restore the secret from a plurality of secret data held by a plurality of backup servers, reconstruct the secret from the data provided by the backup servers.

Selon un mode de réalisation, le portefeuille de cryptoactifs est configuré pour générer une pluralité de données secrètes à partir du secret au moyen d’une fonction de partage de secret prévue pour générer un nombre m de données secrètes et permettre la reconstitution du secret à partir d’un seuil de n données secrètes.According to one embodiment, the cryptoasset wallet is configured to generate a plurality of secret data from the secret by means of a secret sharing function provided to generate a number m of secret data and allow the reconstitution of the secret from of a threshold of n secret data.

Selon un mode de réalisation, le portefeuille de cryptoactifs est configuré pour transférer les données secrètes dans la pluralité de serveurs de sauvegarde par l'intermédiaire d'un programme orchestrateur exécuté par un serveur, et récupérer chacune des données fournies par les serveurs de sauvegarde par l'intermédiaire du programme orchestrateur.According to one embodiment, the cryptoasset wallet is configured to transfer the secret data into the plurality of backup servers via an orchestrator program executed by a server, and retrieve each of the data provided by the backup servers by through the orchestrator program.

Selon un mode de réalisation, le portefeuille de cryptoactifs est configuré pour, si l'utilisateur choisit de restaurer le secret à partir des données secrètes, conduire au moins une étape de vérification de l’identité de l’utilisateur à la demande d'un serveur de sauvegarde.According to one embodiment, the cryptoasset wallet is configured to, if the user chooses to restore the secret from the secret data, conduct at least one step of verifying the identity of the user at the request of a backup server.

Selon un mode de réalisation, le portefeuille de cryptoactifs comprend un portefeuille matériel dépourvu de moyen de connexion à l’Internet, et un dispositif hôte exécutant un logiciel compagnon et pourvu d’une connexion à l’Internet, le logiciel compagnon complétant le portefeuille matériel pour la réalisation d'étapes nécessitant une interaction avec l'utilisateur, notamment des étapes de collecte d'informations relatives à l'identité de l'utilisateur.According to one embodiment, the cryptoasset wallet comprises a hardware wallet without means of connection to the Internet, and a host device running companion software and provided with a connection to the Internet, the companion software completing the hardware wallet for carrying out steps requiring interaction with the user, in particular steps for collecting information relating to the identity of the user.

Selon un mode de réalisation, le portefeuille matériel comprend un écran tactile d'une diagonale supérieure ou égale à 3,5 pouces et exclusivement contrôlé par un élément sécurisé, utilisé notamment pour collecter des informations relatives à l'identité de l'utilisateur.According to one embodiment, the hardware wallet comprises a touch screen with a diagonal greater than or equal to 3.5 inches and exclusively controlled by a secure element, used in particular to collect information relating to the identity of the user.

Description sommaire des dessinsSummary description of the drawings

Ces caractéristiques ainsi que d'autres de la présente invention, seront mieux comprises à la lecture de la description suivante, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :These characteristics as well as others of the present invention will be better understood on reading the following description, given on a non-limiting basis in relation to the attached figures among which:

- la précédemment décrite montre schématiquement un portefeuille de cryptoactifs et un exemple d'utilisation de celui-ci,- there previously described schematically shows a cryptoasset portfolio and an example of its use,

- la et la montrent un portefeuille de cryptoactifs selon l’invention et l'architecture d'un système prévu pour la mise en œuvre d'un premier mode de réalisation du procédé selon l'invention, la illustrant une étape de sauvegarde de données et la une étape de restauration des données,- there and the show a portfolio of cryptoassets according to the invention and the architecture of a system provided for the implementation of a first embodiment of the method according to the invention, the illustrating a data backup step and the a data restoration step,

- la et la montrent un portefeuille de cryptoactifs selon l’invention et l'architecture d'un système prévu pour la mise en œuvre d'un deuxième mode de réalisation du procédé selon l'invention, la illustrant une étape de sauvegarde de données et la une étape de restauration des données,- there and the show a portfolio of cryptoassets according to the invention and the architecture of a system provided for the implementation of a second embodiment of the method according to the invention, the illustrating a data backup step and the a data restoration step,

- la décrit un algorithme exécuté par le système des figures 3A, 3B, lors de l'étape de sauvegarde de données,- there describes an algorithm executed by the system of Figures 3A, 3B, during the data saving step,

- la est un diagramme de séquences qui représente les étapes de l'algorithme de la sous forme d'interactions entre différents éléments du système des figures 3A, 3B,- there is a sequence diagram that represents the steps of the algorithm of the in the form of interactions between different elements of the system of Figures 3A, 3B,

- la décrit un algorithme exécuté par le système des figures 3A, 3B, lors de l'étape de restauration de données,- there describes an algorithm executed by the system of Figures 3A, 3B, during the data restoration step,

- la est un diagramme de séquences qui représente les étapes de l'algorithme de la sous forme d'interactions entre différents éléments du système des figures 3A, 3B,- there is a sequence diagram that represents the steps of the algorithm of the in the form of interactions between different elements of the system of Figures 3A, 3B,

- la et la montrent un portefeuille de cryptoactifs selon l’invention et l'architecture d'un système prévu pour la mise en œuvre d'un troisième mode de réalisation du procédé selon l'invention, la illustrant une étape de sauvegarde de données et la une étape de restauration des données,- there and the show a portfolio of cryptoassets according to the invention and the architecture of a system provided for the implementation of a third embodiment of the method according to the invention, the illustrating a data backup step and the a data restoration step,

- la montre un portefeuille de cryptoactifs selon l’invention et un exemple d'architecture de portefeuille matériel selon l'invention permettant la mise en œuvre du procédé selon l'invention,- there shows a portfolio of cryptoassets according to the invention and an example of hardware wallet architecture according to the invention allowing the implementation of the method according to the invention,

- la montre des étapes conduites par l'utilisateur du portefeuille matériel de la pour la sauvegarde de la graine stockée dans le portefeuille matériel,- there shows user-driven steps of the hardware wallet of the for saving the seed stored in the hardware wallet,

- la montre des étapes conduites par l'utilisateur du portefeuille matériel de la pour la restauration de la graine,- there shows user-driven steps of the hardware wallet of the for the restoration of the seed,

- la montre un autre mode de réalisation d’un portefeuille de cryptoactifs permettant de mettre en œuvre le procédé selon l’invention,- there shows another embodiment of a portfolio of cryptoassets making it possible to implement the method according to the invention,

- la montre encore un autre mode de réalisation d’un portefeuille de cryptoactifs permettant de mettre en œuvre le procédé selon l'invention.- there shows yet another embodiment of a portfolio of cryptoassets making it possible to implement the method according to the invention.

Description détailléedetailed description

L'invention prévoit un procédé permettant de réaliser un portefeuille de cryptoactifs offrant une fonctionnalité unique dans le domaine des portefeuilles matériels, à savoir une fonctionnalité de sauvegarde de la graine qui est automatisée tout en étant hautement sécurisée. Une telle fonctionnalité permet aux utilisateurs de s'affranchir de toutes les difficultés et dangers qui s'attachent au fait de devoir préserver eux-mêmes dans un lieu sûr une phrase de récupération. Les fonctionnalités uniques offertes par un portefeuille de cryptoactifs selon l'invention seront décrites plus loin en relation avec les figures 8, 9 et les tableaux 2 et 3. Des modes de réalisation du procédé selon l'invention seront tout d'abord décrits.The invention provides a method for producing a cryptoasset wallet offering a unique functionality in the field of hardware wallets, namely a seed saving functionality which is automated while being highly secure. Such functionality allows users to free themselves from all the difficulties and dangers that come with having to preserve a recovery phrase themselves in a safe place. The unique functionalities offered by a cryptoasset portfolio according to the invention will be described further in relation to Figures 8, 9 and tables 2 and 3. Embodiments of the method according to the invention will first be described.

La montre un portefeuille de cryptoactifs CW1 et un système prévu pour la mise en œuvre d'un mode de réalisation du procédé de l'invention. Le portefeuille de cryptoactifs CW1 comprend ici un dispositif HW et un dispositif hôte HDV. Le dispositif HW est un portefeuille matériel ("hardware wallet") assurant le stockage à froid d’une graine S ou clé maître, d’un ensemble de cryptoactifs. Le dispositif HW ne comporte aucun moyen de connexion à l'internet et est relié au dispositif hôte HDV, qui exécute un logiciel compagnon HSW lui permettant de se relier à l'Internet, par exemple au moyen d'une liaison USB ou Bluetooth. Le système et le procédé selon l'invention permettent de sauvegarder ou de restaurer la graine S (clé maître) stockée dans le dispositif HW.There shows a CW1 cryptoasset portfolio and a system provided for implementing an embodiment of the method of the invention. The CW1 cryptoasset wallet here includes an HW device and an HDV host device. The HW device is a hardware wallet ensuring the cold storage of a seed S or master key, of a set of cryptoassets. The HW device does not include any means of connection to the Internet and is connected to the HDV host device, which runs HSW companion software allowing it to connect to the Internet, for example by means of a USB or Bluetooth connection. The system and method according to the invention make it possible to save or restore the seed S (master key) stored in the device HW.

Le système comprend essentiellement un ensemble demserveur de sauvegarde BCKi (BCK1, BCK2,… BCKi,…BCKm) pourvu chacun d'une mémoire de sauvegarde MEM (disque dur magnétique ou mémoire à l'état solide) pour sauvegarder des parts Si de la graine S. Chaque serveur de sauvegarde comporte un programme dorsal BEi (BE1,…BEi,…BEm), ou programme "back-end", conçu pour la mise en œuvre du procédé. Chaque serveur de sauvegarde BCKi est également associé à un module de sécurité HSM.The system essentially comprises a set of m BCKi backup servers (BCK1, BCK2,… BCKi,…BCKm) each provided with a MEM backup memory (magnetic hard disk or solid state memory) to back up Si shares of the seed S. Each backup server includes a back-end program BEi (BE1,…BEi,…BEm), or “back-end” program, designed for implementing the process. Each BCKi backup server is also associated with an HSM security module.

Selon le procédé de l'invention, le dispositif HW est configuré pour diviser la graine S en une pluralité de données secrètes Si (S1, S2…Si,…Sm) qui seront sauvegardées sur les serveurs BCKi. Plutôt qu'un simple fractionnement, qui n'est toutefois pas exclu du champ de la présente invention, cette "division" est de préférence assurée au moyen d'une fonction de partage de secret SS permettant de générer un nombremde données secrètes appelées "parts " ("shares"), et permettant la reconstitution de la graine à partir d’un seuil dendonnées secrètes Si :According to the method of the invention, the device HW is configured to divide the seed S into a plurality of secret data Si (S1, S2...Si,...Sm) which will be saved on the BCKi servers. Rather than a simple splitting, which is however not excluded from the scope of the present invention, this "division" is preferably ensured by means of a secret sharing function SS making it possible to generate a number m of secret data called "parts"("shares"), and allowing the reconstitution of the seed from a threshold of n secret data If:

S1, S2,…, Si,…, Sm = SS (S)S1, S2,…, Si,…, Sm = SS (S)

Par exemple simest égal à 3 etnégal à 2, la fonction SS permet de diviser la graine en trois parts S1, S2, S3 mais deux parts seulement seront nécessaires pour reconstituer la graine.For example if m is equal to 3 and n equal to 2, the SS function allows the seed to be divided into three parts S1, S2, S3 but only two parts will be necessary to reconstitute the seed.

Lorsque l'utilisateur souhaite sauvegarder sa graine, le dispositif HW établit avec chaque serveur de sauvegarde BCKi, par l'intermédiaire du dispositif hôte HDV, des liaisons de données LNKi (LNK1 à LNKm), par exemple de type HTTPS. Ces liaisons de données sont ensuite sécurisées par la création de canaux sécurisés de type SCP ("Secure Channel Protocol") entre le dispositif HW et chaque serveur de sauvegarde BCKi, d'une manière qui va être décrite.When the user wishes to save his seed, the HW device establishes LNKi data links (LNK1 to LNKm), for example HTTPS type, with each BCKi backup server, via the HDV host device. These data links are then secured by the creation of secure SCP ("Secure Channel Protocol") type channels between the HW device and each BCKi backup server, in a manner which will be described.

La création de tels canaux sécurisés est assurée au moyen d'une infrastructure à clés publiques gérée par une autorité de certification CA. Le dispositif HW et les serveurs de sauvegarde BCKi possèdent chacun une clé privée, une clé publique, un certificat signé par l'autorité de certification, ou certificat statique, ainsi que la clé publique de l'autorité de certification. La notation suivante sera utilisée dans ce qui suit :The creation of such secure channels is ensured using a public key infrastructure managed by a CA certification authority. The HW device and the BCKi backup servers each have a private key, a public key, a certificate signed by the certification authority, or static certificate, as well as the public key of the certification authority. The following notation will be used in the following:

pL : clé privée de l'autorité de certificationpL: private key of the certification authority

PL : clé publique de l'autorité de certificationPL: public key of the certification authority

pD : clé privée du dispositif HWpD: private key of the HW device

PD : clé publique du dispositif HWPD: public key of the HW device

CD = [PD, Sign(pL, PD)] : certificat du dispositif (certificat statique), comprenant sa clé publique PD et une signature de sa clé publique au moyen de la clé privée pL de l'autorité de certificationCD = [PD, Sign(pL, PD)]: device certificate (static certificate), including its public key PD and a signature of its public key using the private key pL of the certification authority

pBi : clé privée d'un serveur BCKi (pour i allant de i à m)pBi: private key of a BCKi server (for i ranging from i to m)

PBi : clé publique d'un serveur BCKi (pour i allant de i à m)PBi: public key of a BCKi server (for i ranging from i to m)

CBi = [PBi, Sign(pL, PBi)] : certificat d'un serveur BCKi (certificat statique), comprenant sa clé publique PD et une signature de sa clé publique au moyen de la clé privée pL de l'autorité de certification.CBi = [PBi, Sign(pL, PBi)]: certificate of a BCKi server (static certificate), including its public key PD and a signature of its public key using the private key pL of the certification authority.

La fonction de signature "Sign" est par exemple générée au moyen d'un algorithme de signature ECDSA basé sur les courbes elliptiques ("Elliptic Curve Digital Signature Algorithm").The signature function “Sign” is for example generated by means of an ECDSA signature algorithm based on elliptic curves (“Elliptic Curve Digital Signature Algorithm”).

L'autorité de certification CA est de préférence détenue par le fabricant du dispositif HW, pour lui permettre de contrôler l'allocation de certificats CBi aux serveurs de sauvegarde BCKi. Les serveurs de sauvegarde BCKi peuvent quant à eux être détenus par le fabricant du dispositif HW, ou être des serveurs de tiers partenaires participant à la mise en œuvre du procédé. Les clés pBi, PBi des serveurs de sauvegarde BCKi sont détenues par leurs modules HSM respectifs, qui prennent en charge les calculs cryptographiques réalisés au moyen de ces clés. Dans ce qui suit et dans un souci de simplification du langage, on considérera que de tels calculs cryptographiques sont réalisés par les serveurs eux-mêmes.The CA certification authority is preferably held by the manufacturer of the HW device, to allow it to control the allocation of CBi certificates to BCKi backup servers. The BCKi backup servers may be owned by the manufacturer of the HW device, or be third-party partner servers participating in the implementation of the process. The pBi, PBi keys of the BCKi backup servers are held by their respective HSM modules, which support the cryptographic calculations carried out using these keys. In what follows and for the sake of simplification of the language, we will consider that such cryptographic calculations are carried out by the servers themselves.

Pour mettre en œuvre un canal de communication sécurisé, un échange de clés est prévu entre le dispositif HW et chaque serveur de sauvegarde BCKi, permettant de générer des clés de session kBi propres à chaque serveur BCKi mais connues du dispositif HW. Cet échange de clés est par exemple un échange de clés Diffie Hellman réalisé conformément aux étapes suivantes :To implement a secure communication channel, an exchange of keys is provided between the HW device and each BCKi backup server, making it possible to generate kBi session keys specific to each BCKi server but known to the HW device. This key exchange is for example a Diffie Hellman key exchange carried out in accordance with the following steps:

i) chaque serveur de sauvegarde BCKi génère une paire de clés privée peBi et publique PeBi éphémères au moyen d'un générateur de clés asymétriques, puis communique sa clé publique éphémère PeBi au dispositif HW dans un certificat éphémère CeBi qu'il a signé avec sa clé privée pBi, ainsi que son certificat CBi signé par l'autorité de confiance :i) each BCKi backup server generates a pair of ephemeral private PeBi and public PeBi keys by means of an asymmetric key generator, then communicates its ephemeral public key PeBi to the HW device in an ephemeral CeBi certificate that it has signed with its pBi private key, as well as its CBi certificate signed by the trusted authority:

CeBi = [PeBi, Sign(pBi, PeBi)]CeBi = [PeBi, Sign(pBi, PeBi)]

CBi = [PBi, Sign(pL, PBi)]CBi = [PBi, Sign(pL, PBi)]

ii) le dispositif HW génère lui-même une paire de clés privée peD et publique PeD éphémères, puis communique sa clé publique éphémère PeD aux serveurs de sauvegarde BCKi dans un certificat éphémère CeD qu'il a signé avec sa clé privée pD, ainsi que son certificat CD signé par l'autorité de confiance, soit :ii) the HW device itself generates a pair of ephemeral private peD and public PeD keys, then communicates its ephemeral public key PeD to the BCKi backup servers in an ephemeral CeD certificate that it has signed with its private key pD, as well as its CD certificate signed by the trusted authority, i.e.:

CeD = [PeD, Sign(pD, PeD)]CeD = [PeD, Sign(pD, PeD)]

CD = [PD, Sign(pL, PD)]CD = [PD, Sign(pL, PD)]

iii) chaque serveur de sauvegarde BCKi vérifie la signature de la clé publique éphémère PeD du dispositif HW au moyen de la clé publique PD présente dans son certificat CD, puis vérifie la signature de la clé publique PD présente dans le certificat CD au moyen de la clé publique PL de l'autorité de certification, ou vice-versa (vérification de la signature de la clé publique PD avant vérification de la signature de la clé publique éphémère PeD),iii) each BCKi backup server verifies the signature of the ephemeral public key PeD of the HW device using the public key PD present in its CD certificate, then verifies the signature of the public key PD present in the CD certificate using the public key PL of the certification authority, or vice versa (verification of the signature of the public key PD before verification of the signature of the ephemeral public key PeD),

iv) de même, le dispositif HW vérifie la signature de la clé publique éphémère PeBi de chaque serveur BCKi au moyen de la clé publique PBi présente dans le certificat CB, puis vérifie la signature de la clé publique PBi présente dans le certificat CB au moyen de la clé publique PL de l'autorité de certification, ou vice-versa,iv) similarly, the HW device verifies the signature of the ephemeral public key PeBi of each BCKi server by means of the public key PBi present in the CB certificate, then verifies the signature of the public key PBi present in the CB certificate by means of the public key PL of the certification authority, or vice versa,

v) chaque serveur de sauvegarde BCKi génère une clé de session éphémère kBi à partir de sa clé privée éphémère peBi et de la clé publique éphémère PeD du dispositif HW, au moyen d'une fonction d'échange de clés telle, par exemple la fonction ECDH (échange de clé Diffie Hellman basée sur les courbes elliptiques ou "Elliptic Curve Diffie–Hellman"), soit :v) each BCKi backup server generates an ephemeral session key kBi from its ephemeral private key peBi and the ephemeral public key PeD of the HW device, by means of a key exchange function such as, for example, the function ECDH (Diffie Hellman key exchange based on elliptic curves or “Elliptic Curve Diffie–Hellman”), i.e.:

kBi = ECDH(peBi, PeD)kBi = ECDH(peBi, PeD)

vi) le dispositif HW génère la clé de session éphémère kBi de chaque serveur de sauvegarde BCKi à partir de sa clé privée éphémère peD et de la clé publique éphémère PeBi du serveur de sauvegarde BCKi, au moyen de la même fonction, soit :vi) the HW device generates the ephemeral session key kBi of each BCKi backup server from its ephemeral private key peD and the ephemeral public key PeBi of the BCKi backup server, by means of the same function, i.e.:

kBi = ECDH(peD, PeBi)kBi = ECDH(peD, PeBi)

Après avoir généré les parts Si de la graine S, le dispositif HW conduit des étapes de chiffrement symétrique de chaque part Si avec la clé de session kBi commune au serveur de sauvegarde BCKi à qui la part Si doit être envoyée, qui forme donc une clé partagée. Dans un exemple simple de mise en œuvre, le dispositif HW génère trois parts S1, S2, S3 (le seuil n pouvant alors être égal à 2 ou à 3) et trois serveurs de sauvegarde BCK1, BCK2, BCK3 sont prévus. Chaque serveur BCKi génère sa propre clé de session kB1, kB2, kB3 et le dispositif HW génère de son côté chacune de ces clés de sessions après un échange de clés avec chaque serveur de la manière qui vient d'être décrite. Ensuite, le dispositif HW conduit des étapes de chiffrement symétrique des parts S1, S2, S3 au moyen de ces clés, soit :After generating the Si shares of the seed S, the HW device conducts symmetric encryption steps of each Si share with the session key kBi common to the backup server BCKi to which the Si share must be sent, which therefore forms a key shared. In a simple example of implementation, the HW device generates three shares S1, S2, S3 (the threshold n can then be equal to 2 or 3) and three backup servers BCK1, BCK2, BCK3 are provided. Each BCKi server generates its own session key kB1, kB2, kB3 and the HW device for its part generates each of these session keys after an exchange of keys with each server in the manner which has just been described. Then, the device HW carries out symmetrical encryption steps of the shares S1, S2, S3 using these keys, i.e.:

- chiffre la part S1 avec la clé kB1, soit {S1}kB1, puis l'envoie au serveur BCK1,- encrypts the S1 part with the key kB1, i.e. {S1}kB1, then sends it to the BCK1 server,

- chiffre la part S2 avec la clé kB2, soit {S2}kB2, puis l'envoie au serveur BCK2,- encrypts the S2 part with the kB2 key, i.e. {S2}kB2, then sends it to the BCK2 server,

- chiffre la part S3 avec la clé kB3, soit {S3}kB3, puis l'envoie au serveur BCK3.- encrypts the S3 part with the kB3 key, i.e. {S3}kB3, then sends it to the BCK3 server.

Chaque serveur de sauvegarde BCKi déchiffre ensuite la part chiffrée {Si}kBi qu'il a reçu du dispositif HW, et la stocke dans sa mémoire MEM.Each BCKi backup server then decrypts the encrypted part {Si}kBi that it received from the HW device, and stores it in its MEM memory.

Selon le procédé, et comme illustré sur la , la restauration de la graine S est réalisée dans un deuxième portefeuille matériel noté HW'. Il peut s'agir d'un autre dispositif que le dispositif HW si celui-ci a été perdu, volé ou détruit. Il peut aussi s'agir du dispositif HW si celui-ci a été réinitialisé, le dispositif HW étant alors considéré comme un "autre" dispositif sous l'angle du procédé, puisqu'il ne possède plus la graine.According to the process, and as illustrated in the , the restoration of the seed S is carried out in a second hardware wallet denoted HW'. This may be a device other than the HW device if it has been lost, stolen or destroyed. It can also be the HW device if it has been reset, the HW device then being considered as an "other" device from the point of view of the process, since it no longer has the seed.

Pour la restauration de la graine, les étapes de création de canaux sécurisés décrites ci-dessus sont répétées. De nouvelles clés de sessions kBi sont générées. Ensuite, chaque serveur chiffre la part Si qu'il détient avec la clé de session kBi, soit {Si}kBi, puis l'envoie au dispositif HW. Ce dernier déchiffre ensuite chaque part Si au moyen de la clé de session kBi correspondante, puis reconstitue la graine S au moyen de la fonction inverse de celle qui a permis de générer les parts Si, notée "SS-1" :To restore the seed, the steps for creating secure channels described above are repeated. New kBi session keys are generated. Then, each server encrypts the part Si that it holds with the session key kBi, i.e. {Si}kBi, then sends it to the HW device. The latter then decrypts each Si part using the corresponding session key kBi, then reconstitutes the seed S using the inverse function of that which made it possible to generate the Si shares, denoted "SS -1 ":

S = SS-1(S1, S2,…, Si,…, Sm)S = SS -1 (S1, S2,…, Si,…, Sm)

La montre l'architecture d'un système permettant de mettre en œuvre un autre mode de réalisation du procédé de l'invention. Dans ce mode de réalisation, un serveur ORCSRV1 est interposé entre le dispositif hôte HDV et les serveurs de sauvegarde BCKi. Ce serveur, appelé à titre non limitatif "serveur orchestrateur", exécute un programme dorsal ou "back-end" ORC1 appelé dans ce qui suit "programme orchestrateur" ou "orchestrateur". Le serveur ORCSRV1 est relié à un module de sécurité HSM pourvu d'une clé privée pO, d'une clé publique PO, et d'un certificat CO (certificat statique) signé par l'autorité de certification CA :There shows the architecture of a system making it possible to implement another embodiment of the method of the invention. In this embodiment, an ORCSRV1 server is interposed between the HDV host device and the BCKi backup servers. This server, called non-limitingly "orchestrator server", executes a back-end or "back-end" ORC1 program called in the following "orchestrator program" or "orchestrator". The ORCSRV1 server is connected to an HSM security module provided with a private key pO, a public key PO, and a CO certificate (static certificate) signed by the CA certification authority:

CO = [PO, Sign(pL, PO)]CO = [PO, Sign(pL, PO)]

Pour la mise en œuvre du procédé, une première liaison de données LNK1 est établie entre le dispositif HW et l'orchestrateur ORC1 au moyen du dispositif hôte HDV, par exemple une liaison HTTPS. Une pluralité de liaisons de données LNK2i sont également établies entre l'orchestrateur et les serveurs de sauvegarde BCKi, par exemple des liaisons HTTPS, VPN IPsec, etc.To implement the method, a first data link LNK1 is established between the device HW and the orchestrator ORC1 by means of the host device HDV, for example an HTTPS link. A plurality of LNK2i data links are also established between the orchestrator and the BCKi backup servers, for example HTTPS links, IPsec VPN, etc.

La liaison de données entre l'orchestrateur et le dispositif HW est sécurisée par la création d'un canal sécurisé selon la même technique que celle décrite ci-dessus :The data link between the orchestrator and the HW device is secured by creating a secure channel using the same technique as described above:

i) l'orchestrateur ORC1 génère un paire de clés privée PeO et publique PeO puis communique sa clé publique éphémère PeO au dispositif HW dans un certificat éphémère CeO qu'il a signé avec sa clé privée pO, accompagné de son certificat CO signé par l'autorité de confiance, soit :i) the orchestrator ORC1 generates a pair of private PeO and public PeO keys then communicates its ephemeral public key PeO to the HW device in an ephemeral CeO certificate that it signed with its private key pO, accompanied by its CO certificate signed by the trusted authority, i.e.:

CeO = [PeO, Sign(pO, PeO)]CeO = [PeO, Sign(pO, PeO)]

CO = [PO, Sign(pL, PO)]CO = [PO, Sign(pL, PO)]

ii) le dispositif HW génère une paire de clés privée peD et publique PeD éphémères puis communique sa clé publique éphémère PeD à l'orchestrateur dans un certificat éphémère CeD qu'il a signé avec sa clé privée pD, accompagné de son certificat CD signé par l'autorité de confiance, soit :ii) the HW device generates a pair of ephemeral private peD and public PeD keys then communicates its ephemeral public key PeD to the orchestrator in an ephemeral certificate CeD that it signed with its private key pD, accompanied by its CD certificate signed by the trusted authority, i.e.:

CeD = [PeD, Sign(pD, PeD)]CeD = [PeD, Sign(pD, PeD)]

CD = [PD, Sign(pL, PD)]CD = [PD, Sign(pL, PD)]

iii) l'orchestrateur ORC1 vérifie la signature de la clé publique éphémère PeD du dispositif HW au moyen de la clé publique PD présente dans le certificat CD, puis vérifie la signature de la clé publique PD au moyen de la clé publique PL de l'autorité de certification, ou vice-versa,iii) the orchestrator ORC1 verifies the signature of the ephemeral public key PeD of the device HW using the public key PD present in the certificate CD, then verifies the signature of the public key PD using the public key PL of the certification authority, or vice versa,

iv) de même, le dispositif HW vérifie la signature de la clé publique éphémère PeO de l'orchestrateur au moyen de la clé publique PO présente dans le certificat CO, puis vérifie la signature de la clé publique PO au moyen de la clé publique PL de l'autorité de certification, ou vice-versa,iv) similarly, the HW device verifies the signature of the ephemeral public key PeO of the orchestrator using the public key PO present in the certificate CO, then verifies the signature of the public key PO using the public key PL of the certification authority, or vice versa,

v) l'orchestrateur ORC1 génère une clé de session éphémère k0 à partir de sa clé privée éphémère peO et de la clé publique éphémère PeD du dispositif HW :v) the orchestrator ORC1 generates an ephemeral session key k0 from its ephemeral private key peO and the ephemeral public key PeD of the HW device:

k0 = ECDH(peO, PeD)k0 = ECDH(peO, PeD)

vi) le dispositif HW génère la clé de session éphémère k0 à partir de sa clé privée éphémère peD et de la clé publique éphémère PeO de l'orchestrateur :vi) the HW device generates the ephemeral session key k0 from its ephemeral private key peD and the ephemeral public key PeO of the orchestrator:

k0 = ECDH(peD, PeO)k0 = ECDH(peD, PeO)

Une fois le canal sécurisé créé entre l'orchestrateur et le dispositif HW, des données à l'attention des serveurs de sauvegarde BCKi peuvent être envoyées en toute sécurité par le dispositif HW à l'orchestrateur, grâce à un chiffrement symétrique au moyen de la clé de session partagée k0 de tout ou partie des données échangées. Réciproquement l'orchestrateur peut communiquer au dispositif HW sous une forme chiffrée au moyen de la clé k0 des données reçues des serveurs de sauvegarde BCKi.Once the secure channel is created between the orchestrator and the HW device, data for the BCKi backup servers can be securely sent by the HW device to the orchestrator, using symmetric encryption using the shared session key k0 of all or part of the data exchanged. Conversely, the orchestrator can communicate to the HW device in encrypted form using the key k0 of the data received from the BCKi backup servers.

Des canaux sécurisés sont également créés entre le dispositif HW et les serveurs de sauvegarde BCKi au moyen de clés de session kBi qui sont générées au terme d'un échange de clés par l'intermédiaire de la liaison de données LNK1, l'orchestrateur agissant comme passerelle ou "serveur proxy" entre le dispositif HW et les serveurs BCKi.Secure channels are also created between the HW device and the BCKi backup servers using session keys kBi which are generated following a key exchange via the LNK1 data link, with the orchestrator acting as gateway or "proxy server" between the HW device and the BCKi servers.

Après exécution de ces étapes, on distingue :After completing these steps, we distinguish:

- à travers la liaison de données LNK1, un canal sécurisé par la clé de session k0 partagée par l'orchestrateur et le dispositif HW, qui permet de chiffrer les données échangées entre l'orchestrateur et le dispositif HW,- through the LNK1 data link, a channel secured by the session key k0 shared by the orchestrator and the HW device, which makes it possible to encrypt the data exchanged between the orchestrator and the HW device,

- à travers les liaisons de données LNK2i, des canaux sécurisés par les clés de session kBi propre à chaque serveur de sauvegarde BCKi et connues du dispositif HW, ce qui permet au dispositif HW d'échanger avec chaque serveur BCKi des données sous forme chiffrée.- through the LNK2i data links, channels secured by the kBi session keys specific to each BCKi backup server and known to the HW device, which allows the HW device to exchange data with each BCKi server in encrypted form.

Il peut par ailleurs être prévu, dans certains cas, de chiffrer avec la clé k0 des données qui sont reçues par l'orchestrateur sous une forme chiffrée par les clés kBi, ce qui correspond à un surchiffrement de ces données.It may also be envisaged, in certain cases, to encrypt with the key k0 data which is received by the orchestrator in a form encrypted by the keys kBi, which corresponds to an over-encryption of this data.

Dans un mode de réalisation, le procédé de l'invention met en œuvre deux perfectionnements concernant la transmission du certificat CD du dispositif HW dans le cadre d'un échange de clés avec un serveur quelconque. En effet l'envoi par le dispositif de son certificat CD dans le cadre d'un tel échange de clés, constitue une faille en termes de confidentialité, la clé publique PD présente dans le certificat étant exposée en cas de surveillance de la ligne. Par ailleurs, il a été démontré qu'une signature ECDSA permet de retrouver la valeur de la clé publique correspondante. Ainsi, la transmission de la signature Sign(pD, PeD) de la clé publique éphémère PeD dans le certificat éphémère CeD peut également permettre à un tiers de découvrir la clé publique PD.In one embodiment, the method of the invention implements two improvements concerning the transmission of the CD certificate of the HW device as part of a key exchange with any server. In fact, the sending by the device of its CD certificate as part of such a key exchange constitutes a breach in terms of confidentiality, the public key PD present in the certificate being exposed in the event of monitoring of the line. Furthermore, it has been demonstrated that an ECDSA signature makes it possible to find the value of the corresponding public key. Thus, the transmission of the signature Sign(pD, PeD) of the ephemeral public key PeD in the ephemeral certificate CeD can also allow a third party to discover the public key PD.

Ces deux perfectionnements consistent respectivement dans le chiffrage du certificat CD et dans le chiffrage de la signature Sign(pD, PeD). A titre d'exemple, on décrira la mise en œuvre de ces procédés dans le cadre du calcul de la clé de session k0 décrite précédemment. Les étapes relatives à l'échange de clés précédemment décrites sont modifiées comme suit :These two improvements consist respectively in the encryption of the CD certificate and in the encryption of the Sign(pD, PeD) signature. By way of example, we will describe the implementation of these methods in the context of calculating the session key k0 described previously. The key exchange steps previously described are modified as follows:

i) l'orchestrateur génère une clé privée éphémère peO, une clé publique éphémère PeO et un certificat éphémère CeO signé avec sa clé privée pO, et transfère son certificat éphémère CeO au dispositif ainsi que son certificat CO :i) the orchestrator generates an ephemeral private key peO, an ephemeral public key PeO and an ephemeral certificate CeO signed with its private key pO, and transfers its ephemeral certificate CeO to the device as well as its certificate CO:

CeO = [PeO, Sign(pO, PeO)]CeO = [PeO, Sign(pO, PeO)]

CO = [PO, Sign(pL, PO)]CO = [PO, Sign(pL, PO)]

ii) le dispositif HW génère une clé privée éphémère peD et une clé publique éphémère PeD et calcule une première signature Sign(pD, PeD) de sa clé publique éphémère PeD à partir de sa clé privé pD et au moyen de l'algorithme ECDSA,ii) the HW device generates an ephemeral private key peD and an ephemeral public key PeD and calculates a first signature Sign (pD, PeD) of its ephemeral public key PeD from its private key pD and by means of the ECDSA algorithm,

iii) le dispositif génère la clé de session k0 à partir de sa clé privé éphémère peD et de la clé publique éphémère PeO de l'orchestrateur ,iii) the device generates the session key k0 from its ephemeral private key peD and the ephemeral public key PeO of the orchestrator,

iv) le dispositif chiffre son certificat CD avec la clé de session k0 :iv) the device encrypts its CD certificate with the session key k0:

{CD}k0{CD}k0

v) le dispositif chiffre la première signature Sign(pD, PeD) au moyen de la clé de session k0 :v) the device encrypts the first signature Sign(pD, PeD) using the session key k0:

{Sign(pD, PeD)}k0{Sign(pD, PeD)}k0

vi) le dispositif transfère à l'orchestrateur son certificat CD chiffré avec la clé de session k0 ainsi que son certificat éphémère CeD comprenant la signature de sa clé publique éphémère PeD chiffrée avec la clé de session k0 :vi) the device transfers to the orchestrator its CD certificate encrypted with the session key k0 as well as its ephemeral CeD certificate including the signature of its ephemeral public key PeD encrypted with the session key k0:

{CD}k0 || CeD{CD}k0 || CeD

soiteither

{CD}k0 || PeD || {Sign(pD, PeD)}k0{CD}k0 || PeD || {Sign(pD, PeD)}k0

("||" étant le symbole de la concaténation)("||" being the concatenation symbol)

vii) l'orchestrateur génère la clé de session k0 à partir de sa clé privé éphémère peO et de la clé publique éphémère PeD reçue du dispositif , etvii) the orchestrator generates the session key k0 from its ephemeral private key peO and the ephemeral public key PeD received from the device, and

viii) au moyen de la clé de session k0, l'orchestrateur déchiffre la signature présente dans le certificat éphémère CeD et déchiffre le certificat CD du dispositif.viii) using the session key k0, the orchestrator decrypts the signature present in the ephemeral CeD certificate and decrypts the device CD certificate.

Il apparaîtra clairement à l'homme de l'art que ces deux procédés de chiffrement du certificat CD et de chiffrement de la signature de la clé publique éphémère PeD peuvent être mis en œuvre séparément, la clé publique pouvant être chiffrée sans chiffrer la signature ou réciproquement. Il apparaîtra également à l'homme de l'art que ces deux procédés sont d'application universelle et peuvent être mis en œuvre lors de la création de tout canal sécurisé basé sur un échange de clés et la génération de signatures avec l'algorithme ECDSA.It will be clear to those skilled in the art that these two methods of encrypting the CD certificate and encrypting the signature of the ephemeral public key PeD can be implemented separately, the public key being able to be encrypted without encrypting the signature or reciprocally. It will also appear to those skilled in the art that these two methods are of universal application and can be implemented during the creation of any secure channel based on an exchange of keys and the generation of signatures with the ECDSA algorithm. .

De retour à la , il ressort de ce qui précède que la prévision de l'orchestrateur ORC1 permet de réduire le nombre de liaison de données entre le dispositif HW et les serveurs de sauvegarde BCKi, ces liaisons étant remplacées par l'unique liaison de données LNK1 entre le dispositif HW et l'orchestrateur, tout en assurant un degré de sécurité supplémentaire grâce à la possibilité de surchiffrer des données transitant par la liaison LNK1, comme indiqué plus haut. Il est de plus possible de préserver la confidentialité de la clé publique PD grâce aux perfectionnements qui viennent d'être décrits. La prévision de l'orchestrateur présente divers autres avantages qui seront décrits plus loin en relation avec la mise en œuvre d'étapes de vérification de l'identité de l'utilisateur.Back to the , it appears from the above that the provision of the ORC1 orchestrator makes it possible to reduce the number of data links between the HW device and the BCKi backup servers, these links being replaced by the single LNK1 data link between the device HW and the orchestrator, while ensuring an additional degree of security thanks to the possibility of over-encrypting data passing through the LNK1 link, as indicated above. It is also possible to preserve the confidentiality of the public key PD thanks to the improvements which have just been described. Orchestrator prediction has various other advantages which will be described later in relation to the implementation of user identity verification steps.

L'étape de sauvegarde de la graine S peut dans ce cas être mise en œuvre comme suit, en référence à la :The seed S saving step can in this case be implemented as follows, with reference to the :

i) établissement de la liaison LNK1 entre le dispositif HW et l'orchestrateur et envoi par le dispositif HW d'une requête en sauvegarde BCKRQ à l'orchestrateur,i) establishment of the LNK1 link between the HW device and the orchestrator and sending by the HW device of a BCKRQ backup request to the orchestrator,

ii) génération par l'orchestrateur d'un identifiant aléatoire BCKID de la sauvegarde, établissement des liaisons LNK2i entre l'orchestrateur et les serveurs de sauvegarde BCKi, envoi par l'orchestrateur aux serveurs de sauvegarde BCKi de l'identifiant BCKID,ii) generation by the orchestrator of a random BCKID identifier of the backup, establishment of LNK2i links between the orchestrator and the BCKi backup servers, sending by the orchestrator to the BCKi backup servers of the BCKID identifier,

iii) création du canal sécurisé entre le dispositif HW et l'orchestrateur ORC1 au moyen de la clé de session k0,iii) creation of the secure channel between the HW device and the ORC1 orchestrator using the session key k0,

iv) création de canaux sécurisés entre le dispositif HW et les serveurs de sauvegarde BCKi au moyen des clés de session kBi, par l'intermédiaire de l'orchestrateur ORC1,iv) creation of secure channels between the HW device and the BCKi backup servers using the kBi session keys, via the ORC1 orchestrator,

v) génération par le dispositif HW des parts Si de la graine S :v) generation by the device HW of the parts Si of the seed S:

S1, S2,…, Si,…, Sm = SS (S)S1, S2,…, Si,…, Sm = SS (S)

vi) chiffrement par le dispositif HW de chaque part Si au moyen de la clé de session kBi du serveur de sauvegarde BCKi à qui la part Si est destinée,vi) encryption by the HW device of each part Si by means of the session key kBi of the backup server BCKi to which the part Si is intended,

vii) envoi par le dispositif HW de l'ensemble des parts chiffrées {Si}kBi à l'orchestrateur :vii) sending by the HW device of all the encrypted parts {Si}kBi to the orchestrator:

{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm

viii) envoi par l'orchestrateur à chaque serveur de sauvegarde BCKi de la part chiffrée {Si}kBi qui lui est destinée,viii) sending by the orchestrator to each BCKi backup server of the encrypted part {Si}kBi intended for it,

ix) déchiffrement par chaque serveur BCKi de la part Si qui lui est communiquée, et stockage dans sa mémoire en association avec l'identifiant de la sauvegarde BCKID.ix) decryption by each BCKi server of the part Si communicated to it, and storage in its memory in association with the identifier of the BCKID backup.

Par ailleurs, l'étape de restauration de la graine S dans un nouveau dispositif HW', illustrée sur la , déclenchée à la demande de l'utilisateur USR, comprend les étapes suivantes, :Furthermore, the step of restoring the seed S in a new device HW', illustrated on the , triggered at the request of the USR user, includes the following steps:

i) établissement de la liaison LNK1 entre le dispositif HW et l'orchestrateur et envoi par le dispositif HW d'une requête en restauration RESTRQ à l'orchestrateur, accompagnée de l'identifiant de la sauvegarde BCKID,i) establishment of the LNK1 connection between the HW device and the orchestrator and sending by the HW device of a RESTRQ restoration request to the orchestrator, accompanied by the BCKID backup identifier,

ii) établissement des liaisons LNKi entre l'orchestrateur et les serveurs de sauvegarde BCKi, et envoi par l'orchestrateur aux serveurs de sauvegarde BCKi de l'identifiant BCKID, pour qu'ils soient informés de la restauration à réaliser,ii) establishment of LNKi connections between the orchestrator and the BCKi backup servers, and sending by the orchestrator to the BCKi backup servers of the BCKID identifier, so that they are informed of the restoration to be carried out,

iii) création du canal sécurisé entre le dispositif HW et l'orchestrateur ORC1 au moyen d'une nouvelle clé de session k0,iii) creation of the secure channel between the HW device and the ORC1 orchestrator by means of a new session key k0,

iv) création de canaux sécurisés entre le dispositif HW et les serveurs de sauvegarde BCKi au moyen de nouvelles clés de session kBi, par l'intermédiaire de l'orchestrateur ORC1,iv) creation of secure channels between the HW device and the BCKi backup servers by means of new kBi session keys, via the ORC1 orchestrator,

v) lecture par chaque serveur de sauvegarde BCKi, dans sa mémoire, au moyen de l'identifiant BCKID, de la part Si qu'il détient, et chiffrement de celle-ci au moyen de la nouvelle clé de session kBi,v) reading by each BCKi backup server, in its memory, by means of the identifier BCKID, of the part Si which it holds, and encryption of this by means of the new session key kBi,

vi) transmission à l'orchestrateur, par chaque serveur de sauvegarde BCKi, de la part chiffrée {Si}kBi,vi) transmission to the orchestrator, by each BCKi backup server, of the encrypted part {Si}kBi,

vii) collecte par l'orchestrateur de toutes les parts chiffrées {Si}kBi fournies par les serveurs de sauvegarde BCKi :vii) collection by the orchestrator of all encrypted shares {Si}kBi provided by the BCKi backup servers:

{S1}kB1, {S2}kB2,…., {Si}kBi,…, {Sm}kBm{S1}kB1, {S2}kB2,…., {Si}kBi,…, {Sm}kBm

viii) transmission au dispositif HW de chaque part chiffrée {Si}kBi, une après l'autre ou toutes ensemble :viii) transmission to the HW device of each encrypted part {Si}kBi, one after the other or all together:

{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm

ix) déchiffrement, par le dispositif HW, de chaque part Si au moyen de la clé de session kBi du serveur de sauvegarde BCKi correspondant :ix) decryption, by the HW device, of each part Si by means of the session key kBi of the corresponding BCKi backup server:

Si = {Si}-1kBiSi = {Si} -1 kBi

x) reconstitution de la graine par le dispositif HW et stockage de celle-ci dans sa mémoire :x) reconstitution of the seed by the HW device and storage of it in its memory:

S = SS-1(S1, S2,…, Si,…, Sm)S = SS -1 (S1, S2,…, Si,…, Sm)

Il sera noté que dans un mode de réalisation l'orchestrateur peut ne collecter que n parts nécessaires à la reconstitution de la graine, si n est inférieur à m. Dans ce cas, la graine est reconstituée à partir des n parts récupérées :It will be noted that in one embodiment the orchestrator can only collect n parts necessary for reconstituting the seed, if n is less than m. In this case, the seed is reconstituted from the n parts recovered:

S = SS-1(S1, S2,…, Si,…, Sn)S = SS -1 (S1, S2,…, Si,…, Sn)

On a supposé dans ce qui précède que l'identifiant de la sauvegarde BCKID a été conservé par le logiciel compagnon HSW du dispositif hôte HDV malgré la perte du dispositif HW utilisé lors de la sauvegarde. Dans un mode de réalisation permettant de prévenir le cas où l’utilisateur aurait désinstallé définitivement le logiciel compagnon HSW, un serveur de comptes clients UASRV peut être prévu, comprenant un compte utilisateur UACC dans lequel diverses données concernant l'utilisateur sont conservées, notamment l'identifiant BCKID de la sauvegarde. Le serveur UASRV est associé à un module de sécurité HSM recevant une clé privée pC, une clé publique PC, un certificat CC signé par l'autorité de certification, et la clé publique PL de cette dernière. Dans ce cas, le dispositif HW' établit une liaison de données avec le serveur UASRV grâce à un échange de clés permettant de définir une clé de session pour la création d'un canal sécurisé, avec vérification réciproque des certificats. Une fois le canal sécurisé établi, le logiciel compagnon HSW se connecte au compte client UACC pour récupérer l’identifiant BCKID. Dans une variante, l’identifiant BCKID est stocké sur le serveur UASRV mais n'est pas communiqué au logiciel compagnon. Une liaison sécurisée est établie entre le serveur UASRV et l'orchestrateur ORC1. L'orchestrateur transfère l'identifiant BCKID au serveur UASRV au moment de la sauvegarde et réciproquement reçoit l'identifiant BCKID du serveur UASRV lorsque l'utilisateur veut restaurer sa graine.It was assumed in the above that the BCKID backup identifier was retained by the HSW companion software of the HDV host device despite the loss of the HW device used during the backup. In an embodiment making it possible to prevent the case where the user has permanently uninstalled the HSW companion software, a UASRV customer account server can be provided, comprising a UACC user account in which various data concerning the user are stored, in particular the BCKID identifier of the backup. The UASRV server is associated with an HSM security module receiving a private key pC, a public key PC, a CC certificate signed by the certification authority, and the public key PL of the latter. In this case, the HW' device establishes a data link with the UASRV server through an exchange of keys making it possible to define a session key for the creation of a secure channel, with reciprocal verification of the certificates. Once the secure channel is established, the HSW companion software connects to the UACC customer account to retrieve the BCKID identifier. Alternatively, the BCKID identifier is stored on the UASRV server but is not communicated to the companion software. A secure connection is established between the UASRV server and the ORC1 orchestrator. The orchestrator transfers the BCKID identifier to the UASRV server at the time of backup and reciprocally receives the BCKID identifier from the UASRV server when the user wants to restore his seed.

Dans un mode de réalisation, l'identité de l'utilisateur est également associée au processus de sauvegarde, en définissant un ensemble d'informations formant une "identité pivot" permettant de l'identifier. Les informations formant l'identité pivot comprennent par exemple le prénom, le nom et la date de naissance de l'utilisateur, et optionnellement d'autres informations telles que son lieu de naissance. Ces informations sont collectées par le logiciel compagnon et sont communiquées à l'orchestrateur qui les rassemble pour former une chaîne binaire que l'on désignera "données de la sauvegarde" BCKDT. Les données BCKDT peuvent contenir d'autres informations comme la date et l'heure de la sauvegarde, et un nom donné par l'utilisateur à la sauvegarde (pour lui permettre ultérieurement de distinguer plusieurs sauvegardes, s'il détient plusieurs portefeuilles matériels).In one embodiment, the user's identity is also associated with the backup process, by defining a set of information forming a "pivot identity" allowing the user to be identified. The information forming the pivotal identity includes for example the user's first name, last name and date of birth, and optionally other information such as their place of birth. This information is collected by the companion software and is communicated to the orchestrator which brings it together to form a binary string which we will refer to as “backup data” BCKDT. The BCKDT data may contain other information such as the date and time of the backup, and a name given by the user to the backup (to allow them to later distinguish between several backups, if they hold several hardware wallets).

A l'initialisation de la sauvegarde, comme montré sur la , l'orchestrateur communique les données BCKDT aux serveurs de sauvegarde BCKi qui vont les associer, ainsi que l'identifiant BCKID, aux parts Si sauvegardées. Pour des raisons de confidentialité, il pourrait être préféré, dans certains modes de réalisation, que l'orchestrateur ne conserve pas les données BCKDT une fois la sauvegarde réalisée. Les données BCKDT sont dans ce cas uniquement conservées par les serveurs BCKi, qui les communiquent à l'utilisateur USR pour confirmation par ce dernier de son identité au moment de la restauration, comme montré sur la .When initializing the backup, as shown in the , the orchestrator communicates the BCKDT data to the BCKi backup servers which will associate them, as well as the BCKID identifier, with the backed-up Si shares. For confidentiality reasons, it could be preferred, in certain embodiments, that the orchestrator does not retain the BCKDT data once the backup has been made. The BCKDT data are in this case only kept by the BCKi servers, which communicate them to the USR user for confirmation by the latter of his identity at the time of the restoration, as shown on the .

Dans un mode de réalisation du procédé, l'identité pivot de l'utilisateur est vérifiée au cours d'au moins une étape de vérification d'identité désignée "IDV" ("Identity Vérification") qui est conduite avant la restauration de la graine. Dans un mode de réalisation, plusieurs étapes de vérification d'identité IDVi sont de préférence prévues avant de procéder à la restauration de la graine, ces étapes étant conduites par tout ou partie des serveurs de sauvegarde BCKi sollicités pour la restitution d'une part Si de la graine S.In one embodiment of the method, the pivotal identity of the user is verified during at least one identity verification step designated "IDV" ("Identity Verification") which is conducted before restoring the seed . In one embodiment, several IDVi identity verification steps are preferably provided before proceeding with the restoration of the seed, these steps being carried out by all or part of the BCKi backup servers requested for the restitution of a part If of the seed S.

Dans un mode de réalisation montré sur la , ces étapes de vérification d'identité sont confiées à des prestataires spécialisés au lieu d'être réalisées par les serveurs de sauvegarde BCKi eux-mêmes. De tels prestataires possèdent des serveurs IDVSRVi exécutant chacun un service de vérification d'identité automatisé IDVSi accessible via une passerelle GTW ("Gateway"). Chaque serveur de sauvegarde BCKi peut se voir attribuer un serveur IDVSRVi différent, et être configuré pour se relier à la passerelle GTW du service IDVSi exécuté par ce serveur. De préférence, de tels services IDVSi ne sont pas entièrement automatisés, au moins pour une partie d'entre eux, et incluent une intervention humaine notamment en cas de doute sur l'identité d'une personne.In one embodiment shown on the , these identity verification steps are entrusted to specialized service providers instead of being carried out by the BCKi backup servers themselves. Such providers have IDVSRVi servers each running an IDVSi automated identity verification service accessible via a GTW gateway ("Gateway"). Each BCKi backup server can be assigned a different IDVSRVi server, and configured to connect to the GTW gateway of the IDVSi service run by that server. Preferably, such IDVSi services are not entirely automated, at least for some of them, and include human intervention, particularly in the event of doubt about the identity of a person.

Ainsi, chaque serveur de sauvegarde BCKi ou au moins une partie d'entre eux, est configuré pour réaliser une étape IDVi de vérification de l'identité pivot de l'utilisateur lorsqu'il reçoit une demande de restitution d'une part de la graine. Le serveur est alors de préférence configuré pour refuser de restituer la part si cette vérification n'est pas concluante.Thus, each BCKi backup server or at least part of them, is configured to carry out an IDVi step of verifying the pivotal identity of the user when it receives a request for restitution of a part of the seed . The server is then preferably configured to refuse to return the share if this verification is not conclusive.

Dans un mode de réalisation, l’étape de sauvegarde de la graine est également précédée d’une étape initiale IDV0, conduite par l'orchestrateur ou supervisée par celui-ci, de vérification de l'identité pivot de l'utilisateur (soit au moins son prénom, son nom et sa date de naissance). Dans ce cas, un serveur IDVSRV0 est également associé à l'orchestrateur ORC1, et l'orchestrateur est configuré pour se relier à une passerelle GTW d'un service IDVS0 exécuté par ce serveur pour la réalisation de l'étape IDV0.In one embodiment, the seed saving step is also preceded by an initial IDV0 step, conducted by the orchestrator or supervised by it, of verifying the pivotal identity of the user (i.e. minus his first name, last name and date of birth). In this case, a server IDVSRV0 is also associated with the orchestrator ORC1, and the orchestrator is configured to connect to a GTW gateway of an IDVS0 service executed by this server for carrying out the IDV0 step.

Au cours de l'étape optionnelle IDV0 précédant la sauvegarde ou de chacune des étapes IDVi intervenant avant la restitution des parts de la graine, l'orchestrateur met l'utilisateur USR en relation avec le service IDVS0 ou IDVSi approprié, via la passerelle GTW appropriée. L'utilisateur doit réaliser certaines actions qui lui sont demandées par l'intermédiaire de l'écran du dispositif hôte HDV et la caméra dont il est équipé (par exemple une caméra de téléphone mobile, une webcam d'ordinateur personnel, etc.). A titre d’exemple, le service IDVS0 ou IDVSi lui demande de présenter une pièce d'identité valide comprenant une photo de sa personne, de prendre une photo de la pièce d'identité avec sa caméra et de la lui envoyer Le service IDVS0 ou IDVSi lui demande ensuite de prendre une photo (selfie) ou une vidéo de son visage et de l'envoyer. Le service IDVS0 ou IDVSi vérifie ensuite l'authenticité de la pièce d'identité à partir de la photo ou de la vidéo de son visage, et la pièce d'identité, une fois vérifiée, lui permet de vérifier les données de l'identité pivot avec un degré de certitude qui peut, dans certains modes de réalisation, donner lieu à un score. Le résultat de cette vérification, et optionnellement le score, est communiqué à l'orchestrateur. Dans un mode de réalisation, les étapes d'IDV peuvent également inclure des vérifications sur des bases gouvernementales.During the optional IDV0 step preceding the backup or each of the IDVi steps occurring before the return of the seed shares, the orchestrator puts the USR user in contact with the appropriate IDVS0 or IDVSi service, via the appropriate GTW gateway . The user must perform certain actions requested of him through the screen of the HDV host device and the camera with which it is equipped (for example a mobile phone camera, a personal computer webcam, etc.). For example, the IDVS0 or IDVSi service asks him to present a valid identity document including a photo of his person, to take a photo of the identity document with his camera and to send it to him The IDVS0 service or IDVSi then asks him to take a photo (selfie) or video of his face and send it. The IDVS0 or IDVSi service then verifies the authenticity of the identity document from the photo or video of its face, and the identity document, once verified, allows it to verify the identity data pivot with a degree of certainty which can, in certain embodiments, give rise to a score. The result of this verification, and optionally the score, is communicated to the orchestrator. In one embodiment, the IDV steps may also include verifications on government bases.

Bien que l'étape IDV0 ne soit pas aussi critique que celles réalisées par les serveurs BCKi au moment de la restitution des parts Si, elle permet de s'assurer que l'utilisateur n'a pas fait d'erreur en fournissant les informations relatives à son identité, qui sont incorporées dans les données BCKDT. Par ailleurs, les informations collectées par l'orchestrateur au cours de cette étape, telle que la photo de sa pièce d'identité et la photo ou la vidéo de son visage, peuvent optionnellement être communiquées aux serveurs de sauvegarde BCKi par un canal de communication spécifique, puisque ces informations ne font pas partie des données de la sauvegarde BCKDT.Although the IDV0 step is not as critical as those carried out by the BCKi servers when returning Si shares, it ensures that the user has not made an error in providing the relative information. to his identity, which are incorporated into the BCKDT data. Furthermore, the information collected by the orchestrator during this step, such as the photo of his identity document and the photo or video of his face, can optionally be communicated to the BCKi backup servers via a communication channel. specific, since this information is not part of the BCKDT backup data.

Dans un mode de réalisation, l'orchestrateur ORC1 peut suspendre le processus de sauvegarde de la graine s'il estime que la vérification initiale de l’identité de l’utilisateur n’est pas concluante ou se voit attribuer un score trop faible. Par ailleurs, dans un autre mode de réalisation ou en complément, l'orchestrateur reçoit des serveurs de sauvegarde BCKi des informations sur le succès des étapes de vérification d’identité IDVi qu'ils ont conduites ou qui ont été conduites par les prestataires auxquels ils sont affiliés. Si un nombre déterminé de serveurs BCKi n’a pas vérifié avec succès l’identité de l’utilisateur et refuse de restituer les parts Si qu’ils détiennent, l'orchestrateur peut être configuré pour suspendre la restitution des parts Si par les serveurs qui ont vérifié avec succès l’identité de l’utilisateur. L'orchestrateur peut optionnellement décider de soumettre l’utilisateur à une étape supplémentaire de vérification de son identité.In one embodiment, the ORC1 orchestrator can suspend the seed saving process if it judges that the initial verification of the user's identity is inconclusive or is assigned too low a score. Furthermore, in another embodiment or in addition, the orchestrator receives from the BCKi backup servers information on the success of the IDVi identity verification steps that they have carried out or which have been carried out by the service providers to whom they are affiliated. If a specified number of BCKi servers have not successfully verified the user's identity and refuse to return the Si shares they hold, the orchestrator can be configured to suspend the return of Si shares by the servers that successfully verified the user's identity. The orchestrator can optionally decide to subject the user to an additional identity verification step.

Dans une variante, ou en complément, l'orchestrateur reçoit de chaque serveur de sauvegarde BCKi ayant conduit une étape de vérification d'identité, un score de certitude quant à l’identité de l’utilisateur. Si la moyenne des scores est inférieure à un premier seuil, et/ou si l’un des scores est inférieur à un deuxième seuil, l'orchestrateur suspend le processus de restauration et optionnellement soumet l’utilisateur à une étape supplémentaire de vérification de son identité.In a variant, or in addition, the orchestrator receives from each BCKi backup server having carried out an identity verification step, a certainty score as to the identity of the user. If the average of the scores is lower than a first threshold, and/or if one of the scores is lower than a second threshold, the orchestrator suspends the restoration process and optionally subjects the user to an additional step of verifying his/her status. identify.

Dans le cas, ultime, où l’utilisateur aurait fermé son compte sur le serveur de compte UASRV, aurait désinstallé le logiciel compagnon en effaçant les données qu'il comportait, et aurait perdu son portefeuille matériel HW et ne pourrait donc plus récupérer l'identifiant de la sauvegarde BCKID, une solution peut être prévue pour lui permettre de récupérer sa graine. L'utilisateur devra alors se soumettre à une pluralité d'étapes individuelles de vérification de son identité auprès de chaque serveur BCKi pour récupérer chaque part Si de la graine. Une procédure faisant intervenir un officier ministériel, tel un notaire, peut également être prévue. Chaque prestataire d'IDV pourra également vérifier que sa démarche est légitime en s'assurant qu'il n'existe aucun compte attaché à cet utilisateur dans le serveur de comptes du système, et confier à des personnes physiques des procédures d'investigation plus approfondies, telles que la conduite d’un entretien téléphonique avec l’utilisateur, la conduite d’une vidéo conférence avec l’utilisateur, la conduite d’un entretien en face à face avec l’utilisateur, la validation d'un parcours scolaire ou d’un parcours d'employé de l’utilisateur, etc.In the ultimate case, where the user would have closed his account on the UASRV account server, would have uninstalled the companion software by erasing the data it contained, and would have lost his HW hardware wallet and would therefore no longer be able to recover the identifier of the BCKID backup, a solution can be provided to allow it to recover its seed. The user will then have to undergo a plurality of individual steps to verify their identity with each BCKi server to recover each Si part of the seed. A procedure involving a ministerial officer, such as a notary, may also be provided for. Each IDV provider will also be able to verify that its approach is legitimate by ensuring that there is no account attached to this user in the system's account server, and entrust natural persons with more in-depth investigation procedures. , such as conducting a telephone interview with the user, conducting a video conference with the user, conducting a face-to-face interview with the user, validating an educational background or of a user's employee journey, etc.

Il apparaîtra clairement à l'homme de l'art que le procédé de l'invention est susceptible de divers autres modes de réalisation et variantes. Notamment, les données de la sauvegarde BCKID pourraient, dans un mode de réalisation, inclure sous une forme compressée les données recueillies à l'étape IDV0 pour vérifier l'identité pivot de l'utilisateur, telle que la photo ou la vidéo de son visage et une photo d’une pièce d'identité. Les étapes automatisées de vérification de l’identité pivot de l’utilisateur telles que conduites par des services IDVSi exécutés par des serveurs IDVSRVi ou par les serveurs de sauvegarde BCKi eux-mêmes, peuvent comprendre au moins deux des étapes suivantes : acquisition, par l’intermédiaire d’une caméra, d’une photo d’une pièce d’identité non périmée comprenant une photo de l’utilisateur ; acquisition, par l’intermédiaire d’une caméra, d’une ou de plusieurs photos du visage de l’utilisateur ; acquisition, par l’intermédiaire d’une caméra, d’un enregistrement vidéo montrant le visage de l’utilisateur en mouvement, avec détection du vivant pour vérifier que l’utilisateur est réel ; acquisition d’une justification de domicile, telle une facture d’électricité, de téléphone ; acquisition d’une empreinte digitale de l’utilisateur ; acquisition d’un code de validation reçu par l’utilisateur dans un message téléphonique, par email ou par courrier ; activation par l’utilisateur d’un lien reçu par l’utilisateur dans un message téléphonique, par email ou par courrier, et acquisition d’un hologramme présent sur une pièce d'identité non périmée.It will be clear to those skilled in the art that the process of the invention is capable of various other embodiments and variants. In particular, the BCKID backup data could, in one embodiment, include in compressed form the data collected in step IDV0 to verify the pivotal identity of the user, such as the photo or video of his face and a photo of an identity document. The automated steps for verifying the user's pivotal identity as carried out by IDVSi services executed by IDVSRVi servers or by the BCKi backup servers themselves, may include at least two of the following steps: acquisition, by via a camera, a photo of an unexpired identity document including a photo of the user; acquisition, via a camera, of one or more photos of the user’s face; acquisition, via a camera, of a video recording showing the user's face in movement, with live detection to verify that the user is real; acquisition of proof of address, such as an electricity or telephone bill; acquisition of a fingerprint of the user; acquisition of a validation code received by the user in a telephone message, by email or by post; activation by the user of a link received by the user in a telephone message, by email or by post, and acquisition of a hologram present on a non-expired identity document.

On décrira maintenant en relation avec la un exemple d'algorithme de sauvegarde de la graine applicable au système de la et mettant en œuvre divers aspects des modes de réalisation du procédé précédemment décrits. La est un diagramme de séquences qui représente les étapes de l'algorithme sous forme d'interactions entre :We will now describe in relation to the an example of a seed saving algorithm applicable to the seed system and implementing various aspects of the method embodiments previously described. There is a sequence diagram that represents the steps of the algorithm in the form of interactions between:

- l'utilisateur USR,- the USR user,

- le dispositif HW et son dispositif hôte HDV (considérés comme une seule et même entité formant le portefeuille de cryptoactifs CW1),- the HW device and its HDV host device (considered as a single entity forming the CW1 cryptoasset portfolio),

- l'orchestrateur ORC1 et le module de sécurité HSM qui lui est associé (considérés également comme une seule et même entité), et- the ORC1 orchestrator and the HSM security module associated with it (also considered as a single entity), and

- le serveur IDVSRV0 associé à l'orchestrateur pour réaliser l'étape IDV0 de vérification de l'identité de l'utilisateur,- the IDVSRV0 server associated with the orchestrator to carry out the IDV0 step of verifying the identity of the user,

- les serveurs de sauvegarde BCKi, et- BCKi backup servers, and

- les serveurs IDVSRVi associés aux serveurs BCKi pour réaliser les étapes de vérification d'identité ultérieures, au moment de la restauration de la graine.- the IDVSRVi servers associated with the BCKi servers to carry out the subsequent identity verification steps, when restoring the seed.

Certaines fonctions utilisées dans l'algorithme sont indiquées dans le tableau 1 ci-après, à titre d'exemple non limitatif :Some functions used in the algorithm are indicated in Table 1 below, by way of non-limiting example:

[Tab 1] Type de cryptographie Cryptographie à courbes elliptiques Sign Signature de type ECDSA ("Elliptic Curve Digital Signature Algorithm") avec la courbe elliptique secp256k1 ECDH Échange de clés Diffie-Hellman basé sur les courbes elliptiques utilisant par exemple la courbe elliptique secp256k1 Fonction de hachage SHA-256 ("Secure Hash Algorithm") Chiffrement symétrique {.}k0 Algorithme AEAD-AES-SIV-CMAC-256 Fonction SS Fonction de Partage de secret de Shamir ou autre fonction similaire, ou Partage de secret vérifiable publiquement de Pedersen PVSS basé sur la courbe secp384r1 [Tab 1] Type of cryptography Elliptic curve cryptography sign ECDSA type signature ("Elliptic Curve Digital Signature Algorithm") with the elliptic curve secp256k1 ECDH Diffie-Hellman key exchange based on elliptic curves using for example the secp256k1 elliptic curve Hash function SHA-256 ("Secure Hash Algorithm") Symmetric encryption {.}k0 Algorithm AEAD-AES-SIV-CMAC-256 SS function Shamir Secret Sharing or similar function, or Pedersen PVSS Publicly Verifiable Secret Sharing based on secp384r1 curve

Description de l'algorithme, en relation avec les figures 4A et 4B.Description of the algorithm, in relation to Figures 4A and 4B.

B1. Initialisation de la sauvegardeB1. Initializing the backup

L’utilisateur USR sélectionne dans le dispositif HW une option de sauvegarde de la graine. L’utilisateur, par l'intermédiaire du dispositif hôte HDV, crée un compte de sauvegarde sur le serveur de compte UASRV. Le dispositif HW établit une liaison de données avec l'orchestrateur ORC1 et lui envoie la requête en sauvegarde :The USR user selects a seed save option in the HW device. The user, through the HDV host device, creates a backup account on the UASRV account server. The HW device establishes a data link with the ORC1 orchestrator and sends it the backup request:

[HW → ORC1][HW → ORC1]

BCKRQBCKRQ

Optionnellement le dispositif HW offre la possibilité à l'utilisateur de choisir le nombre m de parts Si qu’il souhaite générer pour la sauvegarde de la graine, et le seuil n correspondant au nombre de parts nécessaires à la reconstitution de la graine S. Toujours de manière optionnelle, le dispositif HW peut présenter à l'utilisateur une liste de serveurs de sauvegarde BCKi, certains pouvant être des partenaires externes, et demander à l’utilisateur d’indiquer ceux qu’il souhaite utiliser. Sinon, ceux-ci sont sélectionnés automatiquement par l'orchestrateur. L'orchestrateur ORC1 établit une liaison de données avec les serveurs BCKi, puis engage le processus de sauvegarde selon les étapes décrites dans ce qui suit.Optionally the HW device offers the possibility to the user to choose the number m of parts Si that he wishes to generate for saving the seed, and the threshold n corresponding to the number of parts necessary for the reconstitution of the seed S. Always optionally, the HW device can present the user with a list of BCKi backup servers, some of which may be external partners, and ask the user to indicate which ones they wish to use. Otherwise, these are selected automatically by the orchestrator. The ORC1 orchestrator establishes a data link with the BCKi servers and then initiates the backup process according to the steps described in the following.

B2. Génération et envoi au dispositif HW et aux serveurs BCKi de l'identifiant de la sauvegardeB2. Generation and sending to the HW device and BCKi servers of the backup identifier

[ORC1 → BCKi, HW] BCKID[ORC1 → BCKi, HW] BCKID

L'orchestrateur ORC1 génère l'identifiant BCKID de la sauvegarde, par exemple un nombre aléatoire, et le transfère au dispositif HW et aux serveurs BCKi.The ORC1 orchestrator generates the BCKID of the backup, for example a random number, and transfers it to the HW device and BCKi servers.

B3. Réalisation d’une vérification d’identité IDV0 par le serveur IDVSRV0B3. Carrying out an IDV0 identity verification by the IDVSRV0 server

[IDVSRV0] IDV0[IDVSRV0] IDV0

L'orchestrateur ORC1 connecte l’utilisateur au serveur IDVSRV0 à travers une passerelle GTW. Le service IDVS0 procède à une vérification de l’identité pivot de l’utilisateur IDV0.The ORC1 orchestrator connects the user to the IDVSRV0 server through a GTW gateway. The IDVS0 service performs a verification of the pivotal identity of the IDV0 user.

B4. Confirmation par l'orchestrateur du succès de la vérification d'identitéB4. Confirmation by the orchestrator of successful identity verification

IDV_OK → HWIDV_OK → HW

Le serveur IDVSRV0 confirme à l'orchestrateur ORC1 que l’IDV a été réalisée avec succès, et l'orchestrateur ORC1 confirme à l’utilisateur par l'intermédiaire du dispositif HW que son identité a été vérifiée et que l'étape de sauvegarde de la graine peut être initiée. A l'occasion de cette étape l'orchestrateur ORC1 peut générer les données de la sauvegarde BCKDT, et les envoyer au dispositif HW.The server IDVSRV0 confirms to the orchestrator ORC1 that the IDV has been carried out successfully, and the orchestrator ORC1 confirms to the user via the HW device that his identity has been verified and that the backup step of the seed can be initiated. During this step, the orchestrator ORC1 can generate the data from the BCKDT backup, and send them to the HW device.

B5. Authentification mutuelle et création d’un canal sécurisé entre l'orchestrateur et le dispositifB5. Mutual authentication and creation of a secure channel between the orchestrator and the device

B5.1 Génération par l'orchestrateur d‘un certificat éphémèreB5.1 Generation by the orchestrator of an ephemeral certificate

(peO, PeO) = AsymKeyGen()(peO, PeO) = AsymKeyGen()

Sign(pO, ReO||PeO)Sign(pO, ReO||PeO)

CeO = PeO||Sign(pO, ReO||PeO)CeO = PeO||Sign(pO, ReO||PeO)

L'orchestrateur ORC1 génère une clé privée éphémère peO et une clé publique éphémère PeO. L'orchestrateur calcule la signature de sa clé publique éphémère PeO au moyen de sa clé privée pO. Dans une variante retenue ici, l'orchestrateur calcule la signature de sa clé publique éphémère PeO après avoir concaténée celle-ci avec une donnée ReO. La donnée ReO spécifie par exemple le rôle que joue le serveur orchestrateur dans le processus, par exemple le rôle d’orchestrateur pour l’établissement d’un canal sécurisé. L'orchestrateur génère ensuite un certificat éphémère CeO par concaténation de la clé publique éphémère PeO et de la signature.The ORC1 orchestrator generates an ephemeral private key peO and an ephemeral public key PeO. The orchestrator calculates the signature of its ephemeral public key PeO using its private key pO. In a variant used here, the orchestrator calculates the signature of its ephemeral public key PeO after having concatenated it with ReO data. The ReO data specifies for example the role that the orchestrator server plays in the process, for example the role of orchestrator for the establishment of a secure channel. The orchestrator then generates an ephemeral CeO certificate by concatenation of the ephemeral public key PeO and the signature.

B5.2 Envoi au dispositif des certificats de l'orchestrateurB5.2 Sending orchestrator certificates to the device

CeO||CO → HWCeO||CO → HW

L'orchestrateur ORC1 envoie au dispositif HW son certificat éphémère et son certificat CO.The ORC1 orchestrator sends its ephemeral certificate and its CO certificate to the HW device.

B5.3. Vérification par le dispositif des certificats de l'orchestrateurB5.3. Device verification of orchestrator certificates

Verif CeO, Verif COVerif CeO, Verif CO

Le dispositif HW vérifie la chaîne de certificats de l'orchestrateur, de la manière décrite plus haut, au moyen de la clé publique PL de l'autorité de certification.The HW device verifies the orchestrator's certificate chain, in the manner described above, using the public key PL of the certification authority.

B5.4. Génération par le dispositif HW d’une clé de session k0 et d’un certificat éphémèreB5.4. Generation by the HW device of a session key k0 and an ephemeral certificate

(peD, PeD) = AsymKeyGen()(peD, PeD) = AsymKeyGen()

k0 = ECDH(peD, PeO)k0 = ECDH(peD, PeO)

Sign(pD, ReD||PeD)Sign(pD, ReD||PeD)

{Sign(pD, ReD||PeD)}k0{Sign(pD, ReD||PeD)}k0

CeD = PeD||{Sign(pD, ReD||PeD)}k0CeD = PeD||{Sign(pD, ReD||PeD)}k0

{CD}k0{CD}k0

Le dispositif HW génère une clé privée éphémère peD et une clé publique éphémère PeD, puis une clé de session k0 à partir de sa clé privée éphémère peD et de la clé publique éphémère PeO de l'orchestrateur au moyen de l’algorithme ECDH. Le dispositif HW calcule ensuite la signature de sa clé publique éphémère PeD au moyen de sa clé privée pD, ici après avoir concaténé la clé publique éphémère PeD avec une donnée ReD. La donnée ReD spécifie par exemple le rôle que joue HW dans le processus. Le dispositif HW chiffre ensuite la signature de sa clé publique éphémère avec la clé de session k0, conformément au procédé de chiffrage de la signature décrit plus haut. Le dispositif HW forme ensuite un certificat éphémère CeD par concaténation de la clé publique éphémère PeD et de la signature chiffrée. Enfin, le dispositif HW chiffre son certificat CD au moyen de la clé k0, conformément au procédé de chiffrage du certificat décrit plus haut.The HW device generates an ephemeral private key peD and an ephemeral public key PeD, then a session key k0 from its ephemeral private key peD and the ephemeral public key PeO of the orchestrator using the ECDH algorithm. The HW device then calculates the signature of its ephemeral public key PeD by means of its private key pD, here after having concatenated the ephemeral public key PeD with data ReD. The ReD data specifies for example the role that HW plays in the process. The HW device then encrypts the signature of its ephemeral public key with the session key k0, in accordance with the signature encryption method described above. The HW device then forms an ephemeral certificate CeD by concatenation of the ephemeral public key PeD and the encrypted signature. Finally, the device HW encrypts its certificate CD using the key k0, in accordance with the certificate encryption method described above.

B5.5. Envoi à l'orchestrateur des certificats du dispositifB5.5. Sending device certificates to the orchestrator

[HW → ORC1][HW → ORC1]

CeD||{CD}k0CeD||{CD}k0

Le dispositif HW envoie à l'orchestrateur ORC1 son certificat CD chiffré au moyen de la clé k0 ainsi que son certificat éphémère CeD comprenant la signature chiffrée. Grâce au chiffrement du certificat et au chiffrement de la signature du certificat éphémère, la clé publique PD n’est pas exposée, comme expliqué plus haut. Comme indiqué plus haut, l'ordre de ces étapes peut être inversé, le dispositif pouvant envoyer son certificat, ici chiffré, avant d'envoyer son certificat éphémère, comprenant ici la signature chiffrée.The HW device sends to the orchestrator ORC1 its certificate CD encrypted using the key k0 as well as its ephemeral certificate CeD including the encrypted signature. Thanks to certificate encryption and ephemeral certificate signature encryption, the PD public key is not exposed, as explained above. As indicated above, the order of these steps can be reversed, the device being able to send its certificate, here encrypted, before sending its ephemeral certificate, here including the encrypted signature.

B5.6. Génération par l'orchestrateur de la clé de session k0B5.6. Generation by the orchestrator of the session key k0

k0 = ECDH(peO, PeD)k0 = ECDH(peO, PeD)

L'orchestrateur ORC1 génère la clé de session k0 à partir de sa clé privée éphémère peO et de la clé publique éphémère PeD du dispositif HW au moyen de l’algorithme ECDH.The orchestrator ORC1 generates the session key k0 from its ephemeral private key peO and the ephemeral public key PeD of the device HW using the ECDH algorithm.

B5.7. Vérification par l'orchestrateur des certificats du dispositifB5.7. Verification by the orchestrator of device certificates

CD={CD}-1k0CD={CD} -1 k0

Sign(pD, ReD||PeD) = {Sign(pD, ReD||PeD)}-1k0Sign(pD, ReD||PeD) = {Sign(pD, ReD||PeD)} -1 k0

Verif CeD, Verif CDVerif CeD, Verif CD

L'orchestrateur ORC1 déchiffre le certificat CD du dispositif HW ainsi que la signature du certificat éphémère du dispositif HW, puis vérifie la chaîne de certificats.Orchestrator ORC1 decrypts the HW device's CD certificate and the HW device's ephemeral certificate signature, then verifies the certificate chain.

B6. Envoi aux serveurs BCKi des données BCKID, BCKDT et des certificats CeD, CD du dispositifB6. Sending BCKID, BCKDT data and device CeD and CD certificates to BCKi servers

[ORC1 → BCKi][ORC1 → BCKi]

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

BCKID||BCKDT||CeD||CDBCKID||BCKDT||CeD||CD

L'orchestrateur ORC1 envoie à chaque serveur BCKi l’identifiant de la sauvegarde BCKID, les données de la sauvegarde BCKDT qui incluent au moins les données de l'identité pivot. Comme indiqué plus haut, d'autres données peuvent optionnellement être envoyées ou avoir été envoyées aux serveurs de sauvegarde par d'autres canaux, comme la photo ou vidéo du visage de l'utilisateur prise à l'étape IDV0, et la photo d'un document d'identité. Si ces données ne sont pas incluses dans les données de la sauvegarde BCKDT, elles pourront être stockées par le serveur de comptes clients et transmises aux serveurs BCKi après la sauvegarde.The ORC1 orchestrator sends to each BCKi server the BCKID backup identifier, the BCKDT backup data which includes at least the pivot identity data. As indicated above, other data may optionally be sent or have been sent to the backup servers through other channels, such as the photo or video of the user's face taken in step IDV0, and the photo of an identity document. If this data is not included in the BCKDT backup data, it may be stored by the customer accounts server and transmitted to the BCKi servers after the backup.

B7. Vérification par chaque serveur BCKi des certificats du dispositifB7. Verification by each BCKi server of the device certificates

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Verif CeD, Verif CDVerif CeD, Verif CD

Chaque serveur BCKi vérifie la chaîne de certificats du dispositif HW de la manière précédemment décrite.Each BCKi server verifies the certificate chain of the HW device in the manner previously described.

B8. Authentification mutuelle et création d’un canal sécurisé entre les serveurs BCKi et le dispositif, par l'intermédiaire de l'orchestrateurB8. Mutual authentication and creation of a secure channel between BCKi servers and the device, through the orchestrator

B8.1 Génération par chaque serveur BCKi d’un certificat éphémèreB8.1 Generation by each BCKi server of an ephemeral certificate

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

(peBi, PeBi) = AsymKeyGen()(peBi, PeBi) = AsymKeyGen()

Sign(pBi, ReB||PeBi)Sign(pBi, ReB||PeBi)

CeBi = PeBi||Sign(pBi, ReB||PeBi)CeBi = PeBi||Sign(pBi, ReB||PeBi)

Chaque serveur BCKi génère une clé privée éphémère peBi et une clé publique éphémère PeBi. Chaque serveur BCKi calcule la signature de sa clé publique éphémère PeBi après l’avoir concaténée avec une donnée ReB au moyen de sa clé privée pBi. ReB spécifie par exemple le rôle que joue chaque serveur dans le processus, par exemple le rôle de serveur de sauvegarde pour la gestion du canal sécurisé. Ensuite chaque serveur BCKi génère un certificat éphémère CeBi par concaténation de la clé publique éphémère PeBi et de sa signature.Each BCKi server generates an ephemeral private key PeBi and an ephemeral public key PeBi. Each BCKi server calculates the signature of its ephemeral public key PeBi after concatenating it with ReB data using its private key pBi. ReB specifies for example the role that each server plays in the process, for example the role of backup server for managing the secure channel. Then each BCKi server generates an ephemeral CeBi certificate by concatenation of the ephemeral public key PeBi and its signature.

B8.2 Génération par chaque serveur BCKi d’une clé de session kBiB8.2 Generation by each BCKi server of a kBi session key

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

kBi = ECDH(peBi, PeD)kBi = ECDH(peBi, PeD)

Chaque serveur BCKi génère ensuite une clé de session kBi à partir de sa clé privée éphémère peBi et de la clé publique éphémère PeD du dispositif HW, au moyen de l’algorithme ECDH.Each BCKi server then generates a session key kBi from its ephemeral private key peBi and the ephemeral public key PeD of the HW device, using the ECDH algorithm.

B8.3 Génération par chaque serveur BCKi d’un code de hachage chiffréB8.3 Generation by each BCKi server of an encrypted hash code

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Hi = Hash(PeBi||BCKID||BCKDT)Hi = Hash(PeBi||BCKID||BCKDT)

CHi = {Hi}kBiCHi = {Hi}kBi

Chaque serveur BCKi génère ensuite un code de hachage Hi à partir d’une chaîne binaire comprenant sa clé publique éphémère PeBi, les données BCKID et les données de la sauvegarde BCKDT. Chaque serveur BCKi chiffre ensuite le code Hi au moyen de la clé de session kBi pour obtenir un code de hachage chiffré CHi.Each BCKi server then generates a hash code Hi from a binary string including its ephemeral public key PeBi, the BCKID data and the BCKDT backup data. Each BCKi server then encrypts the Hi code using the session key kBi to obtain an encrypted hash code CHi.

B8.4 Envoi à l'orchestrateur des certificats des serveurs BCKi et du code de hachage chiffréB8.4 Sending BCKi server certificates and encrypted hash code to the orchestrator

[BCKi → ORC1][BCKi → ORC1]

RETDTi = CeBi||CBi||CHiRETDTi = CeBi||CBi||CHi

Chaque serveur BCKi envoie à l'orchestrateur ORC1 une chaîne binaire RETDTi comprenant son certificat éphémère CeBi, son certificat CBi et le code de hachage chiffré CHi.Each BCKi server sends to the orchestrator ORC1 a binary string RETDTi including its ephemeral CeBi certificate, its CBi certificate and the encrypted hash code CHi.

B8.5 Envoi au dispositif des certificats des serveurs BCKi et du code de hachage chiffréB8.5 Sending BCKi server certificates and encrypted hash code to the device

[ORC1 → HW][ORC1 → HW]

{BCKI D||BCKDT||RETDT1||….||RETDTi||…||RETDTm}ko{BCKI D||BCKDT||RETDT1||….||RETDTi||…||RETDTm}ko

L'orchestrateur ORC1 renvoie au dispositif les données BCKID, BCKDT et toutes les données RETDTi reçues des serveurs de sauvegarde BCKi, sous une forme chiffrée au moyen de la clé k0. Il sera noté ici que l'orchestrateur n’a pas accès aux données RETDTi car il ne connaît pas les clés privées kBi des serveurs BCKi. Les données dans le canal sécurisé de communication entre l'orchestrateur et le dispositif sont donc chiffrées deux fois.The orchestrator ORC1 returns to the device the BCKID, BCKDT data and all RETDTi data received from the BCKi backup servers, in encrypted form using the key k0. It will be noted here that the orchestrator does not have access to the RETDTi data because it does not know the kBi private keys of the BCKi servers. The data in the secure communication channel between the orchestrator and the device is therefore encrypted twice.

B8.6 Déchiffrement par le dispositif des certificats des serveurs BCKi et du code de hachage chiffréB8.6 Decryption by the device of BCKi server certificates and the encrypted hash code

{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm }-1k0{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm } -1 k0

Le dispositif HW déchiffre la chaîne de données pour en extraire les données BCKID, BCKDT et les certificats CeBi, CBi, CHi.The HW device decrypts the data string to extract the BCKID, BCKDT data and the CeBi, CBi, CHi certificates.

B8.7 Validation des données BCKDT et des serveurs BCKi par l’utilisateurB8.7 Validation of BCKDT data and BCKi servers by the user

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Validate BCKDT, BCKiValidate BCKDT, BCKi

L’utilisateur personne physique valide les données de la sauvegarde BCKDT et les serveurs BCKi en charge de la sauvegarde, qui lui sont présentées sur l'écran du dispositif hôte.The natural person user validates the BCKDT backup data and the BCKi servers in charge of the backup, which are presented to them on the screen of the host device.

B8.8 Vérification par le dispositif des certificats des serveurs BCKiB8.8 Verification by the device of BCKi server certificates

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Verif CeBi, Verif CBiVerif CeBi, Verif CBi

Le dispositif HW vérifie la chaîne de certificats de chaque serveur BCKi.The HW device verifies the certificate chain of each BCKi server.

B8.9 Génération par le dispositif des clés de session kBi et vérification des codes de hachage chiffrésB8.9 Generation by the device of kBi session keys and verification of encrypted hash codes

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

kBi = ECDH(peD, PeBi)kBi = ECDH(peD, PeBi)

{Hi}-1kBi{Hi} -1 kBi

Validate HiValidateHi

Pour chaque serveur BCKi, le dispositif HW génère la clé de session kBi puis déchiffre le code Hi et le valide en recalculant lui-même le code Hi et en le comparant au code déchiffré.For each BCKi server, the HW device generates the session key kBi then decrypts the Hi code and validates it by itself recalculating the Hi code and comparing it to the decrypted code.

B9. Préparation de la sauvegarde, génération des m parts SiB9. Preparing the backup, generating m parts Si

S1, S2,…Si,..Sm = SS(S)S1, S2,…Si,..Sm = SS(S)

Au moyen de la fonction SS de partage de secret, le dispositif HW génère les m parts Si à sauvegarder dans les différents serveurs BCK1, BCK2… BCKm, avec un seuil de n parts pour récupérer la graine S.By means of the secret sharing function SS, the HW device generates the m parts Si to be saved in the different servers BCK1, BCK2… BCKm, with a threshold of n parts to recover the seed S.

B10. Chiffrement des parts Si par le dispositifB10. Encryption of shares If by the device

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

{Si}kBi{Si}kBi

Pour chaque serveur BCKi, le dispositif HW chiffre la part Si qui lui est destinée avec la clé kBi qui lui est propre.For each BCKi server, the HW device encrypts the Si portion intended for it with the kBi key specific to it.

B11. Envoi à l'orchestrateur des parts Si chiffréesB11. Sending encrypted Si shares to the orchestrator

[HW → ORC1][HW → ORC1]

{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → ORC1{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → ORC1

Le dispositif HW envoie ensuite l’ensemble des parts à l'orchestrateur ORC1. Il sera noté que l'orchestrateur n’a pas connaissance de la valeur de chaque part Si car celle-ci est chiffrée avec la clé kBi qu’il ne connaît pas.The HW device then sends all the shares to the orchestrator ORC1. It will be noted that the orchestrator is not aware of the value of each part Si because it is encrypted with the key kBi which he does not know.

B12. Envoi aux serveurs BCKi des parts Si chiffréesB12. Sending encrypted Si shares to BCKi servers

[ORC1 → BCKi][ORC1 → BCKi]

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

BCKID||{Si}kBi → BCKiBCKID||{Si}kBi → BCKi

L'orchestrateur ORC1 envoie à chaque serveur BCKi la part Si chiffrée qui lui est destinée, accompagnée de l’identifiant de la sauvegarde.The ORC1 orchestrator sends to each BCKi server the encrypted Si part intended for it, accompanied by the backup identifier.

B13. Déchiffrement et enregistrement par chaque serveur BCKi de la part Si chiffréeB13. Decryption and recording by each BCKi server of the encrypted Si portion

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

{Si}-1kBi → STORE{Si} -1 kBi → STORE

Chaque serveur BCKi déchiffre la part Si qu'il a reçue et la stocke dans sa mémoire MEM pour qu’elle soit sauvegardée.Each BCKi server decrypts the Si part that it has received and stores it in its MEM memory so that it can be saved.

B14. Confirmation de la sauvegarde à l'orchestrateur par chaque serveur BCKiB14. Confirmation of the backup to the orchestrator by each BCKi server

[BCKi → ORC1] OKi[BCKi → ORC1] OKi

Chaque serveur BCKi confirme à l'orchestrateur ORC1 par un message "OKi" (i allant de 1 à m) qu’il a déchiffré et stocké la part de la graine qui lui a été confiée. Optionnellement, chaque serveur BCKi peut envoyer une preuve chiffrée du déchiffrement de la part Si à l’aide d’un code de hachage signé avec sa clé de session. Ce code de hachage signé sera répercuté au dispositif HW pour être vérifié.Each BCKi server confirms to the ORC1 orchestrator by an "OKi" message (i ranging from 1 to m) that it has decrypted and stored the part of the seed entrusted to it. Optionally, each BCKi server can send encrypted proof of decryption of the Si part using a hash code signed with its session key. This signed hash code will be passed back to the HW device for verification.

B15. Confirmation de la sauvegarde à l'utilisateurB15. Confirmation of backup to user

[ORC1 → HW][ORC1 → HW]

OKOK

L'orchestrateur ORC1 renvoie un message de réussite ("OK") de la sauvegarde au dispositif HW, lequel affiche sur son écran à l’attention de l'utilisateur un message de confirmation de sauvegarde.The ORC1 orchestrator sends a backup success message ("OK") to the HW device, which displays a backup confirmation message on its screen for the user.

A la fin du processus :At the end of the process:

- le dispositif HW détient toujours la graine S,- the device HW always holds the seed S,

- le logiciel compagnon HSW enregistre l’identifiant de la sauvegarde BCKID,- the HSW companion software records the BCKID backup identifier,

- l'orchestrateur ORC1 ne détient pas la graine S ni les données de la sauvegarde BCKDT, et détient seulement l’identifiant de la sauvegarde BCKID,- the ORC1 orchestrator does not hold the S seed nor the BCKDT backup data, and only holds the BCKID backup identifier,

- chaque serveur BCKi détient l’identifiant de la sauvegarde BCKID, les données de la sauvegarde BCKDT qui contiennent au moins l’identité pivot de l’utilisateur, et la part Si de la graine qui lui a été confiée.- each BCKi server holds the BCKID backup identifier, the BCKDT backup data which contains at least the pivotal identity of the user, and the Si part of the seed entrusted to it.

Le logiciel compagnon HSW enregistre l’identifiant de la sauvegarde BCKID et peut aussi mettre à jour le compte client UACC de l’utilisateur en y enregistrant l’identifiant de la sauvegarde BCKID.The HSW companion software records the BCKID backup ID and can also update the user's UACC customer account by recording the BCKID backup ID.

On décrira maintenant en relation avec la un exemple d'algorithme de restauration de la graine applicable au système de la et mettant en œuvre divers aspects des modes de réalisation du procédé précédemment décrits. La est un diagramme de séquences qui représente les étapes de l'algorithme sous forme d'interactions entre les entités précédemment citées.We will now describe in relation to the an example of a seed restoration algorithm applicable to the seed system and implementing various aspects of the method embodiments previously described. There is a sequence diagram which represents the steps of the algorithm in the form of interactions between the entities mentioned above.

On considère ici que l’utilisateur a perdu son dispositif HW, ou a perdu de manière irrécupérable le mot de passe qui permet de l'utiliser. Il se procure un nouveau dispositif HW’ qu’il va utiliser pour récupérer la graine S, et le connecte au dispositif hôte HDV dont le logiciel compagnon HSW a mémorisé l’identifiant de la sauvegarde BCKID. Le nouveau dispositif HW’ pourrait aussi être le dispositif HW qui a été réinitialisé.We consider here that the user has lost their HW device, or has irrecoverably lost the password which allows them to use it. He obtains a new device HW' which he will use to recover the seed S, and connects it to the HDV host device whose companion software HSW has memorized the identifier of the BCKID backup. The new HW’ device could also be the HW device that was reset.

Au commencement du processus le dispositif HW’ détient une clé privée pD, une clé publique PD, un certificat CD certifié par l’autorité de certification et la clé publique PL de l'autorité de certification (la même désignation que précédemment sera utilisée pour les clés et certificats du dispositif HW’). L'étape de restauration comprend les étapes décrites ci-après. Les étapes semblables à celles précédemment décrites ne seront pas de nouveau commentées.At the start of the process the device HW' holds a private key pD, a public key PD, a CD certificate certified by the certification authority and the public key PL of the certification authority (the same designation as previously will be used for the keys and certificates of the HW' device). The restore step includes the steps described below. Steps similar to those previously described will not be commented on again.

R1. Envoi par le dispositif d’une requête de restauration à l'orchestrateurR1. The device sends a restore request to the orchestrator

HW’ → ORC1HW’ → ORC1

RESTRQ[BCKID]RESTRQ[BCKID]

La restauration est initiée par l’envoi par le dispositif HW’ à l'orchestrateur d’une requête en restauration RESTRQ. La requête contient l’identifiant de la sauvegarde BCKID. Elle est émise à la demande de l’utilisateur et sélectionnée à travers un menu affiché sur l’écran du dispositif HW’ ou sur l’écran du dispositif hôte HDV.The restoration is initiated by the HW’ device sending a RESTRQ restoration request to the orchestrator. The request contains the BCKID backup identifier. It is issued at the user's request and selected through a menu displayed on the screen of the HW' device or on the screen of the HDV host device.

R2. Authentification mutuelle et création d’un canal sécurisé entre l'orchestrateur et le dispositifR2. Mutual authentication and creation of a secure channel between the orchestrator and the device

R2.1 Génération par l'orchestrateur d’un certificat éphémèreR2.1 Generation by the orchestrator of an ephemeral certificate

(peO, PeO) = AsymKeyGen()(peO, PeO) = AsymKeyGen()

Sign(pO, ReO||PeO)Sign(pO, ReO||PeO)

CeO = PeO||Sign(pO, ReO||PeO )CeO = PeO||Sign(pO, ReO||PeO )

R2.2 Envoi au dispositif des certificats de l'orchestrateurR2.2 Sending orchestrator certificates to the device

ORC1 → HW’ORC1 → HW’

CeO||COCeO||CO

R2.3. Vérification par le dispositif des certificats de l'orchestrateurR2.3. Device verification of orchestrator certificates

Verif CeO, Verif COVerif CeO, Verif CO

R2.4. Génération par le dispositif d’une clé de session et d’un certificat éphémère chiffréR2.4. Generation by the device of a session key and an encrypted ephemeral certificate

(peD, PeD) = AsymKeyGen()(peD, PeD) = AsymKeyGen()

k0 = ECDH(peD, PeO)k0 = ECDH(peD, PeO)

Sign(pD, ReD||PeD)Sign(pD, ReD||PeD)

{Sign(pD, ReD||PeD)}k0{Sign(pD, ReD||PeD)}k0

CeD = PeD||{Sign(pD, ReD||PeD)}k0CeD = PeD||{Sign(pD, ReD||PeD)}k0

{CD}k0{CD}k0

R2.5. Envoi à l'orchestrateur des certificats du dispositif HW’R2.5. Sending HW device certificates to the orchestrator

[HW' → ORC1][HW' → ORC1]

CeD||{CD}k0CeD||{CD}k0

R2.6. Génération par l'orchestrateur de la clé de session k0R2.6. Generation by the orchestrator of the session key k0

k0 = ECDH(peO, PeD)k0 = ECDH(peO, PeD)

CD={CD}-1k0CD={CD} -1 k0

Sign(pD, ReD||PeD) = {Sign(pD, ReD||PeD)}-1k0Sign(pD, ReD||PeD) = {Sign(pD, ReD||PeD)} -1 k0

R2.7. Vérification par l'orchestrateur des certificats du dispositifR2.7. Verification by the orchestrator of device certificates

Verif CeD, Verif CDVerif CeD, Verif CD

R3. Envoi aux serveurs BCKi des données BCKID et certificats CeD, CDR3. Sending BCKID data and CeD, CD certificates to BCKi servers

[ORC1 → BCKi][ORC1 → BCKi]

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

BCKID||CeD||CD → BCKiBCKID||CeD||CD → BCKi

L'orchestrateur ORC1 envoie à chaque serveur de sauvegarde BCKi l’identifiant de la sauvegarde BCKID, le certificat éphémère CeD et le certificat CD du dispositif HW’.The ORC1 orchestrator sends to each BCKi backup server the backup identifier BCKID, the ephemeral CeD certificate and the CD certificate of the HW’ device.

R4. Vérification par chaque serveur BCKi des certificats du dispositifR4. Verification by each BCKi server of the device certificates

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Verif CeD, Verif CDVerif CeD, Verif CD

R5. Authentification mutuelle et création d’un canal sécurisé entre les serveurs BCKi et le dispositif, par l'intermédiaire de l'orchestrateurR5. Mutual authentication and creation of a secure channel between BCKi servers and the device, through the orchestrator

R5.1 Génération par chaque serveur BCKi d’un certificat éphémèreR5.1 Generation by each BCKi server of an ephemeral certificate

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

(peBi, PeBi) = AsymKeyGen()(peBi, PeBi) = AsymKeyGen()

Sign(pBi, ReB||PeBi)Sign(pBi, ReB||PeBi)

CeBi = PeBi||Sign(pBi, ReB||PeBi)CeBi = PeBi||Sign(pBi, ReB||PeBi)

R5.2 Génération par chaque serveur BCKi d’une clé de sessionR5.2 Generation by each BCKi server of a session key

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

kBi = ECDH(peBi, PeD)kBi = ECDH(peBi, PeD)

R5.3 Génération par chaque serveur BCKi d’un code de hachage chiffréR5.3 Generation by each BCKi server of an encrypted hash code

Hi = Hash(PeBi||BCKID||BCKDT)Hi = Hash(PeBi||BCKID||BCKDT)

CHi = {Hi}kBiCHi = {Hi}kBi

R5.4 Envoi à l'orchestrateur par chaque serveur BCKi de son certificat et du code de hachage chiffréR5.4 Sending to the orchestrator by each BCKi server its certificate and the encrypted hash code

[BCKi → ORC1][BCKi → ORC1]

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

RETDTi = CeBi||CBi||CHiRETDTi = CeBi||CBi||CHi

R5.5 Envoi au dispositif des données reçues des serveurs BCKiR5.5 Sending data received from BCKi servers to the device

[ORC1 → HW'][ORC1 → HW']

{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm}k0{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm}k0

R5.6 Déchiffrement par le dispositif de la chaine de données reçue de l'orchestrateurR5.6 Decryption by the device of the data chain received from the orchestrator

{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm}-1k0{BCKID||BCKDT||RETDT1|…||RETDTi||…||RETDTm} -1 k0

R5.7 Validation des données de la sauvegarde par l’utilisateurR5.7 User validation of backup data

Validate BCKDTValidate BCKDT

L’utilisateur valide les données de la sauvegarde BCKDT, notamment prénom, nom de famille, date de naissance, optionnellement lieu de naissance.The user validates the BCKDT backup data, including first name, last name, date of birth, optionally place of birth.

R5.8 Vérification par le dispositif des certificats des serveurs BCKiR5.8 Verification by the device of BCKi server certificates

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

Verif CeBi, Verif CBiVerif CeBi, Verif CBi

R5.9 Génération par le dispositif des clés de session kBi et vérification des codes de hachage chiffrés CHiR5.9 Generation by the device of session keys kBi and verification of encrypted hash codes CHi

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

kBi = ECDH(peD, PeBi)kBi = ECDH(peD, PeBi)

{Hi}-1kBi{Hi} -1 kBi

Validate Hi (Hi = Hash(PeBi||BCKID||BCKDT)Validate Hi (Hi = Hash(PeBi||BCKID||BCKDT)

R6. Préparation de la restaurationR6. Preparing the restoration

R6.1 Envoi par le dispositif à l'orchestrateur de confirmations de restaurationR6.1 Sending restoration confirmations by the device to the orchestrator

[HW'→ ORC1][HW'→ORC1]

{ConfirmRestore1}kB1||{ConfirmRestore2}kB2||…||{ConfirmRestorei}kBi||…|| {ConfirmRestorem}kBm → ORC1{ConfirmRestore1}kB1||{ConfirmRestore2}kB2||…||{ConfirmRestore i }kBi||…|| {ConfirmRestore m }kBm → ORC1

Le dispositif HW’ renvoie à l'orchestrateur ORC1 pour chaque serveur BCKi, une confirmation de restauration individuelle "ConfirmRestorei" qui est chiffrée avec la clé kBi de chaque serveur BCKi. Chaque confirmation est un code binaire prédéfini.The HW' device sends back to the orchestrator ORC1 for each BCKi server, an individual restoration confirmation "ConfirmRestore i " which is encrypted with the key kBi of each BCKi server. Each confirmation is a predefined binary code.

R6.2 Envoi aux serveurs BCKi des confirmations de restaurationR6.2 Sending restoration confirmations to BCKi servers

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

BCKID||{ConfirmRestorei}kBi → BCKiBCKID||{ConfirmRestore i }kBi → BCKi

L'orchestrateur ORC1 envoie à chaque serveur BCKi l’identifiant de la sauvegarde BCKID concaténé et la confirmation de restauration {ConfirmRestorei}kBi qui lui est destinée.The ORC1 orchestrator sends to each BCKi server the concatenated BCKID backup identifier and the restoration confirmation {ConfirmRestore i }kBi intended for it.

R6.3 Vérification par les serveurs BCKi des confirmations de restaurationR6.3 Verification by BCKi servers of restoration confirmations

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

{ConfirmRestorei}-1kBi{ConfirmRestore i } -1 kBi

Store CDStore CD

Chaque serveur BCKi déchiffre le message de confirmation émis par le dispositif HW’ et qui lui a été communiqué par l'orchestrateur ORC1, et mémorise le certificat CD du dispositif HW’ qu’il a précédemment vérifié.Each BCKi server decrypts the confirmation message sent by the HW’ device and which was communicated to it by the ORC1 orchestrator, and memorizes the CD certificate of the HW’ device that it has previously verified.

R6.4 Confirmation par chaque serveur BCKi que la restauration peut être initiée sous réserve de vérification d’identitéR6.4 Confirmation by each BCKi server that the restoration can be initiated subject to identity verification

[BCKi→ ORC1][BCKi→ORC1]

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

OK_for_IDVOK_for_IDV

Claque serveur BCKi indique à l'orchestrateur ORC1 qu’il est prêt à restituer la part Si qu’il a sauvegardée sous réserve que l’utilisateur s’identifie à travers une étape IDVi.BCKi server click indicates to the ORC1 orchestrator that it is ready to restore the Si part that it has saved provided that the user identifies himself through an IDVi step.

R7. Réalisation des étapes de vérification d'identité IDVi par les serveurs IDVSRViR7. Carrying out IDVi identity verification steps by IDVSRVi servers

Pour chaque serveur BCKi, i allant de 1 à mFor each BCKi server, i ranging from 1 to m

IDVRiIDVRi

L’utilisateur est redirigé par l'orchestrateur ORC1 sur chaque serveur BCKi et chaque serveur BCKi procède à sa propre vérification IDVi de l’identité pivot de l’utilisateur. Dans le présent mode de réalisation où les étapes IDVi sont confiées à des prestataires, chaque serveur BCKi connecte l’utilisateur au serveur IDVSRVi auquel il est affilié à travers une passerelle GTW. Le service IDVSi du prestataire procède à une vérification de l’identité de l’utilisateur, puis confirme à l'orchestrateur ORC1 que son identité a été vérifiée et que l'étape de sauvegarde de la graine peut être initiée.The user is redirected by the ORC1 orchestrator to each BCKi server and each BCKi server performs its own IDVi verification of the user's pivotal identity. In this embodiment where the IDVi steps are entrusted to service providers, each BCKi server connects the user to the IDVSRVi server to which it is affiliated through a GTW gateway. The service provider's IDVSi service verifies the user's identity, then confirms to the orchestrator ORC1 that his identity has been verified and that the seed saving step can be initiated.

Il sera noté que la durée de chaque étape de vérification d'identité IDVRi peut aller de quelques minutes à plusieurs jours selon les exigences de chaque serveur BCKi ou du prestataire qui réalise l’IDVRi. Des vérifications par des personnes physiques peuvent être systématiquement prévues avec certains prestataires d'IDV.It should be noted that the duration of each IDVRi identity verification step can range from a few minutes to several days depending on the requirements of each BCKi server or of the service provider carrying out the IDVRi. Verifications by natural persons may be systematically planned with certain IDV providers.

R8. Rétablissement des canaux de communication sécurisés après réalisation des étapes de vérification d'identité IDViR8. Restoration of secure communication channels after completion of IDVi identity verification steps

[HW' → ORC1][HW' → ORC1]

Continue RestoreContinue Restore

Une fois l'étape de vérification d'identité terminée, soit parfois plusieurs jours plus tard, l’utilisateur relance l'étape de restauration. Le dispositif HW’ envoie à l'orchestrateur ORC1 une demande de reprise de la restauration "Continue Restore ".Once the identity verification step is completed, sometimes several days later, the user restarts the restoration step. The HW’ device sends a “Continue Restore” request to the orchestrator ORC1.

Répétition des étapes R2.1 à R2.7, R3, R5.1 à R5.9Repeat steps R2.1 to R2.7, R3, R5.1 to R5.9

Comme plusieurs jours peuvent s’écouler pendant la réalisation des étapes de vérification IDVi, dans un mode de réalisation les certificats de session précédents ne sont pas conservés. Ainsi, les étapes R2.1 à R2.7, R3, R5.1 à R5.9 sont exécutées de nouveau pour reprendre le processus de restauration là où il s’était arrêté, mais avec de nouvelles clés de session k0 et kBi.As several days may pass while the IDVi verification steps are completed, in one embodiment previous session certificates are not retained. Thus, steps R2.1 to R2.7, R3, R5.1 to R5.9 are executed again to resume the restoration process where it left off, but with new session keys k0 and kBi.

R9. Reprise de la restaurationR9. Resumption of catering

[ORC1 → BCKi][ORC1 → BCKi]

Pour chaque serveur BCKi, i allant de 1 à m (ou i allant de 1 à n)For each BCKi server, i ranging from 1 to m (or i ranging from 1 to n)

Continue Restore → BCKiContinue Restore → BCKi

Une fois les canaux sécurisés réouverts au moyen de nouvelles clés de session, l'orchestrateur répercute aux serveurs BCKi la demande de poursuite de la restauration. Il sera noté que si au cours des étapes IDVRi l’un des serveurs BCKi n’a pas pu vérifier l’identité de l’utilisateur avec un degré de certitude déterminé, il refusera de restituer la part qu’il détient et en informera l'orchestrateur ORC1. Si un nombre déterminé de serveurs de sauvegarde BCKi n’a pas vérifié avec succès l’identité de l’utilisateur et refuse de restituer les données qu’ils détiennent, l'orchestrateur peut être configuré pour suspendre la restitution des parts par les serveurs qui ont vérifié avec succès l’identité de l’utilisateur. Il peut optionnellement décider de soumettre l’utilisateur à une procédure supplémentaire de vérification de son identité. L'orchestrateur peut également être configuré pour analyser des scores de certitude quant à la vérification de l’identité de l’utilisateur, comme indiqué plus haut, et prendre une décision en fonction de cette analyse.Once the secure channels are reopened using new session keys, the orchestrator relays the request to continue the restoration to the BCKi servers. It will be noted that if during the IDVRi steps one of the BCKi servers has not been able to verify the identity of the user with a determined degree of certainty, it will refuse to return the share it holds and will inform the ORC1 orchestrator. If a specified number of BCKi backup servers have not successfully verified the user's identity and refuse to return the data they hold, the orchestrator can be configured to suspend the return of shares by the servers that successfully verified the user's identity. It may optionally decide to subject the user to an additional identity verification procedure. The orchestrator can also be configured to analyze user identity verification confidence scores, as discussed above, and make a decision based on that analysis.

Par ailleurs, dans une variante du procédé mentionnée ci-dessus et dans ce qui suit entre parenthèses, cette étape est limitée n serveurs de sauvegarde BCKi, au lieu de l'ensemble des serveurs de sauvegarde, si n parts seulement sont nécessaires à la reconstitution de la graine, avec n inférieur à m.Furthermore, in a variant of the method mentioned above and in what follows in parentheses, this step is limited to n BCKi backup servers, instead of all the backup servers, if only n parts are necessary for reconstitution of the seed, with n less than m.

R10. Vérification du certificat du dispositifR10. Checking the device certificate

Pour chaque serveur BCKi, i allant de 1 à m (ou i allant de 1 à n)For each BCKi server, i ranging from 1 to m (or i ranging from 1 to n)

Verif CD = CDCheck CD = CD

Chaque serveur BCKi s'assure que le certificat CD du dispositif HW’ est le même que le certificat CD reçu avant la conduite des étapes de vérification d'identité IDVi, qu’il a conservé.Each BCKi server ensures that the CD certificate of the HW’ device is the same as the CD certificate received before carrying out the IDVi identity verification steps, which it has retained.

R11. Transfert des parts à l'orchestrateur par les serveurs BCKiR11. Transfer of shares to the orchestrator by BCKi servers

Pour chaque serveur BCKi, i allant de 1 à m (ou i allant de 1 à n)For each BCKi server, i ranging from 1 to m (or i ranging from 1 to n)

{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → ORC1{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → ORC1

Chaque serveur BCKi envoie à l'orchestrateur ORC1 la part Si qu’il détient, chiffrée au moyen de sa clé kBi, que l'orchestrateur ne connaît pas.Each BCKi server sends to the orchestrator ORC1 the part Si that it holds, encrypted using its key kBi, which the orchestrator does not know.

R12. Transfert des parts au dispositif par l'orchestrateurR12. Transfer of shares to the device by the orchestrator

{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → HW’{S1}kB1||{S2}kB2||….||{Si}kBi||…||{Sm}kBm → HW’

L'orchestrateur ORC1 envoie au dispositif HW’ toutes les parts Si reçues des serveurs BCKi sous forme chiffrée au moyen des clés kBi.The orchestrator ORC1 sends to the HW’ device all the Si shares received from the BCKi servers in encrypted form using the kBi keys.

R13. Déchiffrement des parts par le dispositif et restauration de la graineR13. Decryption of shares by the device and restoration of the seed

Pour chaque serveur BCKi, i allant de 1 à m (ou i allant de 1 à n)For each BCKi server, i ranging from 1 to m (or i ranging from 1 to n)

{Si}-1kBi{Si} -1 kBi

S = SS-1(S1, S2,…Si…Sm)S = SS -1 (S1, S2,…Si…Sm)

(ou S = SS-1(S1, S2,…Si…Sn))(or S = SS -1 (S1, S2,…Si…Sn))

Après avoir déchiffré chaque part de rang i au moyen de la clé kBi correspondante, le dispositif HW’ restaure la graine à partir des parts reçues, ou d’une partie de celles-ci si leur nombre est supérieur à n.After having decrypted each share of rank i using the corresponding key kBi, the device HW' restores the seed from the shares received, or part of them if their number is greater than n.

R14. Confirmation finaleR14. Final confirmation

OK → ORC1OK → ORC1

Le dispositif HW’ confirme à l'orchestrateur ORC1 que la restauration de la graine est terminée.The HW’ device confirms to the orchestrator ORC1 that the seed restoration is complete.

Il apparaîtra clairement à l'homme de l'art que le procédé qui a été décrit est susceptible de nombreuses autres variantes et modes de réalisation. La structure des certificats mis en jeu dans le procédé a été décrite ci-dessus selon deux variantes, par exemple :It will be clear to those skilled in the art that the process which has been described is capable of numerous other variants and embodiments. The structure of the certificates involved in the process has been described above according to two variants, for example:

Cx = [Px, Sign(pL, Px)]Cx = [Px, Sign(pL, Px)]

Cex = Pex||{Sign(px, Rex||Pex)Cex = Pex||{Sign(px, Rex||Pex)

Les certificats éphémère pourraient aussi être du type :Ephemeral certificates could also be of the type:

Cex = Pex||{Sign(px, Pex)Cex = Pex||{Sign(px, Pex)

Le procédé peut aussi être mis en œuvre avec toute structure de certificat. Des certificats de type X509 peuvent notamment être utilisés. De même, d'autres fonctions de chiffrement ou algorithmes cryptographiques peuvent être utilisés, notamment dans le cadre d'une mise en œuvre basée sur la crytographie RSA.The method can also be implemented with any certificate structure. In particular, X509 type certificates can be used. Likewise, other encryption functions or cryptographic algorithms can be used, particularly in the context of an implementation based on RSA cryptography.

La montre un système pour la mise en œuvre du procédé de l'invention qui se distingue de celui de la en ce que le serveur ORCSRV1 est remplacé par un serveur ORCSRV2 qui exécute un programme orchestrateur ORC2 (ci-après "orchestrateur ORC2"). L'orchestrateur OCR2 diffère de l'orchestrateur ORC1 en ce qu'il n'assure pas la transmission au dispositif HW des données émises par les serveurs de sauvegarde BCKi, et réciproquement, et n'agit donc pas comme une passerelle ou "serveur proxy".There shows a system for implementing the method of the invention which is distinguished from that of the in that the ORCSRV1 server is replaced by an ORCSRV2 server which executes an ORC2 orchestrator program (hereinafter "ORC2 orchestrator"). The OCR2 orchestrator differs from the ORC1 orchestrator in that it does not ensure the transmission of data transmitted by the BCKi backup servers to the HW device, and vice versa, and therefore does not act as a gateway or "proxy server". ".

Lorsque l'utilisateur initie une étape de sauvegarde de la graine, le dispositif HW adresse à l'orchestrateur OCR2 une requête en sauvegarde BCKRQ à la suite de quoi l'orchestrateur ORC2 engage les étapes précédemment décrites de génération d'un identifiant BCKID de la sauvegarde, et de collecte d'informations concernant l'utilisateur, pour générer les données de la sauvegarde BCKDT. L'orchestrateur conduit également l'étape initiale IDV0 de vérification de l'identité de l'utilisateur. Si cette étape est concluante, l'orchestrateur délivre au dispositif HW des autorisations de sauvegarde BCKPASSi, à raison d'une autorisation par serveur de sauvegarde BCKi, et envoie chaque autorisation au serveur BCKi concerné.When the user initiates a seed saving step, the HW device sends a BCKRQ backup request to the OCR2 orchestrator following which the ORC2 orchestrator initiates the previously described steps of generating a BCKID identifier of the seed. backup, and collecting information about the user, to generate the BCKDT backup data. The orchestrator also conducts the initial IDV0 step of verifying the identity of the user. If this step is successful, the orchestrator delivers BCKPASi backup authorizations to the HW device, at the rate of one authorization per BCKi backup server, and sends each authorization to the BCKi server concerned.

Chaque autorisation BCKPASSi forme une sorte de "passeport" permettant au dispositif HW de savoir à quel serveur BCKi il doit s'adresser pour sauvegarder une part Si de la graine, et lui permettant de se connecter au serveur BCKi pour procéder à la sauvegarde sans être rejeté par ce dernier. Chaque autorisation BCKPASSi peut comprendre diverses informations et notamment les informations qui figuraient précédemment dans les données de la sauvegarde BCKDT et l'identifiant BCKID. Les autorisations BCKPASSi sont conservées par le logiciel compagnon ainsi que, de préférence, dans le compte de l'utilisateur UACC sur le serveur de compte UASRV. Dans une variante, l'orchestrateur délivre une autorisation générale BCKPASS contenant une concaténation de toutes les informations figurant dans les autorisations BCKPASSi.Each BCKPASSi authorization forms a sort of "passport" allowing the HW device to know which BCKi server it must contact to save a Si part of the seed, and allowing it to connect to the BCKi server to proceed with the backup without being rejected by the latter. Each BCKPASSI authorization may include various information and in particular the information which previously appeared in the BCKDT backup data and the BCKID identifier. BCKPASSI permissions are maintained by the companion software as well as, preferably, in the user's UACC account on the UASRV account server. Alternatively, the orchestrator issues a general BCKPASS authorization containing a concatenation of all the information contained in the BCKPASSi authorizations.

En référence à la , lorsque l'utilisateur veut restaurer la graine, le logiciel compagnon se connecte aux serveurs de sauvegarde BCKi qu'il identifie au moyen des adresses contenues dans les autorisations BCKPASSi, puis passe la main au dispositif HW pour qu'il établisse des canaux sécurisés avec les serveurs de sauvegarde BCKi, par des échanges de clé tels que décrits plus haut. Lorsque les canaux sécurisés ont été créés, les serveurs de sauvegarde BCKi engagent les étapes IDVi de vérification de l'identité pivot de l'utilisateur.In reference to the , when the user wants to restore the seed, the companion software connects to the BCKi backup servers which it identifies using the addresses contained in the BCKPASSi authorizations, then hands over to the HW device so that it establishes secure channels with BCKi backup servers, by key exchanges as described above. When the secure channels have been created, the BCKi backup servers initiate the IDVi steps of verifying the user's pivotal identity.

Le rôle de superviseur des étapes IDVi qui a été précédemment dévolu à l'orchestrateur ORC1 peut également être dévolu ici à l'orchestrateur ORC2. Ce dernier est alors sollicité par les serveurs de sauvegarde BCKi pour analyser les résultats des étapes IDVi. Si ces résultats sont concluants, l'orchestrateur ORC2 délivre au dispositif HW des autorisations de restauration RESTPASSi qu'il communique également aux serveurs de sauvegarde BCKi. Le dispositif HW rétablit ensuite un canal sécurisé avec les serveurs de sauvegarde BCKi et leur présente les autorisations RESTPASSi pour récupérer les parts Si de la graine.The role of supervisor of the IDVi stages which was previously assigned to the orchestrator ORC1 can also be assigned here to the orchestrator ORC2. The latter is then requested by the BCKi backup servers to analyze the results of the IDVi steps. If these results are conclusive, the ORC2 orchestrator issues RESTPASSi restoration authorizations to the HW device which it also communicates to the BCKi backup servers. The HW device then reestablishes a secure channel with the BCKi backup servers and presents them with RESTPASSi authorizations to recover the Si shares of the seed.

Dans le cas, ultime, où l’utilisateur aurait fermé son compte sur le serveur de compte UASRV, désinstallé le logiciel compagnon en effaçant les données qu'il comportait, et ne pourrait donc plus récupérer les autorisations BCKPASSi, ainsi que dans le cas, tout aussi ultime, où l'orchestrateur ORC2 n'existerait plus, une solution peut être prévue pour permettre à l'utilisateur de récupérer sa graine, en lui permettant de conduire une pluralité d'étapes individuelles de vérification de son identité auprès de chaque serveur de sauvegarde BCKi .In the ultimate case, where the user would have closed his account on the UASRV account server, uninstalled the companion software by erasing the data it contained, and would therefore no longer be able to recover the BCKPASSI authorizations, as well as in the case, equally ultimate, where the ORC2 orchestrator would no longer exist, a solution can be provided to allow the user to recover his seed, by allowing him to carry out a plurality of individual steps of verifying his identity with each server BCKi backup.

Dans une variante du procédé permettant de faciliter la récupération des parts en cas de défaillance totale du système, ou de perte de l'identifiant BCKID (mode de réalisation figures 3A, 3B) ou des autorisations BCKPASSi, il peut être prévu que l'organisation en charge de l'orchestrateur ORC1 ou ORC2 délivre à l'utilisateur, par exemple par la voie postale, un certificat de sauvegarde revêtu d'un certificat d'authenticité inviolable tel un hologramme. Un tel certificat de sauvegarde n'épargnera pas l'utilisateur des étapes de vérification de son identité auprès des serveurs de sauvegarde, mais comportera suffisamment d'informations pour offrir un degré supplémentaire de certitude quant à sa qualité de détenteur légitime de la graine lorsque les étapes de vérification IDVi seront conduites.In a variant of the method making it possible to facilitate the recovery of shares in the event of total failure of the system, or loss of the BCKID identifier (embodiment in Figures 3A, 3B) or BCKPASSi authorizations, it can be provided that the organization in charge of the orchestrator ORC1 or ORC2 delivers to the user, for example by post, a backup certificate coated with an inviolable certificate of authenticity such as a hologram. Such a backup certificate will not spare the user the steps of verifying his identity with the backup servers, but will include sufficient information to provide an additional degree of certainty as to his status as the legitimate holder of the seed when the IDVi verification steps will be conducted.

La montre un exemple de réalisation d’un portefeuille matériel HW permettant la mise en œuvre du procédé. Le dispositif HW comprend un élément sécurisé SE1, un microcontrôleur MCU1 et un écran tactile TS1 ("Touch Screen"). L’écran tactile TS1 comprend un afficheur à encre électronique EID ("E-Ink Display") et un module tactile TM ("Touch Module"). L’écran tactile TS1 est sous le contrôle de l’élément sécurisé SE1. A cet effet, les ressources en termes d’entrées/sorties de l’élément sécurisé SE1 sont réparties en trois groupes d’entrées/sorties IOGA, IOGB, IOGC. Le groupe d’entrées/sorties IOGA est affecté à la mise en œuvre d’un bus BS1 reliant l’élément sécurisé SE1 au microcontrôleur MCU1. Le groupe d’entrées/sorties IOGB est affecté à la mise en œuvre d’un bus BS2 reliant l’élément sécurisé SE1 à l’afficheur EID, et le groupe d’entrées/sorties IOGC est affecté à la mise en œuvre d’un bus BS3 reliant l’élément sécurisé SE1 au module tactile TM. Le bus BS1 est par exemple un bus IEC/ISO 7816, le bus BS2 est par exemple un bus SPI et le bus BS3 un bus I2C. L’élément sécurisé est par exemple une puce STMicroelectronics® de la série ST33K. Le dispositif HW comporte par ailleurs divers périphériques contrôlés par le microcontrôleur MCU1, par exemple :There shows an example of realization of an HW hardware wallet allowing the implementation of the method. The HW device includes a secure element SE1, a microcontroller MCU1 and a touch screen TS1 ("Touch Screen"). The TS1 touch screen includes an EID electronic ink display ("E-Ink Display") and a TM touch module ("Touch Module"). The touch screen TS1 is under the control of the secure element SE1. For this purpose, the resources in terms of inputs/outputs of the secure element SE1 are divided into three groups of inputs/outputs IOGA, IOGB, IOGC. The IOGA input/output group is assigned to the implementation of a BS1 bus connecting the secure element SE1 to the microcontroller MCU1. The IOGB input/output group is assigned to the implementation of a BS2 bus connecting the secure element SE1 to the EID display, and the IOGC input/output group is assigned to the implementation of a BS3 bus connecting the secure element SE1 to the touch module TM. The BS1 bus is for example an IEC/ISO 7816 bus, the BS2 bus is for example an SPI bus and the BS3 bus is an I2C bus. The secure element is for example an STMicroelectronics® chip from the ST33K series. The HW device also includes various peripherals controlled by the MCU1 microcontroller, for example:

- une batterie BAT ;- a BAT battery;

- un circuit intégré PMIC de gestion d’alimentation reçoit une tension Vbat de la batterie lorsque celle-ci est chargée, fournit la tension Vbat à la batterie lorsque celle-ci doit être chargée, et fournit une tension d’alimentation régulée Vcc au microcontrôleur MCU1, à l’élément sécurisé SE1 et à l’écran tactile TS1 ;- a PMIC power management integrated circuit receives a voltage Vbat from the battery when it is charged, supplies the voltage Vbat to the battery when it must be charged, and supplies a regulated supply voltage Vcc to the microcontroller MCU1, secure element SE1 and touch screen TS1;

- une antenne QiA pour la charge de la batterie par induction conformément à la technologie Qi. L’antenne QiA est reliée à un circuit intégré de charge sans fil WCIC (“Wireless Charging Integrated Circuit") . Le circuit WCIC fournit une tension Vqi au circuit PMIC pour la charge de la batterie ;- a QiA antenna for inductive battery charging in accordance with Qi technology. The QiA antenna is connected to a wireless charging integrated circuit WCIC (“Wireless Charging Integrated Circuit”). The WCIC circuit provides a voltage Vqi to the PMIC circuit for charging the battery;

- un port USB U1. Le port USB fournit au circuit PMIC une tension Vusb pour la charge de la batterie, fournit au microcontrôleur MCU1 des données DTu reçues d’un dispositif externe connecté au port USB, et transmet des données DTu au dispositif externe ;- a U1 USB port. The USB port provides the PMIC circuit with Vusb voltage for battery charging, provides the MCU1 microcontroller with DTu data received from an external device connected to the USB port, and transmits DTu data to the external device;

- une antenne Bluetooth BTA, recevant un signal radiofréquence RFS fourni par un circuit BTM de gestion des communications Bluetooth. Le circuit BTM fournit des données DTb échangées avec un dispositif externe via une liaison Bluetooth ou transmet des données DTb au dispositif externe via la liaison Bluetooth.- a BTA Bluetooth antenna, receiving an RFS radio frequency signal provided by a BTM circuit for managing Bluetooth communications. The BTM circuit provides DTb data exchanged with an external device via a Bluetooth link or transmits DTb data to the external device via the Bluetooth link.

Le dispositif HW présente l’avantage de posséder un écran tactile exclusivement contrôlé par l’élément sécurisé SE1 et donc non susceptible de corruption, y compris en cas d’attaque sur le microcontrôleur MCU1. Ce dernier n'exécute aucun programme d’application et ne stocke aucun des secrets cryptographiques utilisés par l’élément sécurisé. Il gère seulement les périphériques en transmettant à l’élément sécurisé les données DTb, DTu reçues par l’interface de communication choisie par l’utilisateur, ou en transmettant au dispositif externe des données DTb, DTu fournies par l’élément sécurisé. Le dispositif HW n’offre donc aucune possibilité de connexion directe à l’Internet et reste, malgré son écran tactile, un portefeuille matériel pour le stockage à froid de clés privées offrant le plus haut niveau de sécurité. L’élément sécurisé SE1 comporte également un espace mémoire MS1 comprenant une zone de mémoire morte, une zone mémoire non volatile programmable et effaçable électriquement et une zone mémoire volatile. La zone mémoire non volatile programmable et effaçable électriquement reçoit un système d’exploitation de l’élément sécurisé. Celui-ci est configuré pour permettre la mise en œuvre du procédé de l'invention.The HW device has the advantage of having a touch screen exclusively controlled by the secure element SE1 and therefore not susceptible to corruption, including in the event of an attack on the microcontroller MCU1. The latter does not run any application programs and does not store any of the cryptographic secrets used by the secure element. It only manages the peripherals by transmitting to the secure element the DTb, DTu data received by the communication interface chosen by the user, or by transmitting to the external device DTb, DTu data provided by the secure element. The HW device therefore does not offer any possibility of direct connection to the Internet and remains, despite its touch screen, a hardware wallet for the cold storage of private keys offering the highest level of security. The secure element SE1 also includes a memory space MS1 comprising a read-only memory zone, a programmable and electrically erasable non-volatile memory zone and a volatile memory zone. The programmable and electrically erasable non-volatile memory area receives an operating system from the secure element. This is configured to allow the implementation of the method of the invention.

Le dispositif HW se prête bien à la mise en œuvre du procédé grâce à son écran tactile, qui peut être choisi de grande taille et présenter par exemple une diagonale supérieure ou égale à 3,5 pouces (un pouce étant égal à 2,54 cm), et comprendre au moins 600 x 400 pixels. Dans un mode de réalisation, l’écran présente une diagonale de 3,9 pouces (9,906 cm) et offre 670 x 496 pixels, ce qui constitue un très grand écran pour un portefeuille matériel de cryptoactifs dépourvu de connectivité Internet.The HW device lends itself well to the implementation of the method thanks to its touch screen, which can be chosen large and have for example a diagonal greater than or equal to 3.5 inches (one inch being equal to 2.54 cm ), and include at least 600 x 400 pixels. In one embodiment, the screen has a diagonal of 3.9 inches (9.906 cm) and offers 670 x 496 pixels, which constitutes a very large screen for a hardware cryptoasset wallet without Internet connectivity.

Les tableaux 2 et 3 ci-après ainsi que les figures 8 et 9 décrivent un exemple de configuration du dispositif HW et du logiciel compagnon HSW pour la mise en œuvre d'un mode de réalisation du procédé de l'invention, dans lequel trois serveurs de sauvegarde sont utilisés, la graine étant donc sauvegardée au moyen de trois parts. Le dispositif HW est utilisé en association avec le dispositif hôte HDV auquel il peut être relié via son interface USB ou Bluetooth. En sus de l'écran tactile TS1 du dispositif HW, le dispositif hôte HDV comporte lui-même un écran permettant à l'utilisateur USR de conduire avec le logiciel compagnon, certaines étapes du procédé tandis que d'autres étapes sont réalisées avec le dispositif HW.Tables 2 and 3 below as well as Figures 8 and 9 describe an example of configuration of the HW device and the HSW companion software for the implementation of an embodiment of the method of the invention, in which three servers backup are used, the seed therefore being saved by means of three parts. The HW device is used in association with the HDV host device to which it can be connected via its USB or Bluetooth interface. In addition to the TS1 touch screen of the HW device, the HDV host device itself includes a screen allowing the USR user to drive with the companion software, certain steps of the process while other steps are carried out with the device H.W.

Dans les tableaux 2 et 3, les mentions entre crochets correspondent à des boutons virtuels que l'utilisateur doit presser pour sélectionner l'option qu'il retient. Les mentions entre guillemets sont des informations affichées par le dispositif HW ou le dispositif hôte HDV. Les mentions "xx" correspondent à des zones affichées ou des zones dans lesquelles l'utilisateur doit fournir les informations demandées.In tables 2 and 3, the entries in square brackets correspond to virtual buttons that the user must press to select the option they choose. Mentions in quotation marks are information displayed by the HW device or HDV host device. The “xx” mentions correspond to displayed areas or areas in which the user must provide the requested information.

Le tableau 2 ci-après et la décrivent la mise en œuvre du procédé en ce qui concerne la sauvegarde de la graine. Au cours d'une étape D0, le logiciel compagnon offre à l'utilisateur le choix entre, d'une part, sauvegarder sa graine et, d'autre part, initialiser ou restaurer le dispositif HW. On suppose ici que le dispositif HW a été préalablement mis en service mais que l'utilisateur n'a jamais sauvegardé sa graine. Ce dernier choisit donc la première option. Au cours d'une étape D1, le logiciel compagnon offre deux options à l'utilisateur, à savoir une sauvegarde classique qui consistera dans l'affichage de la phrase de récupération par le dispositif HW afin que l'utilisateur puisse la sauvegarder sur le support de son choix, ou une sauvegarde en faisant appel à un service de protection automatique mettant en œuvre le procédé selon l'invention. Au cours d'une étape D3, l'utilisateur est invité à créer un compte sur le serveur de comptes clients. Au cours d'une étape D4, l'utilisateur crée ce compte et fournit des informations relatives à son identité, dont une partie au moins constitue les informations de son identité pivot incorporée dans les données de la sauvegarde BCKDT. Au cours d'une étape D5 il définit le mot de passe de son compte.Table 2 below and the describe the implementation of the method with regard to saving the seed. During a step D0, the companion software offers the user the choice between, on the one hand, saving his seed and, on the other hand, initializing or restoring the HW device. We assume here that the HW device was previously put into service but that the user never saved his seed. The latter therefore chooses the first option. During a step D1, the companion software offers two options to the user, namely a classic backup which will consist of the display of the recovery phrase by the HW device so that the user can save it on the medium of its choice, or a backup using an automatic protection service implementing the method according to the invention. During a step D3, the user is invited to create an account on the customer account server. During a step D4, the user creates this account and provides information relating to his identity, at least part of which constitutes the information of his pivotal identity incorporated in the BCKDT backup data. During a step D5 he defines the password for his account.

Au cours d'une étape D6 le logiciel compagnon rappelle à l'utilisateur qu'il va devoir se soumettre à une étape de vérification de son identité. Il s'agit ici de l'étape IDV0 qui permettra à l'orchestrateur de s'assurer que les informations constituant son identité pivot sont correctes, notamment son prénom, son nom et sa date de naissance. L'étape IDV0 est conduite à des étapes D7 à D11 au moyen de l'écran du dispositif hôte HDV, ainsi que sa caméra. Une fois l'étape IDV0 réalisée avec succès, l'utilisateur doit connecter le dispositif HW au dispositif hôte HDV à une étape D12.During a step D6 the companion software reminds the user that he will have to undergo a step of verifying his identity. This is the IDV0 step which will allow the orchestrator to ensure that the information constituting his pivotal identity is correct, in particular his first name, his last name and his date of birth. Step IDV0 is conducted in steps D7 to D11 by means of the screen of the HDV host device, as well as its camera. Once step IDV0 has been successfully completed, the user must connect the HW device to the HDV host device in step D12.

Ensuite, le dispositif HW prend en charge la suite du processus en demandant à l'utilisateur à une étape D13 de saisir son mot de passe, puis à des étapes D14, D15 de vérifier son identité. Le dispositif HW procède ensuite à la sauvegarde de la graine à une étape D16.Then, the device HW takes care of the rest of the process by asking the user in a step D13 to enter his password, then in steps D14, D15 to verify his identity. The HW device then proceeds to save the seed in step D16.

Le tableau 3 ci-après et la décrivent l'étape de restauration de la graine. A l'étape D0, l'utilisateur choisit l'option Initialiser/Restaurer. Au cours d'une étape D20, le logiciel compagnon demande à l'utilisateur de connecter le dispositif HW' au dispositif hôte HDV. Au cours d'une étape D21, le logiciel compagnon et le dispositif HW' confirment que la connexion a été effectuée. Au cours d'une étape D22, l'utilisateur doit entrer le mot de passe du dispositif HW'. Au cours d'une étape D22, le dispositif HW' propose à l'utilisateur de préciser s'il veut initialiser le dispositif HW' en tant que nouveau dispositif ou s'il veut procéder à une restauration à partir d'une phrase de récupération. L'utilisateur choisit ici l'option "restauration". Au cours d'une étape D24, le dispositif HW' demande à l'utilisateur s'il veut restaurer le dispositif HW" à partir du service de protection selon l'invention ou à partir d'une phrase de récupération qu'il aurait conservée (restauration manuelle). L'utilisateur choisit le service de protection.Table 3 below and the describe the seed restoration stage. At step D0, the user chooses the Initialize/Restore option. During a step D20, the companion software asks the user to connect the HW' device to the HDV host device. During a step D21, the companion software and the device HW' confirm that the connection has been made. During a step D22, the user must enter the password of the device HW'. During a step D22, the device HW' asks the user to specify whether he wants to initialize the device HW' as a new device or whether he wants to carry out a restoration from a recovery phrase . Here the user chooses the “restoration” option. During a step D24, the device HW' asks the user if he wants to restore the device HW" from the protection service according to the invention or from a recovery phrase that he would have kept (manual restore). The user chooses the protection service.

Au cours d'une étape D25, le logiciel compagnon prend en charge la suite du processus et informe l'utilisateur qu'il va devoir se soumettre à trois étapes de vérification de son identité. La première sera effectuée avec le dispositif HW' et les deux autres seront effectuées auprès de prestataires d'IDV. Au cours d'une étape D26, l'utilisateur doit confirmer les informations affichées par le dispositif HW' concernant son identité pivot (des informations supplémentaires à celles formant l'identité pivot peuvent être affichées par le dispositif HW' au cours de cette étape, comme on le voit sur le tableau 3). Au cours d'une étape D27, le logiciel compagnon indique à l'utilisateur qu'il va être mis en relation avec le premier partenaire d'IDV et lui demande de confirmer son accord. L'accord de l'utilisateur conduit le logiciel compagnon à se mettre en liaison avec un serveur partenaire IDVSRVi, par l'intermédiaire de sa passerelle GTW, comme décrit plus haut. Au cours d'étapes D28 à D32, l'utilisateur réalise les actions demandées par le premier partenaire d'IDV pour l'acquisition des informations nécessaires à la première vérification d'identité, au moyen de l'écran et de la caméra du dispositif hôte HDV. Au cours d'une étape D33, le logiciel compagnon indique à l'utilisateur qu'il va être mis en relation avec le deuxième partenaire d'IDV et lui demande de confirmer son accord. L'accord de l'utilisateur conduit le logiciel compagnon à se mettre en liaison avec un autre serveur partenaire IDVSRVi, par l'intermédiaire de sa passerelle GTW. Au cours d'étapes résumées dans le tableau par une seule étape D34, l'utilisateur réalise les actions demandées par le deuxième partenaire d'IDV pour l'acquisition des informations nécessaires à la deuxième vérification d'identité. Ces étapes peuvent être identiques, similaires ou différentes de celles de la première vérification d'identité. Il sera noté que la vérification d'identité n'est pas achevée une fois ces étapes réalisées et que le résultat de chaque vérification pourrait n'être fourni à l'utilisateur que quelques heures voire quelques jours plus tard, comme cela a été expliqué plus haut. Lorsque l'identité de l'utilisateur a été vérifiée, le dispositif HW' récupère les parts S1, S2, S3 de la graine et restaure celle-ci au cours d'une étape D35.During a step D25, the companion software takes over the rest of the process and informs the user that he will have to undergo three steps to verify his identity. The first will be carried out with the HW' device and the other two will be carried out with IDV providers. During a step D26, the user must confirm the information displayed by the device HW' concerning his pivot identity (information additional to that forming the pivot identity can be displayed by the device HW' during this step, as seen in table 3). During a step D27, the companion software indicates to the user that he will be put in contact with the first IDV partner and asks him to confirm his agreement. The user's agreement leads the companion software to connect with a partner server IDVSRVi, via its GTW gateway, as described above. During steps D28 to D32, the user carries out the actions requested by the first IDV partner for the acquisition of the information necessary for the first identity verification, by means of the screen and the camera of the device HDV host. During a step D33, the companion software indicates to the user that he will be put in contact with the second IDV partner and asks him to confirm his agreement. The user's agreement leads the companion software to connect with another IDVSRVi partner server, via its GTW gateway. During steps summarized in the table by a single step D34, the user carries out the actions requested by the second IDV partner for the acquisition of the information necessary for the second identity verification. These steps may be the same, similar, or different from those for the first identity verification. It will be noted that the identity verification is not completed once these steps have been carried out and that the result of each verification could only be provided to the user a few hours or even a few days later, as has been explained more high. When the identity of the user has been verified, the device HW' recovers the parts S1, S2, S3 of the seed and restores it during a step D35.

Il apparaîtra clairement à l'homme de l'art que le procédé qui vient d'être décrit peut également être mis en œuvre avec d'autres types de portefeuilles de cryptoactifs que celui qui vient d'être décrit. Le procédé peut notamment être mis en œuvre avec un portefeuille de cryptoactifs CW2 du type montré sur la . Le portefeuille de cryptoactifs CW2 comprend un microcontrôleur sécurisé SMCU, un écran TS2 pouvant être tactile, des circuits d’interface de communication CINT1 comprenant notamment une connectivité wifi et/ou Ethernet et lui permettant de se relier à l'Internet. Le microcontrôleur sécurisé utilise deux processeurs virtuels associés à un contrôle d'accès matériel, permettant de gérer deux zones TZ, NTZ d’exécution d’applications offrant des degrés de sécurité différents, la zone TZ étant appelée "zone de confiance" ("Trust Zone"). Le microcontrôleur sécurisé peut, dans certains modes de réalisation, être équipé d’un élément sécurisé SE2 couplé à la zone de confiance TZ pour réaliser des calculs cryptographiques et conduire les opérations les plus sensibles en termes de sécurité, notamment stocker la graine ainsi que diverses clés de comptes de cryptoactifs. Chaque zone peut fonctionner indépendamment de l'autre tout en utilisant le même noyau. En général, le microcontrôleur exécute un système d'exploitation dit "riche" dans la zone la moins fiable NTZ, par exemple Android, et un code spécialisé dans la zone de confiance TZ. Un tel dispositif est l'équivalent de la combinaison du portefeuille matériel HW (équivalent à la zone de confiance) et du dispositif hôte HDV (équivalent à la zone moins sécurisée) décrits dans ce qui précède, et n’a pas besoin d’être relié à un dispositif hôte pour exécuter des opérations sur la blockchain.It will be clear to those skilled in the art that the method which has just been described can also be implemented with other types of cryptoasset wallets than that which has just been described. The method can in particular be implemented with a CW2 cryptoasset portfolio of the type shown on the . The CW2 cryptoasset portfolio includes a secure SMCU microcontroller, a TS2 screen that can be touch-sensitive, CINT1 communication interface circuits including WiFi and/or Ethernet connectivity and allowing it to connect to the Internet. The secure microcontroller uses two virtual processors associated with hardware access control, making it possible to manage two zones TZ, NTZ for executing applications offering different degrees of security, the TZ zone being called "trust zone"("TrustArea"). The secure microcontroller can, in certain embodiments, be equipped with a secure element SE2 coupled to the trust zone TZ to carry out cryptographic calculations and conduct the most sensitive operations in terms of security, in particular storing the seed as well as various cryptoasset account keys. Each zone can operate independently of the other while using the same core. In general, the microcontroller runs a so-called "rich" operating system in the less trusted zone NTZ, for example Android, and specialized code in the trusted zone TZ. Such a device is the equivalent of the combination of the hardware wallet HW (equivalent to the trusted zone) and the host device HDV (equivalent to the less secure zone) described in the above, and does not need to be connected to a host device to execute operations on the blockchain.

Le procédé de l’invention peut également être mis en œuvre avec un portefeuille de cryptoactifs de type logiciel ("software wallet"). Contrairement à un portefeuille en ligne, un portefeuille logiciel permet stocker des clés de cryptoactifs directement sur un ordinateur de bureau, un ordinateur portable, un téléphone mobile ou équivalent. L'utilisateur conserve la propriété de ses clés et de la graine, et doit sécuriser lui-même leur stockage en faisant en sorte qu'un fraudeur ne puisse pas s'en emparer. A titre d'exemple, la montre un portefeuille de cryptoactifs CW3 de type logiciel exécuté par un dispositif électronique DV qui peut être du type précité, ordinateur, téléphone mobile ou équivalent. Le dispositif DV comprend un microprocesseur MPU équipé d'une interface de communication CINT2 lui permettant de se relier à l'Internet, d'une mémoire volatile RAM et d'une mémoire non volatile NVM, par exemple un disque dur magnétique ou un disque dur à l'état solide (SSD). Le programme CW3 formant le portefeuille de cryptoactifs logiciel est stocké dans la mémoire non volatile NVM du dispositif DV et est exécuté par le microprocesseur MPU à l'aide de sa mémoire RAM.The method of the invention can also be implemented with a software wallet of cryptoassets. Unlike an online wallet, a software wallet allows you to store cryptoasset keys directly on a desktop, laptop, mobile phone or equivalent. The user retains ownership of his keys and the seed, and must secure their storage himself by ensuring that a fraudster cannot get hold of them. As an example, the shows a CW3 cryptoasset portfolio of software type executed by an electronic device DV which may be of the aforementioned type, computer, mobile telephone or equivalent. The DV device comprises an MPU microprocessor equipped with a CINT2 communication interface allowing it to connect to the Internet, a volatile RAM memory and a non-volatile memory NVM, for example a magnetic hard disk or a hard disk solid state (SSD). The CW3 program forming the software cryptoasset portfolio is stored in the non-volatile NVM memory of the DV device and is executed by the MPU microprocessor using its RAM memory.

Tableau 2 : sauvegarde de la graine, interaction entre l'utilisateur, le portefeuille matériel HW et le dispositif hôte HDVTable 2: Seed save, interaction between user, HW hardware wallet and HDV host device

[Tab 2] Informations affichées sur l'écran tactile TS1 du dispositif HW Informations affichées par le dispositif hôte HDV Actions de l’utilisateur USR
D0 [Sauvegarder]
[Initialiser/Restaurer]
L'utilisateur sélectionne "Sauvegarder"
D1 "Choisissez le type de protection de votre phrase de récupération" :
[D1.1] [Affichage de la phrase de récupération sur votre dispositif et sauvegarde par vous-même]
[D1.2] [Service de protection automatique de la phrase de récupération]
L’utilisateur sélectionne [Service de protection automatique de la phrase de récupération ]
D2
"Après création de votre compte et confirmation de votre identité par l'un de nos partenaires d'IDV, votre phrase de récupération sera liée à votre identité en toute sécurité. Votre phrase de récupération sera partagée en trois parts sauvegardées de manière décentralisée, et ne pourra pas vous être dérobée"
[Confirmez votre choix du service de protection]
Lecture de l’information affichée puis confirmation du choix du service de protection
D3 Veuillez préalablement créer un compte : [Création d’un compte] Fournit son accord sur la création du compte D4 "Nom : " xx
"Prénom :" xx
"Date de naissance :" xx
"Nationalité : "xx
"Lieu de naissance :" xx
[Validez]
"Adresse email :" xx
[Validez]
"Code de vérification reçu par email :" xx
[Validez]
Fournit les informations demandées, puis valide
D5 "Création d’un mot de passe fort"
"Entrez votre mot de passe : "xx"
"Confirmez le mot de passe : "xx"
[Validez]
Fournit le mot de passe et le valide
D6 "Votre compte a été créé avec succès. Vous allez maintenant confirmer votre identité auprès de notre partenaire"
[Je suis d'accord]
L'utilisateur confirme son accord sur la vérification de son identité
D7 "Choisissez le type de document d’identité" [Passeport] [Permis de conduire] [Carte nationale d’identité] [(Autre choix)] Choisit le type de document D8 "Présentez votre document d’identité dans le cadre" Exécute l’étape D9 "Vérifiez la photo et validez son envoi"
[Envoyez la photo]
Vérifie et valide l’envoi de la photo
D10 "Placez votre visage dans le cadre et commencez la vidéo"
[Démarrez l’enregistrement]
Exécute l’étape proposée
D11 "Vérifiez la vidéo puis envoyez-la"
[Envoyez la vidéo]
Vérifie la vidéo puis valide l'envoi
D12 "Connectez le dispositif dont vous voulez sauvegarder la phrase de récupération " Connecte le dispositif HW au dispositif hôte D13 "Entrez votre PIN code : xx"
[Validez]
"Déverrouillez votre portefeuille matériel en saisissant votre mot de passe personnel (code PIN)" Fournit son mot de passe
D14 [Vérifiez votre identité avant de sauvegarder votre phrase de récupération] Donne son accord sur la confirmation d’identité D15 "Nom, prénom, date de naissance, nationalité, lieu de naissance"
[Confirmez]
Confirme la véracité des informations affichées
D16 "Stockage de votre phrase de récupération en cours" Attend que le processus soit terminé D17 "Votre phrase de récupération stockée en toute sécurité" "Compte créé : OK
Confirmation d’identité : OK
Connexion de votre dispositif : OK
Sauvegarde de votre phrase de récupération : OK"
D18 "Votre phrase de récupération a été sauvegardée. Restaurez-la dans un autre dispositif chaque fois que cela sera nécessaire"
[Tab 2] Information displayed on the TS1 touch screen of the HW device Information displayed by the HDV host device USR User Actions
D0 [To safeguard]
[Initialize/Restore]
User selects "Save"
D1 “Choose the type of protection for your recovery phrase”:
[D1.1] [Displaying the recovery phrase on your device and saving it by yourself]
[D1.2] [Auto Recovery Phrase Protection Service]
User selects [Auto Recovery Phrase Protection Service]
D2
"After creating your account and confirming your identity by one of our IDV partners, your recovery phrase will be securely linked to your identity. Your recovery phrase will be divided into three parts saved in a decentralized manner, and cannot be stolen from you."
[Confirm your choice of protection service]
Reading the information displayed then confirming the choice of protection service
D3 Please create an account beforehand: [Creating an account] Provides agreement to create the account D4 "Name: "xx
“First name:” xx
“Date of birth:” xx
"Nationality: "xx
“Place of birth:” xx
[Validate]
“Email address:” xx
[Validate]
“Verification code received by email:” xx
[Validate]
Provides the requested information, then validates
D5 “Creating a strong password”
"Enter your password: "xx"
"Confirm password: "xx"
[Validate]
Provides the password and validates it
D6 "Your account has been successfully created. You will now confirm your identity with our partner"
[I agree]
The user confirms his agreement to the verification of his identity
D7 "Choose the type of identity document" [Passport] [Driver's license] [National identity card] [(Other choice)] Choose the document type D8 “Present your identity document in the frame” Execute step D9 “Check the photo and validate its sending”
[Send photo]
Checks and validates the sending of the photo
D10 “Put your face in the frame and start the video”
[Start recording]
Execute the proposed step
D11 “Check the video then send it”
[Send video]
Check the video then validate the sending
D12 “Connect the device whose recovery phrase you want to save” Connects the HW device to the host device D13 “Enter your PIN code: xx”
[Validate]
“Unlock your hardware wallet by entering your personal password (PIN)” Provide your password
D14 [Verify your identity before saving your recovery phrase] Gives consent to the confirmation of identity D15 “Last name, first name, date of birth, nationality, place of birth”
[Confirm]
Confirms the veracity of the information displayed
D16 “Storing your current recovery phrase” Wait for the process to complete D17 “Your recovery phrase stored securely” "Account created: OK
Identity confirmation: OK
Connecting your device: OK
Saving your recovery phrase: OK"
D18 "Your recovery phrase has been saved. Restore it to another device whenever necessary"

Tableau 3 : Restauration de la graine, interaction entre l'utilisateur et le portefeuille matériel HW' et le dispositif hôte HDVTable 3: Seed recovery, interaction between user and HW' hardware wallet and HDV host device

[Tab 3] Informations affichées sur l'écran tactile TS1 du dispositif HW' Informations affichées sur le dispositif hôte HDV Actions de l’utilisateur USR
D0 [Sauvegarder]
[Initialiser/Restaurer]
L'utilisateur sélectionne "Initialiser/Restaurer"
D20 "En attente" "Connectez le portefeuille matériel " Connecte son dispositif au dispositif hôte D21 "Connecté" "Connecté à votre portefeuille matériel" D22 "Entrez votre PIN :"xx" "Entrez un mot de passe (PIN) sur votre dispositif" Définit son mot de passe D23 [D23.1] [Nouveau dispositif]
[D23.2] [Restauration avec une phrase de récupération]
"Comment voulez-vous initialiser votre dispositif ? Nouveau dispositif ou restauration avec une phrase de récupération? Faites votre choix sur l'écran de votre dispositif" Choisit l'option "restauration"
D24 [D24.1][Restauration avec le service de protection]
[D24.2][Restauration manuelle avec une phrase de récupération]
"Comment voulez-vous restaurer votre dispositif ? Faites votre choix sur votre dispositif"
Choisit la restauration avec le service de protection
D25 "Nous vous proposons les étapes suivantes :
1. Confirmation de votre identité avec votre dispositif
2. Vérification de votre identité par un premier partenaire d'IDV
3. Vérification de votre identité par un deuxième partenaire d'IDV"
[Je suis d'accord]
Donne son accord sur le processus de vérification d'identité qui lui est proposé
D26 (HW' affiche les informations concernant l'identité de l'utilisateur)
"Nom :" xx
"Prénom :" xx
"Date de naissance :" xx
"Nationalité :" xx
"Lieu de naissance :" xx
"Adresse email : xx"
[Valider]
"1. Confirmez votre identité telle qu'affichée sur votre dispositif"
Confirme les informations affichées par le dispositif HW'
D27 "2. Vérification de votre identité par notre premier partenaire d'IDV"
[Confirmer]
Donne son accord
D28 "Choisissez le type de document" [Passeport] [Permis de conduire] [Carte nationale d’identité] [(Autre choix)] Choisit le type de document D29 "Présentez votre document d’identité dans le cadre" Exécute l’étape proposée D30 "Vérifiez la photo et validez son envoi"
[Envoi de la photo]
Vérifie pour valide l’envoi de la photo
D31 "Placez votre visage dans le cadre et commencez la vidéo"
[Démarrez l’enregistrement]
Exécute l’étape proposée
D32 "Vérifiez la vidéo puis envoyez-la"
[Envoi de la vidéo]
Vérifie la vidéo puis valide l’envoi de la vidéo
D33 "2. Vérification de votre identité par notre deuxième partenaire d'IDV"
[Confirmer]
Donne son accord
D34 (conduite du deuxième processus de vérification d'identité identique, similaire ou différent du premier) Exécute les étapes D35 "Restauration de votre phrase de récupération en cours" "1. Confirmation de votre identité avec votre dispositif : OK
2. Confirmation de votre identité par notre premier partenaire d'IDV : OK
3. Confirmation de votre identité par notre second partenaire d'IDV : OK
D36 Affiche un menu "Votre phrase de récupération a été restaurée"
[Tab 3] Information displayed on the TS1 touch screen of the HW' device Information displayed on the HDV host device USR User Actions
D0 [To safeguard]
[Initialize/Restore]
User selects “Initialize/Restore”
D20 "On hold" “Connect hardware wallet” Connects your device to the host device D21 “Connected” “Connected to your hardware wallet” D22 “Enter your PIN: “xx” “Enter a password (PIN) on your device” Set your password D23 [D23.1] [New device]
[D23.2] [Restoration with recovery phrase]
"How do you want to initialize your device? New device or restore with a recovery phrase? Make your choice on your device screen" Choose the “restoration” option
D24 [D24.1][Restoration with protection service]
[D24.2][Manual restore with recovery phrase]
"How do you want to restore your device? Make your choice on your device"
Choose restoration with protection service
D25 "We suggest the following steps:
1. Confirming your identity with your device
2. Verification of your identity by a first IDV partner
3. Verification of your identity by a second IDV partner"
[I agree]
Gives his agreement to the identity verification process proposed to him
D26 (HW' displays user identity information)
"Name:" xx
"First name:" xx
“Date of birth:” xx
“Nationality:” xx
“Place of birth:” xx
“Email address: xx”
[To validate]
"1. Confirm your identity as displayed on your device"
Confirms the information displayed by the HW' device
D27 "2. Verification of your identity by our first IDV partner"
[Confirm]
Give your consent
D28 "Choose the type of document" [Passport] [Driver's license] [National identity card] [(Other choice)] Choose the document type D29 “Present your identity document in the frame” Execute the proposed step D30 “Check the photo and validate its sending”
[Sending photo]
Check to validate the sending of the photo
D31 “Put your face in the frame and start the video”
[Start recording]
Execute the proposed step
D32 “Check the video then send it”
[Sending video]
Check the video then validate the sending of the video
D33 "2. Verification of your identity by our second IDV partner"
[Confirm]
Give your consent
D34 (conducting the second identity verification process identical, similar or different to the first) Perform the steps D35 “Restoring your recovery phrase in progress” "1. Confirming your identity with your device: OK
2. Confirmation of your identity by our first IDV partner: OK
3. Confirmation of your identity by our second IDV partner: OK
D36 Displays a menu “Your recovery phrase has been restored”

Claims (16)

Procédé pour la sauvegarde et la restauration d’un secret (S) détenu par un premier portefeuille de cryptoactifs (CW1, HW, HDV, CW2, CW3) qui est la propriété d’un utilisateur (USR), caractérisé en ce qu'il comprend les étapes consistant à :
- générer, au moyen du portefeuille de cryptoactifs, une pluralité de données secrètes (Si) à partir du secret (S),
- sauvegarder (B10-B12) les données secrètes (Si) dans une pluralité de serveurs de sauvegarde (BCKi), chaque serveur de sauvegarde recevant au moins une donnée secrète,
- restaurer (R1-R14) le secret dans un deuxième portefeuille de cryptoactifs (CW1, HW’, HDV, CW2, CW3) à partir de tout ou partie des données secrètes détenues par les serveurs de sauvegarde,
et en ce que :
- l’étape de sauvegarde (B10-B12) des données secrètes est précédée d’une étape initiale (B2) de collecte d'informations (BCKDT) relatives à l’identité de l’utilisateur (B3, IDV0), et d'une étape de communication, à chaque serveur de sauvegarde, des informations (BCKDT) relatives à l’identité de l’utilisateur, et
- l’étape de restauration (R1-R14) est précédée d’une pluralité d’étapes (R7, IDVi) de vérification de l’identité de l’utilisateur par au moins une partie des serveurs de sauvegarde, un serveur de sauvegarde configuré pour vérifier l’identité de l’utilisateur étant également configuré pour refuser de restituer la donnée secrète qu’il détient si la vérification de l’identité de l’utilisateur n’est pas concluante.
Method for saving and restoring a secret (S) held by a first portfolio of cryptoassets (CW1, HW, HDV, CW2, CW3) which is the property of a user (USR), characterized in that it includes the steps of:
- generate, by means of the cryptoasset portfolio, a plurality of secret data (Si) from the secret (S),
- save (B10-B12) the secret data (Si) in a plurality of backup servers (BCKi), each backup server receiving at least one secret data,
- restore (R1-R14) the secret in a second cryptoasset wallet (CW1, HW', HDV, CW2, CW3) from all or part of the secret data held by the backup servers,
and in that :
- the step of saving (B10-B12) the secret data is preceded by an initial step (B2) of collecting information (BCKDT) relating to the identity of the user (B3, IDV0), and a step of communicating, to each backup server, information (BCKDT) relating to the identity of the user, and
- the restoration step (R1-R14) is preceded by a plurality of steps (R7, IDVi) of verifying the identity of the user by at least part of the backup servers, a configured backup server to verify the identity of the user also being configured to refuse to return the secret data it holds if the verification of the identity of the user is not conclusive.
Procédé selon la revendication 1, comprenant également, après l'étape initiale (B2) de collecte d'informations (BCKDT) relatives à l’identité de l’utilisateur (B3, IDV0), une étape (B3, IDV0) de vérification de l'identité de l'utilisateur.Method according to claim 1, also comprising, after the initial step (B2) of collecting information (BCKDT) relating to the identity of the user (B3, IDV0), a step (B3, IDV0) of verifying the identity of the user. Procédé selon la revendication 2, dans lequel l’étape de sauvegarde (B10-B12) des donnés secrètes n’est pas effectuée (B4) si la vérification initiale (B3, IDV0) de l’identité de l’utilisateur n’est pas concluante.Method according to claim 2, in which the step of saving (B10-B12) the secret data is not carried out (B4) if the initial verification (B3, IDV0) of the identity of the user is not conclusive. Procédé selon l'une des revendications 1 à 3, dans lequel les informations (BCKDT) relatives à l’identité de l’utilisateur définissent une identité pivot de l’utilisateur qui comprend au moins le prénom de l’utilisateur, le nom de famille de l’utilisateur et la date de naissance de l’utilisateur, et dans lequel au moins une étape (IDV0, IDVi) de vérification de l’identité de l’utilisateur se rapporte à la vérification de son identité pivot.Method according to one of claims 1 to 3, in which the information (BCKDT) relating to the identity of the user defines a pivotal identity of the user which includes at least the first name of the user, the last name of the user and the date of birth of the user, and in which at least one step (IDV0, IDVi) of verifying the identity of the user relates to the verification of his pivotal identity. Procédé selon l’une des revendications 1 à 4, dans lequel au moins une étape de vérification de l’identité de l’utilisateur est conduite par un serveur de vérification d’identité (IDVSRVi), l'étape de vérification de l’identité de l’utilisateur comprenant une étape de création d'un chemin de données entre le portefeuille de cryptoactifs (HW, HDV) et le serveur de vérification d’identité, pour la communication au serveur de vérification d’identité d’informations recueillies par le portefeuille de cryptoactifs.Method according to one of claims 1 to 4, in which at least one step of verifying the identity of the user is carried out by an identity verification server (IDVSRVi), the step of verifying the identity of the user comprising a step of creating a data path between the cryptoasset wallet (HW, HDV) and the identity verification server, for communication to the identity verification server of information collected by the cryptoasset portfolio. Procédé selon l’une des revendications 1 à 5, dans lequel l’étape de restauration comprend, en relation avec la restauration d’au moins deux données secrètes par deux serveurs de sauvegarde, au moins deux étapes de vérification de l’identité de l’utilisateur différentes, et dans lequel deux étapes de vérification de l’identité de l’utilisateur différentes se fondent sur des informations différentes fournies par l'utilisateur, et/ou sur des méthodes différentes pour recueillir les informations fournies par l'utilisateur, et/ou sur des méthodes ou des algorithmes différents pour analyser les informations fournies par l'utilisateur.Method according to one of claims 1 to 5, in which the restoration step comprises, in relation to the restoration of at least two secret data by two backup servers, at least two steps of verifying the identity of the different user, and in which two different user identity verification steps are based on different information provided by the user, and/or on different methods for collecting the information provided by the user, and /or on different methods or algorithms to analyze the information provided by the user. Procédé selon l'une des revendications 1 à 6, dans lequel une étape de vérification de l'identité de l'utilisateur comprend une étape (D7-D11, D27-D34) d'acquisition d'au moins une photographie ou vidéo de l'utilisateur et/ou d'une pièce d'identité de l'utilisateur.Method according to one of claims 1 to 6, in which a step of verifying the identity of the user comprises a step (D7-D11, D27-D34) of acquiring at least one photograph or video of the user and/or an identity document of the user. Procédé selon l’une des revendications 1 à 7, dans lequel des étapes de vérification de l’identité de l’utilisateur sont conduites par des services (IDVSi) exécutés par des serveurs (IDVSRVi) et comprennent des étapes automatisées de vérification de l’identité comprenant des étapes d’acquisition à distance d’informations à partir desquelles l’identité de l’utilisateur est vérifiée, les étapes d’acquisition à distance d’informations comprenant au moins deux des étapes suivantes :
- acquisition d’une photo d’une pièce d’identité comprenant une photo de l’utilisateur,
- acquisition d’une ou de plusieurs photos du visage de l’utilisateur,
- acquisition d’un enregistrement vidéo montrant le visage de l’utilisateur en mouvement,
- acquisition d’une justification de domicile,
- acquisition d’une empreinte digitale de l’utilisateur,
- acquisition d’un code de validation reçu par l’utilisateur dans un message,
- activation par l’utilisateur d’un lien reçu par l’utilisateur dans un message, et
- acquisition d’un hologramme présent sur une pièce d'identité.
Method according to one of claims 1 to 7, in which steps for verifying the identity of the user are carried out by services (IDVSi) executed by servers (IDVSRVi) and include automated steps for verifying the identity of the user. identity comprising steps of remote acquisition of information from which the identity of the user is verified, the steps of remote acquisition of information comprising at least two of the following steps:
- acquisition of a photo of an identity document including a photo of the user,
- acquisition of one or more photos of the user's face,
- acquisition of a video recording showing the user's face in movement,
- acquisition of proof of address,
- acquisition of a fingerprint of the user,
- acquisition of a validation code received by the user in a message,
- activation by the user of a link received by the user in a message, and
- acquisition of a hologram present on an identity document.
Procédé selon l'une des revendications 7 et 8 comprenant, lorsque les étapes automatisées de vérification de l’identité de l’utilisateur ne sont pas concluantes, des étapes de vérification de l’identité de l’utilisateur conduites par des personnes physiques, telles que la conduite d’un entretien téléphonique avec l’utilisateur, la conduite d’une vidéo conférence avec l’utilisateur, la conduite d’un entretien en face à face avec l’utilisateur, la validation d'un parcours scolaire ou d’un parcours d'employé de l’utilisateur.Method according to one of claims 7 and 8 comprising, when the automated steps of verifying the identity of the user are not conclusive, steps of verifying the identity of the user carried out by natural persons, such as such as conducting a telephone interview with the user, conducting a video conference with the user, conducting a face-to-face interview with the user, validating an educational background or a user's employee journey. Procédé selon l’une des revendications 1 à 9, comprenant la prévision d’un programme orchestrateur (ORC1, ORC2) exécuté par un serveur (ORCSRV1, ORCSRV1), le premier ou le deuxième portefeuilles de cryptoactifs (HW, HW’, HDV, CW1, CW2, CW3) étant configurés pour établir une liaison de données (LNK1) avec le programme orchestrateur avant de réaliser l’étape de sauvegarde ou de restauration, le programme orchestrateur étant configuré pour conduire ou contrôler au moins une étape de collecte d'informations (BCKDT) relatives à l’identité de l’utilisateur.Method according to one of claims 1 to 9, comprising the prediction of an orchestrator program (ORC1, ORC2) executed by a server (ORCSRV1, ORCSRV1), the first or the second cryptoasset wallets (HW, HW', HDV, CW1, CW2, CW3) being configured to establish a data link (LNK1) with the orchestrator program before carrying out the backup or restoration step, the orchestrator program being configured to conduct or control at least one data collection step information (BCKDT) relating to the identity of the user. Procédé selon la revendication 10, dans lequel le programme orchestrateur (ORC1) est configuré pour :
- lors de la restauration des données, recevoir de chaque serveur de sauvegarde (BCKi) configuré pour conduire une vérification de l’identité de l’utilisateur une information sur le succès de la vérification d’identité conduite par le serveur de sauvegarde, et
- si un nombre déterminé de serveurs de sauvegarde (BCKi) n’a pas vérifié avec succès l’identité de l’utilisateur, suspendre le processus de restauration des données dans son ensemble, y compris par les serveurs qui ont vérifié avec succès l’identité de l’utilisateur, et optionnellement soumettre l’utilisateur à une étape supplémentaire de vérification de son identité.
Method according to claim 10, in which the orchestrator program (ORC1) is configured to:
- when restoring the data, receive from each backup server (BCKi) configured to conduct a verification of the user's identity information on the success of the identity verification conducted by the backup server, and
- if a specified number of backup servers (BCKi) have not successfully verified the user's identity, suspend the data restoration process as a whole, including by servers that have successfully verified the identity of the user, and optionally subject the user to an additional step of verifying their identity.
Procédé selon l’une des revendications 10 et 11, dans lequel le programme orchestrateur est également configuré pour recevoir de chaque serveur de sauvegarde, lors de la restauration des données, un score de certitude quant à vérification de l’identité de l’utilisateur, et si la moyenne des scores est inférieure à un premier seuil, ou si l’un des scores est inférieur à un deuxième seuil, suspendre le processus de restauration des données dans son ensemble et optionnellement soumettre l’utilisateur à une étape supplémentaire de vérification de son identité.Method according to one of claims 10 and 11, in which the orchestrator program is also configured to receive from each backup server, when restoring the data, a certainty score as to verification of the identity of the user, and if the average of the scores is lower than a first threshold, or if one of the scores is lower than a second threshold, suspend the data restoration process as a whole and optionally subject the user to an additional verification step of his identity. Procédé selon l’une des revendications 10 à 12, dans lequel le premier portefeuille de cryptoactifs (HW, HDV) est configuré pour, après avoir reçu l’autorisation de sauvegarde des données secrètes, établir avec chaque serveur de sauvegarde une liaison de données (LNK1-LNK2i, LNK3i) par laquelle il fournit à chaque serveur la donnée secrète qui lui est destinée.Method according to one of claims 10 to 12, in which the first cryptoasset wallet (HW, HDV) is configured to, after having received authorization to save the secret data, establish a data connection with each backup server ( LNK1-LNK2i, LNK3i) by which it provides each server with the secret data intended for it. Procédé selon l’une des revendications 1 à 13 dans lequel :
- le premier portefeuille de cryptoactifs est configuré pour générer la pluralité de données secrètes (Si) à partir de clé maître (S) au moyen d’une fonction de partage de secret configurée pour générer un nombremde données secrètes et permettre la reconstitution de la graine (S) à partir d’un seuil dendonnées secrètes (Si), et
- le deuxième portefeuille de cryptoactifs est configuré pour reconstituer la clé maître à partir d’au moinsndonnées secrètes (Si) reçues lors de l’étape de restauration.
Method according to one of claims 1 to 13 in which:
- the first cryptoasset wallet is configured to generate the plurality of secret data (Si) from master key (S) by means of a secret sharing function configured to generate a number m of secret data and allow the reconstitution of the seed (S) from a threshold of n secret data (Si), and
- the second cryptoasset wallet is configured to reconstitute the master key from at least n secret data (Si) received during the restoration step.
Procédé selon la revendication 14, dans lequel le premier (CW1, HW, HDV) et le deuxième (CW1, HW’, HDV) portefeuilles de cryptoactifs comprennent chacun un portefeuille matériel (HW, HW’) dépourvu de moyen de connexion à l’Internet et un dispositif hôte (HDV) pourvu d’une connexion à l’Internet et exécutant un logiciel compagnon (HSW).Method according to claim 14, in which the first (CW1, HW, HDV) and the second (CW1, HW', HDV) cryptoasset wallets each comprise a hardware wallet (HW, HW') devoid of means of connection to the Internet and a host device (HDV) with a connection to the Internet and running companion software (HSW). Procédé selon l’une des revendications 1 à 15, mis en œuvre avec trois serveurs de sauvegarde et utilisant une fonction de partage de secret (SS) configurée pour générer m données secrètes à partir du secret et permettre la reconstitution du secret à partir d'au moins n données secrètes, n étant inférieur à m.Method according to one of claims 1 to 15, implemented with three backup servers and using a secret sharing (SS) function configured to generate m secret data from the secret and allow the reconstitution of the secret from at least n secret data, n being less than m.
FR2214387A 2022-12-23 2022-12-23 Method for personalized backup and restoration of a secret held by a cryptoasset wallet Pending FR3144465A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR2214387A FR3144465A1 (en) 2022-12-23 2022-12-23 Method for personalized backup and restoration of a secret held by a cryptoasset wallet
PCT/FR2023/000197 WO2024134039A1 (en) 2022-12-23 2023-12-22 Method for establishing a secure data link between an electronic device and a server
PCT/FR2023/000198 WO2024134040A1 (en) 2022-12-23 2023-12-22 Method for securely saving and restoring a seed held by a cryptoasset wallet
PCT/FR2023/000196 WO2024134038A1 (en) 2022-12-23 2023-12-22 Method for backing up and restoring a secret held by a cryptoasset wallet
PCT/FR2023/000195 WO2024134037A1 (en) 2022-12-23 2023-12-22 Method for saving and restoring a secret held by a cryptoasset wallet

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2214387A FR3144465A1 (en) 2022-12-23 2022-12-23 Method for personalized backup and restoration of a secret held by a cryptoasset wallet
FR2214387 2022-12-23

Publications (1)

Publication Number Publication Date
FR3144465A1 true FR3144465A1 (en) 2024-06-28

Family

ID=86272391

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2214387A Pending FR3144465A1 (en) 2022-12-23 2022-12-23 Method for personalized backup and restoration of a secret held by a cryptoasset wallet

Country Status (1)

Country Link
FR (1) FR3144465A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3073670A1 (en) * 2015-03-27 2016-09-28 BGC International, Inc. A system and a method for personal identification and verification
EP3719681A1 (en) * 2013-01-22 2020-10-07 IDnow GmbH User identification
WO2021174364A1 (en) * 2020-03-06 2021-09-10 Vaultie Inc. A system and method for authenticating digitally signed documents
EP3981103A1 (en) * 2019-06-10 2022-04-13 tZERO IP, LLC Key recovery using encrypted secret shares

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3719681A1 (en) * 2013-01-22 2020-10-07 IDnow GmbH User identification
EP3073670A1 (en) * 2015-03-27 2016-09-28 BGC International, Inc. A system and a method for personal identification and verification
EP3981103A1 (en) * 2019-06-10 2022-04-13 tZERO IP, LLC Key recovery using encrypted secret shares
WO2021174364A1 (en) * 2020-03-06 2021-09-10 Vaultie Inc. A system and method for authenticating digitally signed documents

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DANIELLE RIETSCH: "The Future of Contract Signing: Loan agreements and co. - now via Smartphone", IDNOW PRESS RELEASE, 25 April 2016 (2016-04-25), XP055364041, Retrieved from the Internet <URL:https://www.idnow.fr/assets/press/2016-04-25_PR_Launch_IDnow_eSign_EN.pdf> [retrieved on 20170411] *
LEDGER: "Ledger Nano S Security Target", 18 October 2018 (2018-10-18), XP093033870, Retrieved from the Internet <URL:https://www.ssi.gouv.fr/uploads/2019/02/anssi-cible-cspn-2019_03en.pdf> [retrieved on 20230322] *
STEVEN GOLDFEDER ET AL: "Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme", CS.PRINCETON, 8 March 2015 (2015-03-08), pages 1 - 26, XP055318844, Retrieved from the Internet <URL:https://www.cs.princeton.edu/~stevenag/threshold_sigs.pdf> [retrieved on 20161111] *

Similar Documents

Publication Publication Date Title
US11764951B2 (en) Doubly-encrypted secret parts allowing for assembly of a secret using a subset of the doubly-encrypted secret parts
EP2673732B1 (en) Secure transaction method from a non-secure terminal
FR2930390A1 (en) METHOD FOR SECURE DIFFUSION OF DIGITAL DATA TO AN AUTHORIZED THIRD PARTY
CN112084521B (en) Unstructured data processing method, device and system for block chain
CN110445840B (en) File storage and reading method based on block chain technology
US11252161B2 (en) Peer identity verification
CA3057398C (en) Securely performing cryptographic operations
EP2301187A1 (en) Terminal for strong authentication of a user
WO2022042745A1 (en) Key management method and apparatus
FR3144465A1 (en) Method for personalized backup and restoration of a secret held by a cryptoasset wallet
WO2024134038A1 (en) Method for backing up and restoring a secret held by a cryptoasset wallet
FR3144463A1 (en) Method for backing up and restoring a secret held by a cryptoasset wallet
WO2024134040A1 (en) Method for securely saving and restoring a seed held by a cryptoasset wallet
FR3144471A1 (en) Method for establishing a secure data link between an electronic device and a server
CN114124422B (en) Key management method and device
EP4012972A1 (en) Method for selective disclosure of data via a blockchain
FR2730076A1 (en) Authentication by server of holder of object incorporating microprocessor
TWM581231U (en) Computer device for backing up data
EP1262860B1 (en) System and method for user authentication
US11522691B2 (en) Techniques for virtual cryptographic key ceremonies
FR2913551A1 (en) User authenticating method for use in Internet network, involves authenticating authentication server by token and vice versa for each of web pages requested by user, by executing control script e.g. java script, in computer
US20240249276A1 (en) System and method for storing access to digital assets and other sensitive data on the blockchain and issuing nft for login access in a digital safe, thereby allowing recovery or transfer of ownership thereof under defined circumstances
Meister et al. Password-less key recovery via multi-factor multi-party authentication
WO2021099199A1 (en) Method and system for provision or secure replacement of a secret in at least one portable communication device
FR3137769A1 (en) Process for saving sensitive personal data on a blockchain

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240628