IP Library Granted Patent US 9,209,976
Granted Patent B2
US 9,209,976 · App. 12/916,348 · Granted Dec 8, 2015

Method and system for restricting execution of virtual applications to a managed process environment

Inventors: C. Michael Murphey (Seattle, WA); Kenji C. Obata (Seattle, WA); Mark Jeremy Zeller (Seattle, WA); Stefan I. Larimore (Redmond, WA)
Assignee: CODE SYSTEMS CORPORATION
H04L9/32G06F21/10
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 9,209,976
App. No.
12/916,348
Granted
Dec 8, 2015
Kind
B2
Abstract

Methods and systems for restricting the launch of virtual application files. A launching application is signed with a digital signature. When the launching application launches a runtime engine and instructs it to execute an application file, the runtime engine determines whether an entity identifier associated with the launching application identifies an authorized entity. If the entity identifier identifies an authorized entity and the digital signature is valid, the runtime engine executes the application file. A ticket may be transmitted to the launching application along with an instruction to launch the application file. The ticket includes a digital signature and an expiration date. The launching application communicates the ticket to the runtime engine, which will execute the application file only if the digital signature is valid and a current date is not later than the expiration date.

Claims (36)

1. A computer-implemented method comprising:

determining, by a virtual runtime engine, whether the virtual runtime engine has a parent process, the virtual runtime engine executing on a computing device, and being configured to execute a virtualized application file;

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the virtual runtime engine does not have a parent process;

when the virtual runtime engine determines that the virtual runtime engine has a parent process, determining, by the virtual runtime engine, whether the parent process has a digital signature, the parent process being an application configured to instruct the virtual runtime engine to launch the virtualized application file;

when the virtual runtime engine determines that the parent process has a digital signature, determining, by the virtual runtime engine, whether the parent process is associated with an authorized entity;

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the parent process is not associated with an authorized entity;

executing, by the virtual runtime engine, the virtualized application file when the virtual runtime engine determines that the digital signature is valid; and

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the digital signature is invalid.

2. The computer-implemented method of claim 1 , wherein the virtualized application file comprises configuration information including a digital rights management indicator, and the method further comprises:

before the virtual runtime engine determines whether the virtual runtime engine has a parent process, reading, by the virtual runtime engine, the configuration information of the virtualized application file to obtain the digital rights management indicator; and

executing, by the virtual runtime engine, the virtualized application file without determining whether the virtual runtime ermine has a parent process if the digital rights management indicator indicates that a parent process of the virtual runtime engine is not to be validated.

3. The computer-implemented method of claim 1 , wherein the virtual runtime engine determines whether the parent process is associated with an authorized entity based on an entity identifier associated with the parent process,

the parent process is implemented by at least one executable file that comprises the entity identifier associated with the parent process, and

the method further comprises obtaining, by the virtual runtime engine, the entity identifier associated with the parent process from the at least one executable file.

4. The computer-implemented method of claim 1 , wherein the parent process is implemented by at least one executable file that comprises a public key, and the method further comprises:

obtaining, by the virtual runtime engine, the public key associated with the authorized entity from the at least one executable file.

5. The computer-implemented method of claim 1 , wherein the virtual runtime engine determines whether the parent process is associated with an authorized entity based on an entity identifier associated with the parent process,

the parent process is implemented by at least one executable file that comprises a public key certificate comprising the entity identifier associated with the parent process and a public key associated with the authorized entity, and

the method further comprises obtaining, by the virtual runtime engine, at least one of the entity identifier associated with the parent process and the public key associated with the authorized entity from the public key certificate.

6. The computer-implemented method of claim 5 , wherein the virtual runtime engine determines the parent process is associated with an authorized entity when the entity identifier matches a predetermined entity identifier associated with the authorized entity and the public key certificate was issued by a trusted certificate authority.

7. The computer-implemented method of claim 5 , wherein the virtual runtime engine determines the parent process is associated with an authorized entity when the entity identifier matches a predetermined entity identifier associated with the authorized entity and the public key certificate was issued by the authorized entity.

8. A computer-implemented method comprising:

reading, by a virtual runtime engine, configuration information from a virtualized application file to obtain a digital rights management indicator, the virtual runtime engine being implemented by the virtualized application file executing on a computing device;

allowing, by the virtual runtime engine, the virtualized application file to continue executing when the digital rights management indicator indicates that a parent process of the virtual runtime engine is not to be validated;

determining, by the virtual runtime engine, whether the virtual runtime engine was launched by a parent process when the digital rights management indicator indicates that a parent process of the virtual runtime engine is to be validated;

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the virtual runtime engine was not launched by a parent process;

when the virtual runtime engine determines that the process virtual runtime engine was launched by a parent process, determining, by the virtual runtime engine, whether the parent process has a digital signature, the parent process being an application configured to launch execution of the virtualized application file;

when the virtual runtime engine determines that the parent process has a digital signature, determining, by the virtual runtime engine, whether the digital signature is associated with an authorized entity using an entity identifier associated with the parent process;

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the digital signature is not associated with an authorized entity;

when the virtual runtime engine determines that the digital signature is associated with an authorized entity, determining, by the virtual runtime engine, whether the digital signature is valid using a public key associated with the authorized entity;

allowing, by the virtual runtime engine, the virtualized application file to continue executing when the virtual runtime engine determines that the digital signature is valid; and

terminating, by the virtual runtime engine, execution of the virtualized application file when the virtual runtime engine determines that the digital signature is invalid.

9. The computer-implemented method of claim 8 , wherein the parent process is implemented by at least one executable file that comprises a public key certificate comprising the entity identifier associated with the parent process and the public key associated with the authorized entity, and

the method further comprises obtaining, by the virtual runtime engine, at least one of the entity identifier associated with the parent process and the public key associated with the authorized entity from the public key certificate.

10. The computer-implemented method of claim 9 , wherein the virtual runtime engine determines the parent process is associated with an authorized entity when the entity identifier matches a predetermined entity identifier associated with the authorized entity and the public key certificate was issued by a trusted certificate authority.

11. The computer-implemented method of claim 9 , wherein the virtual runtime engine determines the parent process is associated with an authorized entity when the entity identifier matches a predetermined entity identifier associated with the authorized entity and the public key certificate was issued by the authorized entity.

Assignments (3)
ADDRESS CHANGE Recorded Nov 10, 2015
From: CODE SYSTEMS CORPORATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 037084/0283 →
CHANGE OF ADDRESS Recorded May 28, 2015
From: CODE SYSTEMS CORPORTATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 035794/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2010
From: MURPHEY, C. MICHAEL; OBATA, KENJI C.; ZELLER, MARK JEREMY; LARIMORE, STEFAN I.
To: CODE SYSTEMS CORPORATION
Reel/Frame 025545/0090 →
Continuity (1)
Related Publication 20120110337A1 · May 3, 2012