IP Library › Granted Patent US 9,602,549
Granted Patent B2
US 9,602,549 · App. 14/970,477 · Granted Mar 21, 2017

Establishing trust between applications on a computer

Inventors: John Jules Alexander Boyer (Ottawa, CA); Ali Kamran Ahmed (Sunnyvale, CA); Timothy Michael Shephard (Gibsons, CA); Vinay Prabhu (Sunnyvale, CA); Ruchir Tewari (Mountain View, CA)
Assignee: Oracle International Corporation
H04L63/20G06F21/57H04L63/06H04L63/061H04L63/10H04L2463/062
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,602,549
App. No.
14/970,477
Granted
Mar 21, 2017
Kind
B2
Abstract

Systems, methods and machine-readable media for providing a security service are disclosed. The methods include receiving a modification of the application object code to allow the software application to transmit a request for the security service; retrieving the modified application object code corresponding to the software application from memory; receiving, via a processor, the request for the security service from the modified application object code; and providing, via the processor, the security service. The systems and machine-readable media performing operations according to the methods disclosed.

Claims (59)

1. A method for establishing trust between applications on a computing device, the method comprising:

providing a first software application on a computing device, the first application having first object code, wherein the first object code is original, post-compile object code;

providing a second software application on the computing device, the second application having second object code, wherein the second object code is original, post-compile object code;

modifying, using at least one processor operatively coupled with a memory, the first object code to create first replacement object code, the first replacement object code configured to access a shared secret between the first and second software applications;

modifying, using the at least one processor, the second object code to create second replacement object code, the second replacement object code configured to access the shared secret between the first and second software applications;

encrypting data, in the first application, using the shared secret and the first replacement object code;

sharing the encrypted data from the first application to the second application; and

decrypting at least a portion of the data, in the second application, using the shared secret and the second replacement code.

2. The method of claim 1 , further comprising:

converting the first object code from a first signed form to a first unsigned form before modifying the first object code;

converting the second object code from a second signed form to a second unsigned form before modifying the second object code;

converting the first replacement object code from the first unsigned form to a signed form after modifying the first object code; and

converting the second replacement object code from the second unsigned form to a signed form after modifying the second object code.

3. The method of claim 1 , further comprising:

providing a security manager application on the computing device, wherein the first and second replacement object code are modified to communicate with the security manager application; and

obtaining, by the first and second replacement object code, the shared secret from the security manager application.

4. The method of claim 3 , further comprising:

verifying, by the security manager application, a signature of the first software application before allowing access by the first replacement object code to the shared secret.

5. The method of claim 4 , wherein the signature is a product of a public key infrastructure (PKI) key.

6. A machine-readable non-transitory storage medium embodying information indicative of instructions for establishing trust between applications on a computing device, the instructions causing one or more machines to perform the operations comprising:

providing a first software application on a computing device, the first application having first object code, wherein the first object code is original, post-compile object code;

providing a second software application on the computing device, the second application having second object code, wherein the second object code is original, post-compile object code;

modifying, using at least one processor operatively coupled with a memory, the first object code to create first replacement object code, the first replacement object code configured to access a shared secret between the first and second software applications;

modifying, using the at least one processor, the second object code to create second replacement object code, the second replacement object code configured to access the shared secret between the first and second software applications;

encrypting data, in the first application, using the shared secret and the first replacement object code;

sharing the encrypted data from the first application to the second application; and

decrypting at least a portion of the data, in the second application, using the shared secret and the second replacement code.

7. The machine-readable non-transitory storage medium of claim 6 , the operations further comprising:

converting the first object code from a first signed form to a first unsigned form before modifying the first object code;

converting the second object code from a second signed form to a second unsigned form before modifying the second object code;

converting the first replacement object code from the first unsigned form to a signed form after modifying the first object code; and

converting the second replacement object code from the second unsigned form to a signed form after modifying the second object code.

8. The machine-readable non-transitory storage medium of claim 6 , the operations further comprising:

providing a security manager application on the computing device, wherein the first and second replacement object code are modified to communicate with the security manager application; and

obtaining, by the first and second replacement object code, the shared secret from the security manager application.

9. The machine-readable non-transitory storage medium of claim 8 , the operations further comprising:

verifying, by the security manager application, a signature of the first software application before allowing access by the first replacement object code to the shared secret.

10. The medium of claim 9 , wherein the signature is a product of a public key infrastructure (PKI) key.

11. A computer system executing instructions in a computer program, the instructions comprising program code for establishing trust between applications on a computing device, the computer system comprising:

at least one computer processor; and

a memory operatively coupled with the at least one computer processor, the at least one computer processor executing code from the memory including:

program code for providing a first software application on a computing device, the first application having first object code, wherein the first object code is original, post-compile object code;

program code for providing a second software application on the computing device, the second application having second object code, wherein the second object code is original, post-compile object code;

program code for modifying, using at least one processor operatively coupled with a memory, the first object code to create first replacement object code, the first replacement object code configured to access a shared secret between the first and second software applications;

program code for modifying, using the at least one processor, the second object code to create second replacement object code, the second replacement object code configured to access the shared secret between the first and second software applications;

program code for encrypting data, in the first application, using the shared secret and the first replacement object code;

program code for sharing the encrypted data from the first application to the second application; and

program code for decrypting at least a portion of the data, in the second application, using the shared secret and the second replacement code.

12. The computer system of claim 11 , the code further comprising:

program code for converting the first object code from a first signed form to a first unsigned form before modifying the first object code;

program code for converting the second object code from a second signed form to a second unsigned form before modifying the second object code;

program code for converting the first replacement object code from the first unsigned form to a signed form after modifying the first object code; and

program code for converting the second replacement object code from the second unsigned form to a signed form after modifying the second object code.

13. The computer system of claim 11 , the code further comprising:

program code for providing a security manager application on the computing device, wherein the first and second replacement object code are modified to communicate with the security manager application; and

program code for obtaining, by the first and second replacement object code, the shared secret from the security manager application.

14. The computer system of claim 13 , the code further comprising:

program code for verifying, by the security manager application, a signature of the first software application before allowing access by the first replacement object code to the shared secret.

15. The computer system of claim 14 , wherein the signature is a product of a public key infrastructure (PKI) key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: BOYER, JOHN JULES ALEXANDER; AHMED, ALI KAMRAN; SHEPHARD, TIMOTHY MICHAEL; PRABHU, VINAY; TEWARI, RUCHIR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 037594/0937 →
Continuity (3)
Continuation 14213244 · Mar 14, 2014
Continuation In Part 13841498 · Mar 15, 2013
Related Publication 20160112458A1 · Apr 21, 2016