Methodology for trustworthy software build

US11520902B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11520902-B2
Application numberUS-202016812090-A
CountryUS
Kind codeB2
Filing dateMar 6, 2020
Priority dateMay 14, 2019
Publication dateDec 6, 2022
Grant dateDec 6, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A certificate-based methodology is used to establish the trustworthy relationship between source codes and produced binary files for a given software build. The trustworthy relationship between the source code and binary files is generated by recording build information during building of the source code. The build information may include build environment information, framework information, source files identification, intermediately generated files information, final binary files information, file operations during building of the source code, and/or commands/operations during building of the source code. A certificate is generated using the build information for establishing a relationship between the source code and a binary file created from the source code, and the certificate is signed with a public cryptographic key. A software release package is provided to the recipient including at least the source code, final binary files generated from the source code, and the certificate.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method of establishing a trustworthy relationship between a source code and one or more binary files generated from the source code, the method comprising: recording build information during building of the source code; generating a certificate using the build information, the source code, and the one or more binary files, the certificate establishing a relationship between the source code and the one or more binary files created from the source code; and signing the certificate with a public cryptographic key, the signed certificate being usable to verify that the one or more binary files referenced in the signed certificate have been created from the source code referenced in the signed certificate. 2. The method as in claim 1 , further comprising providing a software release package, the software release package including at least the source code, the one or more binary files generated from the source code, and the signed certificate. 3. The method as in claim 1 , further comprising generating, via a fingerprint generation algorithm, a recorded build information fingerprint. 4. The method as in claim 3 , further comprising: receiving the recorded build information fingerprint; cross-checking the recorded build information fingerprint against a fingerprint generated by a tool used during building of the source code; and verifying that no modification has been made to a file between a time that the recorded build information fingerprint was generated and a time that the fingerprint was generated by the tool. 5. The method as in claim 1 , further comprising encrypting the signed certificate with the public cryptographic key or another public cryptographic key depending on given build requirements for a given build instance of the source code. 6. The method as in claim 1 , the public cryptographic key being provided by a recipient or a trusted third party, wherein the certificate is generated using a hashing algorithm not related to the public cryptographic key. 7. The method as in claim 1 , the build information comprising at least one of build environment information, framework information, source files identification, intermediately generated files information, final binary files information, file operations during building of the source code, or commands/operations during building of the source code. 8. A software build tool for establishing establishes a trustworthy relationship between a source code and one or more binary files generated from the source code, comprising: a memory storing instructions; and at least one processor in communication with the memory, the at least one processor configured, upon execution of the instructions, to perform the following steps: record build information during building of the source code and record a build information fingerprint; generate a certificate using the build information, the source code, and the one or more binary files, the certificate establish establishing a relationship between the source code and the one or more binary files created from the source code; and sign the certificate with a public cryptographic key, the signed certificate being usable to verify that the one or more binary files referenced in the signed certificate have been created from the source code referenced in the signed certificate. 9. The software build tool as in claim 8 , the at least one processor being further configured to instruct a compiler to compile the source code into the one or more binary files, organize the source code, identify commands for execution by the compiler, and invoke the compiler to execute the identified commands. 10. The software build tool as in claim 8 , the at least one processor being further configured to generate a software release package including at least the source code, the one or more binary files generated from the source code, and the signed certificate. 11. The software build tool as in claim 8 , the at least one processor being further configured to encrypt the signed certificate with the public cryptographic key or another public cryptographic key, depending on given build requirements for a given build instance of the source code. 12. The software build tool as in claim 8 , the at least one processor being further configured to use a fingerprint generation algorithm to generate a recorded build information fingerprint. 13. The software build tool as in claim 12 , the at least one processor being further configured to: cross-check the recorded build information fingerprint against a fingerprint generated by a tool used during building of the source code; and verify that no modification has been made to a file between a time that the recorded build information fingerprint was generated and a time that the fingerprint was generated by the tool. 14. The software build tool as in claim 8 , the public cryptographic key being provided by a recipient or a trusted third party, wherein the certificate is generated using a hashing algorithm not related to the public cryptographic key. 15. The software build tool as in claim 8 , the build information comprising at least one of build environment information, framework information, source files identification, intermediately generated files information, final binary files information, file operations during building of the source code, or commands/operations during building of the source code. 16. A software build tool for verifying trustworthiness of binary code received by a recipient, comprising: a memory storing instructions and storing a software release package including at least a source code, one or more binary files generated from the source code, and a signed certificate, the certificate including build information, the source code, and the one or more binary files, the signed certificate establishing a relationship between the source code and the one or more binary files created from the source code, the signed certificate being signed with a public cryptographic key and the build information being recorded during building of the source code; and at least one processor in communication with the memory, the at least one processor configured, upon execution of the instructions, to perform the following steps: verify the signed certificate included in the software release package is free of modification; locally generate fingerprints of the source code and the one or more binary files included in the software release package; compare the fingerprints of the source code and the one or more binary files included in the software release package against the locally generated fingerprints; and determine that the source code and the one or more binary files included in the software release package are trustworthy when the locally generated fingerprints match the software release package fingerprints. 17. The software build tool as in claim 16 , the at least one processor being further configured to decrypt the certificate when the certificate is encrypted. 18. The software build tool as in claim 16 , the at least one processor being further configured to implement a fingerprint generation algorithm known to the recipient and a provider of the software release package, the fingerprint generation algorithm generating the fingerprints of the source code and the one or more binary files. 19. The software build tool as in claim 16 , the public cryptographic key being provided by a recipient or a trusted third party, wherein the certificate is generated using a hashing al

Assignees

Inventors

Classifications

  • using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL] · CPC title

  • Test or assess software · CPC title

  • Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy · CPC title

  • Program or device authentication · CPC title

  • involving digital signatures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11520902B2 cover?
A certificate-based methodology is used to establish the trustworthy relationship between source codes and produced binary files for a given software build. The trustworthy relationship between the source code and binary files is generated by recording build information during building of the source code. The build information may include build environment information, framework information, so…
Who is the assignee on this patent?
Futurewei Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/33. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 06 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).