IP Library › Granted Patent US 11,196,735
Granted Patent B2
US 11,196,735 · App. 16/514,741 · Granted Dec 7, 2021

Certificate management in segregated computer networks

Inventors: Soumit Rahman (Seattle, WA); Benjamin Rybalka (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L63/0823H04L61/255H04L63/0272H04L63/123H04L67/34
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,196,735
App. No.
16/514,741
Granted
Dec 7, 2021
Kind
B2
Abstract

Techniques for managing certificates in segregated networks are disclosed. One example technique includes upon receiving executable instructions of a software application and a reference table containing entries of reference objects in the software application, identifying a digital certificate independently obtained by the segregated network for each of the reference objects. The method also includes generating a mapping table having entries individually identifying the reference objects and data representing the digital certificates. The method further includes deploying for execution to one or more of the servers in the segregated network, the software application along with the generated mapping table. During execution, the software application can dereference one of the reference objects to locate one of the digital certificates in in the generated mapping table corresponding to one of the reference objects.

Claims (103)

1. A method for certificate management in a segregated network having one or more servers operatively coupled to one another, the method comprising:

receiving, at the segregated network, executable instructions of a software application and a reference table associated with the software application, the reference table containing entries identifying corresponding reference objects in the software application, wherein the segregated network is physically isolated from and having a unidirectional connection with an external computer network; and

upon receiving the reference table, at the segregated network,

identifying, digital certificates in the segregated network individually corresponding to one of the reference objects in the reference table;

generating a mapping table having entries individually identifying one of the reference objects of the software application and one of the digital certificates corresponding to the one of the reference objects; and

deploying the software application to be executed on one or more of the servers in the segregated network along with the generated mapping table, and

during execution of the deployed software application at one of the one or more servers in the segregated network,

identifying one of the reference objects used in a software component of the software application;

searching the mapping table to locate one of the digital certificates from one of the entries in the generated mapping table corresponding to the identified one of the reference objects, and

executing the software component of the software application using the boated one of the digital certificates corresponding to the identified one of the reference objects.

2. The method of claim 1 wherein receiving the executable instructions of the software application and the reference table includes receiving the executable instructions of the software application and the reference table via the unidirectional connection between the segregated network and the external computing computer network, and wherein deploying the software application in the segregated network includes deploying the software application in the segregated network with the generated mapping table without transmitting any data of the digital certificates from the segregated network to the external computing environment.

3. The method of claim 1 , further comprising:

receiving, at the segregated network, a list of the reference objects prior to receiving the executable instructions of the software application; and

in response to receiving the list of the reference objects,

obtaining, independently in the segregated network, the digital certificates individually corresponding to one of the reference objects; and

storing the obtained digital certificates and corresponding reference objects as reference records in a datastore in the segregated network; and

wherein identifying the digital certificates includes identifying the digital certificates based on the reference records in the datastore.

4. The method of claim 1 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and &one of the digital certificates; and

in response to determining that the datastore contains the reference record identifying the each of the reference objects and the one of the digital certificates, associating the one of the digital certificates with the each of the reference objects.

5. The method of claim 1 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and one of the digital certificates; and

in response to determining that the datastore does not contain a reference record identifying the each of the reference objects and one of the digital certificates, obtaining, from a certificate authority, a digital certificate of the each of the reference objects; and

associating the obtained digital certificate with the each of the reference objects.

6. The method of claim 1 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and one of the digital certificates; and

in response to determining that the datastore contains a reference record identifying the each of the reference objects and the one of the digital certificates, determining, whether the one of the digital certificates is still valid; and

in response to determining that the one of the digital certificates is still valid, associating the one of the digital certificates with the each of the reference objects.

7. The method of claim 1 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and one of the digital certificates; and

in response to determining that the datastore contains a reference record identifying the each of the reference objects and the one of the digital certificates, determining, whether the one of the digital certificates is still valid; and

in response to determining that the one of the digital certificates is not valid,

obtaining, from a certificate authority, a new digital certificate for the each of the reference objects; and

associating the obtained new digital certificate with the each of the reference objects.

8. The method of claim 1 , further comprising:

subsequent to deploying the software application to the one or more of the servers in the segregated network,

determining whether the digital certificates in the mapping table are still valid; and

in response to determining that one of the digital certificates in the mapping table is not valid,

obtaining, from a certificate authority, a new digital certificate for the corresponding reference object in the mapping table; and

updating the mapping table with the new digital certificate without modification to the executable instructions of the software application.

9. The method of claim 1 wherein identifying the digital certificates includes:

upon receiving the reference table, at the segregated network,

obtaining, from a certificate authority, one of the digital certificates for each of the reference objects in the reference table; and

associating the obtained digital certificates with the each of the reference objects in the reference table.

10. A computing device in a segregated network having one or more servers physically isolated from and having a unidirectional connection with an external computer network, the computing device comprising:

a processor; and

a memory having instructions executable by the processor to cause the computing device to:

receive, at the segregated network, executable instructions of a software application and a reference table associated with the software application, the reference table containing a data entry identifying a reference object in the software application;

upon receiving the reference table, at the computing device,

identify a digital certificate available in the segregated network and corresponding to the reference object in the reference table;

generate a mapping table having an entry identifying the reference object and the digital certificate; and

transmit the executable instructions of the software application to be executed on the one or more of the servers in the segregated network along with the generated mapping table; and

during execution of the software application,

identify the reference object used in a software component of the software application;

search the mapping table to locate the digital certificate execution of the software applicationcorresponding to the identified reference object; and

execute the software component of the software application using the corresponding to the identified reference object.

11. The computing device of claim 10 wherein the memory includes additional instructions executable by the processor to cause the computing device to:

receive data identifying the reference object prior to receiving the executable instructions of the software application; and

in response to receiving the data identifying the reference object,

obtain the digital certificate corresponding to the reference object from a certificate authority; and

store the obtained digital certificate and corresponding reference object as a reference record in a datastore in the segregated network.

12. The computing device of claim 11 wherein to identify the digital certificate includes to identify the digital certificate based on the reference record in the datastore.

13. The computing device of claim 10 wherein to identify the digital certificate includes to:

upon receiving the reference table,

obtain, from a certificate authority, the digital certificate for the reference object in the reference table; and

create and store, in a datastore, a reference record identifying the obtained digital certificate and the reference object in the reference table.

14. The computing device of claim 10 wherein the memory includes additional instructions executable by the processor to cause the computing device to:

determine, whether the digital certificate is still valid; and

in response to determining that the digital certificate is still valid, generate the mapping table using the digital certificate.

15. The computing device of claim 10 wherein the memory includes additional instructions executable by the processor to cause the computing device to:

determine, whether the digital certificate is still valid; and

in response to determining that the digital certificate is not valid,

obtain, from a certificate authority, a new digital certificate for the reference object; and

generate the mapping table using the obtained new digital certificate.

16. The computing device of claim 10 wherein the memory includes additional instructions executable by the processor to cause the computing device to:

subsequent to deploying the software application to the one or more of the servers in the segregated network,

determine whether the digital certificate in the mapping table is still valid; and

in response to determining that the digital certificate in the mapping table is not valid,

obtain, from a certificate authority, a new digital certificate for the reference object in the mapping table; and

update the mapping table with the new digital certificate without modification to the executable instructions of the software application.

17. A method for certificate management in a segregated network having one or more servers operatively coupled to one another and physically isolated from and having a unidirectional connection with an external computer network, the method comprising:

upon receiving, at the segregated network, executable instructions of a software application and a reference table associated with the software application and containing entries identifying corresponding reference objects in the software application,

identifying, for the reference objects identified in the reference table, digital certificates independently obtained by the segregated network;

generating a mapping table having entries individually identifying one of the reference objects of the software application and data representing one of the digital certificates independently obtained by the segregated network; and

deploying for execution on one or more of the servers in the segregated network, the software application along with the generated mapping table; and

during execution of the deployed software application at one of the one or more servers,

identifying one of the reference objects used in a software component of the software application;

dereferencing the identified one of the reference objects by locating the one of the digital certificates in one of the entries in the generated mapping table corresponding to the identified one of the reference objects; and

executing the software component of the software application using the located one of the digital certificates corresponding to the identified one of the reference objects.

18. The method of claim 17 , further comprising:

receiving, at the segregated network, a list of the reference objects prior to receiving the executable instructions of the software application; and

in response to receiving the list of the reference objects,

obtaining, independently in the segregated network, the digital certificates individually corresponding to one of the reference objects; and

storing the obtained digital certificates and corresponding reference objects as reference records in a datastore in the segregated network; and

wherein identifying the digital certificates includes identifying the digital certificates based on the reference records in the datastore.

19. The method of claim 17 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and one of the digital certificates; and

in response to determining that the datastore contains a reference record identifying the each of the reference objects and one of the digital certificates, associating the one of the digital certificates with the each of the reference objects.

20. The method of claim 17 wherein identifying the digital certificates includes, for each of the reference objects identified in the reference table:

determining whether a datastore in the segregated network contains a reference record identifying the each of the reference objects and one of the digital certificates; and

in response to determining that the datastore does not contain a reference record identifying the each of the reference objects and one of the digital certificates,

obtaining, from a certificate authority, the one of digital certificates of the each of the reference objects; and

associating the obtained one of the digital certificates with the each of the reference objects.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2019
From: RAHMAN, SOUMIT; RYBALKA, BENJAMIN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049788/0879 →
Continuity (1)
Related Publication 20210021585A1 · Jan 21, 2021