IP Library Patent Application 14388746
Patent Application
App. No. 14/388,746

SECURING ACCESSIBLE SYSTEMS USING CROSS-LINKING

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 None
App. No.
14/388,746
Abstract

Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.

Claims (39)

1 . A method, implemented by one or more processors, comprising:

duplicating a first operation of a plurality of operations to be executed by a computer system during execution of a program to create a first operation copy, the plurality of operations comprising a prior operation to be executed before the first operation and a subsequent operation to be executed after the first operation; and

modifying the program to execute the first operation copy subsequent to the prior operation and prior to the subsequent operation, instead of the first operation;

wherein a result of executing the first operation copy is equivalent to a result of executing the first operation.

2 . The method of claim 1 , further comprising:

duplicating each of a plurality of operations to be executed by the computer system during execution of the program to create a corresponding operation copy; and

for operation of the plurality of operations, randomly selecting between leaving the program unmodified to execute the operation, and modifying the program to execute the operation copy instead of the operation.

3 . The method of claim 2 , further comprising:

encoding each of an operation and the corresponding operation copy using a different encoding.

4 . The method claim 1 , further comprising:

randomly selecting one or more pairs, each pair comprising of an operation and a corresponding operation copy; and

modifying the program to add the difference between a result of the operation and a result of the operation copy to the result obtained when the operation or the operation copy is executed.

5 . The method of claim 1 , further comprising:

multiplying the result of the operation by the inverse of the result of the operation copy to obtain a check value; and

multiplying the result of execution of either the first copy or the second copy by the check value.

6 . The method of claim 1 , wherein each of the plurality of operations is located in a code segment selected from the group consisting of: a base function;

and an operation in an existing computer-executable program.

7 . The method of claim 1 , further comprising:

modifying the program to apply multiple encodings to a value associated with the first operation to create a fracture.

8 . A method, implemented by one or more processors, comprising:

during execution of a program by the one or more a processors, the program comprising a plurality operations performed during execution of the program, each operation having a first copy and a second copy, upon reaching an execution point at which an operation of the plurality of operations should be performed, randomly executing either the first copy or the second copy of the operation;

wherein the result of executing the plurality of randomly selected operations is equivalent to a result of executing only the first copies of the plurality of operations.

9 . The method of claim 8 , wherein each first copy of each operation is encoded using a different encoding than the corresponding second copy of the operation.

10 . The method of claim 8 , further comprising:

adding the difference between a result of the first copy of a first operation of the plurality of operations and a result of the second copy of the first operation to the result obtained when either the first copy or the second copy is executed.

11 . The method of claim 8 , further comprising:

multiplying the result of execution of the first copy by the inverse of the result of the second copy to obtain a check value; and

multiplying the result of execution of either the first copy or the second copy by the check value.

12 . The method of claim 8 , further comprising applying multiple encodings to a value associated with the first operation to create a fracture.

13 . A system comprising:

one or more processors; and

a computer-readable storage medium storing instructions which cause the one or more processors to:

duplicate a first operation of a plurality of operations to be executed by a computer system during execution of a program to create a first operation copy, the plurality of operations comprising a prior operation to be executed before the first operation and a subsequent operation to be executed after the first operation; and

modify the program to execute the first operation copy subsequent to the prior operation and prior to the subsequent operation, instead of the first operation;

wherein a result of executing the first operation copy is equivalent to a result of executing the first operation.

14 . A system comprising:

one or more processors; and

a computer-readable storage medium storing a program comprising a plurality operations for performance by the one or more processors during execution of the program, each operation having a first copy and a second copy, the system being arranged so that, during execution of the program by the one or more processor, upon reaching an execution point at which an operation of the plurality of operations should be performed, the one or more processors randomly execute either the first copy or the second copy of the operation;

wherein the result of executing the plurality of randomly selected operations is equivalent to a result of executing only the first copies of the plurality of operations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: IRDETO CANADA CORPORATION
To: IRDETO B.V.
Reel/Frame 035186/0825 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2014
From: JOHNSON, HAROLD; GU, YUAN; WIENER, MICHAEL
To: IRDETO CANADA CORPORATION
Reel/Frame 034488/0718 →