IP Library Patent Application 13189609
Patent Application
App. No. 13/189,609

Software Run-Time Provenance

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.
13/189,609
Abstract

An executing first computing module verifies the run-time provenance of an unverified second computing module. A signed certificate identifying an author of the second computing module is received at the first computing module. An association between the signed certificate and the second computing module is verified. A first provenance certificate and associated private key signed by the first computing module and identifying a runtime provenance of the second computing module is then generated, and the first provenance certificate is published to the second computing module. A chain of signed certificates, including provenance certificates and a static identification certificates, can be published. Each provenance certificate in the chain verifies the integrity of a layer of execution, and the plurality of static identification certificates identifies a respective author of the computing module associated with each layer of software. The provenance of the second computing module can be recursively traced through the published chain of certificates.

Claims (52)

1 . A method for verifying a computer program comprising:

receiving at a first computing module at least one signed certificate from a second computing module, the signed certificate identifying an author of the second computing module;

verifying an association between the signed certificate and the second computing module; and

generating a first provenance certificate and associated private key signed by the first computing module, the first provenance certificate identifying a runtime provenance of the second computing module.

2 . The method of claim 1 , wherein the first computing module includes a certificate and associated secret private key describing hardware executing the first computing module.

3 . The method of claim 1 , further comprising publishing the first provenance certificate to the second computing module.

4 . The method of claim 1 , further comprising:

receiving at the second computing module at least one signed certificate from a third computing module, the signed certificate identifying an author of the third computing module;

verifying an association between the signed certificate and the third computing module; and

generating a second provenance certificate and associated private key signed by the second computing module based on the first provenance certificate, the second provenance certificate identifying a runtime provenance of the third computing module.

5 . The method of claim 1 , further comprising publishing a chain of signed certificates to the second computing module, the chain of signed certificates comprising at least one certificate issued by a trusted certifying agency and identifying an author of the first computing module.

6 . The method of claim 4 , wherein the chain of signed certificates comprises a plurality of provenance certificates and a plurality of static identification certificates, each provenance certificate associated with a layer of execution and each static identification certificate identifying a respective author of software associated with each layer of software execution.

7 . The method of claim 1 , wherein the at least one signed certificate comprises a chain of signed certificates including at least one certificate issued by a trusted certifying agency, and at least one certificate signed by another of the at least one signed certificate, and

verifying an association between the signed certificate and the second computing module comprises tracing the signatures of the at least one signed certificate to the at least one certificate issued by the trusted certifying agency.

8 . The method of claim 1 , wherein the first computing module comprises a hardware boot process.

9 . The method of claim 8 , further comprising:

verifying an initial software image by a computing device; and

providing a signed certificate to the hardware boot process to certify the computing device verified the initial software image and executed the initial software image immediately after reset.

10 . The method of claim 1 , wherein the first computing module comprises a cloud computing service.

11 . A system for verifying a computer program comprising:

means for receiving at a first computing module at least one signed certificate from a second computing module, the signed certificate identifying an author of the second computing module;

means for verifying an association between the signed certificate and-the second computing module-; and

means for generating a first provenance certificate and associated private key signed by the first computing module, the first provenance certificate identifying a runtime provenance of the second computing module.

12 . The system of claim 11 , wherein the first computing module includes a certificate and associated secret private key describing hardware executing the first computing module.

13 . The system of claim 11 , further comprising means for publishing the first provenance certificate to the second computing module.

14 . The system of claim 11 , further comprising:

means for receiving at the second computing module at least one signed certificate from a third computing module, the signed certificate identifying an author of the third computing module;

means for verifying an association between the signed certificate and the third computing module; and

means for generating a second provenance certificate and associated private key signed by the second computing module based on the first provenance certificate, the second provenance certificate identifying a runtime provenance of the third computing module.

15 . The system of claim 11 , further comprising means for publishing a chain of signed certificates to the second computing module, the chain of signed certificates comprising at least one certificate issued by a trusted certifying agency and identifying an author of first computing module.

16 . The system of claim 15 , wherein the chain of signed certificates comprises a plurality of provenance certificates and a plurality of static identification certificates, each provenance certificate associated with a layer of execution and each static identification certificate identifying a respective author of software associated with each layer of software execution.

17 . The system of claim 11 , wherein the at least one signed certificate comprises a chain of signed certificates including at least one certificate issued by a trusted certifying agency, and at least one certificate signed by another of the at least one signed certificate, and

wherein the means for verifying an association between the signed certificate and the second computing module comprises means for tracing the signatures of the at least one signed certificate to the at least one certificate issued by the trusted certifying agency.

18 . The system of claim 11 , wherein the first computing module comprises a hardware boot process.

19 . The system of claim 18 , further comprising:

means for verifying an initial software image by a computing device; and

means for providing a signed certificate to the hardware boot process to certify the computing device verified the initial software image and executed the initial software image immediately after reset.

20 . The system of claim 11 , wherein the first computing module comprises a cloud computing service.

21 . An apparatus comprising a computer readable medium encoding instructions that, in response to execution by a computing device, cause the computing device to perform operations comprising:

receiving at a first computing module at least one signed certificate from a second computing module, the signed certificate identifying an author of the second computing module;

verifying an association between the signed certificate and-the second computing module; and

generating a first provenance certificate and associated private key signed by the first computing module, the first provenance certificate identifying a runtime provenance of the second computing module.

22 . The apparatus of claim 21 , wherein the first computing module includes a certificate and associated secret private key describing hardware executing the first computing module.

23 . The apparatus of claim 21 , wherein the operations further comprise publishing the first provenance certificate to the second computing module.

24 . The apparatus of claim 21 , wherein the operations further comprise publishing a chain of signed certificates to the second computing module, the chain of signed certificates comprising at least one certificate issued by a trusted certifying agency and identifying an author of first computing module.

25 . The apparatus of claim 24 , wherein the chain of certificates comprises a plurality of provenance certificates and a plurality of static identification certificates, each provenance certificate associated with a layer of execution and the plurality of static identification certificates identifying a respective author of each software associated with each layer of software execution.

26 . The apparatus of claim 21 , wherein the at least one signed certificate comprises a chain of signed certificates including at least one certificate issued by a trusted certifying agency, and at least one certificate signed by another of the at least one signed certificate, and the operation of verifying an association between the signed certificate and the second computing module comprises tracing the signatures of the at least one signed certificate to the at least one certificate issued by the trusted certifying agency.

27 . The apparatus of claim 21 , wherein the first computing module comprises a hardware boot process.

28 . The method of claim 27 , further comprising:

verifying an initial software image by a computing device; and

providing a signed certificate to the hardware boot process to certify the computing device verified the initial software image and executed the initial software image immediately after reset.

29 . The method of claim 21 , wherein the first computing module comprises a cloud computing service.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2014
From: CREDIT SUISSE AG
To: ALCATEL LUCENT
Reel/Frame 033868/0555 →
SECURITY AGREEMENT Recorded Jan 30, 2013
From: ALCATEL LUCENT
To: CREDIT SUISSE AG
Reel/Frame 029821/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2012
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 028865/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2011
From: MCLELLAN, HUBERT R.; KOLESNIKOV, VLADIMIR
To: ALCATEL-LUCENT USA INC.
Reel/Frame 026639/0856 →