# US 10,375,057 B2 · Systems and methods for certificate chain validation of secure elements

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,375,057 B2
- Document ID: US10375057B2
- Status: Granted
- Kind: B2
- Application number: 15/418,461
- Filed: 2017-01-27
- Published: 2018-08-02
- Granted: 2019-08-06
- Earliest claimed: 2017-01-27
- Assignees: Visa International Service Association
- Applicants: Visa International Service Association
- Inventors: Soumendra Bhattacharya; Mohit Gupta
- Web page: https://patentgrep.com/patent/US10375057B2

## CPC

- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- H04L 9/3265: {using certificate chains, trees or paths; Hierarchical trust model}
- H04L 9/3268: {using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/0807: {using tickets, e.g. Kerberos (cryptographic mechanisms or cryptographic arrangements for entity authentication using tickets or tokens H04L9/3213)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In certificate chain validation, a parent certificate is used to validate a child certificate. The child certificate can indicate which parent certificate can be used to validate it. In some situations, a child certificate may not contain a certificate authority identifier that can be used to identify the parent certificate. Instead, the child certificate can contain a hash value of a modulus of the parent public key that can be used to identify the parent certificate. The hash value of the modulus of the parent public key can be associated with the parent public key. As such, the parent public key used in certificate chain validation of the child certificate can be identified using the hash value of the modulus of the parent public key.

## Claims

### Claim 1

A method for authenticating a device by an authentication server, the method comprising:
obtaining a parent certificate including a parent public key, the parent public key comprising a public key modulus;
associating a first identifier value with the parent public key;
obtaining a first hash value of the public key modulus of the parent public key;
associating the first hash value with the parent public key;
receiving a child certificate from the device, the child certificate containing an identifier field, a data field, and a signature based on the identifier field and not based on the data field, the identifier field comprising a second identifier value, the second identifier value being different from the first identifier value, the data field comprising a second hash value, the second hash value of the data field of the child certificate being the same as the first hash value associated with the parent public key;
determining that the second identifier value of the identifier field of the child certificate is not associated with the parent public key;
determining that the second hash value of the data field of the child certificate is associated with the parent public key;
identifying the parent public key based on the second hash value; and
validating the child certificate using the parent public key.

### Claim 2 (depends on 1)

The method of claim 1, wherein the data field of the child certificate comprises a name-value pair, the name-value pair comprising a name and a value, the name being “CA” and the value being the second hash value, the second hash value being the same as the first hash value of the public key modulus of the parent public key of the parent certificate.

### Claim 3 (depends on 2)

The method of claim 2, wherein the data field further comprises a first tag, the first tag being “Tag 53,” and wherein the identifier field comprises a second tag, the second tag being “Tag 42.”

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
extracting the second identifier value from the child certificate;
comparing the second identifier value from the child certificate to one or more identifier values that are respectively associated with one or more parent public keys, the one or more identifier values respectively associated with the one or more parent public keys including the first identifier value that is associated with the parent public key; and
determining that the second identifier value from the child certificate is not equal to any of the one or more identifier values that are respectively associated with the one or more parent public keys.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
extracting the second hash value from the child certificate;
comparing the second hash value from the child certificate to one or more hash values that are respectively associated with one or more parent public keys, the one or more hash values respectively associated with the one or more parent public keys including the first hash value that is associated with the parent public key; and
determining that the second hash value from the child certificate is equal to the first hash value that is associated with the parent public key,
wherein the identifying of the parent certificate is further based on the second hash value from the child certificate being equal to the first hash value that is associated with the parent public key and the parent public key being the parent public key of the parent certificate.

### Claim 6 (depends on 1)

The method of claim 1, wherein the determining that the second hash value of the data field of the child certificate is associated with the parent public key is performed after the determining that the second identifier value of the child certificate is not associated with the parent public key.

### Claim 7 (depends on 1)

The method of claim 1, wherein the associating of the first identifier value with the parent public key comprises associating the first identifier value with the parent public key in a table, and wherein the associating of the first hash value with the parent public key comprises associating the first hash value with the parent public key in the table.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
using the second identifier value to lookup a first associated public key in the table, wherein the second identifier value is not associated with any certificate in the table; and
using the second hash value to lookup a second associated public key in the table, wherein the second hash value is associated with the parent public key in the table.

### Claim 9 (depends on 1)

The method of claim 1, wherein the obtaining of the first hash value of the public key modulus comprises hashing the parent public key modulus of the parent public key of the parent certificate to obtain the first hash value.

### Claim 10 (depends on 1)

The method of claim 1, further comprising providing a token to the device in response to the validating of the child certificate.

### Claim 11 (depends on 1)

The method of claim 1, wherein the second identifier value is zero, empty, or null.

### Claim 12

A system for authenticating a device, comprising:
a processor; and
a memory storing a set of instructions which, when executed by the processor, cause the processor to:
obtain a parent certificate including a parent public key, the parent public key comprising a public key modulus;
associate a first identifier value with the parent public key;
obtain a first hash value of the public key modulus of the parent public key;
associate the first hash value with the parent public key;
receive a child certificate from the device, the child certificate containing an identifier field, a data field, and a signature based on the identifier field and not based on the data field, the identifier field comprising a second identifier value, the second identifier value being different from the first identifier value, the data field comprising a second hash value, the second hash value of the data field of the child certificate being the same as the first hash value associated with the parent public key;
determine that the second identifier value of the identifier field of the child certificate is not associated with the parent public key;
determine that the second hash value of the data field of the child certificate is associated with the parent public key;
identify the parent public key based on the second hash value; and
validate the child certificate using the parent public key.

### Claim 13 (depends on 12)

The system of claim 12, wherein the data field of the child certificate comprises a name-value pair, the name-value pair comprising a name and a value, the name being “CA” and the value being the second hash value, the second hash value being the same as the first hash value of the public key modulus of the parent public key of the parent certificate.

### Claim 14 (depends on 13)

The system of claim 13, wherein the data field further comprises a first tag, the first tag being “Tag 53,” and wherein the identifier field comprises a second tag, the second tag being “Tag 42.”

### Claim 15 (depends on 12)

The system of claim 12, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to:
extract the second identifier value from the child certificate;
compare the second identifier value from the child certificate to one or more identifier values that are respectively associated with one or more parent public keys, the one or more identifier values respectively associated with the one or more parent public keys including the first identifier value that is associated with the parent public key; and
determine that the second identifier value from the child certificate is not equal to any of the one or more identifier values that are respectively associated with the one or more parent public keys.

### Claim 16 (depends on 12)

The system of claim 12, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to:
extract the second hash value from the child certificate;
compare the second hash value from the child certificate to one or more hash values that are respectively associated with one or more parent public keys, the one or more hash values respectively associated with the one or more parent public keys including the first hash value that is associated with the parent public key; and
determine that the second hash value from the child certificate is equal to the first hash value that is associated with the parent public key,
wherein the identifying of the parent certificate is further based on the second hash value from the child certificate being equal to the first hash value that is associated with the parent public key and the parent public key being the parent public key of the parent certificate.

### Claim 17 (depends on 12)

The system of claim 12, wherein the determination that the second hash value of the data field of the child certificate is associated with the parent public key is performed after the determining that the second identifier value of the child certificate is not associated with the parent public key.

### Claim 18 (depends on 12)

The system of claim 12, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to:
associate the first identifier value with the parent public key in a table; and
associate the first hash value with the parent public key in the table.

### Claim 19 (depends on 18)

The system of claim 18, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to:
use the second identifier value to lookup a first associated public key in the table, wherein the second identifier value is not associated with any certificate in the table; and
use the second hash value to lookup a second associated public key in the table, wherein the second hash value is associated with the parent public key in the table.

### Claim 20 (depends on 12)

The system of claim 12, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to hash the public key modulus of the parent public key of the parent certificate to obtain the first hash value.

### Claim 21 (depends on 12)

The system of claim 12, wherein the set of instructions further includes instructions that, when executed by the processor, cause the processor to provide a token to the device in response to the validating of the child certificate.
