IP Library Granted Patent US 9,747,425
Granted Patent B2
US 9,747,425 · App. 14/789,813 · Granted Aug 29, 2017

Method and system for restricting execution of virtual application 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
G06F21/121G06F21/10H04L9/32H04L9/3247G06F2221/07
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,747,425
App. No.
14/789,813
Granted
Aug 29, 2017
Kind
B2
Abstract

Methods and systems for restricting the launch of virtual application files. In one embodiment, 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. In another embodiment, a ticket is 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 (40)

1. A computer-implemented method for use with a server computing device and a runtime engine, the method comprising:

at least partially downloading, by at least one computing device, a virtualized application file from the server computing device;

storing, by the at least one computing device, the virtualized application file locally;

receiving, by an application executing on the at least one computing device, a ticket and a first instruction from the server computing device, the ticket comprising a digital signature and an expiration date, the first instruction indicating the virtualized application file is to be executed;

storing, by the application, the ticket in a shared memory location accessible by both the runtime engine and the application; and

sending, by the application, a second instruction to the runtime engine instructing the runtime engine to execute the virtualized application file, the runtime engine being operable to execute the virtualized application file in response to the second instruction to do so only when the digital signature of the ticket is valid and a current date is not later than the expiration date.

2. The computer-implemented method of claim 1 , further comprising:

at least partially downloading the virtualized application file from the server computing device.

3. The computer-implemented method of claim 1 , wherein the runtime engine has a copy of a public key, and the runtime engine is operable to determine the digital signature of the ticket is valid by decrypting the digital signature using the copy of the public key, and compare the decrypted digital signature to a second value determined based on a portion of the ticket.

4. The computer-implemented method of claim 1 , wherein the runtime engine is operable to terminate execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

5. The computer-implemented method of claim 4 , wherein the runtime engine is operable to display an error before terminating execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

6. A method comprising:

receiving, by a server computing device, a selection of a virtualized application file;

creating, by the server computing device, a login session and a session ticket, the session ticket having information related to the login session, a digital signature, and an expiration date;

transmitting, by the server computing device, the session ticket and a request to download and launch the selected virtualized application file to an application executing on at least one computing device;

downloading, by the application, the virtualized application file;

storing, by the application, the session ticket in a shared memory location accessible by both a runtime engine and the application;

instructing, by the application, the runtime engine to execute the virtualized application file; and

executing, by the runtime engine, the virtualized application file in response to the instruction to do so only when the digital signature of the session ticket is valid and a current date is not later than the expiration date.

7. The method of claim 6 , wherein the runtime engine has a copy of a public key, and the method further comprises:

determining, by the runtime engine, the digital signature of the session ticket is valid by decrypting the digital signature using the copy of the public key, and comparing the decrypted digital signature to a second value determined based on a portion of the session ticket.

8. The method of claim 6 , further comprising:

terminating, by the runtime engine, execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

9. The method of claim 6 , further comprising:

displaying, by the runtime engine, an error before terminating execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

10. A computer-implemented method for use with a server computing device and a runtime engine having a copy of a public key, the method comprising:

receiving, by an application executing on at least one computing device, a ticket and a first instruction to execute a virtualized application file from the server computing device, the ticket comprising a digital signature and an expiration date;

storing, by the application, the ticket in a shared memory location accessible by both the runtime engine and the application; and

sending, by the application, a second instruction to the runtime engine instructing the runtime engine to execute the virtualized application file, the runtime engine being operable to execute the virtualized application file in response to the second instruction to do so only when the digital signature of the ticket is valid and a current date is not later than the expiration date, the runtime engine determining the digital signature of the ticket is valid by decrypting the digital signature using the copy of the public key, and comparing the decrypted digital signature to a second value determined based on a portion of the ticket.

11. The computer-implemented method of claim 10 , further comprising:

at least partially downloading the virtualized application file from the server computing device.

12. The computer-implemented method of claim 10 , wherein the runtime engine is operable to terminate execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

13. The computer-implemented method of claim 12 , wherein the runtime engine is operable to display an error before terminating execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

14. A computer-implemented method for use with a server computing device and a runtime engine, the method comprising:

receiving, by an application executing on at least one computing device, a ticket and a first instruction to execute a virtualized application file from the server computing device, the ticket comprising a digital signature and an expiration date;

storing, by the application, the ticket in a shared memory location accessible by both the runtime engine and the application; and

sending, by the application, a second instruction to the runtime engine instructing the runtime engine to execute the virtualized application file, the runtime engine being operable to execute the virtualized application file in response to the second instruction to do so only when the digital signature of the ticket is valid and a current date is not later than the expiration date, the runtime engine being operable to terminate execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

15. The computer-implemented method of claim 14 , further comprising:

at least partially downloading the virtualized application file from the server computing device.

16. The computer-implemented method of claim 14 , wherein the runtime engine is operable to display an error before terminating execution of the virtualized application file when the digital signature of the ticket is invalid or the current date is later than the expiration date.

Assignments (3)
ADDRESS CHANGE Recorded Nov 10, 2015
From: CODE SYSTEMS CORPORATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 037084/0283 →
CHANGE OF ADDRESS Recorded Jul 29, 2015
From: CODE SYSTEMS CORPORATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 036224/0819 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2015
From: MURPHEY, C. MICHAEL; OBATA, KENJI C.; ZELLER, MARK JEREMY; LARIMORE, STEFAN I.
To: CODE SYSTEMS CORPORATION
Reel/Frame 036188/0131 →
Continuity (3)
Continuation 13683969 · Nov 21, 2012
Division 12916348 · Oct 29, 2010
Related Publication 20150302183A1 · Oct 22, 2015