IP Library Granted Patent US 12,256,007
Granted Patent B2
US 12,256,007 · App. 18/104,329 · Granted Mar 18, 2025

Decentralized identity access management using byzantine fault tolerant state machine replication

Inventors: Ram Krishnan (Cupertino, CA); Kostas Teofanidis (Sofia, BG); Vijaya Prakash Masilamani (Bangalore, IN); Michael William Achenbach (Los Altos, CA)
Assignee: VMWare LLC
H04L9/3213H04L9/0819H04L9/50
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 12,256,007
App. No.
18/104,329
Granted
Mar 18, 2025
Kind
B2
Abstract

A decentralized identity access management (IAM) architecture that executes IAM service code on the distributed nodes (i.e., replicas) of a Byzantine fault tolerant (BFT) state machine replication (SMR) system is provided. For example, the IAM service code may be implemented as a blockchain smart contract or as a native execution engine that runs on each replica. With this decentralized architecture, up to f replicas (where f is a threshold number defined by the system's BFT consensus protocol) can be faulty/corrupted without affecting the security of the system.

Claims (54)

1. A method comprising:

receiving, by each replica in a set of N replicas that compose a Byzantine fault tolerant (BFT) state machine replication (SMR) system, a request for authenticating a user, the request including security credentials for the user;

in response to receiving the request, communicating, by each replica with other replicas in the set of N replicas, using a BFT consensus protocol to agree upon an execution sequence number for the request; and

upon reaching the execution sequence number:

verifying, by each replica, that the security credentials for the user are correct;

retrieving, by each replica, resource access permissions associated with the user from a local storage layer of the replica;

generating, by each replica, an access token with a set of claims based on the resource access permissions; and

signing, by each replica, the access token using a share of a private key of the BFT SMR system that is assigned to the replica, the share being known only to the replica and being unknown to the other replicas in the set of N replicas.

2. The method of claim 1 wherein the verifying, retrieving, generating, and signing are executed by a blockchain smart contract running on each replica.

3. The method of claim 1 wherein the verifying, retrieving, generating, and signing are executed by an execution engine running on each replica.

4. The method of claim 1 wherein the BFT SMR system tolerates up to f faulty replicas, and wherein the shares of the private key assigned to the set of N replicas are generated using a (t, N) threshold signature scheme where t=f.

5. The method of claim 1 wherein each replica in the set of N replicas is owned by a different organization or a different department within an organization.

6. The method of claim 1 wherein the signed access tokens are combined into an aggregate token comprising an aggregate signature that is returned to the user.

7. The method of claim 6 wherein after receiving the aggregate token, the user submits a resource access request that includes the aggregate token to an application server, and wherein the application server:

retrieves, from the BFT SMR system, a public key corresponding to the private key;

validates the aggregate signature in the aggregate token using the public key; and

validates that the user is authorized to access a resource identified in the resource access request based on a set of claims in the aggregate token.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a replica in a set of N replicas that compose a Byzantine fault tolerant (BFT) state machine replication (SMR) system, the method comprising:

receiving a request for authenticating a user that includes security credentials for the user;

in response to receiving the request, communicating with other replicas in the set of N replicas using a BFT consensus protocol to agree upon an execution sequence number for the request; and

upon reaching the execution sequence number:

verifying that the security credentials for the user are correct;

retrieving resource access permissions associated with the user from a local storage layer of the replica;

generating an access token with a set of claims based on the resource access permissions; and

signing the access token using a share of a private key of the BFT SMR system that is assigned to the replica, the share being known only to the replica and being unknown to the other replicas in the set of N replicas.

9. The non-transitory computer readable storage medium of claim 8 wherein the verifying, retrieving, generating, and signing are executed by a blockchain smart contract running on the replica.

10. The non-transitory computer readable storage medium of claim 8 wherein the verifying, retrieving, generating, and signing are executed by an execution engine running on the replica.

11. The non-transitory computer readable storage medium of claim 8 wherein the BFT SMR system tolerates up to f faulty replicas, and wherein the shares of the private key assigned to the set of N replicas are generated using a (t, N) threshold signature scheme where t=f.

12. The non-transitory computer readable storage medium of claim 8 wherein each replica in the set of N replicas is owned by a different organization or a different department within an organization.

13. The non-transitory computer readable storage medium of claim 8 wherein the signed access tokens are combined into an aggregate token comprising an aggregate signature that is returned to the user.

14. The non-transitory computer readable storage medium of claim 13 wherein after receiving the aggregate token, the user submits a resource access request that includes the aggregate token to an application server, and wherein the application server:

retrieves, from the BFT SMR system, a public key corresponding to the private key;

validates the aggregate signature in the aggregate token using the public key; and

validates that the user is authorized to access a resource identified in the resource access request based on a set of claims in the aggregate token.

15. A computer system acting as a replica in a set of N replicas that compose a Byzantine fault tolerant (BFT) state machine replication (SMR) system, the computer system comprising:

a processor;

a storage layer; and

a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to:

receive a request for authenticating a user that includes security credentials for the user;

in response to receiving the request, communicate with other replicas in the set of N replicas using a BFT consensus protocol to agree upon an execution sequence number for the request; and

upon reaching the execution sequence number:

verify that the security credentials for the user are correct;

retrieve resource access permissions associated with the user from the storage layer;

generate an access token with a set of claims based on the resource access permissions; and

sign the access token using a share of a private key of the BFT SMR system that is assigned to the replica, the share being known only to the replica and being unknown to the other replicas in the set of N replicas.

16. The computer system of claim 15 wherein the program code is embodied in a blockchain smart contract.

17. The computer system of claim 15 wherein the program code is embodied in an execution engine of the replica.

18. The computer system of claim 15 wherein the BFT SMR system tolerates up to f faulty replicas, and wherein the shares of the private key assigned to the set of N replicas are generated using a (t, N) threshold signature scheme where t=f.

19. The computer system of claim 15 wherein each replica in the set of N replicas is owned by a different organization or a different department within an organization.

20. The computer system of claim 15 wherein the signed access tokens are combined into an aggregate token comprising an aggregate signature that is returned to the user.

21. The computer system of claim 20 wherein after receiving the aggregate token, the user submits a resource access request that includes the aggregate token to an application server, and wherein the application server:

retrieves, from the BFT SMR system, a public key corresponding to the private key;

validates the aggregate signature in the aggregate token using the public key; and

validates that the user is authorized to access a resource identified in the resource access request based on a set of claims in the aggregate token.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2023
From: KRISHNAN, RAM; TEOFANIDIS, KOSTAS; MASILAMANI, VIJAYA PRAKASH; ACHENBACH, MICHAEL WILLIAM
To: VMWARE, INC.
Reel/Frame 062555/0709 →
Priority Claims (1)
IN 202241069641 · Dec 2, 2022 · national
Continuity (1)
Related Publication 20240187234A1 · Jun 6, 2024
References Cited (3)
US 20180337771A1 · Baker · 2018 [cited by examiner]
US 20200252211A1 · Chen · 2020 [cited by examiner]
Ren, Ling, et al. “Practical synchronous byzantine consensus.” arXiv preprint arXiv:1704.02397 (2017) (Year: 2017). [cited by examiner]
Cited By (1)
US 12,719,683