IP Library Granted Patent US 11,212,117
Granted Patent B2
US 11,212,117 · App. 16/208,407 · Granted Dec 28, 2021

Tamper-resistant software development lifecycle provenance

Inventor: Richard Harrington (Bellevue, WA)
Assignee: T-Mobile USA, Inc.
H04L9/3268G06F8/70G06F21/64H04L9/321H04L9/3236H04L9/3247H04L9/3297
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,212,117
App. No.
16/208,407
Filed
Dec 3, 2018
Granted
Dec 28, 2021
Kind
B2
Art Unit
2419
USPC
713/156
Abstract

A validation record chain that is generated for a particular version of a software package may be used to verify the legitimacy of the particular version. A hash that is generated by a software building platform for a particular version of a software package is received. A validation record chain for the particular version is then generated that includes a plurality of certificates such that a first certificate in the validation record chain contains the hash, and each of one or more subsequent certificates is signed with a corresponding hash signature of a corresponding certifier application and contains a prior hash signature of a previous certificate in the validation record chain. The validation record chain is stored for validation of the particular version of the software package via the plurality of certificates.

Claims (41)

1. One or more non-transitory computer-readable media storing computer-executable instructions of a server application that upon execution cause one or more processors to perform acts comprising:

receiving a hash that is generated by a software building platform for a particular version of a software package;

generating a validation record chain for the particular version that includes a plurality of certificates such that a first certificate in the validation record chain contains the hash, and each of one or more subsequent certificates is signed with a corresponding hash signature of a corresponding certifier application and contains a prior hash signature of a previous certificate in the validation record chain, wherein the plurality of certificates in the validation record chain includes a validation status certificate issued by a certifier application for the particular version of the software package and a time certificate generated by a trusted time stamper platform for the validation status certificate, the time certificate certifying that the validation status certificate is issued by the certifier application at a specific date and a specific time; and

storing the validation record chain for validation of the particular version of the software package via the plurality of certificates.

2. The one or more non-transitory computer-readable media of claim 1 , wherein the validation status certificate certifying that the particular version of the software package meets a particular requirement, the particular requirement including passing an automated software test, passing a manual software test, complying with a government regulation, or satisfying a software development requirement.

3. The one or more non-transitory computer-readable media of claim 1 , wherein the validation status certificate is signed with a hash signature that is generated using a unique cryptographic key of a corresponding certifier application.

4. The one or more non-transitory computer-readable media of claim 1 , wherein the hash is generated based on source code of the software package or binary code of the software package.

5. The one or more non-transitory computer-readable media of claim 1 , wherein the time certificate is signed with a hash signature that is generated using a unique cryptographic key of the trusted time stamper platform.

6. The one or more non-transitory computer-readable media of claim 1 , wherein the acts further comprise:

obtaining an additional hash for a copy of the particular version of the software package to be validated; and

in response to the additional hash matching a corresponding hash included in an initial signed validation status certificate of a validation record chain for the particular version of the software package, validating the copy based on content of the plurality of certificates in the validation record chain.

7. The one or more non-transitory computer-readable media of claim 6 , wherein the validating includes determining that the copy is valid when each of a plurality of validation status certificates in the validation record chain indicates that the particular version of the software package meets a corresponding requirement, or determining that the copy is invalid when at least one of the plurality of validation status certificates in the validation record chain indicates that the particular version of the software package fails to meet one or more requirements.

8. The one or more non-transitory computer-readable media of claim 7 , wherein the validating includes determining that the copy is valid when a plurality of time certificates indicate that the plurality of validation status certificates are issued in sequence at corresponding validation control points, and each of the plurality of validation status certificates in the validation record chain indicates that the particular version of the software package meets a corresponding requirement.

9. The one or more non-transitory computer-readable media of claim 6 , further comprising determining that the copy is invalid when the hash does not match the corresponding hash included in the initial signed validation status certificate.

10. The one or more non-transitory computer-readable media of claim 1 , wherein the particular version of the software package includes third-party add-on software code, and wherein a validation status certificate certifies that the third-party add-on software code is on a white list of approved software.

11. The one or more non-transitory computer-readable media of claim 1 , wherein the plurality of certificates in the validation record chain includes a final validation status certificate issued by a final certifier application, the final validation status certificate indicating that the particular version of the software package failed to meet a corresponding requirement.

12. A computer-implemented method, comprising:

receiving, at one or more computing devices, a hash that is generated by a software building platform for a particular version of a software package;

receiving, at the one or more computing devices, a signed validation status certificate from a certifier application that certifies the particular version of the software package after providing the particular version and the hash to the certifier application, the signed validation status certificate containing the hash and is signed with a hash signature of the certifier application;

storing, at the one or more computing devices, the signed validation status certificate as an initial certificate in a validation record chain for the particular version of the software package;

receiving, at one or more computing devices, an additional signed validation status certificate from an additional certifier application that certifies the particular version of the software package after providing the hash signature along with the particular version to the additional certifier application, the additional signed validation status certificate containing the hash signature and is signed with an additional hash signature of the additional certifier application; and

appending, at one or more computing devices, the additional signed validation status certificate to the signed validation status certificate in the validation record chain.

13. The computer-implemented method of claim 12 , wherein the signed validation status certificate certifies that the particular version of the software package passes an automated software test performed by the certifier application.

14. The computer-implemented method of claim 12 , wherein the additional signed validation status certificate is issued by the additional certifier application to certify that the particular version of the software package passes a manual test performed by a human operator.

15. The computer-implemented method of claim 12 , wherein the signed validation status certificate is signed with a hash signature that is generated using a unique cryptographic key of a corresponding certifier application.

16. The computer-implemented method of claim 12 , further comprising:

obtaining an additional hash for a copy of the particular version of the software package to be validated; and

in response to the additional hash matching a corresponding hash included in the initial certificate of the validation record chain for the particular version of the software package, validating the copy based on content of a plurality of certificates in the validation record chain.

17. The computer-implemented method of claim 16 , wherein the validating includes determining that the copy is valid when each of a plurality of validation status certificates in the validation record chain indicates that the particular version of the software package meets a corresponding requirement, or determining that the copy is invalid when at least one of the plurality of validation status certificates in the validation record chain indicates that the particular version of the software package fails to meet one or more requirements.

18. The computer-implemented method of claim 16 , further comprising determining that the copy is invalid when the hash does not match the corresponding hash included in the initial certificate.

19. A computing device, comprising:

one or more processors; and

memory including a plurality of computer-executable components that are executable by the one or more processors to perform a plurality of actions, the plurality of actions comprising:

receiving a hash that is generated by a software building platform for a particular version of a software package;

receiving a signed validation status certificate from a certifier application that certifies the particular version of the software package after providing the particular version and the hash to the certifier application, the signed validation status certificate containing the hash and is signed with a certifier hash signature of the certifier application;

storing the signed validation status certificate as an initial certificate in a validation record chain for the particular version of the software package;

receiving a signed time certificate certifying that the signed validation status certificate is generated at a specific time and date after providing the signed validation status certificate to a time stamper platform, the signed time certificate being signed by the time stamper platform with a time stamper hash signature; and

appending the signed time certificate to the signed validation status certificate in the validation record chain.

20. The computing device of claim 19 , wherein the actions further comprise:

receiving an additional signed validation status certificate from an additional certifier application that certifies the particular version of the software package after providing the time stamper hash signature along with the particular version to the additional certifier application, the additional signed validation status certificate containing the time stamper hash signature and is signed with an additional certifier hash signature of the additional certifier application; and

appending the additional signed validation status certificate to the signed time certificate in the validation record chain.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2018
From: HARRINGTON, RICHARD
To: T-MOBILE USA, INC.
Reel/Frame 047663/0333 →
Continuity (1)
Related Publication 20200177397A1 · Jun 4, 2020