IP Library Granted Patent US 11,405,216
Granted Patent B2
US 11,405,216 · App. 16/869,345 · Granted Aug 2, 2022

System for authenticating verified personal credentials

Inventors: Prateek Mishra (Roseland, NJ); Frank Villavicencio (Roseland, NJ); Merajuddin Mohammad (Parsippany, NJ)
Assignee: ADP, Inc.
H04L9/3247G06F21/31H04L9/0637H04L9/0825G06F2221/2101
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,405,216
App. No.
16/869,345
Granted
Aug 2, 2022
Kind
B2
Abstract

A method, apparatus, system, and computer program product are provided for managing the usage of verified credentials. An issuer of credentials receives a request from a person for a credential. The issuer identifies the credential from information that is controlled by the issuer. The issuer identifies a decentralized identifier (DID) record for an audit engine from a blockchain network. The DID record for the audit engine includes a public key of that is associated with the audit engine. The issuer identifies a DID record for the person from the blockchain network. The DID record for the person includes a public key that is associated with the person. The issuer generates an encrypted credential by encrypting the credential and the DID record for the person based on the public key associated with the audit engine. The issuer sends the encrypted credential to the person.

Claims (71)

1. A method for authenticating a credential of a person, the method comprising:

receiving, by a relying party, an encrypted credential and an encrypted key from the person, wherein the encrypted key is encrypted by a public key associated with an audit engine, and wherein both the encrypted credential and the encrypted key include a digital signature of an issuer of the credential;

identifying, by the relying party, a decentralized identifier (DID) record for the issuer from a blockchain network, wherein the DID record for the issuer includes a public key of a cryptographic key pair associated with the issuer;

verifying, by the relying party, the digital signature of the issuer based on the public key associated with the issuer;

identifying, by the relying party, the credential by decrypting the encrypted credential based on a private key of a cryptographic key pair associated with an audit engine, wherein the credential references a DID record for the person recorded in the blockchain network, wherein identifying the credential further comprises:

sending, by the relying party, the encrypted key to the audit engine, wherein the audit engine resolves a credential key by decrypting, with the private key associated with the audit engine, the encrypted key, wherein the audit engine is unaware of the person and the credential, and wherein the audit engine generates a record of decrypting the credential key, wherein the record identifies the issuer and the relying party but not the person;

receiving, by the relying party, the credential key from the audit engine; and resolving, by the relying party, the credential by decrypting, with the credential key, the encrypted credential; and

authenticating, by the relying party, the person based on the DID record for the person, wherein the issuer is unaware of the relying party, and wherein the issuer is unaware of the public key of the cryptographic key pair associated with the audit engine that was used to generate the encrypted credential.

2. The method of claim 1 , further comprising:

in response to authenticating the person, providing, by the relying party, a business service according to the credential that were identified.

3. The method of claim 1 , further comprising:

prior to sending the encrypted key to the audit engine, digitally signing, by the relying party with a private key of a cryptographic key pair associated with the relying party, the encrypted key.

4. The method of claim 1 , wherein receiving the encrypted key further comprises:

receiving, by the relying party, a manifest, wherein the manifest includes the encrypted key, an identity of the issuer, and a category for the credential;

and wherein sending the encrypted key further comprises:

sending, by the relying party, the manifest to the audit engine.

5. The method of claim 4 , further comprising:

receiving, by the relying party, an invoice from the issuer, wherein the invoice is for information provided by the issuer in authenticating the person, wherein the invoice is generated by the issuer based on an audit log received from the audit engine, wherein the audit log provides a record of the manifest received by the audit engine from a relying party.

6. The method of claim 1 , wherein authenticating the person based on the public key associated with the person further comprises:

identifying, by the relying party, a DID record for the person in the blockchain network, wherein the DID record for the person includes a public key of a cryptographic key pair associated with the person;

sending, by the relying party, a challenge request to the person, wherein the challenge request is generated based on the public key associated with the person; and

receiving, by the relying party, a challenge response from the person, wherein the challenge response successfully authenticates the person, wherein the challenge response is generated based on a private key associated with the person.

7. A credential management system comprising:

a computer system; and

a relying party in the computer system, wherein the relying party operates to:

receive an encrypted credential and an encrypted key from a person, wherein the encrypted key is encrypted by a public key associated with an audit engine, and wherein both the encrypted credential and the encrypted key include a digital signature of an issuer of credential;

identify a decentralized identifier (DID) record for the issuer from a blockchain network, wherein the DID record for the issuer includes a public key of a cryptographic key pair associated with the issuer;

verify the digital signature of the issuer based on the public key associated with the issuer;

identify the credential by decrypting the encrypted credential based on a private key of a cryptographic key pair associated with an audit engine, wherein the credential reference a DID record for the person recorded in the blockchain network wherein the credential references a DID record for the person recorded in the blockchain network, wherein identifying the credential further comprises:

sending the encrypted key to the audit engine, wherein the audit engine resolves a credential key by decrypting, with the private key associated with the audit engine, the encrypted key, wherein the audit engine is unaware of the person and the credential, and wherein the audit engine generates a record of decrypting the credential key, wherein the record identifies the issuer and the relying party but not the person;

receiving the credential key from the audit engine; and

resolving the credential by decrypting, with the credential key, the encrypted credential; and

authenticate the person based on the DID record for the person, wherein the issuer is unaware of the relying party, and wherein the issuer is unaware of the public key of the cryptographic key pair associated with the audit engine that was used to generate the encrypted credential.

8. The credential management system of claim 7 , wherein the relying party further operates to:

in response to authenticating the person, provide a business service according to the credential that were identified.

9. The credential management system of claim 7 , further comprising:

prior to sending the encrypted key to the audit engine, digitally signing, with a private key of a cryptographic key pair associated with the relying party, the encrypted key.

10. The credential management system of claim 7 , wherein receiving the encrypted key further comprises:

receiving a manifest, wherein the manifest includes the encrypted key, an identity of the issuer, and a category for the credential;

and wherein sending the encrypted key further comprises:

sending the manifest to the audit engine.

11. The credential management system of claim 10 , wherein the relying party further operates to:

receive an invoice from the issuer, wherein the invoice is for information provided by the issuer in authenticating the person, wherein the invoice is generated by the issuer based on an audit log received from the audit engine, wherein the audit log provides a record of the manifest received by the audit engine from a relying party.

12. The credential management system of claim 7 , wherein authenticating the person based on the public key associated with the person further comprises:

identifying a DID record for the person in the blockchain network, wherein the DID record for the person includes a public key of a cryptographic key pair associated with the person;

sending a challenge request to the person, wherein the challenge request is generated based on the public key associated with the person; and

receiving a challenge response from the person, wherein the challenge response successfully authenticates the person, wherein the challenge response is generated based on a private key associated with the person.

13. A computer program product for authenticating a credential of a person, the computer program product comprising:

a computer readable storage media;

program code, stored on the computer readable storage media, for receiving an encrypted credential and an encrypted key from a person, wherein the encrypted key is encrypted by a Public key associated with an audit engine, and wherein both the encrypted credential and the encrypted key include a digital signature of an issuer of the credential;

program code, stored on the computer readable storage media, for identifying a decentralized identifier (DID) record for the issuer from a blockchain network, wherein the DID record for the issuer includes a public key of a cryptographic key pair associated with the issuer;

program code, stored on the computer readable storage media, for verifying digital signature of the issuer based on the public key associated with the issuer;

program code, stored on the computer readable storage media, for identifying credential by decrypting the encrypted credential based on a private key of a cryptographic key pair associated with an audit engine wherein the credential references a DID record for the person recorded in the blockchain network, wherein identifying the credential further comprises:

sending the encrypted key to the audit engine, wherein the audit engine resolves a credential key by decrypting, with the private key associated with the audit engine, the encrypted key, wherein the audit engine is unaware of the person and the credential, and wherein the audit engine generates a record of decrypting the credential key, wherein the record identifies the issuer and the relying party but not the person;

receiving the credential key from the audit engine; and

resolving the credential by decrypting, with the credential key, the encrypted credential; and

program code, stored on the computer readable storage media, for authenticating the person based on the DID record for the person, wherein the issuer is unaware of a relying party, and wherein the issuer is unaware of the public key of the cryptographic key pair associated with the audit engine that was used to generate the encrypted credential.

14. The computer program product of claim 13 , further comprising:

program code, stored on the computer readable storage media, for providing, in response to authenticating the person, a business service according to the credential that were identified.

15. The computer program product of claim 13 , further comprising:

program code, stored on the computer readable storage media, for digitally signing, by the relying party with a private key of a cryptographic key pair associated with the relying party, the encrypted key prior to sending the encrypted key to the audit engine.

16. The computer program product of claim 13 , wherein the program code for receiving the encrypted key further comprises:

program code for receiving a manifest, wherein the manifest includes the encrypted key, an identity of the issuer, and a category for the credential;

and wherein the program code for sending the encrypted key further comprises:

program code for sending the manifest to the audit engine.

17. The computer program product of claim 16 , further comprising:

program code, stored on the computer readable storage media, for receiving an invoice from the issuer, wherein the invoice is for information provided by the issuer in authenticating the person, wherein the invoice is generated by the issuer based on an audit log received from the audit engine, wherein the audit log provides a record of the manifest received by the audit engine from a relying party.

18. The computer program product of claim 13 , wherein the program code for authenticating the person based on the public key associated with the person further comprises:

program code for identifying a DID record for the person in the blockchain network, wherein the DID record for the person includes a public key of a cryptographic key pair associated with the person;

program code for sending a challenge request to the person, wherein the challenge request is generated based on the public key associated with the person; and

program code for receiving a challenge response from the person, wherein the challenge response successfully authenticates the person, wherein the challenge response is generated based on a private key associated with the person.

Assignments (2)
CHANGE OF NAME Recorded Feb 4, 2022
From: ADP, LLC
To: ADP, INC.
Reel/Frame 058959/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2020
From: MISHRA, PRATEEK; VILLAVICENCIO, FRANK; MOHAMMAD, MERAJUDDIN
To: ADP, LLC
Reel/Frame 052604/0483 →