Method for identifying a physical person
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- BANKS & ACQUIRERS INT HLDG SAS
- Filing Date
- 2024-07-01
- Publication Date
- 2026-05-06
AI Technical Summary
Existing biometric identification systems face security issues when shared among multiple service providers, allowing for potential data breaches, lack of profile management, and compromised personal data privacy, especially in mass adoption scenarios.
A method that generates link values and verification values using hash functions with dedicated keys, storing these values in separate databases, allowing for secure identification and profile management, enabling multiple profiles for a single user and revocation of identities from specific service providers without affecting others.
Enhances security by requiring attackers to generate both link and verification values, allows for multiple profiles and secure identity revocation, and improves personal data protection by eliminating the need for a filter table, thus respecting user privacy.
Smart Images

Figure EP2024068431_02012025_PF_FP_ABST
Abstract
Description
Method of identifying a natural person
[0001] The invention relates to a method and a system for identifying a natural person, in particular the biometric identification of a natural person.
[0002] A method for identifying a natural person comprises a step of collecting identity data, for example a biometric fingerprint provided by a biometric sensor, and a step of responding by providing a personal identifier, for example a name, an address or a number, associated with this identity data within an identity database. Such an identification method thus allows a natural person to be identified to various service providers, such as merchants.
[0003] Thus, an identification system generally comprises a secrets database comprising a list of secrets of respective natural persons, for example respective biometric fingerprints, and an identity database separate from the secret database and comprising the list of respective identifiers of these natural persons. The secrets database is managed by a secrets server and the identity database is managed by an identity server separate from the secrets server.
[0004] In one prior art, the secrets database and the identity database list the respective secrets and identifiers according to a common index. Therefore, when the secret server receives a secret, it compares it to the secrets in the secrets database. When it identifies a matching secret, it transmits the index number of this secret to the identity server. The identity server then returns the identifier having the same index number in the identity database.
[0005] This approach is not secure for mass use. In particular, if two people register at the same time, their respective index numbers may be reversed in one of the two databases.
[0006] In another prior art, a unique numerical value is generated when the natural person registers. It is associated in the secrets database with the secret of the natural person and in the identity database with the identifier of this natural person. It is this numerical value that is sent by the secret server to the identity server. The identity server then returns the identifier associated with the same numerical value in the identity database.
[0007] However, this approach is vulnerable to attack. For example, an attacker with write access to one of the two databases could reverse the numerical values, for example, A and B, of two individuals. In such a case, if the secrets server collected the secret of person A, the identity server would return the identifier of person B.
[0008] To address this, another approach is proposed in Annex A of the proposed ISO 24745 standard for the protection of biometric data. The unique numeric value is replaced, in the secret and identity databases, by a link value, called "common identifier (CI)" in the proposed standard. This link value is calculated using a public "message authentication code (MAC)" hash function, taking as input both the secret of the natural person and the identifier of this natural person, as well as a parameter key for the function. It is this link value that is sent by the secret server to the identity server. The identity server then returns the identifier associated with the same link value in the identity database. To corrupt this system, an attacker would have to generate this link value.He would therefore have to have access to both databases in writing, as well as to the dedicated key, which makes this attack difficult to carry out.
[0009] However, this approach still has drawbacks in the event of mass adoption of the identification system, particularly if many service providers wish to use this system and if individuals wish to be able to be identified to several of these service providers.
[0010] One solution is to provide, for each service provider, a dedicated secrets database and an identity database for individuals registered with that service provider. However, the fleet of servers to be implemented and managed is then costly and difficult to maintain for the identification system manager. In addition, this requires an individual to repeat the registration and identification process for each service provider with which they wish to be identified, which is tedious.
[0011] Another solution is to share a single identity database and a single database of secrets of natural persons for all service providers, and to associate a table of filtering rules to select the service providers with which each natural person is registered. However, a single natural person cannot then have several distinct profiles; they have a single profile for all service providers. Similarly, revocation of identity with a single service provider is impossible. Furthermore, if the identity of the natural person is compromised by one service provider, it is then compromised for all the others. In addition, the filtering table risks being exploited commercially, in particular to obtain information on the behavior of natural persons, which risks contravening the principles of respect for their personal data.Finally, this filter table risks being manipulated by a malicious attacker.
[0012] The invention aims in particular to provide a method and a system for identifying a natural person which, although implementing secret and identity databases shared by a large number of service providers, improves the security of the data of natural persons, the respect of their personal data, allows the revocation of identities from chosen service providers and allows the management of several profiles for the same natural person.
[0013] To this end, the invention relates to a method for identifying a natural person, implemented by computer and comprising the following steps:
[0014] - obtaining a code;
[0015] - obtaining a secret from the natural person;
[0016] - comparison of the secret of the natural person with secrets from a secrets database;
[0017] - when a secret corresponding to the secret of the natural person in the secrets database is identified, generation of a link value from the secret and from the code, preferably from a hash function associated with a dedicated key;
[0018] - comparing the generated link value to link values in an identity database separate from the secrets database or to link values in a buffer database separate from the secrets database and the identity database;
[0019] - obtaining a verification value associated with the link value in the identity database, or, the link value being a first link value in a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value associated with a link value in the chain in the identity database or in a buffer database separate from the secrets database and the identity database,
[0020] - obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value or a link value of the link value chain,
[0021] - generation of a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key;
[0022] - comparison of the generated value to be verified with the obtained verification value,
[0023] - when the generated value to be verified is identical to the verification value obtained, provision of the personal identifier obtained.
[0024] This method improves the security of the identification of the natural person. Indeed, this method works thanks to two values, the link value and the verification value, calculated and compared with corresponding stored link and verification values. Regarding the link value, the corresponding link value is not stored in the secret database, but in a buffer database or in the identity database. A link value to be compared is generated from the obtained secret and from a code, the code being secret or public. These link values make it possible to make the link between the secret and the code on the one hand, and the presence of a stored identity on the other hand. They also make it possible to make the link with possible following link values of a chain of link values.However, these link values do not allow confirmation that a personal identifier of the natural person actually corresponds to the obtained secret. This is why the value to be verified is generated from the same secret, the same code, but also from the personal identifier of the natural person. This verification value is compared to a corresponding verification value stored in the identity database or in a buffer database. These verification values thus allow confirmation that a personal identifier of the natural person corresponds to the transmitted secret. Therefore, the personal identifier is provided as a result of the process. To corrupt the process and obtain the identifier, an attacker would therefore have to generate both the link value, or even the following link values, and the value to be verified, which is difficult.
[0025] This process allows the management of different profiles of the same user, thanks to the code: for the same secret, the user can associate another identifier, for example another address, with another code. Conversely, for the same identifier, the user can associate another secret with another code. The same natural person can therefore have several secrets for the same identifier and several identifiers for the same secret.
[0026] It follows from this profile management that this process allows the revocation of an identity from a single service provider without revoking it from others. Indeed, by associating each code with a service provider, it is possible to destroy a profile corresponding to this code, while retaining, for the same natural person, the profiles associated with other codes.
[0027] It also follows from this profile management that this process improves the respect of users' personal data. Indeed, by using different codes from one another for the same natural person, it is no longer necessary to have a filter table to associate a natural person with different service providers, it is enough to create a profile for each service provider by associating it with its own code.
[0028] Other optional process features follow, taken alone or in combination.
[0029] Advantageously, the method being a biometric identification method, the secret relates to a biometric fingerprint of the natural person, in particular the secret is a hashed value of a biometric fingerprint of the natural person, the secret database is a biometric database comprising biometric fingerprints of natural persons.
[0030] Preferably, the code is:
[0031] - relating to a password provided by the natural person, in particular the code includes a hashed value of a password provided by the natural person to the secret server; and / or
[0032] - relating to an entity, such as a merchant with whom the natural person makes his identification, in particular the code includes a public value of identification of the entity known by the secret server.
[0033] Thus, the code is either provided by the natural person and known only to him, or publicly known, for example linked to a merchant. The process code can therefore be used in several ways.
[0034] Advantageously, the method comprises the following steps, when the link value is a first link value of a chain of link values in which each other link value is obtained from the previous link value:
[0035] - first, generation of a first historical value, of a chain of historical values, from the first link value,
[0036] - when a link value corresponding to the first generated link value is identified in the buffer database, generating a next link value, optionally last link value, of the link value chain, from the secret, the code and the first history value, preferably also from a hash function associated with a dedicated key, and generating a next history value from the next link value and the first history value, preferably also from a one-way function associated with a dedicated key,
[0037] - optionally, comparing the next link value to link values of a next buffer database distinct from the buffer database, and generating a next link value and a next history value, these comparison and generation steps being repeated until the generation of a last link value of the chain of link values,
[0038] - to obtain the associated personal identifier in the identity database, comparing the last link value in the link value chain to link values in the identity database.
[0039] Thus, the databases are "chained" to each other, through one or more buffer databases, using chains of link values each calculated using the previous link value in the chain. An attacker would therefore need access to each of the buffer databases to corrupt the method. Furthermore, rather than simply determining a next link value based on the previous link value, the history value is calculated, which is based on the previous link value, and the next link value is calculated based on this history value. Since the history values are not stored in the databases, it is impossible to find the next link value without recalculating each value successively using the previous ones. In other words, chaining the link values using a history value further improves the security of the method.
[0040] The invention also provides a method for registering a natural person in an identification system, implemented by computer and comprising the following steps:
[0041] - obtaining a code;
[0042] - obtaining a secret from the natural person;
[0043] - comparison of the secret of the natural person with secrets from a secrets database;
[0044] - when no secret in the database corresponds to the secret of the natural person, generation of a link value specific to the natural person, from the secret of the natural person and the code, preferably from a hash function associated with a dedicated key;
[0045] - storage, in the secrets database, of the secret of the natural person, without storing either the link value or the code;
[0046] - generation, following receipt of this code and this secret, of a personal identifier of the natural person;
[0047] - generation of a verification value from the received secret, the received code and the generated personal identifier, preferably also from a hash function associated with a dedicated key;
[0048] - storing, in an identity database, the personal identifier of the natural person associated with the link value and the verification value, or, the link value being a first link value of a chain of link values in which each link value is obtained from the previous one, storing, in the identity database, the personal identifier associated with the last link value of the chain, and storing the verification value, in the identity database and associated with the personal identifier or in a buffer database, separate from the secret database and the identity database, associated with a link value of the chain.
[0049] The invention also provides a system for identifying a natural person, comprising:
[0050] - a secrets database comprising secrets of natural persons, and - an identity database comprising respective personal identifiers of these natural persons, the identity database associating with each personal identifier of a natural person a link value,
[0051] - automated means configured to:
[0052] * comparing a secret received from a natural person to secrets in the secrets database and, a corresponding secret of the natural person being identified, to generate a link value from the secret of the natural person and from a code, preferably from a hash function associated with a dedicated key,
[0053] * comparing the received link value to link values in an identity database or to link values in a buffer database separate from the secrets database and the identity database;
[0054] * obtaining a verification value associated with a link value in the identity database or, the link value being a first link value in a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value associated with a link value in the chain in the identity database or in a buffer database separate from the secrets database and the identity database,
[0055] * obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value or a link value in the link value string,
[0056] * obtain a value to be verified from the received secret, the received code and the obtained personal identifier, preferably also from a hash function associated with a dedicated key,
[0057] * compare the generated verification value to the obtained verification value, and when the generated verification value is identical to the obtained verification value, indicate that the obtained personal identifier corresponds to the secret received from the natural person.
[0058] Advantageously, the system includes:
[0059] - at least one buffer database, separate from the secrets database and the identity database, including link values,
[0060] - automated means configured to:
[0061] *receive the link value, code and secret,
[0062] *compare the received link value to the link values in the buffer database, and, when it identifies a matching link value, to generate a next link value in the chain of link values from the link value,
[0063] * pass the following link value, code and secret.
[0064] Also provided according to the invention is a data processing system comprising a processor configured to implement the steps of the identification method described above or of the registration method described above.
[0065] Also provided according to the invention is a computer program comprising instructions which, when the program is executed by a computer, cause the latter to implement the steps of the identification method described above or of the registration method described above.
[0066] Also provided according to the invention is a computer-readable recording medium comprising instructions which, when executed by a computer, cause the latter to implement the steps of the identification method described above or of the registration method described above.
[0067] The invention also relates to a method for identifying a natural person, implemented by computer and comprising the following steps:
[0068] - obtaining a code;
[0069] - obtaining a secret from the natural person;
[0070] - comparison of the secret of the natural person with secrets from a secrets database;
[0071] - when a secret corresponding to the secret of the natural person in the secrets database is identified, generation of a link value from the secret and from the code, preferably from a hash function associated with a dedicated key;
[0072] - comparing the generated link value to link values in an identity database separate from the secrets database;
[0073] - obtaining a verification value associated with the link value in the identity database;
[0074] - obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value,
[0075] - generation of a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key;
[0076] - comparison of the generated value to be verified with the obtained verification value,
[0077] - when the generated value to be verified is identical to the verification value obtained, provision of the personal identifier obtained.
[0078] The invention also relates to a method for identifying a natural person, implemented by computer and comprising the following steps:
[0079] - obtaining a code;
[0080] - obtaining a secret from the natural person;
[0081] - comparison of the secret of the natural person with secrets from a secrets database;
[0082] - when a secret corresponding to the secret of the natural person in the secrets database is identified, generation of a link value from the secret and from the code, preferably also from a hash function associated with a dedicated key;
[0083] - comparison of the generated link value with link values from a buffer database separate from the secrets database,
[0084] - the link value being a first value of a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value associated with a link value of the chain in an identity database separate from the secret database and the buffer database,
[0085] - obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value of the chain,
[0086] - generation of a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key;
[0087] - comparison of the generated value to be verified with the obtained verification value,
[0088] - when the generated value to be verified is identical to the verification value obtained, provision of the personal identifier obtained.
[0089] The invention also relates to a method for identifying a natural person, implemented by computer and comprising the following steps:
[0090] - obtaining a code;
[0091] - obtaining a secret from the natural person;
[0092] - comparison of the secret of the natural person with secrets from a secrets database;
[0093] - when a secret corresponding to the secret of the natural person in the secrets database is identified, generation of a link value from the secret and from the code, preferably from a hash function associated with a dedicated key;
[0094] - comparing the generated link value to link values to link values from a buffer database separate from the secrets database;
[0095] - the link value being a first link value of a chain of link values in which each other link value is obtained from the previous link value, obtaining a check value associated with a link value of the chain in the buffer database or in a separate buffer database,
[0096] - obtaining, from the identity database, a personal identifier associated, in the identity database, with a link value of the link value chain,
[0097] - generation of a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key;
[0098] - comparison of the generated value to be verified with the obtained verification value,
[0099] - when the generated value to be verified is identical to the verification value obtained, provision of the personal identifier obtained.
[0100] The invention also provides a system for identifying a natural person, comprising:
[0101] - a database of secrets including secrets of natural persons,
[0102] - an identity database comprising respective personal identifiers of these natural persons, the identity database associating a link value with each personal identifier of a natural person,
[0103] - a secret server configured to compare a secret received from a natural person to secrets in the secrets database and, when it identifies a matching secret of the natural person, to generate a link value from the secret of the natural person and from a code, preferably from a hash function associated with a dedicated key,
[0104] the secret server also being configured to transmit the link value, the code and the secret to an identity server or a buffer server,
[0105] - an identity server configured to compare the received link value to link values in the identity database,
[0106] the identity server also being configured to obtain a verification value associated with a link value in the identity database, or to obtain a verification value transmitted by the buffer server or by another buffer server,
[0107] the identity server also being configured to obtain, from the identity database, a personal identifier associated, in the identity database, with the link value or, the link value being a first link value of a chain of link values in which each value is obtained from the previous link value, associated with a link value of the chain transmitted by the buffer server or by a subsequent buffer server,
[0108] the identity server also being configured to obtain a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key,
[0109] the identity server also being configured to compare the generated value to be verified with the obtained verification value, and when the generated value to be verified is identical to the obtained verification value, to indicate that the obtained personal identifier corresponds to the secret received from the natural person. Brief description of the figures
[0110] The invention will be better understood on reading the following description, given solely by way of example and with reference to the appended drawings in which:
[0111] is a diagram of a biometric identification system according to a first embodiment of the invention;
[0112] is a flowchart of a process for registering a natural person in the identification system of the;
[0113] is a flowchart of a method for biometric identification of a natural person by the identification system of the, according to a first mode of implementation;
[0114] is a diagram of a biometric identification system according to a second embodiment of the invention;
[0115] is a flowchart of a process for registering a natural person in the identification system of the;
[0116] is a flowchart of a process for biometric identification of a natural person by the identification system of the;
[0117] is a diagram of a biometric identification system according to a third embodiment of the invention;
[0118] is a flowchart of a process for registering a natural person in the identification system of the;
[0119] is a flowchart of a process for biometric identification of a natural person by the identification system of the,
[0120] is a diagram of a biometric identification system according to a fourth embodiment of the invention;
[0121] is a flowchart of a process for registering a natural person in the identification system of the;
[0122] is a flowchart of a process for biometric identification of a natural person by the identification system of the. Detailed description
[0123] A "database" means any organized collection of structured information, stored electronically in a computer system in a secure manner.
[0124] The term "server" will refer to any program dedicated to a series of computer tasks that will be specified, and which have access to a strictly identified database. In the invention described below, each server is associated with a database. We will refer to this as a "server-database" pair.
[0125] A server can store data in its database, access this data, and perform calculations based on this data. A server can also receive external data without storing it, and perform calculations based on this external data. Finally, a server can transmit data or calculation results.
[0126] Two servers described as separate from each other cannot operate on each other's databases. They can, however, transmit data to each other.
[0127] Each server-database pair is implemented on its own computing device. This device is equipped with conventional computing components for storing the database and running the server. Each device is physically isolated from other computing devices.
[0128] Alternatively, a single computing device may have multiple servers. However, it is necessary to separate these servers, which are described as distinct, from a software perspective.
[0129] A first embodiment of a biometric identification system 2 according to the invention is shown.
[0130] This system includes a database 4 called “biometric database” comprising biometric fingerprints T of natural persons.
[0131] The system 2 also comprises a database 6 called “identity database” comprising respective personal identifiers ID of these natural persons, the identity database associating with each personal identifier of a natural person a value called “link value” LID base In other words, in a table illustrating the identity database, each ID identifier corresponds to an alphanumeric value called a "link value" LID. base and which will be described below. It will be compared to LID link values calculated during the identification process described below. The identity database also associates with each of these value pairs a "verification value" CI base which will be described below. In other words, the table in this database includes triplets “personal identifier ID – link value LID base – CI verification value base ".
[0132] The system 2 also comprises a server 8, called a “biometric server”, configured to execute some of the steps of the methods described below. This server is associated with the biometric database.
[0133] The system 2 also comprises a server 10, called an “identity server”, configured to execute some of the steps of the methods described below. This server is associated with the identity database. It is separate from the biometric server.
[0134] The servers described implement computer programs 12 and 15 comprising instructions which, when the programs are executed by a computer, cause the computer to implement the steps of the methods described below.
[0135] The system 2 contains a computer-readable recording medium 13 comprising instructions which, when executed by a computer, cause the latter to implement the steps of the methods described below, in particular by the biometric server 8. This medium thus contains the program 15. The system 2 also contains a computer-readable recording medium 14 comprising instructions which, when executed by a computer, cause the latter to implement the steps of the methods described below, in particular by the identity server 10. This medium thus contains the program 12.
[0136] The system 2 also includes a device for providing a biometric fingerprint, not shown. This device is configured to obtain biometric data from a natural person and to provide a biometric fingerprint. The biometric data may be voice, iris, a fingerprint, or any other biometric data that can reliably identify the natural person. The device is configured to output a corresponding biometric fingerprint, in particular in the form of an alphanumeric value, which may be stored. It is with this device that the natural person interacts directly. The operation of this device does not relate to the subject matter of the application and will not be described in detail. It is a conventional device.
[0137] Alternatively, it can be considered that System 2 does not include this device, since any conventional device capable of providing a biometric fingerprint is compatible with the system.
[0138] This system 2, in particular the databases 4 and 6, is shared by several merchants. Among all the natural persons registered in the system 2, some are registered with a single merchant, others with several merchants. The biometric database 4 and respectively the identity database 6 include the biometric fingerprints T and respectively the personal identifiers ID associated with the link values LID base of all these natural persons, whether registered with one or more merchants.
[0139] This system 2 corresponds to a data processing system comprising processors for implementing the steps of the methods described below.
[0140] We will now describe a method 100 for registering a natural person in the identification system. The natural person wishes to register with a single merchant and create, for the moment, a single profile.
[0141] In step 101, the natural person requests to carry out an identification with the biometric fingerprint supply device
[0142] In step 102, the natural person presents his or her attribute – his or her eye, his or her voice, or his or her fingers depending on the device or the natural person's choice – to the device.
[0143] In step 103, the device generates a biometric fingerprint E of the natural person, made from his attribute.
[0144] In step 104, the user selects the merchant with whom she wishes to be registered, from among the merchants sharing this system.
[0145] At step 105, the device gets a C code.
[0146] In a first variant, this code C is provided to him by the natural person who wishes to register, when defining the password of this natural person. This code C is then a hashed version, generated via a conventional hash function, of this password. This code C is then specific to the natural person, or even, if he wishes to register different profiles of his person, to a profile of this natural person.
[0147] In a second variant, this code is obtained by the device when choosing the merchant from among the merchants sharing this system. In this alternative, a code C specific to a merchant is defined beforehand. This code C can even be public.
[0148] In step 106, the device sends this biometric fingerprint E and this code C to the biometric server.
[0149] In step 107, the biometric server receives this biometric fingerprint E and this code C.
[0150] In step 108, the biometric server compares the biometric fingerprint E of the natural person with biometric fingerprints in the biometric database. It should be noted that the biometric server does not search for a fingerprint in the database that necessarily corresponds 100% to the fingerprint E. Indeed, for the same attribute of the natural person, the device can generate two slightly different biometric fingerprints (differences in pixels of an image, in a few bits of a sequence of bytes, etc.). The server therefore searches for the corresponding fingerprint, if it is in the biometric database, according to a method that is not part of the subject of the invention.
[0151] In step 109, when no biometric fingerprint in the biometric database matches the biometric fingerprint E of the natural person, the biometric server stores in the biometric database a biometric fingerprint T corresponding to E. T and E are identical.
[0152] Alternatively, T is not identical but is derived from E. The biometric server can retrieve T from E in a conventional way, for example, T is more detailed or completed with respect to E.
[0153] In a second variant, it is the capturing device that generates T based on E and transmits T to the biometric server.
[0154] In the following, we will speak of a biometric print T regardless of its form in relation to the original print E.
[0155] In step 110, the biometric server generates a LID link value base specific to the natural person, based on the following formula: LID base = MAC Kb (fb(T), C), where MAC Kbis a MAC function parameterized by a key Kb known only to the biometric server, Fb is a conventional hash function applied here to the fingerprint T, forming a hashed version of the fingerprint T. In other words, the link value LID base is generated from the biometric fingerprint of the natural person and the code, also from the MAC hash function Kb associated with a dedicated Kb key. The so-called "MAC" functions, for "messageauthenticationcode", are functions used to authenticate the origin of a message and certify the nature of this message. They use a private key, here the Kb key known only to the biometric server.
[0156] In step 111, the biometric server stores, in the biometric database, the biometric fingerprint T of the natural person, without storing either the link value LID base nor the C code.
[0157] In step 112, the biometric server transmits, to the identity server, the code C, the hashed value of the fingerprint Fb(T) and the link value LID base , accompanied by a registration request.
[0158] In step 113, the identity server receives this code, this Fb(T) value and the LID link value base .
[0159] In step 114, the identity server checks that the identity database does not contain a LID link value base already identical to the one received.
[0160] In step 115, if no LID link value base does not already exist in the identity database, the identity server generates a personal identifier ID for the natural person. This personal identifier ID is any alphanumeric value, which must be unique. It is random and therefore does not rely on previously received or calculated values.
[0161] This identifier corresponds to the identity of the natural person. This ID identifier is associated, in a database not covered by the invention, with one or more personal data of the natural person, such as their name, address, location, or interests. This identifier can therefore be used by the merchant for purposes, such as building a customer history, discount proposals, which do not concern the subject of this invention.
[0162] In step 116, the identity server generates a CI verification value base from the following formula: CI base = MAC Ki (Fb(T), C, ID), where MAC Ki is a MAC function configured by a dedicated Ki key and known only to the identity server .En d’autres termes, la valeur CIbaseest déterminée à partir de la valeur hachée de l’empreinte Fb(T) reçue, c’est-à-dire indirectement à partir de l’empreinte biométrique E, du code reçu C et de l’identifiant personnel ID généré, également à partir de la fonction de hachage MACKiassociée à une clef dédiée Ki.
[0163] In step 117, the identity server stores, in the identity database, the personal identifier ID of the natural person associated with the link value LID base and associated with the CI verification value base .
[0164] The natural person is now registered with the merchant in the identification system.
[0165] We will now describe with reference to a method 200 for identifying the natural person, implemented within the identification system 2. The natural person wishes to be identified by the merchant with whom he is registered.
[0166] In step 201, the natural person presents his attribute (the one with which he was previously registered) to the device for providing a biometric fingerprint.
[0167] In step 202, the device generates a biometric fingerprint E from this attribute.
[0168] In step 203, the device obtains a C code. This is a hashed value of a password provided by the user.
[0169] Alternatively, the code corresponds to the merchant with whom the user wishes to identify himself and which he selects from among the available merchants, on a screen of the device.
[0170] In step 204 the device transmits the code C and the fingerprint E to the biometric server 8.
[0171] In step 205, the biometric server 8 obtains the biometric fingerprint E of the natural person and the code C.
[0172] In step 206, the biometric server 8 compares the biometric fingerprint E of the natural person with biometric fingerprints T of the biometric database 4. The objective is to identify the closest fingerprint T among all the fingerprints T of the database 4. As mentioned above with reference to the registration method, the fingerprint T which corresponds to the fingerprint E is not necessarily totally identical to the latter, and the manner in which the result is obtained is not the subject of this invention. This verification may also result in the absence of a fingerprint T corresponding to the received fingerprint E.
[0173] In step 207, when the biometric server 8 identifies a biometric fingerprint T corresponding to the biometric fingerprint E of the natural person in the biometric database 4, the biometric server 8 generates a link value LID according to the formula LID = MAC Kb(fb(T), C), i.e. from the hashed value of the biometric fingerprint T and from the code C, also from the MAC hash function Kbassociée à la clef dédiée Kb.
[0174] Using Fb(T) and not Fb(E) ensures that the process works correctly, since, as mentioned above, a generated fingerprint E may be slightly different from the corresponding fingerprint T even though they relate to the same physical attribute.
[0175] In step 208, the biometric server 8 transmits to the identity server 10 the link value LID, the code C and the hashed value Fb(T) of the biometric fingerprint T.
[0176] In step 209, the identity server 10 receives the link value LID, the code C and the hashed value Fb(T).
[0177] In step 210, the identity server 10 compares the received LID link value to the LID link values base from the identity database 6.
[0178] At step 211, if it finds a LID link value base in the database 6 corresponding to the received LID link value, the identity server 10 obtains the CI verification value base associated with the LID link value base in the identity database 6. Conversely, if it does not find any LID value base corresponding in the database, the process stops: the natural person is not identified.
[0179] If successful, in step 212 the identity server 10 obtains, from the identity database 6, the personal identifier ID associated, in the identity database, with the link value LID base as well as the CI verification value base .
[0180] In step 213, the identity server 10 generates a value to be verified CI from the following formula: CI = MAC Ki(fb(T), C, ID), i.e. from the hashed value of the biometric fingerprint T, the received code C and the obtained personal identifier ID, also from the MAC hash function Kiassociée à la clef dédiée Ki.
[0181] In step 214, the identity server 10 compares the generated CI verification value to the CI verification value base obtained.
[0182] In step 215, when the generated verification value CI is identical to the obtained verification value CI base , this means that the personal identifier ID obtained corresponds to the biometric fingerprint T and therefore to the biometric fingerprint E of the natural person. As a reminder, this verification value CI base was obtained, in step 212, from the identity database where it is stored and associated with the LID link value base. The identity server then provides the merchant with the personal identifier obtained. The natural person is therefore identified to their merchant.
[0183] Thanks to the C code specific to each identity, for the same biometric fingerprint E, the same person can register several of their profiles, by associating each of these profiles with its respective C code. Having several profiles allows Ceer to have several personal identifiers and therefore to choose which personal data to provide. For example, for a main profile corresponding to a first C code and for which the personal identifier is associated, with merchants, with an age, an address, a name, the person can also have a secondary profile, corresponding to a second C code, for which a second personal identifier is associated only with age, or with a different postal address with other merchants. This allows the user to make the personal data they want available to the merchants they choose. Managing profiles for the same user therefore becomes possible.Rather than starting the registration process from scratch, to create a second profile the user can derive their secondary profile from a main profile, by presenting their biometric attribute to the device to identify themselves and indicating, after validation of the identification, that they wish to create a second profile corresponding to the same fingerprint.
[0184] Conversely, for the same personal identifier, the user can associate another biometric fingerprint with another code. The same natural person can therefore have several biometric fingerprints for the same identifier and several identifiers for the same biometric fingerprint.
[0185] It follows from this profile management that this process allows the revocation of an identity from a single merchant without revoking it from others. Indeed, it is possible to destroy a profile corresponding to a code, while retaining, for the same natural person, the profiles associated with other codes.
[0186] This profile management also improves the respect of users' personal data. Indeed, by using different codes for the same natural person, it is not necessary to have a filter table to associate a natural person with different service providers; it is enough to create a profile for each merchant by associating it with a specific code. Each merchant only has access to the personal data associated with personal identifiers, and nothing else.
[0187] Alternatively, the code could be publicly known and associated with a particular merchant. This would then help differentiate between merchants sharing the system.
[0188] It results from processes 100 and 200, carried out for several natural persons and with several merchants, that the identification system 2 then comprises:
[0189] - a biometric database 4 comprising biometric fingerprints T of natural persons,
[0190] - an identity database 6 comprising respective personal identifiers ID of these natural persons, the identity database associating with each personal identifier ID of a natural person a link value LID base ,
[0191] - a biometric server 8 configured to compare a received biometric fingerprint E of a natural person with the fingerprints T of the biometric database and, when it identifies a corresponding biometric fingerprint T of the natural person, to generate a link value LID from the biometric fingerprint T of the natural person and from a code C, from a MAC hash function associated with a dedicated key Kb,
[0192] the biometric server 8 also being configured to transmit the link value LID, the code C and the fingerprint, in this case a hashed value of the fingerprint Fb(T), to an identity server,
[0193] - an identity server 10 configured to compare the received LID link value to LID link values base from the identity database,
[0194] Identity Server 10 is also configured to obtain a CI verification value baseassociated with a LID link value base in the identity database 6,
[0195] the identity server 10 also being configured to obtain, from the identity database 6, a personal identifier ID associated, in the identity database, with the link value LID base ,
[0196] the identity server 10 also being configured to obtain a value to be verified CI from the received fingerprint Fb(T), the received code C and the obtained personal identifier ID, also resulting from a MAC hash function associated with a dedicated key Ki,
[0197] the identity server 10 also being configured to compare the generated value to be verified CI to the verification value CI base obtained, and when the generated value to be verified is identical to the obtained verification value, to indicate that the personal identifier ID obtained corresponds to the secret received from the natural person.
[0198] With reference to the, the identification system 16 illustrated differs from the identification system of the by the presence of a buffer database 18, distinct from the biometric database 20 and the identity database 22. This database is managed by a buffer server 24 distinct from the biometric server 26 and the identity server 28. The buffer server therefore implements a computer program of its own, itself recorded on a recording medium.
[0199] By "buffer database" is meant the function of a database which, through the data it stores, allows a link to be made between values stored on the one hand in the biometric database and on the other hand in the identity database. It is therefore not possible to find the personal identifier of the natural person, located in the identity database, from the biometric fingerprint of this person, located in the biometric database, without going through a corresponding data item located in the buffer database. In this system, the link value LID ba se is not unique, it is a first link value, called LID1 base . It is stored in the buffer database 18. The identity database 22 does not store this first link value but a second link value LID2 b ase , obtained from the first link value.
[0200] The registration method 300 illustrated and implemented on this system 16 differs from the registration method 200 in that the link value, here first link value LID1 base , is stored in the buffer database 18 only, and in that a second link value LID2 base is generated and stored in the identity database 22 only, in association with the CI verification value base and the personal identifier ID. This LID2 value base is obtained in accordance with the following described calculations: a value called "first history value" Hist1 is generated in accordance with the following formula: Hist1 = U1(LID1, Hist0) where U1 is a one-way function parameterized by a key specific to the buffer server 24, and where Hist0 is any default value known to the biometric server 26. These values are not stored by any of the databases. Then the value LID2 base is generated according to the following formula: LID2base = MAC Kt (fb(T), C, Hist1) where Kt is a key specific to the buffer server. It is stored in the identity database 22.
[0201] We will now, with reference to the, describe the method 400 for identifying a natural person implemented within this identification system 16.
[0202] Steps 401 to 407 are identical to steps 201 to 207 of method 200.
[0203] In step 408, the biometric server 26 transmits the link value LID, here called LID1, the code C and the hashed value Fb(T) of the biometric fingerprint T, not to the identity server as in the method 200, but to the buffer server 24. In addition, it generates and transmits to the buffer server a value called “first history value” Hist1, which it determines in accordance with the following formula: Hist1 = U1(LID1, Hist0).
[0204] At step 409, it is therefore the buffer server 24 which receives the link value LID1, the code C and the hashed value Fb(T), but also the first history value Hist1.
[0205] In step 410, the buffer server 24 compares the received LID1 link value to the LID1 link values base from the buffer database 18.
[0206] At step 411, if it finds a LID1 link value base corresponding to the link value LID1 received in the buffer database 18, the buffer server 24 generates a next link value LID2 according to the following formula: LID2 = MAC Kt (fb(T), C, Hist1), where Kt is a key specific to the buffer server 24, as well as a history value Hist2 according to the formula Hist 2= U2(LID2, Hist1). La valeur LID2 correspond donc à une valeur de lien d’une chaine de valeur de lien et elle est obtenue à partir de la valeur précédente de la chaîne, LID1, tandis que de la même manière, la valeur Hist2 correspond à une valeur d’historique d’une chaîne de valeurs d’historique et elle est obtenue à partir de la valeur précédente de cette chaîne, Hist1.Il est nécessaire de disposer des valeurs d’historique pour déterminer les valeurs de lien successives. En revanche, les valeurs d’historique ne sont pas stockées. Il est donc nécessaire de passer par le serveur tampon pour disposer de la valeur LID2. Cela améliore donc la sécurité du système 16.
[0207] In step 412, the buffer server 24 transmits to the identity server 28 the value LID2, the code C and the hashed value Fb(T), as well as the history value Hist2.
[0208] In step 413, the identity server 28 obtains the CI verification value base associated with the link value LID2 base in the identity database. Conversely, if it does not find any LID2 link value base corresponding in the database, the process stops: the natural person is not identified.
[0209] If successful, in step 414 the identity server 28 obtains, from the identity database 22, the personal identifier ID associated, in the identity database, with the link value LID2 base as well as the CI verification value base .
[0210] The next steps are steps 213 and 215 of method 200.
[0211] The natural person is therefore identified with their merchant.
[0212] The identification system 30 illustrated in is a generalization of the identification system of the. Thus, it does not include one but n buffer databases, n ranging from 1, which corresponds to the system of the, to any number, for example 5, 10 or 15 buffer databases. Each of these n buffer databases is associated with its respective buffer server 32 or 34. In this generalization, the identity database 36 stores, instead of the value of LID2 base , the last value LIDn+1 base of a chain of link values starting with the value LID1 base . In this link value chain, each link value is obtained from the previous link value, in particular, according to the calculations described below.
[0213] In the registration method 500 of theet implemented within this system 30, in addition to the elements already mentioned, the LIDk values baseare generated for each buffer database according to the formula LIDk+1 base = MAC Kt (fb(T), C, Histk) where Kt is a key specific to the buffer server in question, and where the history values Histk are calculated according to the formula Histk+1 = U k+1(LIDk+1, Histk).Ces valeurs LIDkbasesont stockées dans les bases de données tampon 38, 40, respectives. La valeur LIDn+1 est stockée dans la base de données d’identités 36. Aucune valeur d’historique n’est stockée.
[0214] In the identification method 600 of the and implemented within the system 30, the buffer server 32, corresponding to the k th server, k ranging from 1 to n, compares the received link value LIDk to the link values LIDk base of the buffer database 38 that it manages. If it finds in the buffer database a LIDk value base corresponding 38 to the LID link value kreçue, le serveur tampon 32 génère une valeur de lien suivante LIDk+1conformément à la formule LIDk+1= MACKt(fb(T), C, Histk) où Kt est une clef propre au serveur tampon 32, ainsi qu’une valeur d’historique Histk+1 conformément à la formule Histk+1= Uk+1(LIDk+1, Histk), la fonction Uk+1 étant paramétrée avec une clef propre au serveur tampon 32. Le serveur tampon 32 envoie ensuite au serveur tampon 34 les valeurs LIdk+1, Histk+1, le code C et la valeur hachée Fb(T). Le serveur 34 réitère les opérations de comparaison, de détermination des valeurs de lien et des valeurs d’historique, et de transmission des valeurs, jusqu’à ce qu’un dernier serveur tampon n transmette les valeurs C, Fb(T), LIDn+1 et Histn+1 au serveur d’identités 42. Le serveur d’identités 42 obtient la valeur de vérification CIbaseassociée à la valeur de lien LIDn+1basedans la base de données d’identités. Le serveur d’identités 42 obtient, de la base de données d’identités 36, l’identifiant personnel ID associé, dans la base de données d’identités, à la valeur de lien LIDn+1baseainsi qu’à la valeur de vérification CIbase. À l’inverse, s’il ne trouve aucune valeur LIDn+1basecorrespondant dans la base de données, le procédé s’arrête : la personne physique n’est pas identifiée.
[0215] This method therefore takes advantage of a chain of n+1 LID1 link values base to LIDn+1 base, a string in which each link value is derived from the previous one. To prevent an attacker from simply finding the last link value in the chain, each of these values is also calculated from a history value, and the history value string is used to force a pass through each of the buffer databases. This history value string also allows the server where an error may have occurred to be found.
[0216] With reference to the, the identification system 44 differs from the identification system 30 of the by the fact that the CI values base are not stored in the identity database, but in one des bases de données tampon 46. La base de données d’identités ne stocke plus que la dernière valeur de lien LIDn+1basede la chaîne et l’identifiant personnel ID associé.
[0217] The registration method 700 implemented on this system 44 is adapted in this sense, one of the buffer databases being chosen to store these CI values. base .
[0218] Concerning the identification method 800 of the implemented on this system 44, it differs from the method described previously in that the buffer server 46 including the CI values base transmits all CI verification values base corresponding to the LID link value k received at the next buffer server, these values then being transmitted from buffer database to buffer database until the identity server 48 receives these values. The identity server 48 compares each CI basereçue à la valeur à vérifier qu’il génère, et en déduit le bon identifiant personnel associé ID à indiquer.
[0219] The system and methods described in relation to biometric fingerprints can be implemented with other types of data, in particular with any data deemed secret allowing a person to be identified.
[0220] Thus, by generalizing the description of the processes described to any secret, a process for identifying a natural person is therefore provided, implemented by computer and comprising the following steps:
[0221] - obtaining a code;
[0222] - obtaining a secret from the natural person;
[0223] - comparison of the secret of the natural person with secrets from a secrets database;
[0224] - when a secret corresponding to the secret of the natural person in the secrets database is identified, generation of a link value from the secret and from the code, preferably from a hash function associated with a dedicated key;
[0225] - comparing the generated link value to link values in an identity database separate from the secrets database or to link values in a buffer database separate from the secrets database and the identity database;
[0226] - obtaining a verification value associated with the link value in the identity database, or, the link value being a first link value in a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value associated with a link value in the chain in the identity database or in a buffer database separate from the secrets database and the identity database,
[0227] - obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value or a link value of the link value chain,
[0228] - generation of a value to be verified from the secret received, the code received and the personal identifier obtained, preferably also from a hash function associated with a dedicated key;
[0229] - comparison of the generated value to be verified with the obtained verification value,
[0230] - when the generated value to be verified is identical to the verification value obtained, provision of the personal identifier obtained. List of references
[0231] 2: identification system according to a first embodiment
[0232] 4, 20: biometric database
[0233] 6, 22, 36: identity database
[0234] 8, 26: biometric server
[0235] 10, 28, 42, 48: identity server
[0236] 12: computer program
[0237] 14: recording medium
[0238] 16: identification system according to a second embodiment
[0239] 18, 38, 40: Buffer database
[0240] 24, 32, 34, 46: buffer server
[0241] 30: identification system according to a third embodiment
[0242] 44: identification system according to a fourth embodiment
[0243] 100: System 2 registration process
[0244] 200: identification process implemented within system 2
[0245] 300: System 16 registration process
[0246] 400: identification process implemented within the system 16
[0247] 500: System registration process 30
[0248] 600: identification method implemented within the system 30
[0249] 700: System 44 registration process
[0250] 800: identification process implemented within the system 44
Claims
Method for identifying (200, 400, 600, 800) a natural person, implemented by computer and comprising the following steps: - obtaining (203) a code (C); - obtaining (205) a secret (T) of the natural person;- comparing (206; 410) the secret (T) of the natural person with secrets (E) in a database (4; 20) of secrets;- when a secret (E) corresponding to the secret (T) of the natural person in the database (4; 20) of secrets is identified, generating (207) a link value (LID; LID1) from the secret (T) and from the code (C), preferably from a hash function (MAC) associated with a dedicated key (Kb);- comparing (210; 410) the generated link value (LID) with link values (LIDbase; LID2 base ; LIDn+1 base ) of an identity database (6; 22; 36) distinct from the secrets database (4; 20) or to link values (LIDk base ; LID1 base) of a buffer database (18; 38; 40) separate from the secrets database (4; 20) and the identity database (6; 22; 36);- obtaining (211; 413) a verification value (CI base ) associated with the link value (LID base ) in the identity database (6; 22; 36), or, the link value being a first link value (LID1 base ) of a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value (CI base ) associated with a link value (LID2 base ; LIDn+1 base) of the string in the identity database or in a buffer database separate from the secrets database and the identity database, - obtaining (212; 414), from the identity database (6; 22; 36), a personal identifier (ID) associated, in the identity database, with the link value (LID base ) or to a link value (LID2 base ; LIDn+1 base ) of the link value chain,- generation (213) of a value to be verified (CI) from the secret (T) received, the code (C) received and the personal identifier (ID) obtained, preferably also from a hash function (MAC) associated with a dedicated key (Ki);- comparison (214) of the value to be verified (CI) generated with the verification value (CI base ) obtained, - when the generated value to be verified (CI) is identical to the verification value obtained (CI base ), provision (215) of the personal identifier obtained. Method (200; 400; 600; 800) according to the preceding claim, in which, the method being a biometric identification method, the secret (T) relates to a biometric fingerprint of the natural person, in particular the secret is a hashed value (Fb(T)) of a biometric fingerprint of the natural person, the secret database (4; 20) is a biometric database comprising biometric fingerprints of natural persons. Method (200; 400; 600; 800) according to any one of the preceding claims, in which the code (C) is:- relating to a password provided by the natural person, in particular the code (C) comprises a hashed value of a password provided by the natural person to the secret server; and / or- relating to an entity, such as a merchant with which the natural person carries out his identification, in particular the code (C) comprises a public identification value of the entity known by the secret server. Method (400; 600; 800) according to any one of the preceding claims, comprising the following steps, when the link value (LID1) is a first link value of a chain of link values in which each other link value is obtained from the previous link value: - beforehand, generating (408) a first history value (Hist1), of a chain of history values, from the first link value (LID1), - when a link value (LID1 base) corresponding to the generated first link value (LID1) is identified in the buffer database (18; 38; 40), generation (411) of a next link value (LID2), optionally last link value, of the link value chain, from the secret (T), the code (C) and the first history value (Hist1), preferably from a hash function (MAC) associated with a dedicated key, and generation of a next history value (Hist2) from the next link value (LID2) and the first history value, preferably also from a one-way function associated with a dedicated key, - optionally, comparison of the next link value (LIDk) with link values (LIDk base) of a subsequent buffer database distinct from the buffer database, and generation of a subsequent link value (LIDk+1) and a subsequent history value (Histk+1), these comparison and generation steps being repeated until the generation of a last link value of the link value chain, - to obtain the associated personal identifier (ID) in the identity database, comparison of the last link value of the link value chain with link values of the database (LIDn+1 base ) of identity data. Method for registering (100; 300; 500; 700) a natural person in an identification system, implemented by computer and comprising the following steps:- obtaining (105) code (C);- obtaining (107) a secret (E) of the natural person;- comparing (109) the secret (E) of the natural person with secrets (T) of a database of secrets;- when no secret in the database corresponds to the secret of the natural person, generating (110) a link value specific to the natural person, from the secret of the natural person and the code (C), preferably from a hash function associated with a dedicated key;- storing (110), in the database of secrets, the secret of the natural person, without storing either the link value or the code;- generating (116), following receipt of this code and this secret, a personal identifier of the natural person;- generating (111) a verification value from the received secret, the received code and the generated personal identifier, preferably also from a hash function associated with a dedicated key; - storing (118), in an identity database, the personal identifier of the natural person associated with the link value and the verification value, or, the link value being a first link value of a chain of link values in which each other link value is obtained from the previous one, storing, in the identity database, the personal identifier associated with the last link value of the chain, and storing the verification value, in the identity database and associated with the personal identifier or in a buffer database, separate from the secret database and the identity database, associated with a link value of the chain.; System (2; 16; 30; 44) for identifying a natural person, comprising:- a database (4; 20) of secrets comprising secrets (T) of natural persons, and- an identity database (6; 22; 36) comprising respective personal identifiers (ID) of these natural persons, the identity database associating with each personal identifier of a natural person a link value,- automated means configured to:* compare a secret received from a natural person with the secrets in the secrets database and, a corresponding secret of the natural person being identified, to generate a link value from the secret of the natural person and from a code, preferably from a hash function associated with a dedicated key,* comparing the received link value to link values in an identity database or to link values in a buffer database separate from the secrets database and the identity database;* obtaining a verification value associated with a link value in the identity database or, the link value being a first link value in a chain of link values in which each other link value is obtained from the previous link value, obtaining a verification value associated with a link value in the chain in the identity database or in a buffer database separate from the secrets database and the identity database,* obtaining, from the identity database, a personal identifier associated, in the identity database, with the link value or with a link value in the chain of link values,* obtaining a value to be verified from the received secret,of the received code and the personal identifier obtained, preferably also from a hash function associated with a dedicated key, *compare the generated value to be verified with the obtained verification value, and when the generated value to be verified is identical to the obtained verification value, indicate that the obtained personal identifier corresponds to the secret received from the natural person., Identification system (6; 30; 44) according to the preceding claim, also comprising:- at least one buffer database (18; 38; 40), separate from the secrets database and the identity database, comprising link values,- automated means configured to:*receive the link value, the code and the secret,*compare the received link value with the link values of the buffer database, and, when it identifies a corresponding link value, to generate a next link value of the chain of link values from the link value,* transmit the next link value, the code and the secret. Data processing system (2; 16; 30; 44) comprising a processor configured to implement the steps of the identification method (200; 400; 600; 800) according to any one of claims 1 to 4 or of the registration method (100; 300; 500; 700) according to claim 5. A computer program (12) comprising instructions which, when the program is executed by a computer, cause the latter to implement the steps of the identification method according to any one of claims 1 to 4 or of the registration method according to claim 5. A computer-readable recording medium (14) comprising instructions which, when executed by a computer, cause the computer to implement the steps of the identification method (200; 400; 600; 800) according to any one of claims 1 to 4 or of the writing method (100; 300; 500; 700) according to claim 5.