IP Library Granted Patent US 11,611,541
Granted Patent B2
US 11,611,541 · App. 16/056,848 · Granted Mar 21, 2023

Secure method to replicate on-premise secrets in a cloud environment

Inventors: Feng Huang (Cambridge, GB); Jean-Luc Giraud (Cambridge, GB)
Assignee: Citrix Systems, Inc.
H04L63/0442H04L9/321H04L63/0823
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,611,541
App. No.
16/056,848
Granted
Mar 21, 2023
Kind
B2
Abstract

Systems and methods for secure sharing of sensitive information in a computing environment. The methods comprise, by a first entity of a first computing environment receiving sensitive information of the first computing environment, receiving a request to share the sensitive information from a second entity of the first computing environment, and determining whether the second entity is a trusted entity included in a list of trusted entities held by a configuration service associated with a second computing environment. If the second entity is not a trusted entity, determining whether the second entity can establish trust by validating a subscription of the second entity with a directory service, and validating a digital certificate corresponding to the second entity with a certificate authority. If the second entity can establish trust or is a trusted entity, sharing the sensitive information with the second entity so as to enable operation of the second entity.

Claims (65)

1. A method for secure sharing of sensitive information in a computing environment, the method comprising, by a first computing entity of a first computing environment:

receiving first sensitive information from a client device that has been encrypted and which corresponds to the first computing environment configured as a trusted internal computing environment, the first sensitive information having been encrypted using an encryption key held by a configuration service of a second computing environment configured as an untrusted external computing environment;

receiving, from a second computing entity of the first computing environment, a request to share the first sensitive information between the first computing entity and the second computing entity;

determining whether the second computing entity is a trusted entity included in a list of trusted computing entities configured to store sensitive information in the first computing environment, the list held by the configuration service;

in response to determining that the second computing entity is not a trusted entity included in the list of trusted computing entities, determining whether the second computing entity can establish trust by:

validating a subscription of the second computing entity with a directory service, and

validating a digital certificate corresponding to the second computing entity with a certificate authority; and

in response to determining that the second computing entity can establish trust or is a trusted entity, performing the following operations: generating second sensitive information by encrypting the first sensitive information using a public key of a private public key pair generated by the second computing entity and included in the digital certificate; and transmitting the second sensitive information to the second computing entity via the configuration service so as to cause an enablement of at least one operation of the second computing entity;

wherein the public key is different than the encryption key.

2. The method of claim 1 , further comprising, in response to determining that the second computing entity can establish trust, by the configuration service associated with the second computing environment, adding the second computing entity to the list of trusted computing entities.

3. The method of claim 1 , further comprising, by a computing device:

generating the encryption key;

generating the first sensitive information by encrypting information using the encryption key;

transmitting the encryption key to the configuration service for storage; and

transmitting the first sensitive information to the first computing entity.

4. The method of claim 1 , wherein the first computing entity is a first connector of the first computing environment and the second computing entity is a second connector of the first computing environment.

5. The method of claim 1 , further comprising, in response to determining that the second computing entity cannot establish trust, denying the request to share first sensitive information with the second computing entity.

6. The method of claim 1 , determining whether the second computing entity can establish trust further comprises, by the second computing entity:

joining the directory service, wherein the directory service includes information about one or more trusted entities;

generating a private public key pair that includes a private key and a public key;

receiving, from the certificate authority, the digital certificate corresponding to the second computing entity including the public key; and

transmitting, to the configuration service, a request to join a list of trusted entities, wherein the request comprises the digital certificate corresponding to the second computing entity.

7. The method of claim 1 , wherein:

determining whether the second computing entity can establish trust further comprises receiving, by the first computing entity, from the configuration service, the digital certificate corresponding to the second computing entity, and

the digital certificate includes a public key of a private public key pair generated by the second computing entity.

8. The method of claim 1 , further comprising, by the second computing entity:

receiving the transmitted second sensitive information; and

decrypting the received second sensitive information using a private key of the private public key pair.

9. The method of claim 8 , further comprising adding, by the configuration service, the second computing entity to the list of trusted computing entities in response to decryption of the second sensitive information by the second computing entity.

10. The method of claim 1 , wherein receiving, from the second computing entity, the request to share the first sensitive information is in response to at least one of the following: addition of the second computing entity to the first computing environment, a user request to share the first sensitive information, or a request to access a first resource via the second computing entity using the first sensitive information.

11. A computing system for secure sharing of sensitive information in a computing environment, the system comprising:

a first computing environment configured as a trusted internal computing environment and comprising at least a first computing entity and a second computing entity;

a second computing environment configured as an untrusted external computing environment and comprising a configuration service; and

a non-transitory computer-readable storage medium comprising programming instructions that are configured to implement a method for sharing of sensitive information, wherein the programming instructions comprise instructions that cause the first computing entity to:

receive first sensitive information from a client device that has been encrypted and which corresponds to the first computing environment, the first sensitive information having been encrypted using an encryption key held by the configuration service of a second computing environment;

receive, from the second computing entity of the first computing environment, a request to share the first sensitive information between the first computing entity and the second computing entity;

determine whether the second computing entity is a trusted entity included in a list of trusted computing entities configured to store sensitive information in the first computing environment, the list held by the configuration service;

in response to determining that the second computing entity is not a trusted entity included in the list of trusted computing entities, determine whether the second computing entity can establish trust by:

validating a subscription of the second computing entity with a directory service, and

validating a digital certificate corresponding to the second computing entity with a certificate authority; and

in response to determining that the second computing entity can establish trust or is a trusted entity, perform the following operations:

generate second sensitive information by encrypting the first sensitive information using a public key of a private public key pair generated by the second computing entity and included in the digital certificate; and

transmitting the second sensitive information with the second computing entity via the configuration service so as to cause an enablement of at least one operation of the second computing entity;

wherein the public key is different than the encryption key.

12. The system of claim 11 , further comprising instructions that cause the configuration service to, in response to determining that the second computing entity can establish trust, add the second computing entity to the list of trusted computing entities.

13. The system of claim 11 , further comprising instructions that cause a computing device to:

generate the encryption key;

generate the first sensitive information by encrypting information using the encryption key;

transmit the encryption key to the configuration service for storage; and

transmit the first sensitive information to the first computing entity.

14. The system of claim 11 , wherein the first computing entity is a first connector of the first computing environment and the second computing entity is a second connector of the first computing environment.

15. The system of claim 11 , further comprising instructions that cause the first computing entity to, in response to determining that the second computing entity cannot establish trust, deny the request to share the first sensitive information with the second computing entity.

16. The system of claim 11 , further comprising instructions that cause the second computing entity to determine whether the second computing entity can establish trust:

join the directory service, wherein the directory service includes information about one or more trusted entities;

generate a private public key pair that includes a private key and a public key;

receive, from the certificate authority, the digital certificate corresponding to the second computing entity including the public key; and

transmit, to the configuration service, a request to join the list of trusted computing entities, wherein the request comprises the digital certificate corresponding to the second computing entity.

17. The system of claim 11 , wherein:

the instructions to cause the first computing entity to determine whether the second computing entity can establish trust further comprise instructions that cause the first computing entity to receive from the configuration service, the digital certificate corresponding to the second computing entity; and

the digital certificate includes a public key of a private public key pair generated by the second computing entity.

18. The system of claim 11 , further comprising instructions to cause the second computing entity to:

receive the transmitted second encrypted sensitive information; and

decrypt the received second encrypted sensitive information using a private key of the private public key pair.

19. The system of claim 18 , further comprising instructions to cause the configuration service to add the second computing entity to the list of trusted computing entities in response to decryption of the second encrypted sensitive information by the second computing entity.

20. The system of claim 11 , wherein receiving, from the second computing entity, the request to share the first sensitive information is in response to at least one of the following: addition of the second computing entity to the first computing environment, a user request to share the first sensitive information, or a request to access a first resource via the second computing entity using the first sensitive information.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2018
From: HUANG, FENG; GIRAUD, JEAN-LUC
To: CITRIX SYSTEMS, INC.
Reel/Frame 046570/0905 →
Continuity (1)
Related Publication 20200053059A1 · Feb 13, 2020