CH716287A2 - Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse. - Google Patents

Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse. Download PDF

Info

Publication number
CH716287A2
CH716287A2 CH00759/19A CH7592019A CH716287A2 CH 716287 A2 CH716287 A2 CH 716287A2 CH 00759/19 A CH00759/19 A CH 00759/19A CH 7592019 A CH7592019 A CH 7592019A CH 716287 A2 CH716287 A2 CH 716287A2
Authority
CH
Switzerland
Prior art keywords
biometric data
enclave
network
data
sep
Prior art date
Application number
CH00759/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 CH00759/19A priority Critical patent/CH716287A2/fr
Publication of CH716287A2 publication Critical patent/CH716287A2/fr

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/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/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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/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
    • 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
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/17Image acquisition using hand-held instruments
    • 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/12Fingerprints or palmprints
    • 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
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2372Updates performed during offline database operations
    • 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
    • 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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Medical Informatics (AREA)
  • Ophthalmology & Optometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de traitement des données biométriques d'un individu, à partir d'un émetteur ( E2 ) relié à un réseau ( 1 ) pair-à-pair sur lequel est déployée une blockchain ( 5 ), ce procédé comprenant la distribution préalable, sur le réseau ( 1 ), d'un conteneur ( 22 ) crypté contenant des données ( 15 ) biométriques de référence puis, ultérieurement, la comparaison de données ( 27 ) scannées au niveau de l'émetteur ( E2 ) avec les données ( 15 ) de référence contenues dans le conteneur ( 22 ) crypté ; le résultat de la comparaison est inscrit dans la blockchain ( 5 ).

Description

DOMAINE TECHNIQUE
[0001] L'invention a trait au domaine de l'informatique, et plus précisément au traitement des données biométriques d'un individu.
ART ANTERIEUR
[0002] Les données biométriques des individus (typiquement une empreinte digitale ou de la paume, une empreinte rétinienne ou de l'iris, le réseau veineux de la main, une image du visage), tendent à se généraliser en tant que données d'authentification, notamment à l'usage des systèmes de contrôle d'accès à un environnement physique (par ex. local, coffre-fort) ou virtuel (typiquement une session sur un ordinateur, une tablette ou encore un smartphone).
[0003] Classiquement, des données biométriques de référence, capturées lors d'une session de paramétrage, sont stockées dans une base de données, puis, sur requête, sont appelées pour être comparées à des données biométriques instantanées, capturées localement à partir d'un terminal sur un individu souhaitant accéder à un environnement donné.
[0004] Lorsque plusieurs individus („utilisateurs“) sont présumés autorisés à accéder à un même environnement, une technique classique consiste à mémoriser, dans la base de données, autant de données biométriques que d'individus bénéficiant d'une autorisation d'accès.
[0005] Dans une première version, dite locale, la base de données est locale, c'est-à-dire qu'elle est stockée dans un espace mémoire équipant le (ou directement relié au) terminal à partir duquel est réalisée la capture. Cette technique peut paraître à l'abri des intrusions (et donc des usurpations d'identité) en raison de son caractère local, mais il est le plus souvent nécessaire de prévoir un accès réseau à la base de données, aux fins d'administration (y compris l'ajout ou le retrait d'utilisateurs. Il en résulte que la base de données peut être piratée.
[0006] Dans une deuxième version, dite délocalisée, la base de données est stockée dans un espace mémoire réservé dans un serveur distant auquel, à chaque sollicitation par un utilisateur, le terminal se connecte pour comparer les données biométriques capturées aux données biométriques de référence.
[0007] Cette deuxième version présente l'avantage de permettre une administration à distance des autorisations associées aux utilisateurs. Cependant, elle repose, d'une part, sur la politique de sécurité informatique à laquelle est soumis le serveur distant sur lequel est stockée la base de données ; d'autre part, sur la confiance que l'on peut accorder à l'administrateur dudit serveur.
[0008] Il existe par ailleurs de nombreux services pour lesquels les données biométriques des individus sont stockées sur des serveurs distants pour être utilisées en tant que moyen d'authentification sur des comptes utilisateurs.
[0009] Dans tous les cas, il n'est jamais certain que les données biométriques des utilisateurs soient protégées des intrusions, de la copie, d'une éventuelle exploitation commerciale, ou encore de l'effacement.
[0010] Il existe par conséquent un besoin d'améliorer la confidentialité avec laquelle sont traitées les données biométriques des individus.
RESUME DE L'INVENTION
[0011] Il est proposé un procédé de traitement de données biométriques d'un individu, à partir d'une unité de traitement informatique, dite émetteur, reliée ou intégrée à un réseau pair-à-pair composé d'une pluralité de nœuds formant une base de données distribuée sur laquelle est mémorisée, par réplication sur chaque nœud, une chaîne de blocs, ce procédé comprenant : <tb><SEP>A) Une phase de calibrage, qui comprend les opérations suivantes : <tb><SEP><SEP>- Au moyen d'un dispositif de capture, réaliser une première capture de données biométriques, dites de référence, de l'individu au niveau d'un membre ou d'un organe de celui-ci ; <tb><SEP><SEP>- Chiffrer les données biométriques issues de cette première capture pour former un conteneur crypté de données biométriques ; <tb><SEP><SEP>- Mémoriser séparément le conteneur crypté de données biométriques et une clé cryptographique de déchiffrement de celui-ci ; <tb><SEP><SEP>- Inscrire, dans un bloc de la chaîne de blocs, une transaction contenant une trace de cette capture et/ou de cette mémorisation ; <tb><SEP>A) Une phase de contrôle, qui comprend les opérations suivantes : <tb><SEP><SEP>- Etablir une session de communication entre l'émetteur et le réseau ; <tb><SEP><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><SEP>- Instancier l'enclave ; <tb><SEP><SEP>- Au moyen d'un dispositif de capture équipant ou relié à l'émetteur, réaliser une capture de données biométriques de l'individu au niveau d'un membre ou d'un organe de cet individu ; <tb><SEP><SEP>- Charger dans l'enclave, via une ligne de communication sécurisée, les données biométriques capturées ; <tb><SEP><SEP>- Sélectionner parmi le réseau un nœud de stockage sur lequel est mémorisé un exemplaire du conteneur crypté contenant les données biométriques de référence ; <tb><SEP><SEP>- Charger le conteneur crypté dans l'enclave ; <tb><SEP><SEP>- Déchiffrer dans l'enclave les données biométriques de référence, au moyen d'une clé de déchiffrement associée au conteneur crypté ; <tb><SEP><SEP>- Dans l'enclave, comparer les données biométriques capturées et les données de référence ; <tb><SEP><SEP>- Inscrire dans un bloc de la chaîne de blocs une transaction comprenant une trace du résultat de cette comparaison.
[0012] Selon un mode préféré de réalisation, la phase de calibrage comprend les opérations suivantes : Fragmenter la clé cryptographique de déchiffrement ; Désigner, parmi le réseau, un groupe de nœuds de stockage en nombre égal aux fragments ; Distribuer chaque fragment de la clé cryptographique de déchiffrement vers un nœud de stockage, chaque nœud de stockage recevant un unique fragment.
[0013] Dans ce cas, la phase de contrôle comprend avantageusement les opérations suivantes : <tb><SEP>- A partir de l'enclave du nœud de calcul, sélectionner parmi le réseau des nœuds sur lesquels sont stockés des fragments de la clé cryptographique de déchiffrement associée au conteneur ; <tb><SEP>- Charger lesdits fragments dans l'enclave du nœud de calcul ; <tb><SEP>- Dans l'enclave : <tb><SEP><SEP>o Reconstituer la clé cryptographique de déchiffrement associée au conteneur, à partir des fragments ainsi chargés ; <tb><SEP><SEP>o Déchiffrer les données biométriques du conteneur au moyen de la clé ainsi reconstituée.
BREVE DESCRIPTION DES FIGURES
[0014] 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 schéma fonctionnel illustrant pour partie une architecture réseau, pour partie des étapes d'une phase de calibrage, et pour partie des fichiers produits, échangés ou stockés au sein du réseau pour les besoins (ou en application) de cette phase ; <tb><SEP>LaFIG.4est un schéma fonctionnel illustrant des étapes d'un procédé de traitement des données biométriques d'un individu.
DESCRIPTION DETAILLEE DE L'INVENTION
[0015] Le procédé proposé vise à traiter, de manière confidentielle, des données biométriques d'un individu.
[0016] Sans s'y restreindre, le procédé de traitement proposé exploite, en les combinant, des fonctionnalités offertes par deux technologies relativement récentes dont il paraît utile de faire une description préalable avant d'entrer dans les détails du procédé, à savoir : 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) ; La technologie de l'environnement d'exécution sécurisé ou, en terminologie anglo-saxonne, du trusted execution environment (TEE).
[0017] 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“.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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 registre45blockchain 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.
[0026] 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éseau1, 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.
[0027] 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 leur registre5blockchain, des transactions passées entre un ou plusieurs terminaux émetteurs, et un ou plusieurs terminaux récepteurs, indifféremment appelés „utilisateurs“.
[0028] 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 le registre5blockchain pour inscrire, dans la zone mémoire, les transactions validées par inscription dans le registre5blockchain.
[0029] Sauf mention contraire, et par souci de simplification, l'expression simple „chaîne de blocs“ ou „blockchain“ désigne le registre5blockchain lui-même.
[0030] Certaines technologies blockchain récentes (Ethereum, typiquement) ajoutent aux trois couches matérielle (réseau blockchain), protocolaire (protocole blockchain) et informationnelle (registre blockchain) 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 le registre5blockchain à partir des nœuds2.
[0031] On décrit à présent succinctement la technologie des contrats intelligents.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain.
[0036] On introduit à présent brièvement les environnements d'exécution sécurisé.
[0037] 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.
[0038] 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).
[0039] 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.
[0040] 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 Internai, 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.
[0041] 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.
[0042] 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).
[0043] 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 part(s)).
[0044] 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).
[0045] 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.
[0046] 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.
[0047] On a, sur laFIG.2, représenté de manière fonctionnelle l'enclave 8 sous 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.
[0048] Nous expliquerons ci-après comment sont exploitées les enclaves.
[0049] Le procédé proposé vise à effectuer un traitement décentralisé de données biométriques d'un individu personne physique. Ce traitement comprend deux phases : Une phase préalable de calibrage ; Une phase de contrôle.
[0050] On décrit tout d'abord la phase de calibrage, qui vise à élaborer des données15biométriques de référence de l'individu, à partir d'une première unitéE1de traitement informatique (équipant par ex. un ordinateur personnel fixe ou portable, une tablette, un smartphone, ou encore un dispositif de contrôle d'accès), reliée ou intégrée au réseau 1 blockchain et appelée „premier émetteur“. Sur laFIG.3, le premier émetteur se présente sous la forme d'un smartphone. Cette forme d'exécution est purement illustrative.
[0051] A cet effet, le premier émetteurE1est équipé de (ou relié à) un dispositif16de capture biométrique ou scanneur. Le scanneur16est configuré pour réaliser une capture des données15biométriques de référence de l'utilisateur 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 utilisateur.
[0052] Ces données15biométriques de référence sont destinées à être stockées non pas localement dans le premier émetteurE1, mais sur le réseau1blockchain. En effet, les nœuds2du réseau1blockchain étant tous équipés de zones mémoires, celles-ci peuvent être exploitées en tant qu'espace de stockage pour les données15biométriques de référence. Pour minimiser le risque de perte des données15, il est avantageux de procéder à une réplication de celles-ci, c'est-à-dire d'effectuer une copie des données15, et de distribuer une copie à plusieurs nœuds2du réseau1blockchain. La traçabilité des données15peut être réalisée par inscription, dans le registre5blockchain, d'une ou plusieurs traces (ou empreintes numériques) des mémorisations ainsi effectuées.
[0053] Ce stockage distribué des données15est avantageusement piloté par un contrat intelligent, activé par exemple par le premier émetteurE1qui, tout en transmettant les données15à stocker au réseau1, transmet au contrat intelligent un appel par la procédure décrite précédemment.
[0054] Cependant, si la réplication des données15au sein du réseau1blockchain résout le problème de la pérennité des données15, il ne résout pas le problème de leur confidentialité.
[0055] Il est donc proposé de distribuer sur le réseau1non seulement les données15(sous forme cryptée), mais également une clé de déchiffrement de celles-ci, via une enclave8instanciée sur un nœud2E, dit nœud d'entrée, du réseau1(FIG.3).
[0056] A cet effet, une première opération préliminaire consiste, au niveau du premier émetteurE1, à réaliser, au moyen de son scanneur16, une capture des données15biométriques de l'individu, considérées ensuite en tant que données de référence. Dans l'exemple illustré, ces données15biométriques de référence sont issues d'une empreinte digitale.
[0057] Une deuxième opération préliminaire consiste à transmettre, depuis le premier émetteurE1, une requête de stockage des données15au réseau1.
[0058] A réception de la requête de stockage par au moins un nœud2du réseau1, il est sélectionné, au sein du réseau1, au moins un nœud2Ed'entrée, équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave8.
[0059] Cette enclave8est alors instanciée, et les données15biométriques de référence y sont chargées à partir du premier émetteurE1via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS). A cet effet, l'enclave8peut être pourvue, dès son instanciation, d'une émulation d'interface18de communication supportant le protocole choisi (ici TLS) pour l'échange des données sécurisées.
[0060] Le protocole blockchain est avantageusement chargé dans l'enclave8, pour former un module19blockchain apte à interroger le registre5blockchain et/ou à participer au processus de création et validation des blocs4.
[0061] Une transaction20contenant une empreinte numérique du chargement des données ainsi effectué est inscrite dans un bloc4de la blockchain5, aux fins de traçabilité.
[0062] Cette transaction20peut être transmise au module19blockchain par le premier émetteurE1, pour être inscrite par un ou plusieurs nœuds2du réseau (par le processus décrit plus haut) dans un nouveau bloc4du registre5blockchain. En variante, le module19blockchain émet de lui-même une transaction20pour inscription dans un nouveau bloc4.
[0063] Dans l'enclave8se déroule alors un processus qui comprend les opérations suivantes.
[0064] Une première opération consiste à chiffrer les données15au moyen d'une clé21cryptographique de chiffrement pour former un conteneur22crypté, en lui associant une clé23cryptographique de déchiffrement. A cet effet, les données15reçues du premier émetteurE1sont relayées par l'interface18de communication à un module24de chiffrement implémenté dans l'enclave8.
[0065] Selon un mode préféré de réalisation, le chiffrement est symétrique. Dans ce cas, la clé21de chiffrement et la clé23de déchiffrement sont une seule et même clé.
[0066] Une deuxième opération consiste à fragmenter la clé23de déchiffrement. Plus précisément, la clé23de déchiffrement est fragmentée en un nombre N prédéterminé de fragments23.i, (i un entier, 2≤i≤N).
[0067] Selon un mode préféré de réalisation, N est tel que N>3 et la fragmentation est réalisée en application des règles de Shamir (dite du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing), et plus précisément du schéma seuil, où un nombre entier prédéterminé K (1<K<N) est choisi tel qu'un nombre K de fragments23.isont suffisants pour reconstituer la clé23de déchiffrement.
[0068] Une troisième opération consiste à désigner, parmi le réseau1, un ou plusieurs nœuds2Aprimaires de stockage.
[0069] A cet effet, l'enclave8est avantageusement pourvue d'un module25de distribution de données, auquel le module24de chiffrement communique le conteneur22crypté pour distribution aux nœuds2Aprimaires de stockage.
[0070] Une quatrième opération consiste à désigner, parmi le réseau1, un groupe de plusieurs nœuds2Bsecondaires de stockage, en nombre N égal au nombre de fragments23.ide la clé23de déchiffrement.
[0071] Ces nœuds2Bsecondaires de stockage sont de préférence distinct(s) des nœuds2Aprimaires de stockage - en d'autres termes, les nœuds2Aprimaires de stockage et les nœuds2Bsecondaires de stockage forment deux groupes disjoints (représentés en pointillés sur laFIG.3).
[0072] Une cinquième opération consiste à distribuer le conteneur22crypté vers le ou les nœuds2Aprimaires de stockage.
[0073] Une sixième opération consiste à distribuer les fragments23.ide la clé23cryptographique de déchiffrement vers les nœuds2Bsecondaires de stockage, chaque nœud2Bsecondaire de stockage recevant un unique fragment23.i.
[0074] Selon un mode préféré de réalisation, l'enclave8est pourvue d'un module26de fragmentation et de distribution de clé, auquel le module24de chiffrement communique la clé23de déchiffrement pour fragmentation et distribution aux nœuds2Bsecondaires de stockage.
[0075] Ces opérations achevées, l'enclave8peut être refermée.
[0076] Hors de l'enclave8, les opérations suivantes sont réalisées : <tb><SEP>o Le conteneur22crypté est mémorisé au sein de chaque nœud2Aprimaire de stockage ; <tb><SEP>o Chaque fragment23.ide la clé23cryptographique de déchiffrement est mémorisé au sein de chaque nœud2Brespectif secondaire de stockage.
[0077] Pour assurer la traçabilité de ces opérations, au moins une transaction contenant une empreinte numérique des distributions ou des mémorisations ainsi effectuées est inscrite dans un bloc4de la chaîne5de blocs, par un ou plusieurs nœuds2du réseau1. Cette transaction peut être initiée par les nœuds2Aprimaires et2Bsecondaires de stockage, mais elle peut également être initiée par l'enclave8elle-même (et plus précisément par le module19blockchain) avant sa fermeture.
[0078] Les données15biométriques de référence, ainsi encapsulées dans un conteneur22crypté, peuvent être stockées pour une durée déterminée ou indéterminée sur les nœuds2Ade stockage du réseau1.
[0079] Ces données15biométriques de référence servent, autant que de besoin, à authentifier l'utilisateur dès lors que celui-ci a besoin d'accéder à un lieu ou un service : tel est l'objectif de la phase de contrôle, qui est appliquée à de nouvelles données27biométriques de l'individu, qui doivent être comparées aux données15de référence.
[0080] On décrit à présent cette phase de contrôle, qui est initiée à partir d'une deuxième unitéE2de traitement informatique (équipant par ex. un ordinateur personnel fixe ou portable, une tablette, un smartphone, ou encore un dispositif de contrôle d'accès), reliée ou intégrée au réseau 1 blockchain et appelée deuxième émetteur.
[0081] Le deuxième émetteurE2peut être confondu avec le premier émetteurE1 ; néanmoins les émetteursE1,E2peuvent être différents.
[0082] Le contrôle des données27biométriques est typiquement effectué aux fins de déverrouiller, pour l'utilisateur, un accès à un environnement physique (un logement, une pièce, un coffre-fort) ou virtuel (un environnement de travail dans un ordinateur, une tablette ou un smartphone).
[0083] Le contrôle est effectué de manière décentralisée, sur le réseau1.
[0084] Pour cette phase de contrôle, le deuxième émetteurE2est équipé de (ou relié à) un dispositif28de capture biométrique ou scanneur. Le scanneur28est configuré pour réaliser une capture des données27biométriques de l'utilisateur 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 utilisateur.
[0085] Une première opération101consiste à établir, sur requête (REQ), une session de communication entre le deuxième émetteurE2et le réseau1.
[0086] Cette session est activée à partir du deuxième émetteurE2, par exemple à la suite d'une action prédéterminée comme l'appui sur un bouton ou la détection (par ex. au moyen d'un capteur de proximité) de l'approche du membre ou de l'organe de l'utilisateur.
[0087] Une deuxième opération102consiste, parmi le réseau1, à sélectionner un nœud2Pde calcul, équipé d'une unité de traitement dans laquelle est implémentée une enclave8'.
[0088] Une troisième opération103consiste, au sein du nœud2Pde calcul, à instancier l'enclave8'.
[0089] Une quatrième opération104consiste, au niveau du deuxième émetteurE2, à réaliser, au moyen de son scanneur28, une capture des données27biométriques de l'individu. Dans l'exemple illustré, ces données27biométriques sont issues d'une empreinte digitale.
[0090] Une cinquième opération105consiste, à partir du deuxième émetteurE2, à charger, dans l'enclave8'du nœud2Pde calcul, via une ligne29de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS), les données27biométriques ainsi capturées.
[0091] Selon un mode préféré de réalisation, le contrôle des données27, conduit au sein de l'enclave8', est effectué suivant les instructions d'un contrat intelligentSCdéployé sur la blockchain5.
[0092] Comme illustré sur laFIG.4, une sixième opération106consiste, pour l'enclave8', à appeler (CALL) le contrat intelligentSC.
[0093] Une septième opération107consiste, en retour, à charger le code du contrat intelligentSCdans l'enclave8'pour exécution. Est également chargée dans l'enclave8'une 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.
[0094] Une huitième opération108consiste, pour l'enclave8', à sélectionner parmi le réseau1un nœud2Ade stockage sur lequel est stocké un exemplaire du conteneur22crypté contenant les données15biométriques de référence, et à transmettre à ce nœud2Bde stockage une requête (REQ) de communication de ce conteneur22.
[0095] Pour faciliter cette sélection, le conteneur22crypté peut être couplé à un identifiant associé au deuxième émetteurE2(transmis à l'enclave8'avec les données27biométriques scannées), ou à l'utilisateur (et qui peut être saisi par celui-ci sur une interface équipant ou reliée au deuxième émetteurE2).
[0096] Une neuvième opération109consiste, à partir du nœud2Bde stockage, à charger dans l'enclave8'le conteneur22crypté.
[0097] Le déchiffrement des données15biométriques de référence du conteneur22crypté nécessite la clé23cryptographique de déchiffrement, également stockée sur le réseau1.
[0098] Une dixième opération110consiste par conséquent, pour l'enclave8', à sélectionner parmi le réseau1K nœuds2Bde stockage sur lesquels sont stockés K fragments23.irespectifs, et à transmettre à chaque nœud2Bde stockage une requête (REQ) de communication de son fragment23.i.
[0099] Comme illustré sur laFIG.3, une onzième opération111consiste, à partir des nœuds2Bde stockage ainsi sélectionnés, à charger dans l'enclave8'les K fragments23.i.
[0100] Une douzième opération112consiste, pour l'enclave8', à reconstituer la clé23à partir des K fragments23.iainsi chargés.
[0101] Une treizième opération113consiste, pour l'enclave8', à déchiffrer les données15biométriques de référence du conteneur22en lui appliquant la clé23ainsi reconstituée.
[0102] Une quatorzième opération114consiste, pour l'enclave8', à comparer les données27biométriques issues de la capture effectuée par le scanneur28et les données15biomé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 cette comparaison est un échec, les données15,27sont décrétées ne pas correspondre, et l'action pour laquelle le contrôle des données biométriques de l'utilisateur était requis (typiquement un déverrouillage) n'est pas autorisée. Le deuxième émetteurE2en est informé. Les opérations de capture et de comparaison des données biométriques peuvent cependant ê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ées15,27sont décrétées correspondre, et l'action pour laquelle le contrôle des données biométriques de l'utilisateur était requis est autorisée.
[0105] Quoiqu'il en soit, la comparaison produit un résultat30(sous forme, par ex., d'un bit de valeur 0 en cas d'échec, et de valeur 1 en cas de succès).
[0106] Lorsque l'action (typiquement un déverrouillage) doit être appliquée au niveau du deuxième émetteurE2, celui-ci doit être informé du résultat.
[0107] Dans ce cas, une quinzième opération115consiste, pour l'enclave8', à transmettre le résultat30au premier émetteurE2.
[0108] Par ailleurs, aux fins de traçabilité, le résultat30(ou une trace de ce résultat29) est de préférence inscrit dans la blockchain5.
[0109] Dans ce cas, une seizième opération116consiste, pour l'enclave8, à initier une transactionTXà destination de la blockchain5. Cette transaction peut être signée au moyen d'une clé privée associée à l'enclave8'.
[0110] A cet effet, et selon un mode de réalisation illustré sur laFIG.3, une dix-septième opération117consiste, pour l'enclave8', à établir une session de communication (SESS) avec au moins un nœud2du réseau1, une dix-huitième opération118consistant alors à transmettre à ce nœud2la transactionTXsignée, en vue de son inscription dans la blockchain5. La transactionTXsignée est alors distribuée sur plusieurs nœuds2validateurs du réseau1, aux fins de vérification préalable à l'inscription.
[0111] Après que la transactionTXsignée a été vérifiée, une dixneuvième opération119consiste, pour un ou plusieurs nœuds2validateurs, à l'inscrire dans un nouveau bloc4destiné à la blockchain5. Une vingtième opération120consiste, pour l'un des nœuds2validateurs, à ajouter le nouveau bloc4contenant la transactionTXsigné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).
[0112] Le procédé qui vient d'être décrit présente les avantages suivants.
[0113] Premièrement, les données15biométriques de référence, cryptées, ne sont exploitables par aucun tiers, y compris celui qui en assure la mémorisation sur un nœud2Ade stockage.
[0114] Aucune utilisation (en particulier commerciale) ne peut donc en être faite, au bénéfice de la confidentialité.
[0115] Deuxièmement, la réplication du conteneur22sur plusieurs nœuds2Ade stockage limite, par ailleurs, le risque d'effacement tout en augmentant la fiabilité du procédé.
[0116] Troisièmement, le caractère décentralisé du contrôle évite une éventuelle prise en main frauduleuse sur le deuxième émetteurE2par un tiers non autorisé.

Claims (3)

1. Procédé de traitement de données biométriques d'un individu, à partir d'une unité de traitement informatique, dite émetteur (E2), reliée ou intégrée à un réseau (1) pair-à-pair composé d'une pluralité de nœuds (2) formant une base de données distribuée sur laquelle est mémorisée, par réplication sur chaque nœud (2), une chaîne (5) de blocs, ce procédé comprenant : A) Une phase de calibrage, qui comprend les opérations suivantes : - Au moyen d'un dispositif (16) de capture, réaliser une première capture de données (15) biométriques, dites de référence, de l'individu au niveau d'un membre ou d'un organe de celui-ci ; - Chiffrer les données (15) biométriques issues de cette première capture pour former un conteneur (22) crypté de données biométriques ; - Mémoriser séparément le conteneur (22) crypté de données biométriques et une clé (22) cryptographique de déchiffrement de celui-ci ; - Inscrire, dans un bloc (4) de la chaîne (5) de blocs, une transaction contenant une trace de cette capture et/ou de cette mémorisation ; B) Une phase de contrôle, qui comprend les opérations suivantes : - Etablir une session de communication entre l'émetteur (E2) et le réseau (1) ; - 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') ; - Au moyen d'un dispositif (28) de capture équipant ou relié à l'émetteur (E2), réaliser une capture de données (27) biométriques de l'individu au niveau d'un membre ou d'un organe de cet individu ; - Charger dans l'enclave (8'), via une ligne (29) de communication sécurisée, les données (27) biométriques capturées ; - Sélectionner parmi le réseau (1) un nœud (2B) de stockage sur lequel est mémorisé un exemplaire du conteneur (22) crypté contenant les données (15) biométriques de référence ; - Charger le conteneur (22) crypté dans l'enclave (8') ; - Déchiffrer dans l'enclave (8') les données (15) biométriques de référence, au moyen d'une clé (23) de déchiffrement associée au conteneur (22) crypté ; - Dans l'enclave (8'), comparer les données (27) biométriques capturées et les données (15) de référence ; - Inscrire dans un bloc (4) de la chaîne (5) de blocs une transaction comprenant une trace du résultat (30) de cette comparaison.
2. Procédé de traitement selon la revendication 1, dont la phase de calibrage comprend les opérations suivantes : - Fragmenter la clé (23) cryptographique de déchiffrement ; - Désigner, parmi le réseau, un groupe de nœuds (2B) de stockage en nombre égal aux fragments (23.i) ; - Distribuer chaque fragment (23.i) de la clé cryptographique de déchiffrement vers un nœud (2B) de stockage, chaque nœud (2B) de stockage recevant un unique fragment (23.i).
3. Procédé de traitement selon la revendication2, dont la phase de contrôle comprend les opérations suivantes : - A partir de l'enclave (8') du nœud (2P) de calcul, sélectionner parmi le réseau (1) des nœuds (2B) sur lesquels sont stockés des fragments (23.i) de la clé (22) cryptographique de déchiffrement associée au conteneur (22) ; - Charger lesdits fragments (23.i) dans l'enclave (8') du nœud (2C) de calcul ; - Dans l'enclave (8') : o Reconstituer la clé (23) cryptographique de déchiffrement associée au conteneur (22), à partir des fragments (23.i) ainsi chargés ; o Déchiffrer les données (15) biométriques du conteneur (22) au moyen de la clé (23) ainsi reconstituée.
CH00759/19A 2019-06-07 2019-06-07 Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse. CH716287A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00759/19A CH716287A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00759/19A CH716287A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse.

Publications (1)

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

Family

ID=73727417

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00759/19A CH716287A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse.

Country Status (1)

Country Link
CH (1) CH716287A2 (fr)

Similar Documents

Publication Publication Date Title
EP3547203B1 (fr) Méthode et système de gestion d&#39;accès à des données personnelles au moyen d&#39;un contrat intelligent
TWI724683B (zh) 電腦實施的用於管理用戶金鑰對的方法、用於管理用戶金鑰對的系統以及用於管理用戶金鑰對的裝置
WO2013107362A1 (fr) Procédé et système de protection des données
WO2021057182A1 (fr) Procédé et appareil de mise à jour de confiance pour logique fpga
TWI724681B (zh) 基於身分資訊管理密碼金鑰
TWI728587B (zh) 用於安全地執行加密操作的電腦實施的方法、系統及裝置
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.
WO2021057272A1 (fr) Procédé et appareil pour mettre en œuvre une invocation de contrat basée sur fpga
WO2021057273A1 (fr) Procédé et appareil pour réaliser un appel de contrat efficace sur un fpga
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.
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.
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.
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.
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.
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.
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.
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.
CH716291A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique, d&#39;une transaction destinée à une blockchain.
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.
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.
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.
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.
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.

Legal Events

Date Code Title Description
AZW Rejection (application)