IP Library Granted Patent US 10,838,758
Granted Patent B2
US 10,838,758 · App. 16/253,937 · Granted Nov 17, 2020

System and method for self-protecting data

Inventors: Ruby B. Lee (Princeton, NJ); Pramod A. Jamkhedkar (Bridgewater, NJ); Yu-Yuan Chen (Princeton, NJ)
Assignee: Teleputers, LLC
G06F9/45558G06F21/6227G06F21/6281G06F2009/45583
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 10,838,758
App. No.
16/253,937
Granted
Nov 17, 2020
Kind
B2
Abstract

Disclosed is a system comprising a physical memory, a processor and a software component. The software component includes a policy/domain handler for receiving data and a policy associated with the data; a hypervisor; and a file management module. The file management module receives a request from a third-party application to interact with a data file containing the data; sends an authorization and tag request to the policy/domain handler to check if the user and application are permitted to access the data, and if permitted, to generate hardware tags for the data file; and sends a secure data request to the hypervisor to create a secure data compartment for the data file and the hardware tags. Based on the authorization and tag request, and the security policy associated with the data, the policy/domain handler generates the hardware tags for the data file. Based on the secure data request, the hypervisor creates in the physical memory a secure data compartment containing the data file and the hardware tags, the hypervisor associating the hardware tags with the data in the secure data compartment. As the data is operated upon and moved to other memory areas, the hardware tags are propagated with the data according to tag propagation rules, and checked before performing operations that may lead to security breaches.

Claims (54)

1. A method for reducing an amount of false positives in a dynamic implicit information flow tracking system performed by a computer system comprising a memory and a processor, the method comprising the steps of:

determining whether a first branch instruction comprises a first tag indicative of conditional execution;

setting a counter to a first maximum value if the first branch is tagged for conditional execution;

propagating the first tag to instructions to be executed;

decreasing a set counter first maximum value by one each time an instruction is executed; and

clearing the set counter first maximum value and terminating propagation of the first tag to the instructions when the set counter first maximum value is zero.

2. The method of claim 1 , further comprising:

determining whether a second branch instruction comprises a second tag indicative of conditional execution;

setting the counter to a second maximum value if the second branch instruction is tagged for conditional execution;

propagating the second tag to instructions to be executed;

decreasing a set counter second maximum value by one each time an instruction is executed; and

clearing the set counter second maximum value and terminating the propagation of the second tag to the instructions when the set counter second maximum value is zero.

3. The method of claim 1 , further comprising saving and restoring register file tags when the processor changes a privilege level.

4. The method of claim 1 , further comprising terminating propagation of the first tag to the instructions to be executed by a software-inserted instruction.

5. The method of claim 1 , wherein clearing the set counter first maximum value declassifies a sensitivity of data operated on by the first branch instruction.

6. The method of claim 1 , further comprising executing a loop peeling process to match a number of pushes of a counter stack and a number of pops of the counter stack when the first branch instruction comprises at least one nested branch instruction tagged for conditional execution.

7. A system for reducing an amount of false positives in a dynamic implicit information flow tracking system comprising:

a memory;

a counter; and

a processor in communication with the memory and the counter and configured to:

determine whether a first branch instruction comprises a first tag indicative of conditional execution;

set the counter to a first maximum value when the first branch instruction is tagged for conditional execution; and

control, based on the set counter first maximum value, propagation of the first tag to instructions to be executed.

8. The system of claim 7 , wherein the processor is further configured to:

decrease the set counter first maximum value by one each time an instruction is executed; and

clear the set counter first maximum value and terminate the propagation of the first tag to the instructions to be executed when the set counter first maximum value is zero.

9. The system of claim 8 , wherein the processor is further configured to:

determine whether a second branch instruction comprises a second tag indicative of conditional execution;

set the counter to a second maximum value when the second branch instruction is tagged for conditional execution;

propagate the second tag to instructions to be executed;

decrease the set counter second maximum value by one each time an instruction is executed, and

clear the set counter second maximum value and terminate the propagation of the second tag to the instructions to be executed when the set counter second maximum value is zero.

10. The system of claim 7 , wherein:

the counter is a 32-bit count down counter; and

the memory is a 32-bit register configured to store the first maximum value.

11. The system of claim 7 , wherein the termination of the propagation of the first tag to the instructions to be executed is executed by a software-inserted instruction.

12. The system of claim 7 , wherein clearance of the set counter first maximum value declassifies a sensitivity of data operated on by the first branch instruction.

13. The system of claim 7 , further comprising a counter stack wherein the processor is further configured to execute a loop peeling process to match a number of pushes of the counter stack and a number of pops of the counter stack when the first branch instruction comprises at least one nested branch instruction tagged for conditional execution.

14. A system for reducing an amount of false positives in a dynamic implicit information flow tracking system comprising:

a processor in communication with a memory and configured to

determine whether a first branch instruction comprises a first tag indicative of conditional execution;

set a counter to a first maximum value when the first branch instruction is tagged for conditional execution;

propagate the first tag to instructions to be executed;

decrease the set counter first maximum value by one each time an instruction is executed; and

clear the set counter first maximum value and terminate propagation of the first tag to the instructions to be executed when the set counter first maximum value is zero.

15. The system of claim 14 , wherein the processor is further configured to

determine whether a second branch instruction comprises a second tag indicative of conditional execution;

set the counter to a second maximum value when the second branch instruction is tagged for conditional execution;

propagate the second tag to instructions to be executed;

decrease the set counter second maximum value by one each time an instruction is executed; and

clear the set counter second maximum value and terminate the propagation of the second tag to the instructions to be executed when the set counter second maximum value is zero.

16. The system of claim 14 , wherein clearance of the set counter first maximum value declassifies a sensitivity of data operated on by the first branch instruction.

17. The system of claim 14 , wherein termination of the propagation of the first tag to the instructions to be executed is executed by a software-inserted instruction.

18. The system of claim 14 , wherein the processor is further configured to execute a loop peeling process to match a number of pushes of a counter stack and a number of pops of the counter stack when the first branch instruction comprises at least one nested branch instruction tagged for conditional execution.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 054738 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 31, 2020
From: TELEPUTERS, LLC
To: CORESECURE TECHNOLOGIES, LLC
Reel/Frame 054883/0340 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2020
From: TELEPUTERS, LLC
To: CORESECURE TECHNOLOGIES, INC.
Reel/Frame 054738/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2019
From: LEE, RUBY B.; JAMKHEDKAR, PRAMOD A.; CHEN, YU-YUAN
To: TELEPUTERS, LLC
Reel/Frame 048092/0990 →
Continuity (3)
Division 14464553 · Aug 20, 2014
Provisional Application 61867669 · Aug 20, 2013
Related Publication 20190171476A1 · Jun 6, 2019
Cited By (2)
US 12,518,056 US 12,530,481