IP Library Granted Patent US 7,392,523
Granted Patent B1
US 7,392,523 · App. 10/859,466 · Granted Jun 24, 2008

Systems and methods for distributing objects

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 7,392,523
App. No.
10/859,466
Granted
Jun 24, 2008
Kind
B1
Abstract

Systems and methods consistent with the present invention ensure software integrity by associating each software component to be included in a federation with a distinct unique identifier. A subset of the identifiers corresponding to any two software components should match for the federation to be accepted.

Claims (71)

1. A method comprising:

creating a federation of objects by associating a unique identifier with each object to be included in the federation of objects;

selecting a subset of the unique identifier of a first object for comparison with the unique identifier of a second object;

comparing the selected subset of the unique identifier associated with the first object with the unique identifier of the second object;

enabling functionality associated with the federation, if the selected subset of the unique identifier associated with the first object matches the unique identifier of the second object; and

rejecting the federation of objects otherwise.

2. A method comprising:

creating a federation of software components by,

associating a unique identifier with each software component to be included in the federation of software components, and

digitally signing each software component to be included in the federation of software components; and

validating each software component in the federation of software components, wherein validating comprises

selecting a subset of the unique identifier of a first software component for comparison with the unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with a first software component with the unique identifier of the second software component;

continuing software execution, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

rejecting the federation of software components otherwise.

3. The method of claim 2 , wherein, the second software component is a core component of the federation of software components.

4. The method of claim 2 , wherein, the second software component is any other software component of the federation of software components.

5. The method of claim 2 , wherein associating a unique identifier with each software component further includes encrypting the unique identifier.

6. The method of claim 2 , wherein selecting a subset of the unique identifiers of the first software component for comparison with the unique identifier of a second component further includes decrypting the unique identifiers of the first software component and the second software component.

7. The method of claim 2 , where the associating a unique identifier with each software component is done at the time the federation of software components is built.

8. The method of claim 2 where the digital signing of each software component is done at the time the federation of software components is built.

9. The method of claim 2 , where the validating of each software component occurs when a software package, which includes the federation of software components, is run.

10. The method of claim 2 , where the validating of each software component occurs each time a software package, which includes the federation of software components, is first started.

11. The method of claim 2 , where the validating of each software component occurs each time a component interacts with another component.

12. The method of claim 2 , wherein the validating of each software component occurs each time a license to a software package, which includes the federation of software components, is verified.

13. The method of claim 2 , wherein the validating of each software component occurs at specified intervals during the running of a software package that includes the federation of software components.

14. A method of ensuring the integrity of a federation of software components comprising:

verifying a digital signature associated with a first software component;

validating a unique identifier associated with the first software component, if the digital signature is authentic, wherein validating comprises,

selecting a subset of the unique identifier of the first software component for comparison with a unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component; and

accepting the federation if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

rejecting the federation otherwise.

15. The method of claim 14 , wherein verifying the digital signature associated with the first software component further comprises:

retrieving a digital signature associated with the first software component; and

determining if the digital signature associated with the first software component is authentic.

16. The method of claim 14 , wherein rejecting the federation further comprises aborting execution of the software federation.

17. The method of claim 14 , wherein accepting the federation further comprises continuing execution of the software federation.

18. The method of claim 14 , wherein the second component is a core component of the software federation.

19. The method of claim 14 , wherein the method is performed by an authentication layer.

20. A computer-readable medium that stores instructions, which when executed by a computer perform steps in a method for ensuring the integrity of software, the steps comprising:

validating predefined unique identifiers associated with software components, wherein validating comprises,

selecting a subset of the unique identifier of a first software component for comparison with the unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component; and

continuing with execution of the software, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

performing an error routine otherwise.

21. A method of distributing at least one license key for a software federation associated with a digital signature the method comprising:

retrieving a unique identifier associated with a first software component, if the digital signature is authentic;

selecting a subset of the unique identifier of the first software component for comparison with a unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component; and

distributing the license key, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

aborting the distribution of the license key otherwise.

22. The method of claim 21 wherein the distributing of license keys occurs over a network.

23. A computer readable memory containing instructions for controlling a computer system to perform steps in a method for ensuring software integrity, the steps comprising:

retrieving a unique identifier associated with a first software component;

selecting a subset of the identifier of the first software component for comparison with a unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component;

allowing software execution to proceed, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

performing an error routine otherwise.

24. A computer processor executing instructions that perform steps in a method for ensuring software integrity, the steps comprising:

retrieving a unique identifier associated with a first software component;

selecting a subset of the identifier of the first software component for comparison with a unique identifier of a second software component;

comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component;

allowing software execution to proceed, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

performing an error routine otherwise.

25. A computing system comprising:

means for retrieving a unique identifier associated with a first software component;

means for selecting a subset of the identifier of the first software component for comparison with a unique identifier of a second software component;

means for comparing the selected subset of the unique identifier associated with the first software component with the unique identifier of the second software component;

means for continuing software execution, if the selected subset of the unique identifier associated with the first software component matches the unique identifier of the second software component; and

means for aborting software execution otherwise.

Assignments (6)
CHANGE OF NAME Recorded May 18, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 063697/0493 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Mar 5, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 052109/0186 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2004
From: STAHL, GEORGE HERBERT; LOCKHART, MALCOLM
To: SYMANTEC CORPORATION
Reel/Frame 015827/0796 →