IP Library › Granted Patent US 11,138,314
Granted Patent B1
US 11,138,314 · App. 17/026,970 · Granted Oct 5, 2021

Software and firmware verification by distributed ledger and intrusion detection systems

Inventors: James Gettys (Carlisle, MA); D Ramesh K. Rao (Menlo Park, CA); John Ryan (Sausalito, CA)
Assignee: Muinin Corporation p.b.c.
G06F21/565G06F8/71H04L9/3236G06F8/60G06F2221/033H04L2209/38
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 11,138,314
App. No.
17/026,970
Granted
Oct 5, 2021
Kind
B1
Abstract

A software ecosystem includes a software supply chain in which each of the participants in the software supply chain produce software components using reproducible builds. By using deterministic compilation practices, each of the software components produced by a respective participant should be identical. The software ecosystem also includes a set of tamper proof distributed ledgers. Hashes of the software components are generated and securely recorded in the set of distributed ledgers. The software ecosystem also includes an intrusion detection system configured to compare hashes of the software components to determine when one or more of the software components has been generated in a corrupt manner. The secure software ecosystem includes a full-platform approach to integrity which incorporates designing against attacks, rather than patching after them, which creates a paradigm in which computing platforms can be trusted because they have been designed to operate in an untrustworthy environment.

Claims (27)

1. A method to publish a provenance of a system providing a service to enable higher assurance of the service's integrity to either an owner of the service or third parties, the method comprising:

independently producing software using reproducible build technology by a set of third parties to cause each instance of the software to have the identical binary image;

creating hash values of the binary images of the software;

storing the hash values in a set of distributed ledgers;

generating a hash value of software used by the system to provide the service;

storing the hash value of the software used by the system in the distributed ledgers; and

detecting, from a comparison of the hash value of the software used by the system to the hash values of the binary images of the software produced by a set of independent third parties, whether the software used by the system is the same as the other instances of the software.

2. The method of claim 1 , further comprising:

accessing the service;

wherein detecting whether the software used by the system is the same as the other instances of the software is implemented before accessing the service.

3. The method of claim 1 , wherein the system providing the service is an Internet web server.

4. The method of claim 1 , wherein the set of distributed ledgers are secure distributed ledgers.

5. The method of claim 1 , wherein the set of distributed ledgers are implemented using Merkle Tree data structures.

6. The method of claim 1 , wherein the set of distributed ledgers are implemented using blockchain data structures.

7. The method of claim 1 , wherein generating the hash value of software used by the system, storing the hash value of the software used by the system in the set of distributed ledgers, and detecting whether the software used by the system is the same as the other instances of the software, is done either on a periodic or continuous basis.

8. The method of claim 1 , wherein the reproducible build technology provides an independently-verifiable path from source code to binary code to enable independent verification of a software supply chain used to create the software.

9. The method of claim 8 , wherein the reproducible build technology includes a process of compiling the software using a deterministic compilation process.

10. The method of claim 1 , wherein independently producing software is further implemented using bootstrappable build technology to prevent use of a corrupt compiler in connection with compiling the software.

11. The method of claim 1 , wherein independently producing software is further implemented using diverse double compilation to prevent use of a corrupt compiler in connection with compiling the software.

12. The method of claim 1 , further comprising:

cryptographically signing the hash values; and

transmitting the cryptographically signed hash values to the distributed legers to be stored in the distributed ledgers.

13. The method of claim 1 , wherein detecting whether the software used by the system is the same as the other instances of the software is implemented by an intrusion detection system configured to monitor the system and multiple other similarly configured systems.

14. The method of claim 13 , wherein the intrusion detection system includes a trained machine learning algorithm configured to detect patterns in software failures associated with mismatched hash values.

15. The method of claim 1 , wherein the software is implemented as embedded firmware.

16. The method of claim 1 , wherein the software is a binary image of source code.

17. The method of claim 1 , wherein the software includes all software components of a container of an embedded system, or all software components of a general purpose computing system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2020
From: GETTYS, JAMES; RAO, D. RAMESH K.; RYAN, JOHN
To: MUININ CORPORATION P.B.C
Reel/Frame 053832/0734 →
Continuity (1)
Provisional Application 62905362 · Sep 24, 2019
Cited By (9)
US 12,211,385 US 12,265,628 US 12,326,936 US 12,475,224 US 12,488,106 US 12,499,231 US 12,524,541 US 12,572,656 US 12,585,771