US20210184856A1 - System and Method for Zero-Knowledge, Anonymous Verification and Management - Google Patents

System and Method for Zero-Knowledge, Anonymous Verification and Management Download PDF

Info

Publication number
US20210184856A1
US20210184856A1 US17/177,224 US202117177224A US2021184856A1 US 20210184856 A1 US20210184856 A1 US 20210184856A1 US 202117177224 A US202117177224 A US 202117177224A US 2021184856 A1 US2021184856 A1 US 2021184856A1
Authority
US
United States
Prior art keywords
identifier
transaction
public
tenant system
tenant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US17/177,224
Inventor
Richard Johnson
David Harding
Dale Peek
Steve Timm
Matt Klepp
Robb Wijnhausen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tech5 Usa Inc
ImageWare Systems Inc
Original Assignee
ImageWare Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ImageWare Systems Inc filed Critical ImageWare Systems Inc
Priority to US17/177,224 priority Critical patent/US20210184856A1/en
Assigned to IMAGEWARE SYSTEMS, INC. reassignment IMAGEWARE SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TIMM, STEVEN, JOHNSON, RICHARD, KLEPP, MATTHEW D, WIJNHAUSEN, ROBB, HARDING, DAVID, PEEK, DALE
Priority to US17/227,257 priority patent/US20210234699A1/en
Publication of US20210184856A1 publication Critical patent/US20210184856A1/en
Assigned to TECH5 USA, INC. reassignment TECH5 USA, INC. SECURED PARTY GENERAL ASSIGNMENT AND BILL OF SALE Assignors: BLACKWELL PARTNERS LLC - SERIES A, NANTAHALA CAPITAL PARTNERS II LIMITED PARTNERSHIP, NANTAHALA CAPITAL PARTNERS LIMITED PARTNERSHIP, NANTAHALA CAPITAL PARTNERS SI, LP, NCP CB LP, NCP QR LP, SILVER CREEK CS SAV, L.L.C.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Definitions

  • the 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.
  • Additional 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.
  • the tenant system an online service
  • the verification service that requires an additional security burden.
  • 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.
  • the 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 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.
  • 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 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.
  • 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.
  • the verification system can implement a method of validating a transaction.
  • 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.
  • 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.
  • 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.
  • FIG. 1 illustrates a verification system 100 according to an embodiment of the invention
  • FIG. 2 illustrates a block diagram of the query engine according to an embodiment of the invention
  • FIG. 3A illustrates an enrollment process according to an embodiment of the invention
  • FIG. 3B illustrates a verification process according to an embodiment of the invention
  • FIG. 4A illustrates an exemplary message diagram of the verification process
  • FIG. 4B shows a flow chart of the process at verification system
  • FIG. 5 illustrates a transaction receipt accordingly to an exemplary embodiment of the invention.
  • FIGS. 1-5 wherein like reference numerals refer to like elements.
  • biometrics face, fingerprint, and iris biometrics
  • FIG. 1 illustrates a verification system 100 according to an embodiment of the invention.
  • the system 100 comprises tenant systems 110 A-N, verification system 120 , and end users 130 A-N.
  • the verification system further comprises query engine 122 and optionally an immutable database 124 like Blockchain where, unlike a traditional database, entries in an immutable database 124 cannot be altered or deleted once created.
  • the immutable database 124 could reside within query engine 122 .
  • This system 100 can also comprise a public data store 140 such as a public blockchain, public database, or other data storage mechanism.
  • query engine 122 receives enrollment, verification, and identification requests from one of the tenant systems 110 A-N.
  • query engine 122 requests identity information from one of end users 130 A-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.
  • 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.
  • the requesting tenant system regardless of success or failure receives a receipt of the transaction.
  • the end user can also receive a receipt of the transaction.
  • a receipt of the transaction is stored in public data store 140 .
  • 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.
  • the requesting tenant system receives a receipt of the transaction.
  • the end user receives a receipt of the transaction.
  • 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.
  • 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.
  • FIG. 2 illustrates a block diagram of the query engine 122 according to an embodiment of the invention.
  • query engine 122 comprises a communications interface (shown as network interface 202 ), processor 204 , memory 206 and optional mass storage 212 , which all communicate using one or more data buses 210 , which can include internal data buses, external serial buses, universal serial bus (USB), peripheral component interconnect (PCI) bus, serial advanced technology attachment (SATA), and/or external SATA (eSATA), the implementation of which is apparent to one of ordinary skill in the art.
  • data buses 210 can include internal data buses, external serial buses, universal serial bus (USB), peripheral component interconnect (PCI) bus, serial advanced technology attachment (SATA), and/or external SATA (eSATA), the implementation of which is apparent to one of ordinary skill in the art.
  • USB universal serial bus
  • PCI peripheral component interconnect
  • SATA serial advanced technology attachment
  • eSATA external SATA
  • 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 .
  • 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).
  • 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.
  • 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.
  • PDA programmable logic array
  • FPGA field programmable gate array
  • ASIC application specific integrated circuit
  • SOC solution on a chip
  • 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.).
  • RAM random-access memory
  • SRAM static RAM
  • SDRAM synchronous dynamic RAM
  • DDR double data rate
  • ROM read only memory
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • identity information database 208 can comprise biometric templates and/or other identifying factors mentioned previously.
  • 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.
  • enrollment module 260 handles the communication between query engine 122 and tenant system 110 and between query engine 122 and end users 130 during the enrollment process. Furthermore, enrollment module 260 retrieves identity information from end user 130 , determines its validity and stores it in identity information database 208 . It provides enrollment status to tenant system 110 . In addition, it provides a transaction identifier and optionally a public 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 .
  • 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.
  • 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.
  • FIG. 3A illustrates an exemplary message diagram of the enrollment process and FIG. 3B shows a flow chart of the process at verification system 120 and more particularly verification engine 122 .
  • enrollment request 310 is received by verification system 120 from sent from tenant system 110 .
  • the enrollment request 310 can comprise an application name within the tenant.
  • request 320 is sent to end user 130 from verification system 120 .
  • Request 320 solicits from end user 130 to send response 330 to verification system 120 .
  • verification system 120 receives response 330 , which comprises identity information.
  • verification system 120 validates the identity information.
  • identity information is validated.
  • a unique user identifier is created.
  • a globally unique transaction identifier is generated.
  • a user token is created comprising a tenant identifier and the unique user identifier.
  • the user token can further comprise an application identifier.
  • the tenant identifier and application identifier can be a name, in another embodiment it can be a globally unique identifier (GUID).
  • GUID globally unique identifier
  • the user token is encrypted with a private key not known to tenant system 110 or any of the end users.
  • a private transaction receipt, a public transaction receipt and optionally a user transaction receipt is generated, which are described in greater detail in FIG. 5 . If the identity information is not validated, the process moves to step 350 which is identical to step 338 and then proceeds to step 344 .
  • response 380 is sent to tenant system 110 , response 380 comprises the encrypted user token, a status indicative of the success or failure of the enrollment request and optionally public transaction receipt, but at minimum the transaction identifier.
  • the private transaction receipt is stored in immutable database 124 .
  • the public transaction receipt is stored in public data store 140 .
  • 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.
  • 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 .
  • 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.
  • FIG. 4A shows an exemplary message diagram of the verification process and FIG. 4B shows a flow chart of the process at verification system 120 and more particularly verification engine 122 .
  • verification request 410 is received by verification system 120 sent from tenant system 110 .
  • the verification request 410 comprises the encrypted user token sent to tenant system 110 during enrollment.
  • the encrypted user token is decrypted to extract the end user's unique user identifier.
  • request 420 is sent to end user 130 associated with the unique user identifier from verification system 120 .
  • Request 420 solicits from end user 130 to send response 430 to verification system 120 .
  • verification system 120 receives response 430 , which comprises identity information.
  • identify information associated with the unique user identifier is retrieved from identity information database 208 .
  • verification system 120 verifies end user 130 's identity by comparing the identity information received from the end user with the identity information retrieved in step 434 . The nature of the comparison depends on what form if identity information is used. For example, in biometric applications, the identity information may be biometric templates, so a comparison need not be an exact match as but a confidence score that meets a given threshold.
  • a globally unique transaction identifier is generated.
  • a private transaction receipt, a public transaction receipt and optionally a user transaction receipt is generated, which are described in greater detail in FIG. 5 .
  • response 480 is sent to tenant system 110 , response 480 comprises the outcome of the identity and optionally public transaction receipt, but at minimum the transaction identifier. In fact, response could consist of the public transaction receipt, as the public transaction receipt comprises both the outcome of the verification and the transaction identifier.
  • the private transaction receipt is stored in immutable database 124 .
  • the public transaction receipt is stored in public data store 140 .
  • 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 .
  • FIG. 5 shows exemplary structures for transaction receipts.
  • User receipt 530 comprises transaction identifier 502 , request type 504 , transaction outcome 506 , user identity information 512 , detailed outcome 514 and optionally, request timestamp 510 .
  • Private receipt 540 comprises transaction identifier 502 , request type 504 , transaction outcome 506 , unique user identifier 516 , unique tenant identifier 518 , detailed outcome 514 and user input messages 520 .
  • Public receipt 550 comprises transaction identifier 502 , request type 504 , transaction outcome 506 , hash 560 and digital signature 570 .
  • Hash 560 is formed by unique user identifier 516 and unique tenant identifier 518 into a hash value using one of many cryptographic hashing methods known to those in the art, such as but not limited to SHA-1, SHA-256, MDS, and SHA-512. Hash 560 can also be formed by additionally combining request type 504 and transaction outcome 506 . Additional randomizing factors can be combined in the hash as well such as request timestamp 510 or a number used once (nonce). Digital signature 570 is formed through one of the many digital signature techniques mentioned above, such as PGP, DSA, etc.
  • 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 .
  • 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.
  • 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.
  • 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 .
  • 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.
  • 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.

Abstract

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.

Description

    CROSS REFERENCE AND PRIORITY TO RELATED APPLICATIONS
  • This continuation application claims the benefit of priority under 35 U.S.C. 120 to: co-pending U.S. application Ser. No. 16/038,117 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 Invention
  • The 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 Art
  • Additional 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 INVENTION
  • The 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.
  • BRIEF DESCRIPTION OF DRAWINGS
  • 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:
  • FIG. 1 illustrates a verification system 100 according to an embodiment of the invention;
  • FIG. 2 illustrates a block diagram of the query engine according to an embodiment of the invention;
  • FIG. 3A illustrates an enrollment process according to an embodiment of the invention;
  • FIG. 3B illustrates a verification process according to an embodiment of the invention;
  • FIG. 4A illustrates an exemplary message diagram of the verification process;
  • FIG. 4B shows a flow chart of the process at verification system; and
  • FIG. 5 illustrates a transaction receipt accordingly to an exemplary embodiment of the invention.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • 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 FIGS. 1-5, wherein like reference numerals refer to like elements. Although the invention is described in the context of implementing three types of biometrics (face, fingerprint, and iris biometrics), one of ordinary skill in the art recognizes that any type and number of biometrics may be implemented.
  • FIG. 1 illustrates a verification system 100 according to an embodiment of the invention. The system 100 comprises tenant systems 110A-N, verification system 120, and end users 130A-N. Furthermore, the verification system further comprises query engine 122 and optionally an immutable database 124 like Blockchain where, unlike a traditional database, entries in an immutable database 124 cannot be altered or deleted once created. In an alternative embodiment of the invention, the immutable database 124 could reside within query engine 122. This system 100 can also comprise a public data store 140 such as a public blockchain, public database, or other data storage mechanism.
  • 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.
  • FIG. 2 illustrates a block diagram of the query engine 122 according to an embodiment of the invention. Generally, query engine 122 comprises a communications interface (shown as network interface 202), processor 204, memory 206 and optional mass storage 212, which all communicate using one or more data buses 210, which can include internal data buses, external serial buses, universal serial bus (USB), peripheral component interconnect (PCI) bus, serial advanced technology attachment (SATA), and/or external SATA (eSATA), the implementation of which is apparent to one of ordinary skill in the art.
  • 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 FIG. 2, enrollment module 260 handles the communication between query engine 122 and tenant system 110 and between query engine 122 and end users 130 during the enrollment process. Furthermore, enrollment module 260 retrieves identity information from end user 130, determines its validity and stores it in identity information database 208. It provides enrollment status to tenant system 110. In addition, it provides a transaction identifier and optionally a public 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.
  • 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.
  • FIG. 3A illustrates an exemplary message diagram of the enrollment process and FIG. 3B shows a flow chart of the process at verification system 120 and more particularly verification engine 122. At step 312, enrollment request 310 is received by verification system 120 from sent from tenant system 110. The enrollment request 310 can comprise an application name within the tenant. At step 322, request 320 is sent to end user 130 from verification system 120. Request 320 solicits from end user 130 to send response 330 to verification system 120. At step 332, verification system 120 receives response 330, which comprises identity information. At step 334, verification system 120 validates the identity information. At step 336, identity information is validated. If the identity information is valid the process moves to step 338, a unique user identifier is created. At step 340, the identity information with the unique user identifier in the identity information database. At step 342, a globally unique transaction identifier is generated. At step 344 a user token is created comprising a tenant identifier and the unique user identifier. The user token can further comprise an application identifier. In one embodiment of the invention the tenant identifier and application identifier can be a name, in another embodiment it can be a globally unique identifier (GUID). At step 346, the user token is encrypted with a private key not known to tenant system 110 or any of the end users. At step 348, a private transaction receipt, a public transaction receipt and optionally a user transaction receipt is generated, which are described in greater detail in FIG. 5. If the identity information is not validated, the process moves to step 350 which is identical to step 338 and then proceeds to step 344. At step 382, response 380 is sent to tenant system 110, response 380 comprises the encrypted user token, a status indicative of the success or failure of the enrollment request and optionally public transaction receipt, but at minimum the transaction identifier. At step 384, the private transaction receipt is stored in immutable database 124. Optionally at step 386, the public transaction receipt is stored in public data store 140.
  • 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.
  • FIG. 4A shows an exemplary message diagram of the verification process and FIG. 4B shows a flow chart of the process at verification system 120 and more particularly verification engine 122. At step 412, verification request 410 is received by verification system 120 sent from tenant system 110. The verification request 410 comprises the encrypted user token sent to tenant system 110 during enrollment. At step 414, the encrypted user token is decrypted to extract the end user's unique user identifier. At step 422, request 420 is sent to end user 130 associated with the unique user identifier from verification system 120. Request 420 solicits from end user 130 to send response 430 to verification system 120. At step 432, verification system 120 receives response 430, which comprises identity information. At step 434, identify information associated with the unique user identifier is retrieved from identity information database 208. At step 436, verification system 120 verifies end user 130's identity by comparing the identity information received from the end user with the identity information retrieved in step 434. The nature of the comparison depends on what form if identity information is used. For example, in biometric applications, the identity information may be biometric templates, so a comparison need not be an exact match as but a confidence score that meets a given threshold. At step 438, a globally unique transaction identifier is generated. At step 442, a private transaction receipt, a public transaction receipt and optionally a user transaction receipt is generated, which are described in greater detail in FIG. 5. At step 482, response 480 is sent to tenant system 110, response 480 comprises the outcome of the identity and optionally public transaction receipt, but at minimum the transaction identifier. In fact, response could consist of the public transaction receipt, as the public transaction receipt comprises both the outcome of the verification and the transaction identifier. At step 484, the private transaction receipt is stored in immutable database 124. Optionally at step 486, the public transaction receipt is stored in public data store 140.
  • 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.
  • FIG. 5 shows exemplary structures for transaction receipts. User receipt 530 comprises transaction identifier 502, request type 504, transaction outcome 506, user identity information 512, detailed outcome 514 and optionally, request timestamp 510. Private receipt 540 comprises transaction identifier 502, request type 504, transaction outcome 506, unique user identifier 516, unique tenant identifier 518, detailed outcome 514 and user input messages 520. Public receipt 550 comprises transaction identifier 502, request type 504, transaction outcome 506, hash 560 and digital signature 570. Hash 560 is formed by unique user identifier 516 and unique tenant identifier 518 into a hash value using one of many cryptographic hashing methods known to those in the art, such as but not limited to SHA-1, SHA-256, MDS, and SHA-512. Hash 560 can also be formed by additionally combining request type 504 and transaction outcome 506. Additional randomizing factors can be combined in the hash as well such as request timestamp 510 or a number used once (nonce). Digital signature 570 is formed through one of the many digital signature techniques mentioned above, such as PGP, DSA, etc.
  • 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 (21)

1. A method for validating user identity information at a tenant system, the method comprising:
sending a tenant system identifier from the tenant system to a verification system;
sending a validation request from the tenant system to the verification system, the validation request comprising an encrypted token, the encrypted token having a unique user identifier associated with the user identity information, the encrypted token being further operable to being unencrypted by the verification system;
receiving, at the tenant system, a transaction identifier from the verification system; and
requesting, at the tenant system, a public transaction receipt from a public database, the public transaction receipt having a transaction outcome, the transaction outcome indicating whether the validation request resulted in successful validation of the user identity information.
2. The method of claim 1, wherein the public transaction receipt further comprises a hash, the hash being created from the unique user identifier, the tenant system identifier, the transaction outcome, or combination thereof.
3. The method of claim 1, wherein the public data store is a public database.
4. The method of claim 3, wherein the public database is a blockchain.
5. The method of claim 1, wherein the public transaction receipt is immutable.
6. The method of claim 1, wherein the encrypted token further comprises an application identifier.
7. The method of claim 6, wherein the application identifier is a name, a globally unique identifier, or combination thereof.
8. The method of claim 1, wherein the tenant system identifier is a name, a globally unique identifier, or combination thereof.
9. The method of claim 1, wherein any one or more of the tenant system identifier, the encrypted token, and the transaction identifier are digitally signed.
10. The method of claim 9, wherein digitally signing is based on pretty good privacy, digital signature algorithm, or combination thereof.
11. A server configured as a tenant system and further configured to validate user identity information, the server comprising:
a memory;
a processor operable to:
send a tenant system identifier from the tenant system to a verification system;
send a validation request from the tenant system to the verification system, the validation request comprising an encrypted token, the encrypted token having a unique user identifier associated with the user identity information, the encrypted token being further operable to being unencrypted by the verification system;
receive, at the tenant system, a transaction identifier from the verification system; and
request, at the tenant system, a public transaction receipt from a public database, the public transaction receipt having a transaction outcome, the transaction outcome indicating whether the validation request resulted in successful validation of the user identity information.
12. The server of claim 11, wherein the public transaction receipt further comprises a hash, the hash being created from the unique user identifier, the tenant system identifier, the transaction outcome, or combination thereof.
13. The server of claim 11, wherein the public data store is a public database.
14. The server of claim 13, wherein the public database is a blockchain.
15. The server of claim 11, wherein the public transaction receipt is immutable.
16. The server of claim 11, wherein the encrypted token further comprises an application identifier.
17. The server of claim 16, wherein the application identifier is a name, a globally unique identifier, or combination thereof.
18. The server of claim 11, wherein the tenant system identifier is a name, a globally unique identifier, or combination thereof.
19. The server of claim 11, wherein any one or more of the tenant system identifier, the encrypted token, and the transaction identifier are digitally signed.
20. The server of claim 19, wherein digitally signing is based on pretty good privacy, digital signature algorithm, or combination thereof.
21. A computer-readable medium storing instructions that, when executed by a computer, cause the computer to:
send a tenant system identifier from a tenant system to a verification system;
send a validation request from the tenant system to the verification system, the validation request comprising an encrypted token, the encrypted token having a unique user identifier associated with user identity information, the encrypted token being further operable to being unencrypted by the verification system;
receive, at the tenant system, a transaction identifier from the verification system; and
request, at the tenant system, a public transaction receipt from a public database, the public transaction receipt having a transaction outcome, the transaction outcome indicating whether the validation request resulted in successful validation of the user identity information.
US17/177,224 2018-07-17 2021-02-17 System and Method for Zero-Knowledge, Anonymous Verification and Management Abandoned US20210184856A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/177,224 US20210184856A1 (en) 2018-07-17 2021-02-17 System and Method for Zero-Knowledge, Anonymous Verification and Management
US17/227,257 US20210234699A1 (en) 2018-07-17 2021-04-09 System and Method for Zero-Knowledge, Anonymous Verification and Management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/038,117 US10972275B1 (en) 2018-07-17 2018-07-17 Zero-knowledge, anonymous verification and management using immutable databases such as blockchain
US17/177,224 US20210184856A1 (en) 2018-07-17 2021-02-17 System and Method for Zero-Knowledge, Anonymous Verification and Management

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/038,117 Continuation US10972275B1 (en) 2018-07-17 2018-07-17 Zero-knowledge, anonymous verification and management using immutable databases such as blockchain

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/227,257 Continuation US20210234699A1 (en) 2018-07-17 2021-04-09 System and Method for Zero-Knowledge, Anonymous Verification and Management

Publications (1)

Publication Number Publication Date
US20210184856A1 true US20210184856A1 (en) 2021-06-17

Family

ID=75275394

Family Applications (3)

Application Number Title Priority Date Filing Date
US16/038,117 Active 2039-04-20 US10972275B1 (en) 2018-07-17 2018-07-17 Zero-knowledge, anonymous verification and management using immutable databases such as blockchain
US17/177,224 Abandoned US20210184856A1 (en) 2018-07-17 2021-02-17 System and Method for Zero-Knowledge, Anonymous Verification and Management
US17/227,257 Abandoned US20210234699A1 (en) 2018-07-17 2021-04-09 System and Method for Zero-Knowledge, Anonymous Verification and Management

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US16/038,117 Active 2039-04-20 US10972275B1 (en) 2018-07-17 2018-07-17 Zero-knowledge, anonymous verification and management using immutable databases such as blockchain

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/227,257 Abandoned US20210234699A1 (en) 2018-07-17 2021-04-09 System and Method for Zero-Knowledge, Anonymous Verification and Management

Country Status (1)

Country Link
US (3) US10972275B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972275B1 (en) * 2018-07-17 2021-04-06 Imageware Systems, Inc. Zero-knowledge, anonymous verification and management using immutable databases such as blockchain

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117430A1 (en) * 2002-10-10 2004-06-17 International Business Machines Corporation Method and systems for protecting subscriber identification between service and content providers
CA2962648A1 (en) * 2005-10-06 2007-04-19 Mastercard Mobile Transactions Solutions, Inc. Three-dimensional transaction authentication
WO2009070430A2 (en) * 2007-11-08 2009-06-04 Suridx, Inc. Apparatus and methods for providing scalable, dynamic, individualized credential services using mobile telephones
US20100146263A1 (en) * 2007-06-20 2010-06-10 Mchek India Payment Systems Pvt. Ltd. Method and system for secure authentication
CA2988106A1 (en) * 2009-06-17 2010-12-23 Redhills Tc Ventures, Llc Certified email system and method
US20180150647A1 (en) * 2016-08-05 2018-05-31 Sensoriant, Inc. Database system for protecting and securing stored data using a privacy switch
US20180173906A1 (en) * 2015-02-13 2018-06-21 Yoti Holding Limited Digital Identity System
US20180227293A1 (en) * 2015-08-03 2018-08-09 Coinplug Inc. Certificate issuing system based on block chain
WO2019164935A1 (en) * 2018-02-20 2019-08-29 Visa International Service Association Automated account recovery using trusted devices
US20200366484A1 (en) * 2017-11-16 2020-11-19 Prisec Innovation Limited A system and method for authenticating a user
CA3016858C (en) * 2016-04-07 2021-01-12 Visa International Service Association Tokenization of co-network accounts
US20210091951A1 (en) * 2019-09-25 2021-03-25 Valimail Inc. Centralized session key issuance and rotation
US10972275B1 (en) * 2018-07-17 2021-04-06 Imageware Systems, Inc. Zero-knowledge, anonymous verification and management using immutable databases such as blockchain

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US928528A (en) 1904-01-18 1909-07-20 Union Hardware Company Skate.
US5140634A (en) 1987-09-07 1992-08-18 U.S Philips Corporation Method and apparatus for authenticating accreditations and for authenticating and signing messages
US5280527A (en) 1992-04-14 1994-01-18 Kamahira Safe Co., Inc. Biometric token for authorizing access to a host system
US6226383B1 (en) 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
US6263446B1 (en) 1997-12-23 2001-07-17 Arcot Systems, Inc. Method and apparatus for secure distribution of authentication credentials to roaming users
US6845453B2 (en) * 1998-02-13 2005-01-18 Tecsec, Inc. Multiple factor-based user identification and authentication
US6363365B1 (en) 1998-05-12 2002-03-26 International Business Machines Corp. Mechanism for secure tendering in an open electronic network
US20040083184A1 (en) 1999-04-19 2004-04-29 First Data Corporation Anonymous card transactions
US7152047B1 (en) 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US6807277B1 (en) 2000-06-12 2004-10-19 Surety, Llc Secure messaging system with return receipts
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1668448A2 (en) * 2003-09-12 2006-06-14 RSA Security Inc. System and method providing disconnected authentication
US7721329B2 (en) * 2003-11-18 2010-05-18 Aol Inc. Method and apparatus for trust-based, fine-grained rate limiting of network requests
US7298873B2 (en) 2004-11-16 2007-11-20 Imageware Systems, Inc. Multimodal biometric platform
WO2007084153A2 (en) 2005-03-17 2007-07-26 Imageware Systems, Inc. Multimodal biometric analysis
WO2007017882A1 (en) * 2005-08-05 2007-02-15 Hewlett-Packard Development Company L.P. System, method and apparatus for cryptography key management for mobile devices
US20070107045A1 (en) * 2005-09-13 2007-05-10 Uniloc/Veriloc, Llc Security system for transactions
WO2007062211A2 (en) 2005-11-23 2007-05-31 Imageware Systems, Inc. Biometric remediation of datasets
US8621646B2 (en) * 2007-12-19 2013-12-31 The Directv Group, Inc. Method and system for authenticating a user receiving device into a primary service provider system to communicate with a partner service provider
US20120054842A1 (en) * 2009-01-23 2012-03-01 Vanios Consulting S.L. Secure access control system
US8041956B1 (en) * 2010-08-16 2011-10-18 Daon Holdings Limited Method and system for biometric authentication
FR2956941A1 (en) * 2010-02-19 2011-09-02 Ingenico Sa BIOMETRIC AUTHENTICATION METHOD, AUTHENTICATION SYSTEM, PROGRAM AND CORRESPONDING TERMINAL.
EP2577596A1 (en) * 2010-05-27 2013-04-10 Global Blue Holdings AB Eligibility and validation method and apparatus
CA2807972A1 (en) * 2010-08-11 2012-02-16 Security First Corp. Systems and methods for secure multi-tenant data storage
JP5859953B2 (en) 2010-09-30 2016-02-16 パナソニック株式会社 Biometric authentication system, communication terminal device, biometric authentication device, and biometric authentication method
KR101284481B1 (en) * 2011-07-15 2013-07-16 아이리텍 잉크 Authentication method and device using OTP including biometric data
JP5349554B2 (en) * 2011-09-05 2013-11-20 東芝テック株式会社 Information processing apparatus and program
US9262613B1 (en) 2011-12-06 2016-02-16 Imageware Systems, Inc. Anonymous biometric identification
US9268904B1 (en) 2012-10-02 2016-02-23 Imageware Systems, Inc. Systems and methods for biometric data management using relational database management systems (RDBMS)
US20160226867A1 (en) 2012-10-02 2016-08-04 Imageware Systems, Inc. Cloud-based biometric enrollment, identification and verification through identity providers
AU2013204989A1 (en) * 2013-04-13 2014-10-30 Digital (Id)Entity Limited A system, method, computer program and data signal for the provision of a profile of identification
US20140310786A1 (en) 2013-04-16 2014-10-16 Imageware Systems, Inc. Integrated interactive messaging and biometric enrollment, verification, and identification system
CA2911719A1 (en) 2013-04-16 2014-10-23 Imageware Systems, Inc. Conditional and situational biometric authentication and enrollment
EP3472790A4 (en) * 2016-06-16 2020-01-29 The Bank of New York Mellon Ensuring data integrity of executed transactions
US11475451B2 (en) * 2017-03-31 2022-10-18 Bayer Healthcare Llc Biometric authentication for, and secure electronic tracking of, restricted over-the-counter drug sales
US11126670B2 (en) * 2017-05-10 2021-09-21 Verizon Patent And Licensing Inc. Token and device location-based automatic client device authentication
CN108347444A (en) * 2018-02-26 2018-07-31 深圳智乾区块链科技有限公司 Identity identifying method, device based on block chain and computer readable storage medium
US20190340350A1 (en) * 2018-05-02 2019-11-07 Kolumbo Holdings Limited Verification system
US10944562B2 (en) * 2018-06-03 2021-03-09 Apple Inc. Authenticating a messaging program session
US10756901B2 (en) * 2019-08-01 2020-08-25 Alibaba Group Holding Limited Blockchain-based identity authentication method, apparatus, and device

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117430A1 (en) * 2002-10-10 2004-06-17 International Business Machines Corporation Method and systems for protecting subscriber identification between service and content providers
CA2962648A1 (en) * 2005-10-06 2007-04-19 Mastercard Mobile Transactions Solutions, Inc. Three-dimensional transaction authentication
US20100146263A1 (en) * 2007-06-20 2010-06-10 Mchek India Payment Systems Pvt. Ltd. Method and system for secure authentication
WO2009070430A2 (en) * 2007-11-08 2009-06-04 Suridx, Inc. Apparatus and methods for providing scalable, dynamic, individualized credential services using mobile telephones
CA2988106A1 (en) * 2009-06-17 2010-12-23 Redhills Tc Ventures, Llc Certified email system and method
US20180173906A1 (en) * 2015-02-13 2018-06-21 Yoti Holding Limited Digital Identity System
US20180227293A1 (en) * 2015-08-03 2018-08-09 Coinplug Inc. Certificate issuing system based on block chain
CA3016858C (en) * 2016-04-07 2021-01-12 Visa International Service Association Tokenization of co-network accounts
US20180150647A1 (en) * 2016-08-05 2018-05-31 Sensoriant, Inc. Database system for protecting and securing stored data using a privacy switch
US20200366484A1 (en) * 2017-11-16 2020-11-19 Prisec Innovation Limited A system and method for authenticating a user
WO2019164935A1 (en) * 2018-02-20 2019-08-29 Visa International Service Association Automated account recovery using trusted devices
US10972275B1 (en) * 2018-07-17 2021-04-06 Imageware Systems, Inc. Zero-knowledge, anonymous verification and management using immutable databases such as blockchain
US20210091951A1 (en) * 2019-09-25 2021-03-25 Valimail Inc. Centralized session key issuance and rotation

Also Published As

Publication number Publication date
US10972275B1 (en) 2021-04-06
US20210234699A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US11470054B2 (en) Key rotation techniques
WO2020073513A1 (en) Blockchain-based user authentication method and terminal device
US9692757B1 (en) Enhanced authentication for secure communications
CN105103119B (en) Data security service system
US11095646B2 (en) Method and system for data security within independent computer systems and digital networks
US7051204B2 (en) Methods and system for providing a public key fingerprint list in a PK system
CN110675144A (en) Enhancing non-repudiation of blockchain transactions
WO2017000829A1 (en) Method for checking security based on biological features, client and server
KR20200003744A (en) Federated blockchain identity model and secure personally identifiable information data transmission model for rcs
US20210092115A1 (en) Custom authorization of network connected devices using signed credentials
CN106936771A (en) A kind of secure cloud storage method and system based on graded encryption
US9300639B1 (en) Device coordination
KR102137122B1 (en) Security check method, device, terminal and server
US8117450B2 (en) System and method for secure data transmission
US20210399897A1 (en) Protection of online applications and webpages using a blockchain
US7234060B1 (en) Generation and use of digital signatures
TWM595792U (en) Authorization system for cross-platform authorizing access to resources
WO2016173211A1 (en) Application identifier management method and device
US7490237B1 (en) Systems and methods for caching in authentication systems
US20210184856A1 (en) System and Method for Zero-Knowledge, Anonymous Verification and Management
US20190288833A1 (en) System and Method for Securing Private Keys Behind a Biometric Authentication Gateway
CN110505199A (en) Email safe login method based on the asymmetric identity of lightweight
CN114641788B (en) Method and apparatus for preventing denial of service attacks on blockchain systems
TWI778319B (en) Method for cross-platform authorizing access to resources and authorization system thereof
KR102310912B1 (en) Biometric Identification System and its operating method

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED

AS Assignment

Owner name: IMAGEWARE SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TIMM, STEVEN;JOHNSON, RICHARD;HARDING, DAVID;AND OTHERS;SIGNING DATES FROM 20040907 TO 20210315;REEL/FRAME:055858/0486

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

AS Assignment

Owner name: TECH5 USA, INC., MICHIGAN

Free format text: SECURED PARTY GENERAL ASSIGNMENT AND BILL OF SALE;ASSIGNORS:NANTAHALA CAPITAL PARTNERS II LIMITED PARTNERSHIP;NANTAHALA CAPITAL PARTNERS LIMITED PARTNERSHIP;NCP QR LP;AND OTHERS;REEL/FRAME:063112/0793

Effective date: 20230112

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION