System and Method for Zero-Knowledge, Anonymous Verification and Management
A verification system using additional factors such as biometrics can provide a tenant system with the ability to verify the identity of an end user. The enrollment and verification can be performed without sharing identity knowledge between the tenant and the verification ensuring the privacy of the end user. The enrollment and verification can also be performed in an auditable way while maintaining anonymity.
Latest ImageWare Systems Inc. Patents:
- Out-of-Band Biometric Enrollment and Verification Using Interactive Messaging
- System and Method for Zero-Knowledge, Anonymous Verification and Management
- Zero-knowledge, anonymous verification and management using immutable databases such as blockchain
- Conditional and situational biometric authentication and enrollment
- Out-of-band biometric enrollment and verification using interactive messaging
This continuation application claims the benefit of priority under 35 U.S.C. 120 to: co-pending U.S. application Ser. No. 17/177,224 entitled “SYSTEM AND METHOD FOR ZERO-KNOWLEDGE, ANONYMOUS VERIFICATION AND MANAGEMENT,” filed on Feb. 17, 2021, which is a child application of U.S. application Ser. No. 16/038,117 (now U.S. Pat. No. 10,972,275) entitled “ZERO-KNOWLEDGE, ANONYMOUS VERIFICATION AND MANAGEMENT USING IMMUTABLE DATABASES SUCH AS BLOCKCHAIN,” filed on Jul. 17, 2018. All the aforementioned applications are hereby incorporated by reference in their entirety.
BACKGROUND OF INVENTION Field of InventionThe present invention relates to the fields of computer networking and computer security, and more particularly to identity verification techniques in a zero-knowledge, anonymous system.
Description of Related ArtAdditional factor authentication systems are employed by many online services to provide additional confirmation of the identity of the user. These additional factors can include text messages, email addresses, out-of-band communications to a mobile device, and biometric identification. Because the complexity of some forms of confirmation are complicated or require specialized hardware or software, third-party or external services are employed to perform the confirmation. As a result, vulnerability is created between an online service (hereinafter referred to as the tenant system) and the verification service that requires an additional security burden.
In a common implementation, both the tenant system and the verification system share a common identifier. If a malicious actor intercepts communications between the tenant system and the verification system, the common identifier for a user can associate that identifier with information compromised on either the tenant system or the verification system, potentially compromising the user's privacy.
In a simple verification protocol, upon a request for verification by the tenant system, a simple affirmative or negative response along with proof-of-work is provided back the tenant system depending on the outcome of the verification. However, due to the simplicity of the response, a man-in-the-middle attack could insert a forged response.
The aforementioned issues arise once the tenant system relies on an external verification system especially when the two systems are under separate ownership and control.
SUMMARY OF THE INVENTIONThe present invention overcomes these and other deficiencies of the prior art by providing a verification system implementing a method of validating the identity of a user at a verification system. A tenant system sends the verification system a validation request comprising an encrypted token associated with the user. A unique identifier associated with the user is extracted by decrypting the encrypted token. The verification system then requests and receives identity information from the user. The identity information is then validated against the identity information previously enrolled for that unique identifier. The verification system then sends a response to the tenant system with the status of success or failure based on the validation. The verification system creates a private transaction receipt comprising the transaction identifier, the user identifier, the identifier for the tenant system and user information. The verification system also creates a public transaction receipt comprising the transaction identifier and a hash formed from the user identifier, the identifier for the tenant system and the user information.
In another embodiment, the verification system can implement a method of enrolling a user with the tenant system. The tenant system sends the verification system a request for enrollment. The verification system requests and receives identity information from the user. The verification system creates a unique identifier and assigns it to the user. The unique identifier associated with this identity information and can be stored in a database indexed by the unique identifier. The verification system creates a token comprising the unique identifier and the tenant system identifier. The token is encrypted with a secret key held at the verification system to form an encrypted token. The encrypted token is sent to the tenant system along with a transaction identifier. A private transaction receipt is created comprising the transaction identifier, the user identifier, the tenant system identifier and user information. A second public transaction receipt comprising the transaction identifier and a hash formed from the user identifier, the tenant system identifier and the user information.
Both the responses sent to the tenant system for the enrollment and verification can comprise a timestamp. As well, both responses can be digitally signed. The public transaction receipts can also be digitally signed and can be stored in a public data store such as a database or blockchain. The private transaction receipts mentioned can be stored in an immutable database.
In another embodiment, the verification system can implement a method of validating a transaction. One example is where an auditor sends a transaction identifier to the verification system. The verification system retrieves the private transaction receipt associated with the transaction identifier for example from a private immutable database. The private transaction receipt can comprise a user identifier, a tenant identifier and user information. The verification system creates a hash from the user identifier, the tenant identifier and the user information and provides the hash to the auditor. The auditor can then compare the hash to one included in the public transaction receipt.
Alternatively, the auditor can send a public transaction receipt to the verification system. The verification system extracts the transaction identifier from the public transaction receipt and retrieves the corresponding private transaction receipt associated with this transaction identifier. A hash is created from the user identifier, the tenant identifier and the user information. The hash is compared to the hash contained in the public transaction receipt and the transaction is validated or disputed depending on whether the hashes match.
The verification system comprises a processor, network interface, database and memory. The memory contains instructions that can cause the processor to perform the enrollment, identity verification and transaction auditing methods described above.
Accordingly, advantages of the present invention include that enrollment of users, validation of identity and auditing of transactions can be performed by the verification system without persistent and identifiable knowledge of the user and the tenant systems have no knowledge of the user association made by the verification system, thereby making the platform more reliable, faster, scalable, flexible and accurate, as well as eliminating privacy concerns.
Other systems, methods, features, and advantages of the present disclosure will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present disclosure, and be protected by the accompanying claims.
For a more complete understanding of the present invention, the objects and advantages thereof, reference is now made to the ensuing descriptions taken in connection with the accompanying drawings briefly described as follows:
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying
Functionally, query engine 122 receives enrollment, verification, and identification requests from one of the tenant systems 110A-N. In response to an enrollment request, query engine 122 requests identity information from one of end users 130A-N specified by the requesting tenant system. The identity information establishes the identity of the user using an identifying factor such as biometric data, password, PIN, device ID, etc. Query engine 122 determines whether the identity information is sufficient to establish the identity of the user. For example, with biometric data such as fingerprints, the end user may not have sent sufficient distinguishing fingerprint features to establish identity. However, upon success query engine 122 responds to the requesting tenant system in addition to the success or failure of the request a user token for the tenant system to associate with the user. Furthermore, the requesting tenant system regardless of success or failure receives a receipt of the transaction. Additionally, the end user can also receive a receipt of the transaction. Optionally, a receipt of the transaction is stored in public data store 140.
In response to a verification request, query engine 122 receives a user token from the tenant system. Query engine 122 decodes the user token and determines which end user the tenant system requires identity verification from. Then, query engine 122 requests and receives identity information from the end user. The query engine then verifies the identity of the end user based on the identity information. The success or failure of the identification is then transmitted to the tenant system. Once again, the requesting tenant system receives a receipt of the transaction. Optionally the end user receives a receipt of the transaction. Optionally, a receipt of the transaction is stored in public data store 140 as well as an external authentication store that has no relation to the identity that has been verified.
The query engine 122 can also provide verification or proof that a transaction took place. When query engine 122 receives a transaction ID, based on a private receipt generated by the query engine 122, a duplicate receipt can be transmitted either to the tenant system or the end user to serve as proof that the enrollment attempt or verification attempt was made. This process is described below.
The communications interface 202 is used to interface query engine 122 to external devices and systems such as optional immutable database 124, public datastore 140 as well as to external systems such as tenant system 110 and end user 130. In the depicted example, the interface is shown as network interface 202 such as a network interface card (NIC). Network interface 202 can be configured to carry data using the internet protocol (IP) with transmission control protocol (TCP) or user datagram protocol (UDP) and can be based on any number of data link protocols including but not limited to Ethernet, point-to-point protocol (PPP), high-level Data link control (HDLC) and advanced data communication control protocol (ADCCP). Alternatively, or in addition, the communications interface can include other forms of inter-device communications including but not limited to universal serial bus (USB), IEEE-1394 (Firewire), eSATA, and/or high-definition multimedia interface (HDMI).
Mass storage 212 can comprise any number of storage media including but not limited to a hard disk drive, solid state drive, flash memory, and or optical storage media. Mass storage 212 is used to supplement memory 206 and is often configured with files in a file system, but may also provide storage for virtual memory as an extension of memory 206.
Processor 204 can be any device for executing instructions, particularly instructions stored in memory 206. Processor 206 can comprise any commercially available processor such as a central processor unit (CPU), floating-point processor unit (FPU), graphics processing unit (GPU), a multicore processor, a microprocessor (either in the form of a microchip or chip set), a macroprocessor, or generally any device for executing software instructions. Or processor 206 can comprise a custom-made processing device such as one made from a programmable logic array (PLA), field programmable gate array (FPGA), application specific integrated circuit (ASIC), solution on a chip (SOC), or combination thereof.
Memory 206 can comprise any one or combination of volatile memory elements such as random-access memory (RAM) (for example, dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), double data rate (DDR) RAM, etc.) and/or nonvolatile memory elements such as read only memory (ROM, flash memory, hard drive, tape, optical media, etc.). In addition, memory 206 can comprise various components such as program memory for storing processor instructions, data memory for storing data used by the processor 204, and/or various levels of caches. It should be noted that mass storage 212 and memory 206 can share much of the same functionality, for example, program instructions can be stored both in mass storage 212 and read into memory 206 as the processor 204 executes the program instructions. Therefore, one of ordinary skill in the art should note that though described separately in this embodiment, memory 206 can perform any function described for mass storage 212.
The software in memory 206 can include one or more separate programs, each of which includes an ordered listing of executable instructions for implementing logical functions. Typically, the software in memory 206 which may initially be stored in mass storage 212, read into memory 206 for execution by processor 204, and can include operating system 220. Executing within the operating system 220 is application specific software 222. It should be noted, however, that the modules within application specific software 222 can be implemented in software, hardware or a combination of software and hardware. In addition to controlling and executing application specific software 222, operating system 220 can be configured to manage hardware resources including but not limited to input-output control, file and data management, memory management, communications controls and provide software services including but not limited to control the execution of other computer programs, scheduling, and inter-process communications.
Optionally, immutable database 124 can be implemented if not externally, as shown above, either directly in memory 206 or stored in mass storage 212. Immutable database 124 is used to store private transaction receipts. Similarly, identity information database 208 can be implemented if not externally, not shown, either directly in memory 206 or stored in mass storage 212. Identity information database 208 stores identity information for users who have been enrolled. For example, identity information database 208 can comprise biometric templates and/or other identifying factors mentioned previously.
In query engine 122, application specific software 222 comprises enrollment module 260, verification module 262, and auditing module 264. Application specific software 222 can also be provided and stored on a non-transient storage medium either for distribution or retrieval for execution by the processor 204 when needed.
More specifically in
Verification module 262 handles the communication between query engine 122 and tenant system 110 and between query engine 122 and end users 130 during the verification process. Furthermore, verification module 262 retrieves identity information from end user 130, verifies end user 130's identity using identity information previously stored during enrollment. It provides a verification outcome to tenant system 110. In addition, it provides a transaction identifier and optionally the transaction receipt to either tenant system 110 and/or the enrolling end user. It also stores a private transaction receipt in immutable database 124 and optionally a public transaction receipt in public data store 140.
Auditing module 264 can be used to validate a transaction. An auditor can provide auditing module 264 with a public receipt. Auditing module 264 can either confirm or dispute the validity of the receipt by retrieving the corresponding private receipt from immutable database 124 and comparing the two. The comparison can comprise the hashing of components of the private receipt to correspond to the hashed contents contained in the public receipt. In the alternative, an auditor can provide the transaction identifier of a public receipt to auditing module 264. Auditing module 264 can provide a duplicate public transaction generated from the private receipt by hashing components of the private receipt. The auditor can then compare the hashes from the duplicate transaction receipt and the transaction receipt the auditor possesses.
Optionally, response 390 is sent to the end user comprising the user receipt. If sent at step 392, the user receipt is encrypted using the end user's public key so only the end user can view the receipt. At step 394, response 390 is sent. In the enrollment process personally identifiable information such as name, birthdate, social security number, address, phone number may need to be conveyed to the tenant (such as through response 390), but are not necessary for verification system 120 to perform identity verification. At step 396 this personally identifiable information is removed from verification system 120.
It should be noted that all messages sent by verification system 120, namely message 320, response 380 and response 390 are digitally signed by any of the well-known methods known to one skilled in the art, such as pretty good privacy (PGP), digital signature algorithm (DSA), etc. In this fashion, the end user and tenant know that the messages are genuine and not tampered with.
The user token received by tenant system 110 is the manner the tenant system 120 can identify a given end user to verification system 120. The tenant system 120 depending on its implementation can associate their own user identifier with the user token. Because the user token is encrypted by a private key, any tenant system (or external party for that matter) cannot obtain the verification's systems unique user identifier. Because identity information is associated with only with the unique user identifier, this identity information stored in identity information database remains anonymous to all but verification system 120 should the identify information database 208 become compromised.
Optionally, response 490 is sent to the end user comprising the user receipt. If sent at step 492, the user receipt is encrypted using the end user's public key so only the end user can view the receipt. At step 494, response 490 is sent. In the verification process there may be cases where personally identifiable information is conveyed to the tenant (such as through response 490), but are not necessary for verification system 120 to perform identity verification. At step 496 this personally identifiable information is removed from verification system 120.
It should be noted that just like in the enrollment process, all messages sent by verification system 120, namely message 420, response 480 and response 490 are digitally signed any of the well-known methods known to one skilled in the art.
In an embodiment employing biometrics as the identification method, user identity information 512 can comprise biometric samples which are not retained in the private transaction receipt but returned to the end user via the user transaction receipt, after this information is used for identity verification and returned to the end user it is removed from the verification system such as in step 496. Furthermore, detailed outcome 514 can include any biometric mode (or multiples), such as, but not limited to, iris, fingerprint, face, etc., percentage match and time taken to make the comparison.
Due to the nature of the receipts and the use of the user token, the end user and tenant can verify that the work has been done by verification server 120 without knowledge of the inner workings of verification server 120. This is particularly useful in auditing the transactions.
For example, the end user can verify that verification server 120 did the work of verification and by reviewing the veracity of user identity information 512 and detailed outcome 514. For example, in a biometric application, user identity information 512 comprises the biometric samples sent by the end user and the proof of work lies in the detailed outcome 514 which as mentioned could include the mode biometric match and time taken.
The tenant or a third party even can verify from public receipt that work has been done. The tenant or third party can ask verification system 120 for validation of the public receipt. Verification system 120 can retrieve the corresponding private receipt as identified by transaction identifier 502 from immutable database 124. From the private receipt a hash can be generated. The hash is formed from the unique user identifier and the unique tenant identifier and possibly request type 504 and transaction outcome 506 from the retrieved private receipt. The hash can also include randomizing factors such as the request timestamp and/or a nonce. If the hash generated by verification system 120 matches the hash of the public receipt, then the receipt is proven to be authentic. It should be noted that since the unique user identifier and unique tenant identifier are contained only in the private receipt the tenant or third-party auditor cannot associate the transaction with a particular tenant nor end user, but merely that the transaction took place and the receipt is valid, providing proof with zero knowledge.
The foregoing is offered primarily for purposes of illustration. It will be readily apparent to those skilled in the art that the materials and their proportions, as well as the operating conditions, procedural steps and other parameters of the inventions described herein may be further modified or substituted in various ways without departing from the spirit and scope of the invention.
Claims
1. A method for biometric verification of an end user associated with an electronic device, the method comprising:
- receiving, at the electronic device, a first request, the first request being sent from a verification system, the first request further soliciting identity information associated with the end user;
- capturing, at the electronic device, biometric data belonging to the end user;
- generating, at the electronic device, the solicited identity information from the captured biometric data;
- sending, from the electronic device to the verification system, the solicited identity information;
- receiving, at the electronic device, a user receipt, the user receipt being sent from the verification system, the user receipt further comprising a transaction identifier.
2. The method of claim 1, the user receipt being encrypted using a public key, the public key being stored on the electronic device.
3. The method of claim 2, the method further comprising:
- decrypting the user receipt using a private key, the private key being stored on the electronic device.
4. The method of claim 1, the first request being received via a first digitally signed message.
5. The method of claim 1, the user receipt being received via a second digitally signed message.
6. The method of claim 1, the user receipt further comprising a request type, a transaction outcome, a detailed outcome, a request timestamp, or a combination thereof.
7. The method of claim 1, the biometric data being formed from a fingerprint of the end user, an iris of the end user, the face of the end user, or a combination thereof.
8. The method of claim 1, the solicited identity information further comprising the name of the end user, the birthdate of the end user, the social security number of the end user, an address associated with the end user, a password associated with the end user, a personal identification number associated with the user, an identifier associated with the electronic device, a phone number associated with the end user, or a combination thereof.
9. The method of claim 1, the transaction identifier being associated with a transaction, the transaction being stored in an immutable database.
10. The method of claim 9, the immutable database being a blockchain.
11. An electronic device operable for biometric verification of an end user, the electronic device comprising:
- a memory;
- a processor operable to: receive a first request, the first request being sent from a verification system, the first request further soliciting identity information associated with the end user; capture biometric data belonging to the end user; generate the solicited identity information from the biometric data; send, to the verification system, the solicited identity information; receive, from the verification system, a user receipt, the user receipt comprising a transaction identifier.
12. The electronic device of claim 11, the user receipt being encrypted using a public key, the public key being stored in the memory.
13. The electronic device of claim 12, the processor being further operable to:
- decrypt the user receipt using a private key, the private key being stored in the memory.
14. The electronic device of claim 11, the first request being received via a first digitally signed message.
15. The electronic device of claim 11, the user receipt being received via a second digitally signed message.
16. The electronic device of claim 11, the user receipt further comprising a request type, a transaction outcome, a detailed outcome, a request timestamp, or a combination thereof.
17. The electronic device of claim 11, the biometric data being formed from a fingerprint of the end user, an iris of the end user, the face of the end user, or a combination thereof.
18. The electronic device of claim 11, the solicited identity information further comprising the name of the end user, the birthdate of the end user, the social security number of the end user, an address associated with the end user, a password associated with the end user, a personal identification number associated with the user, an identifier associated with the electronic device, a phone number associated with the end user, or a combination thereof.
19. The electronic device of claim 11, the transaction identifier being associated with a transaction, the transaction being stored in an immutable database.
20. The electronic device of claim 19, the immutable database being a blockchain.
21. A computer-readable medium storing instructions that, when executed by a computer, cause the computer to:
- receive, at the computer, a first request, the first request being sent from a verification system, the first request further soliciting identity information associated with an end user;
- capture, at the computer, biometric data belonging to the end user;
- generate, at the computer, the solicited identity information from the captured biometric data;
- send, from the computer to the verification system, the solicited identity information;
- receive, at the computer, a user receipt, the user receipt being sent from the verification system, the user receipt further comprising a transaction identifier.
Type: Application
Filed: Apr 9, 2021
Publication Date: Jul 29, 2021
Applicant: ImageWare Systems Inc. (San Diego, CA)
Inventors: Richard Johnson (Hillsboro, OR), David Harding (Portland, OR), Dale Peek (Happy Valley, OR), Steve Timm (Bend, OR), Matt Klepp (Portland, OR), Robb Wijnhausen (Portland, OR)
Application Number: 17/227,257