CH716296A2 - Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. - Google Patents

Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. Download PDF

Info

Publication number
CH716296A2
CH716296A2 CH00768/19A CH7682019A CH716296A2 CH 716296 A2 CH716296 A2 CH 716296A2 CH 00768/19 A CH00768/19 A CH 00768/19A CH 7682019 A CH7682019 A CH 7682019A CH 716296 A2 CH716296 A2 CH 716296A2
Authority
CH
Switzerland
Prior art keywords
transaction
enclave
geolocation
data
fragments
Prior art date
Application number
CH00768/19A
Other languages
English (en)
Inventor
Attia Jonathan
Louiset Raphaël
Original Assignee
Lapsechain Sa C/O Leax Avocats
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 Lapsechain Sa C/O Leax Avocats filed Critical Lapsechain Sa C/O Leax Avocats
Priority to CH00768/19A priority Critical patent/CH716296A2/fr
Publication of CH716296A2 publication Critical patent/CH716296A2/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/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/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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Ophthalmology & Optometry (AREA)
  • Power Engineering (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un procédé de signature numérique multiple d'une transaction ( TX ) destinée à être inscrite dans un nouveau bloc ( 4 ) d'une blockchain ( 5 ), dans lequel la transaction ( TX ) est initiée par un émetteur et transmise à une enclave ( 8 ) cryptographique d'un nœud de calcul ; des fragments ( 15.i ) d'une première clé ( 15 ) privée associée à l'émetteur, ainsi que des fragments ( 16.i ) d'une deuxième clé ( 16 ) privée associée à un terminal tiers, et stockés sur des nœuds du réseau, sont chargés dans l'enclave ( 8 ), les clés ( 15 , 16 ) sont, sous condition de géolocalisation de l'émetteur et du terminal tiers, reconstituées à partir de ces fragments ( 15.i , 16.i ) et appliquées à la transaction ( TX ) pour former une transaction ( STX ) signée, laquelle est ensuite inscrite dans un nouveau bloc ( 4 ) de la blockchain ( 5 ).

Description

DOMAINE TECHNIQUE
[0001] L'invention a trait au domaine de l'informatique, et plus précisément à la technologie de la chaîne de blocs ou, en terminologie anglo-saxonne, blockchain (dans ce qui suit, on préférera la terminologie anglo-saxonne, en raison de son emploi courant dans la plupart des langues, y compris en langue française).
ART ANTERIEUR
[0002] La technologie blockchain est organisée en couches. Elle comprend : Une couche d'infrastructure matérielle, appelée „réseau blockchain“ ; Une couche protocolaire appelée „protocole blockchain“ ; Une couche informationnelle, appelée „registre blockchain“.
[0003] Le réseau blockchain est un réseau informatique décentralisé, dit réseau pair-à-pair (en terminologie anglo-saxonne Peer-to-Peer ou P2P), constitué d'une pluralité d'ordinateurs (au sens fonctionnel du terme : il s'agit d'un appareil pourvu d'une unité de traitement informatique programmable, qui peut se présenter sous forme d'un smartphone, d'une tablette, d'un ordinateur de bureau, d'une station de travail, d'un serveur physique ou virtuel, c'est-à-dire un espace de calcul et de mémoire alloué au sein d'un serveur physique et sur lequel tourne un système d'exploitation ou une émulation de système d'exploitation), appelés „nœuds“ en référence à la théorie des graphes, capables de communiquer entre eux (c'est-à-dire de s'échanger des données informatiques), deux à deux, au moyen de liaisons filaires ou sans fil.
[0004] Un réseau1blockchain comprenant des nœuds2communiquant par des liaisons3est illustré sur laFIG.1. Par souci de simplification et de conformité à la théorie des graphes, sur laFIG.1, les nœuds2du réseau1sont représentés par des cercles ; les liaisons3, par des arêtes reliant les cercles. Pour ne pas surcharger de traits le dessin, seules certaines liaisons3entre les nœuds2sont représentées.
[0005] Les nœuds2peuvent être disséminés sur de larges régions géographiques ; ils peuvent également être regroupés dans des régions géographiques plus restreintes.
[0006] Le protocole blockchain se présente sous forme d'un programme informatique implémenté dans chaque nœud2du réseau1blockchain, et qui inclut, outre des fonctions de dialogue - c'est-à-dire d'échange des données informatiques - avec les autres nœuds2du réseau1, un algorithme de calcul qui, à partir de données d'entrée appelées „transactions“ (qui sont des transcriptions d'interactions entre un ou plusieurs terminaux informatiques émetteurs et un ou plusieurs terminaux informatiques destinataires) : <tb><SEP>- Élabore des fichiers4de données structurées appelés „blocs“, chaque bloc4comprenant un corps4Acontenant des empreintes numériques de transactions, et un en-tête4Bcontenant : <tb><SEP><SEP>o Un numéro d'ordre, ou rang, ou encore hauteur (height en anglais), sous forme d'un nombre entier qui désigne la position du bloc4au sein d'une chaîne dans l'ordre croissant à partir d'un bloc initial (Genesis block en anglais) ; <tb><SEP><SEP>o Une empreinte numérique unique des données du corps4A ; <tb><SEP><SEP>o Une empreinte numérique unique, appelée pointeur, de l'en-tête du bloc4précédent, <tb><SEP><SEP>o Une donnée d'horodatage (timestamp en anglais) ; <tb><SEP>- Met en œuvre un mécanisme de validation des blocs4par consensus entre tout ou partie des nœuds2 ; <tb><SEP>- Concatène les blocs4validés pour former un registre5(le registre blockchain) sous forme d'un agrégat dans lequel chaque bloc4est relié mathématiquement au précédent par son pointeur.
[0007] La moindre modification des données du corps4Aou de l'en-tête4Bd'un bloc4affecte la valeur de son empreinte numérique et rompt par conséquent le lien existant entre ce bloc4ainsi modifié et le bloc4suivant dont le pointeur ne correspond plus.
[0008] Selon un mode particulier de réalisation, l'empreinte numérique de chaque bloc4est un condensé (ou condensat, en anglais hash) des données du bloc4, c'est-à-dire le résultat d'une fonction de hachage appliquée aux données du bloc4(y compris le corps4Aet l'en-tête4Bà l'exception de l'empreinte numérique elle-même). La fonction de hachage est typiquement SHA-256.
[0009] Pour un bloc4donné de rang N (N un entier), le pointeur assure avec le bloc4précédent de rang N-1 une liaison inaltérable. En effet, toute modification des données du bloc4de rang N-1 aboutirait à la modification de son empreinte, et donc à un défaut de correspondance entre cette empreinte (modifiée) du bloc4de rang N-1 et le pointeur mémorisé parmi les métadonnées du bloc4de rang N.
[0010] La succession des blocs4reliés entre eux deux à deux par correspondance du pointeur d'un bloc4donné de rang N avec l'empreinte numérique du bloc précédent de rang N-1 constitue par conséquent le registre5blockchain sous forme d'un agrégat de blocs4corrélés, dans lequel la moindre modification des données d'un bloc4de rang N-1 se traduit par une rupture du lien avec le bloc4suivant de rang N - et donc la rupture du registre blockchain.
[0011] C'est cette structure particulière qui procure aux données contenues dans le registre5blockchain une réputation d'immuabilité, garantie par le fait que le registre5blockchain est répliqué sur tous les nœuds2du réseau 1, obligeant tout attaquant, non seulement à modifier tous les blocs4de rang supérieur au bloc4modifié, mais à déployer ces modifications (alors même que le registre5blockchain continue de se constituer par les nœuds2appliquant le protocole blockchain) à l'ensemble des nœuds2.
[0012] Sauf mention contraire, et par souci de simplification, l'expression simple „chaîne de blocs“ ou „blockchain“ désigne le registre5blockchain lui-même.
[0013] Quel que soit le type de consensus appliqué par le mécanisme de validation des blocs4, la plupart des technologies blockchain ont pour fonction primaire d'enregistrer, dans la blockchain5, des transactions passées entre un ou plusieurs terminaux émetteurs, et un ou plusieurs terminaux récepteurs, indifféremment appelés „utilisateurs“.
[0014] A chaque utilisateur est associé un compte, appelé de manière simplificatrice „portefeuille électronique“ (en anglais digital wallet), qui contient une zone mémoire et une interface programmatique ayant des fonctions d'interaction avec le réseau1blockchain pour lui soumettre des transactions, et des fonctions de synchronisation avec la blockchain5pour inscrire, dans la zone mémoire, les transactions validées par inscription dans la blockchain5.
[0015] Le portefeuille comprend en outre un jeu de clés, et plus précisément au moins une paire de clés appariées, à savoir une clé publique et une clé privée associée. La clé publique est généralement utilisée (directement en tant que telle, ou indirectement par l'intermédiaire d'un condensat) en tant qu'identifiant de l'utilisateur. Quant à la clé privée, elle est généralement utilisée pour signer les transactions émises à partir du portefeuille.
[0016] On comprend dès lors que la clé privée est une donnée critique, dont il convient, pour l'utilisateur, de maintenir une confidentialité stricte vis-à-vis des tiers qui, en possession de la clé privée, pourraient usurper l'identité de l'utilisateur et signer des transactions à sa place. Ces transactions étant inscrites de manière immuable dans la blockchain5, il n'est possible, pour l'utilisateur authentique, ni de les annuler, ni de les inverser.
[0017] Perdre un portefeuille électronique revient, pour l'utilisateur, à perdre sa capacité de signer des transactions. Se faire subtiliser ou pirater un portefeuille électronique revient, pour l'utilisateur, à permettre à un tiers (généralement malveillant) de signer les transactions à sa place.
[0018] Il existe différentes versions de portefeuilles électroniques, selon leur mode d'installation.
[0019] Dans une première version purement logicielle, le portefeuille électronique est installé localement, sur un terminal communiquant (typiquement un ordinateur de bureau, fixe ou portable, ou encore un smartphone).
[0020] Cette première version n'est pas sans défaut : comme le terminal est en réseau, elle nécessite de protéger celui-ci des intrusions, en installant des filtres et des passerelles dont l'infaillibilité ne saurait cependant être garantie. Les cas de perte de clés (consécutive à une panne matérielle ou logicielle, ou encore à une désinstallation intempestive du portefeuille) ne sont pas rares. De nombreux cas de vol de clés sont également à déplorer.
[0021] Dans une deuxième version physique, le portefeuille électronique est installé localement encore, sur un dispositif électronique dédié (de type clé USB).
[0022] Ce portefeuille ne devient actif que lorsque le dispositif est branché sur un terminal assurant la connexion au réseau blockchain.
[0023] Cependant les portefeuilles physiques ne vont pas non plus sans défaut. Ils souffrent d'une grande sensibilité aux dégradations (notamment du fait de l'exposition à l'humidité et aux chocs), sont susceptibles d'être perdus, ou d'être volés (avec les mêmes conséquences que la version purement logicielle du portefeuille).
[0024] Dans une troisième version, le portefeuille électronique est installé sur un serveur distant, administré par un tiers (qui en détient par conséquent les clés cryptographiques) et auquel l'utilisateur se connecte via un terminal.
[0025] Si cette version est présumée mieux sécurisée que la première version (purement logicielle et locale) contre la perte et le vol par des tiers, elle présente cependant une faille majeure : le vol des clés par l'administrateur lui-même (et de fait, des cas ont été répertoriés).
[0026] En résumé, la première version est pratique, mais peu fiable.
[0027] La deuxième version est un peu plus fiable que la première, mais beaucoup moins pratique.
[0028] Quant à la troisième version, elle paraît plus pratique que les deux premières, tout en étant plus fiable que la première mais moins, toutefois, que la seconde.
[0029] Quoiqu'il en soit, aucune des versions des portefeuilles électroniques n'est à la fois pratique et fiable.
[0030] Dans tous les cas, pour se prémunir notamment de la perte des clés, les utilisateurs sont incités à en conserver une version imprimée, qu'il convient de garder dans un endroit discret et protégé, tel qu'un coffre-fort. Certains préconisent même de garder cette version imprimée dans un coffre-fort bancaire. Ces techniques anachroniques de conservation du secret ralentissent considérablement l'adoption à grande échelle des technologies de blockchain.
[0031] L'invention vise à proposer une technique alternative de portefeuille électronique dédié aux transactions de blockchain, qui soit à la fois pratique, fiable, sûr, et qui dispense les utilisateurs de devoir effectuer des sauvegardes matérielles de leurs clés tout en soumettant l'utilisation du portefeuille électronique à certaines conditions.
RESUME DE L'INVENTION
[0032] Il est proposé un procédé de signature numérique d'une transaction initiée par une unité de traitement informatique, dite émetteur, reliée à un réseau pair-à-pair, cette transaction numérique étant destinée à être inscrite dans un nouveau bloc d'une chaîne de blocs, ce procédé comprenant les opérations suivantes : <tb><SEP>- Générer la transaction par l'émetteur, cette transaction contenant un identifiant d'émetteur ; <tb><SEP>- Sélectionner parmi le réseau un nœud dit de calcul, équipé d'une unité de traitement dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave ; <tb><SEP>- Instancier l'enclave ; <tb><SEP>- Charger la transaction numérique dans l'enclave, via une ligne de communication sécurisée ; <tb><SEP>- Identifier au moins un terminal tiers, distinct de l'émetteur, à l'autorisation duquel est soumise la signature de la transaction ; <tb><SEP>- Soumettre au terminal tiers la transaction accompagnée d'une requête d'autorisation et de données d'authentification ; <tb><SEP>- Charger l'autorisation dans l'enclave, à partir du terminal tiers, via une ligne de communication sécurisée, cette autorisation étant accompagnée de données d'authentification ; <tb><SEP>- Au moyen d'une première balise de géolocalisation équipant ou reliée à l'émetteur, éditer des premières données instantanées de géolocalisation ; <tb><SEP>- Charger dans l'enclave, via une ligne de communication sécurisée, les premières données de géolocalisation ; <tb><SEP>- Au moyen d'une deuxième balise de géolocalisation équipant ou relié au terminal tiers, éditer des deuxièmes données instantanées de géolocalisation ; <tb><SEP>- Charger dans l'enclave, au moyen d'une ligne de communication sécurisée, les deuxièmes données de géolocalisation ; <tb><SEP>- Dans l'enclave, vérifier si les données d'authentification chargées à partir du terminal tiers satisfont une condition d'authentification prédéfinie, et vérifier si les données instantanées de géolocalisation satisfont une condition de géolocalisation prédéfinie ; <tb><SEP>- Si les données d'authentification satisfont la condition d'authentification prédéfinie, et si les données de géolocalisation satisfont la condition de géolocalisation prédéfinie, sélectionner parmi le réseau des nœuds sur lesquels sont stockés des fragments d'une première clé cryptographique privée associée à l'identifiant d'émetteur contenu dans la transaction ; <tb><SEP>- Charger lesdits fragments de la première clé dans l'enclave du nœud de calcul ; <tb><SEP>- Sélectionner parmi le réseau des nœuds sur lesquels sont stockés des fragments d'une deuxième clé cryptographique privée associée aux données d'authentification contenu chargées à partir du terminal tiers ; <tb><SEP>- Charger les fragments de la deuxième clé dans l'enclave du nœud de calcul <tb><SEP>- Dans l'enclave du nœud de calcul : <tb><SEP><SEP>o Reconstituer la première clé cryptographique privée à partir de ses fragments ainsi chargés ; <tb><SEP><SEP>o Reconstituer la deuxième clé cryptographique privée à partir de ses fragments ainsi chargés ; <tb><SEP><SEP>o Signer numériquement la transaction par chiffrement de tout ou partie des informations de celle-ci au moyen de chaque clé cryptographique privée ainsi reconstituée, pour former une transaction signée ; <tb><SEP>- Inscrire la transaction signée dans un nouveau bloc destiné à la chaîne de blocs.
BREVE DESCRIPTION DES FIGURES
[0033] D'autres objets et avantages de l'invention apparaîtront à la lumière de la description d'un mode de réalisation, faite ci-après en référence aux dessins annexés dans lesquels : <tb><SEP>LaFIG.1est un schéma fonctionnel simplifié illustrant un réseau pair-à-pair sur lequel est distribuée une chaîne de blocs ; <tb><SEP>LaFIG.2est un schéma fonctionnel simplifié illustrant différents composants d'une unité de traitement informatique impliqués dans la création et l'exploitation d'un environnement d'exécution sécurisé appelé enclave ; <tb><SEP>LaFIG.3est un diagramme fonctionnel illustrant des étapes de contrôle préalable à une signature d'une transaction à destination d'une blockchain ; <tb><SEP>LaFIG.4est un diagramme fonctionnel prolongeant le diagramme de laFIG.3et illustrant des étapes de signature et d'inscription de la transaction dans la blockchain.
DESCRIPTION DETAILLEE DE L'INVENTION
[0034] L'environnement auquel est destiné le procédé proposé est un réseau1blockchain comprenant une pluralité de nœuds2interconnectés par des liaisons3. Sur ce réseau1est déployé un registre5contenant des blocs4constitué en chaîne, ou chaîne de blocs (blockchain), dont les caractéristiques sont conformes à la description faite ci-dessus en introduction.
[0035] Sur le réseau1est implémentée une couche applicative qui se présente sous forme d'un environnement de développement permettant de programmer des applications, appelées „contrats intelligents“ (en anglais Smart contracts), qui peuvent être déployées sur la blockchain5à partir des nœuds2.
[0036] Un contrat intelligent comprend deux éléments : Un compte, appelé „compte de contrat“ (en anglais Contract account), dans la zone mémoire duquel est inscrit un code source contenant des instructions informatiques implémentant les fonctions attribuées au contrat intelligent ; Un code exécutable (en anglais Executable Bytecode) résultant d'une compilation du code source, ce code exécutable étant mémorisé ou déployé au sein du registre5blockchain, c'est-à-dire inséré en tant que transaction dans un bloc4du registre5blockchain.
[0037] Dans la technologie blockchain proposée par Ethereum, un smart contrat est activé par un appel (en anglais Call) adressé par un autre compte, dit compte initiateur (qui peut être un compte utilisateur ou un compte de contrat), cet appel se présentant sous forme d'une transaction contenant, d'une part, un fonds de réserve à transférer (c'est-à-dire un paiement) depuis le compte initiateur au compte de contrat et, d'autre part, des conditions initiales.
[0038] Cet appel est inscrit en tant que transaction dans le registre5blockchain. Il déclenche : Le transfert du fonds de réserve du compte initiateur au compte de contrat ; La désignation, parmi le réseau1blockchain, d'un nœud d'exécution associé à un compte utilisateur ; L'activation, dans une unité de traitement informatique du nœud d'exécution, d'un environnement d'exécution ou machine virtuelle (appelé Ethereum Virtual Machine ou EVM dans le cas d'Ethereum) ; L'exécution pas-à-pas des étapes de calcul du code exécutable par la machine virtuelle à partir des conditions initiales, chaque étape de calcul étant accompagnée d'un transfert d'une fraction (appelée gas dans le cas d'Ethereum) du fonds de réserve depuis le compte de contrat vers le compte utilisateur du nœud d'exécution, et ce jusqu'à épuisement des étapes de calcul, au terme desquelles est obtenu un résultat ; L'inscription (éventuellement sous forme d'une empreinte numérique) de ce résultat en tant que transaction dans le registre5blockchain.
[0039] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain.
[0040] Par ailleurs, certains au moins des nœuds2sont équipés d'unités6de traitement sur lesquelles est implémenté un environnement d'exécution sécurisé ou, en terminologie anglo-saxonne, trusted execution environment (TEE).
[0041] Un environnement d'exécution sécurisé (Trusted execution environment ou TEE) est, au sein d'une unité6de traitement informatique pourvue d'un processeur ou CPU (Central Processing Unit)7, un espace temporaire de calcul et de stockage de données, appelé (par convention) enclave, ou encore enclave cryptographique, qui se trouve isolé, par des moyens cryptographiques, de toute action non autorisée résultant de l'exécution d'une application hors de cet espace, typiquement du système d'exploitation.
[0042] Intel® a, par exemple, revu à partir de 2013 la structure et les interfaces de ses processeurs pour y inclure des fonctions d'enclave, sous la dénomination Software Guard Extension, plus connue sous l'acronyme SGX. SGX équipe la plupart des processeurs de type XX86 commercialisés par Intel® depuis 2015, et plus précisément à partir de la sixième génération incorporant la microarchitecture dite Skylake. Les fonctions d'enclave proposées par SGX ne sont pas accessibles d'office : il convient de les activer via le système élémentaire d'entrée/sortie (Basic Input Output System ou BIOS).
[0043] Il n'entre pas dans les nécessités de la présente description de détailler l'architecture des enclaves, dans la mesure où : En dépit de sa relative jeunesse, cette architecture est relativement bien documentée, notamment par Intel® qui a déposé de nombreux brevets, cf. par ex., parmi les plus récents, la demande de brevet américain US 2019/0058696 ; Des processeurs permettant de les implémenter sont disponibles sur le marché - notamment les processeur Intel® précités ; Seules les fonctionnalités permises par l'enclave nous intéressent ici, ces fonctionnalités pouvant être mises en œuvre via des lignes de commande spécifiques. A ce titre, l'homme du métier pourra se référer au guide édité en 2016 par Intel® : Software Guard Extensions, Developer Guide.
[0044] Pour une description plus accessible des enclaves, et plus particulièrement d'Intel® SGX, l'homme du métier peut également se référer à A. Adamski, Overview of Intel SGX - Part 1, SGX Internal, ou à D. Boneh, Surnaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb.14-17, 2017, Proceedings, pp.149-164, ou encore à K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017.
[0045] Pour résumer, en référence à laFIG.2, une enclave8comprend, en premier lieu, une zone9mémoire sécurisée (dénommée Page Cache d'enclave, en anglais Enclave Page Cache ou EPC), qui contient du code et des données relatives à l'enclave elle-même, et dont le contenu est chiffré et déchiffré en temps réel par une puce dédiée dénommée Moteur de Chiffrement de Mémoire (en anglais Memory Encryption Engine ou MEE). L'EPC9est implémentée au sein d'une partie de la mémoire vive dynamique (DRAM)10allouée au processeur7, et à laquelle les applications ordinaires (notamment le système d'exploitation) n'ont pas accès.
[0046] L'enclave8comprend, en deuxième lieu, des clés cryptographiques employées pour chiffrer ou signer à la volée les données sortant de l'EPC9, ce grâce à quoi l'enclave8peut être identifiée (notamment par d'autres enclaves), et les données qu'elle génère peuvent être chiffrées pour être stockées dans des zones de mémoire non protégées (c'est-à-dire hors de l'EPC9).
[0047] Pour pouvoir exploiter une telle enclave8, une application11doit être segmentée en, d'une part, une ou plusieurs parties12non sécurisées (en anglais untrusted part(s)), et, d'autre part, une ou plusieurs parties13sécurisées (en anglais trusted parf(s)).
[0048] Seuls les processus induits par la (les) partie(s)13sécurisée(s) de l'application11peuvent accéder à l'enclave8. Les processus induits par la (les) partie(s)12non sécurisée(s) ne peuvent pas accéder à l'enclave8, c'est-à-dire qu'ils ne peuvent pas dialoguer avec les processus induits par la (les) partie(s)13sécurisée(s).
[0049] La création (également dénommée instanciation) de l'enclave8et le déroulement de processus en son sein sont commandés via un jeu14d'instructions particulières exécutables par le processeur7et appelées par la (les) partie(s)13sécurisée(s) de l'application11.
[0050] Parmi ces instructions : ECREATE commande la création d'une enclave8 ; EINIT commande l'initialisation de l'enclave8 ; EADD commande le chargement de code dans l'enclave8 ; EENTER commande l'exécution de code dans l'enclave8 ; ERESUME commande une nouvelle exécution de code dans l'enclave8 ; EEXIT commande la sortie de l'enclave8, typiquement à la fin d'un processus exécuté dans l'enclave8.
[0051] On a, sur laFIG.2, représenté de manière fonctionnelle l'enclave8sous la forme d'un bloc (en traits pointillés) englobant la partie13sécurisée de l'application11, le jeu14d'instructions du processeur7, et l'EPC9. Cette représentation n'est pas réaliste ; elle vise simplement à regrouper visuellement les éléments qui composent ou exploitent l'enclave8.
[0052] Nous expliquerons ci-après comment sont exploitées les enclaves.
[0053] Le procédé proposé vise à permettre la signature numérique décentralisée d'une transactionTXnumérique à destination d'une blockchain5.
[0054] La signature doit être effectuée par chiffrement de la transaction TX au moyen de plusieurs clés15,16cryptographiques privées (au moins au nombre de deux), stockées sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing).
[0055] Selon les règles de Shamir, chaque clé15,16privée a, auparavant, été fragmentée en un ensemble de N fragments respectifs15.i,16.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N), tel qu'un sous-ensemble de K fragments15.i,16.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé respective15,16.
[0056] Chaque fragment15.i,16iest stocké séparément dans un nœud2du réseau1.
[0057] La transactionTXest initiée par une unité E de traitement informatique (équipant par ex. un ordinateur personnel fixe ou portable, une tablette ou encore un smartphone), reliée au réseau1et appelée émetteur.
[0058] Ce procédé comprend plusieurs phases, à savoir : Une phase de chargement ; Une phase de contrôle ; Une phase de signature ; Une phase de déploiement.
[0059] La phase de chargement comprend une première opération101qui consiste, à l'initiative de l'émetteurE, à établir une connexion au réseau1, via une requête (REQ) adressée à celui-ci.
[0060] Une deuxième opération102consiste, parmi le réseau1, à sélectionner un nœud2Pdit de calcul, équipé d'une unité de traitement dans laquelle est implémentée une enclave8.
[0061] Une troisième opération103consiste, au sein du nœud2Pde calcul, à instancier l'enclave8.
[0062] Une quatrième opération104consiste, au sein de l'émetteurE, à générer la transactionTX.
[0063] Cette transactionTXcontient typiquement un identifiant associé à l'émetteurEou à son utilisateur personne physique (cette identité se présente par ex. sous forme d'une clé cryptographique publique, ou d'un dérivé de cette clé cryptographique publique, par ex. un condensat de cette clé, notamment par la méthode SHA-256).
[0064] Dans l'hypothèse où la transactionTXest émise à l'intention d'un destinataire, elle contient également un identifiant associé à ce destinataire (par ex. sous forme d'une clé publique ou d'un dérivé de cette clé publique, par ex. un condensat).
[0065] Elle contient par ailleurs un actif (qui peut se présenter sous forme de données quelconques - il peut s'agir d'un nombre, correspondant par ex. à un montant exprimé dans une devise).
[0066] Une cinquième opération105consiste à charger la transaction TX dans l'enclave, via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS).
[0067] Les phases de contrôle, de signature et de déploiement sont conduites au sein ou à partir de l'enclave8.
[0068] Selon un mode préféré de réalisation, les opérations relatives au contrôle et à la signature sont effectuées suivant les instructions d'un contrat intelligentSCdéployé sur la blockchain5.
[0069] Comme illustré sur laFIG.3, une sixième opération106consiste, pour l'enclave8, à appeler(CALL)le contrat intelligentSC.
[0070] Une septième opération107consiste, en retour, à charger le code du contrat intelligentSCdans l'enclave8pour exécution. Est également chargée dans l'enclave8une machine virtuelle (EVM lorsque le contrat intelligentSCest programmé selon les spécifications d'Ethereum) destinée à permettre l'exécution du code du contrat intelligentSC.
[0071] La phase de contrôle a pour objectif de vérifier que certaines conditions concernant la transactionTXsont remplies, en soumettant la transactionTXà l'autorisation d'au moins un tiers de confiance, placé derrière un terminal tiersTT, pour minimiser les risques d'usurpation d'identité.
[0072] La phase de contrôle comprend en particulier des opérations d'authentification du tiers de confiance.
[0073] Selon un mode particulier de réalisation, la phase de contrôle comprend même une authentification du (ou des) individu(s) personne(s) physique(s) derrière l'émetteurE.
[0074] L'authentification est ici réalisée ici par comparaison de données biométriques.
[0075] L'émetteurEest équipé de (ou relié à) un dispositif18de capture biométrique ou scanneur. Le scanneur18est configuré pour réaliser une capture de données19biométriques de l'individu au niveau d'un membre (par ex. un ou plusieurs doigt(s), une main) ou d'un organe (par ex. un oeil, le visage, une oreille, une partie du réseau veineux) de cet individu.
[0076] De même, le terminal tiersTTest équipé de (ou relié à) un dispositif20biométrique ou scanneur. Le scanneur20est configuré pour réaliser une capture de données21de l'individu au niveau d'un membre (par ex. un ou plusieurs doigt(s), une main) ou d'un organe (par ex. un oeil, le visage, une oreille, une partie du réseau veineux) de cet individu.
[0077] Ainsi, une huitième opération108consiste, pour l'enclave8, à transmettre à l'émetteurEune requête d'authentification.
[0078] Une neuvième opération109consiste, au niveau de l'émetteurE, à réaliser, au moyen de son scanneur18, une capture des données19biométriques de l'individu. Dans l'exemple illustré, ces données19biométriques sont issues d'une empreinte digitale.
[0079] Une dixième opération110consiste, à partir de l'émetteurE, à charger, dans l'enclave8du nœud2Pde calcul via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS), les données19biométriques ainsi capturées.
[0080] Parallèlement, ou subséquemment, une onzième opération111consiste, pour l'enclave8, à sélectionner parmi le réseau1un nœud2Bde stockage sur lequel est stocké un premier conteneur22crypté contenant des premières données23biométriques de référence, et à transmettre à ce nœud2Bde stockage une requête (REQ) de communication de ce conteneur22.
[0081] Une douzième opération112consiste, à partir du nœud2Bde stockage, à charger dans l'enclave8le premier conteneur22crypté.
[0082] Le déchiffrement des données23biométriques de référence du premier conteneur22crypté nécessite une première clé24cryptographique de déchiffrement, stockée sur le réseau1.
[0083] Selon un mode préféré de réalisation, et comme illustré sur laFIG.3, la première clé24est distribuée sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing).
[0084] Plus précisément, selon les règles de Shamir, la première clé24a, auparavant, été fragmentée en un ensemble de N fragments24.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N), tel qu'un sous-ensemble de K fragments24.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé24, chaque fragment24.iétant stocké séparément dans un nœud2Cde stockage du réseau1.
[0085] Une treizième opération113consiste par conséquent, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Cde stockage sur lesquels sont stockés K fragments24.irespectifs, et à transmettre à chaque nœud2Cde stockage une requête (REQ) de communication de son fragment24.i.
[0086] Comme illustré sur laFIG.3, une quatorzième opération114consiste, à partir des nœuds2Cde stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments24.i.
[0087] Une quinzième opération115consiste, pour l'enclave8, à reconstituer la première clé24à partir des K fragments24.iainsi chargés.
[0088] Une seizième opération116consiste, pour l'enclave8, à déchiffrer les données23biométriques de référence du premier conteneur22en lui appliquant la première clé24ainsi reconstituée.
[0089] Une dix-septième opération117consiste, pour l'enclave8, à comparer les données19biométriques issues de la capture effectuée par le scanneur18et les données23biométriques de référence ainsi déchiffrées. La comparaison peut être effectuée par une technique classique (typiquement par mesure des distances entre minuties dans le cas de l'empreinte digitale).
[0090] Parallèlement, ou subséquemment, une dix-huitième opération118consiste, pour l'enclave, à soumettre la transactionTXau terminal tiersTT, accompagnée d'une requête (REQ) d'autorisation et de données d'authentification.
[0091] Une dix-neuvième opération119consiste, au niveau du terminal tiersTT, à réaliser, au moyen du scanneur20, une capture des données21biométriques de l'individu utilisateur du terminal tiersTT. Dans l'exemple illustré, ces données21biométriques sont issues d'une empreinte digitale.
[0092] Une vingtième opération120consiste, à partir du terminal tiersTT, à charger dans l'enclave8, via une ligne17'de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS), une autorisation de la transactionTX, accompagnée des données21(biométriques) d'authentification.
[0093] Parallèlement, ou subséquemment, une vingt-et-unième opération121consiste, pour l'enclave8, à sélectionner parmi le réseau1un nœud2Bde stockage sur lequel est stocké un deuxième conteneur25crypté contenant des deuxièmes données26biométriques de référence, et à transmettre à ce nœud2Bde stockage une requête (REQ) de communication de ce conteneur25.
[0094] Une vingt-deuxième opération122consiste, à partir du nœud2Bde stockage, à charger dans l'enclave8le deuxième conteneur25crypté.
[0095] Le déchiffrement des données26biométriques de référence du deuxième conteneur25crypté nécessite une deuxième clé27cryptographique de déchiffrement, stockée sur le réseau1.
[0096] Selon un mode préféré de réalisation, et comme illustré sur laFIG.3, la deuxième clé27est distribuée sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing).
[0097] Plus précisément, selon les règles de Shamir, la deuxième clé27a, auparavant, été fragmentée en un ensemble de N fragments27.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N), tel qu'un sous-ensemble de K fragments27.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé27, chaque fragment27.iétant stocké séparément dans un nœud2Cde stockage du réseau1.
[0098] Une vingt-troisième opération123consiste par conséquent, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Cde stockage sur lesquels sont stockés K fragments27.irespectifs, et à transmettre à chaque nœud2Cde stockage une requête (REQ) de communication de son fragment27.i.
[0099] Comme illustré sur laFIG.3, une vingt-quatrième opération124consiste, à partir des nœuds2Cde stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments27.i.
[0100] Une vingt-cinquième opération125consiste, pour l'enclave8, à reconstituer la deuxième clé27à partir des K fragments27.iainsi chargés.
[0101] Une vingt-sixième opération126consiste, pour l'enclave8, à déchiffrer les données26biométriques de référence du deuxième conteneur25en lui appliquant la deuxième clé27ainsi reconstituée.
[0102] Une vingt-septième opération127consiste, pour l'enclave8, à comparer les deuxièmes données21biométriques issues de la capture effectuée par le scanneur20et les données26biométriques de référence ainsi déchiffrées. La comparaison peut être effectuée par une technique classique (typiquement par mesure des distances entre minuties dans le cas de l'empreinte digitale).
[0103] Si la comparaison des données biométriques issues de l'émetteurEet/ou du terminal tiersTTest un échec, les données19,23et/ou les données21,26sont décrétées ne pas correspondre, et il est mis fin au processus de signature. L'émetteurEen est informé. Les opérations de capture et de comparaison des données biométriques peuvent être répétées, pour minimiser le risque de faux négatif.
[0104] Si au contraire la comparaison est un succès, les données19,23et les données21,26sont décrétées correspondre.
[0105] Cependant la seule authentification biométrique des individus derrière l'émetteurEet le terminal tiersTTest insuffisante pour autoriser l'initiation de la phase de signature : une condition supplémentaire de géolocalisation, prédéfinie, doit en effet être vérifiée. Cette condition est par exemple inscrite parmi les instructions du contrat intelligentSC. Cette condition spécifie par ex. des zones géographiques prédéfinies, au sein de laquelle l'émetteurEet le terminal tiersTTsont supposés se trouver, respectivement (ou au contraire des zones géographiques hors desquelles l'émetteurEet le terminal tiersTTsont supposés se trouver) lors de la soumission de la transactionTX.
[0106] A cet effet, l'émetteurEest équipé de (ou relié à) une première balise28de géolocalisation. Cette balise28est configurée pour éditer des premières données29instantanées de géolocalisation, typiquement sous forme d'un tuple de coordonnées géographiques incluant latitude et longitude, et le cas échéant altitude.
[0107] De même, le terminal tiersTTest équipé de (ou relié à) une deuxième balise30de géolocalisation. Cette balise30est configurée pour éditer des deuxièmes données31instantanées de géolocalisation, typiquement sous forme d'un tuple de coordonnées géographiques incluant latitude et longitude, et le cas échéant altitude.
[0108] Ainsi, une vingt-huitième opération128consiste, pour l'enclave8, à transmettre à l'émetteurEet au terminal tiersTTune requête (REQ) de communication de leurs données29,31instantanées de géolocalisation.
[0109] Une vingt-neuvième opération129consiste, au niveau de l'émetteurE, à éditer, à partir de la première balise28, les premières données29instantanées de géolocalisation, via une ligne17de communication sécurisée.
[0110] Une trentième opération130consiste, à partir de l'émetteurE, à charger dans l'enclave8les premières données29instantanées de géolocalisation.
[0111] Une trente-et-unième opération131consiste, au niveau du terminal tiersTT, à éditer, à partir de la deuxième balise30, les deuxièmes données31instantanées de géolocalisation, via une ligne17'de communication sécurisée.
[0112] Une trente-deuxième opération132consiste, à partir du terminal tiersTT, à charger dans l'enclave8les deuxièmes données31instantanées de géolocalisation.
[0113] Une trente-troisième opération133consiste, pour l'enclave8, à vérifier que les données29,31instantanées de géolocalisation satisfont la condition de géolocalisation. Dans l'exemple illustré, cette condition de géolocalisation est issue des instructions du contrat intelligentSC.
[0114] Si les données29,31instantanées de géolocalisation ne satisfont pas la condition de géolocalisation, il est mis fin au processus de signature.
[0115] Si au contraire les données29,31instantanées de géolocalisation satisfont la condition de géolocalisation, la phase de signature est initiée. Pour conduire celle-ci, l'enclave8doit disposer de la première clé15privée (correspondant à l'émetteurE) et de la deuxième clé16privée (correspondant au terminal tiersTT).
[0116] Une trente-quatrième opération134consiste, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Ade stockage sur lesquels sont stockés K fragments15.ide la première clé15, et à transmettre à chaque nœud2Ade stockage une requête (REQ) de communication de son fragment15.i(FIG.4).
[0117] Comme illustré sur laFIG.4, une trente-cinquième opération135consiste, à partir des nœuds2Ade stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments15.i.
[0118] Une trente-sixième opération136consiste, pour l'enclave8, à reconstituer la clé15à partir des K fragments16.iainsi chargés.
[0119] Une trente-septième opération137consiste, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Ade stockage sur lesquels sont stockésKfragments16.ide la deuxième clé16, et à transmettre à chaque nœud2Ade stockage une requête (REQ) de communication de son fragment16.i(FIG.4).
[0120] Comme illustré sur laFIG.4, une trente-huitième opération138consiste, à partir des nœuds2Ade stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments16.i.
[0121] Une trente-neuvième opération139consiste, pour l'enclave8, à reconstituer la deuxième clé16à partir des K fragments16.iainsi chargés.
[0122] Une quarantième opération140consiste à signer la transactionTXen chiffrant tout ou partie des informations de celle-ci au moyen de chaque clé15,16privée ainsi reconstituée, le résultat étant une transactionSTXsignée.
[0123] La phase de déploiement peut alors être initiée : il s'agit de soumettre la transactionSTXsignée au réseau1pour validation et inscription dans la blockchain5.
[0124] A cet effet, et selon un mode de réalisation illustré sur laFIG.4, une quarante-et-unième opération141consiste, pour l'enclave8, à établir une session de communication avec au moins un nœud2du réseau1, une quarante-deuxième opération142consistant alors à transmettre à ce nœud2la transactionSTXsignée, en vue de son inscription dans la blockchain5. La transactionSTXsignée est alors distribuée sur plusieurs nœuds2validateurs du réseau1, aux fins de vérification préalable à l'inscription.
[0125] La vérification de la transactionSTXcomprend au moins la vérification (c'est-à-dire la reconnaissance) de la signature ; elle peut en outre comprendre la reconnaissance, sur la blockchain5, des identifiants de l'émetteur et du destinataire, et le constat que l'émetteur E dispose effectivement d'un solde suffisant.
[0126] Après que la transactionSTXsignée a été vérifiée, une quarantetroisième opération143consiste, pour un ou plusieurs nœuds2validateurs, à l'inscrire dans un nouveau bloc4destiné à la blockchain5. Une quarante-quatrième opération144consiste, pour l'un des nœuds2validateurs, à ajouter le nouveau bloc4contenant la transactionSTXsignée à la blockchain5, après l'achèvement d'un mécanisme de consensus tel que preuve de travail (en anglais proof-of-work ou PoW), preuve d'autorité (en anglais proof-of-authority ou PoA) ou preuve d'enjeu (en anglais proof-of-stake ou PoS).
[0127] Le procédé qui vient d'être décrit présente les avantages suivants.
[0128] Premièrement, il permet d'offrir une nouvelle version, distribuée, de portefeuille électronique sur la blockchain5. L'émetteur E ne dispose pas de la clé15privée utilisée pour signer les transactionsTX : cette clé15est stockée de manière distribuée sur des nœuds2Adu réseau1. Le portefeuille électronique est ainsi indépendant de l'émetteurE, tout en demeurant associé à son utilisateur en tant que personne physique.
[0129] Il en va de même du terminal tiersTT, qui ne dispose pas de la clé16privée : le portefeuille électronique est donc également indépendant de celui-ci, tout en étant activable sous son contrôle.
[0130] Il en résulte une praticité, une fiabilité et une sécurité accrues. L'utilisateur est dispensé d'effectuer des sauvegardes de sa clé15privée. Le fait, en particulier, de soumettre la transactionTXà une double signature permet d'accroître la sécurité d'utilisation du portefeuille électronique, typiquement lorsque le montant d'une transaction dépasse un seuil prédéterminé.
[0131] Les clés15,16étant fragmentées, aucun nœud2du réseau1n'en dispose seul, et ne peut par conséquent reconstituer les clés15,16pour usurper l'identité de l'utilisateur derrière l'émetteur E ou le terminal tiers, et signer des transactions à leur place.
[0132] La condition supplémentaire de géolocalisation permet de limiter encore les risques d'usurpation d'identité de l'émetteurE, en soumettant la signature à la vérification de la localisation non seulement de l'émetteurE, mais également du terminal tiersTT.
[0133] Diverses variantes d'exécution peuvent être prévues.
[0134] Dans l'exemple qui vient d'être décrit, la transactionSTXsignée est inscrite dans une blockchain5déployée sur le réseau1auquel appartiennent le nœud2Cde calcul et les nœuds2Ade stockage des fragments des clés15,16privées. Cependant on peut imaginer que le réseau sur lequel la blockchain5est déployée, et le réseau auquel appartiennent le nœud2Cde calcul et les nœuds2Ade stockage, soient différents. Dans ce cas, on comprend que le nœud2Cde calcul doive être relié au réseau sur lequel la blockchain5est déployé ; en revanche, l'émetteurEet le terminal tiersTTne le sont pas nécessairement : le nœud2Cde calcul peut alors être considéré comme un mandataire de l'émetteurE, autorisé à appliquer la double signature à la transactionTX, à destination de la blockchain5déployée sur ce réseau.

Claims (1)

1. Procédé de signature numérique d'une transaction (TX) initiée par une unité de traitement informatique, dite émetteur (E), reliée à un réseau (1) pair-à-pair, cette transaction (TX) numérique étant destinée à être inscrite dans un nouveau bloc (4) d'une chaîne (5) de blocs, ce procédé comprenant les opérations suivantes : - Générer la transaction par l'émetteur (E), cette transaction contenant un identifiant d'émetteur ; - Sélectionner parmi le réseau (1) un nœud (2P) dit de calcul, équipé d'une unité de traitement dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave (8) ; - Instancier l'enclave (8) ; - Charger la transaction (TX) numérique dans l'enclave (8), via une ligne (17) de communication sécurisée ; - Identifier au moins un terminal (TT) tiers, distinct de l'émetteur (E), à l'autorisation duquel est soumise la signature de la transaction (TX) ; - Soumettre au terminal (TT) tiers la transaction (TX) accompagnée d'une requête d'autorisation et de données d'authentification ; - Charger l'autorisation dans l'enclave (8), à partir du terminal (TT) tiers, via une ligne (17') de communication sécurisée, cette autorisation étant accompagnée de données d'authentification ; - Au moyen d'une première balise (28) de géolocalisation équipant ou reliée à l'émetteur (E), éditer des premières données (29) instantanées de géolocalisation ; - Charger dans l'enclave (8), via une ligne (17) de communication sécurisée, les premières données (29) de géolocalisation ; - Au moyen d'une deuxième balise (30) de géolocalisation équipant ou relié au terminal (TT) tiers, éditer des deuxièmes données (31) instantanées de géolocalisation ; - Charger dans l'enclave (8), au moyen d'une ligne (17') de communication sécurisée, les deuxièmes données (31) de géolocalisation ; - Dans l'enclave (8), vérifier si les données d'authentification chargées à partir du terminal (TT) tiers satisfont une condition d'authentification prédéfinie, et vérifier si les données (29,31) instantanées de géolocalisation satisfont une condition de géolocalisation prédéfinie ; - Si les données d'authentification satisfont la condition d'authentification prédéfinie, et si les données (29,31) de géolocalisation satisfont la condition de géolocalisation prédéfinie, sélectionner parmi le réseau (1) des nœuds (2A) sur lesquels sont stockés des fragments (15.i) d'une première clé (15) cryptographique privée associée à l'identifiant d'émetteur contenu dans la transaction (TX) ; - Charger lesdits fragments (15.i) de la première clé (15) dans l'enclave (8) du nœud (2P) de calcul ; - Sélectionner parmi le réseau (1) des nœuds (2A) sur lesquels sont stockés des fragments (16.i) d'une deuxième clé (16) cryptographique privée associée aux données d'authentification contenu chargées à partir du terminal (TT) tiers ; - Charger les fragments (16.i) de la deuxième clé (16) dans l'enclave (8) du nœud (2P) de calcul - Dans l'enclave (8) du nœud (2P) de calcul : o Reconstituer la première clé (16) cryptographique privée à partir de ses fragments (15.i) ainsi chargés ; o Reconstituer la deuxième clé (16) cryptographique privée à partir de ses fragments (16.i) ainsi chargés ; o Signer numériquement la transaction (TX) par chiffrement de tout ou partie des informations de celle-ci au moyen de chaque clé (15,16) cryptographique privée ainsi reconstituée, pour former une transaction (STX) signée ; - Inscrire la transaction (STX) signée dans un nouveau bloc (4) destiné à la chaîne (5) de blocs.
CH00768/19A 2019-06-07 2019-06-07 Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. CH716296A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00768/19A CH716296A2 (fr) 2019-06-07 2019-06-07 Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00768/19A CH716296A2 (fr) 2019-06-07 2019-06-07 Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair.

Publications (1)

Publication Number Publication Date
CH716296A2 true CH716296A2 (fr) 2020-12-15

Family

ID=73727427

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00768/19A CH716296A2 (fr) 2019-06-07 2019-06-07 Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair.

Country Status (1)

Country Link
CH (1) CH716296A2 (fr)

Similar Documents

Publication Publication Date Title
EP3547203A1 (fr) Méthode et système de gestion d&#39;accès à des données personnelles au moyen d&#39;un contrat intelligent
WO2013107362A1 (fr) Procédé et système de protection des données
CH716295A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
FR3035248A1 (fr) Systeme-sur-puce a fonctionnement securise et ses utilisations
CH716294A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous conditions d&#39;identification personnelle et de géolocalisation, d&#39;une transaction destinée à une blockchain.
EP3327607B1 (fr) Procede de verification de donnees
CH716285A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716296A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
CH716292A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous condition de géolocalisation, d&#39;une transaction destinée à une blockchain.
CH716300A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un réseau pair-à-pair sur lequel est déployée cette blockchain.
CH716302A2 (fr) Procédé de signature décentralisée d&#39;une transaction destinée à une blockchain, suivant les instructions d&#39;un contrat intelligent.
CH716299A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un réseau pair-à-pair.
CH716291A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique, d&#39;une transaction destinée à une blockchain.
CH716301A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain déployée sur un réseau pair-à-pair, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un autre réseau pair-à-pair.
CH716293A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous condition d&#39;identification personnelle, d&#39;une transaction destinée à une blockchain.
FR3002056A1 (fr) Authentification de signature manuscrite numerisee.
EP2285042A1 (fr) Module logiciel de sécurisation utilisant le chiffrement du haché d&#39;un mot de passe concaténé avec une graine
CH716298A2 (fr) Procédé de stockage, sous forme cryptée, d&#39;une application sur un réseau blockchain, avec audit préalable du code source de cette application.
CH716288A2 (fr) Procédé de traitement de données biométriques d&#39;un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, sous condition de géolocalisation, d&#39;un résultat d&#39;analyse.
CH716286A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu sous condition de géolocalisation, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716290A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu sous conditions d&#39;identification et de géolocalisation, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716287A2 (fr) Procédé de traitement de données biométriques d&#39;un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716289A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, sous condition d&#39;identification personnelle, d&#39;un résultat d&#39;analyse.
CA3093385A1 (fr) Traitement securise de donnees
CH716284A2 (fr) Procédé de traitement distribué, au sein d&#39;un réseau blockchain et sous enclaves, de données informatiques chiffrées avec une clé fragmentée.

Legal Events

Date Code Title Description
AZW Rejection (application)