The National Institute of Standards and Technology released a white paper that summarizes automatic methods to prevent code tampering. A wide range of software products (also known as code) — including firmware, operating systems, mobile applications, and application container images — must be distributed and updated in a secure and automatic way to prevent forgery and tampering, according to a NIST release.
Digitally signing code provides both data integrity to prove that the code was not modified, and source authentication to identify who signed the code. This paper describes features and architectural relationships of typical code signing solutions that are widely deployed today. It defines code signing use cases and identifies some security problems that can arise when applying code signing solutions to those use cases. Finally, it provides recommendations for avoiding those problems and resources for more information.
Code Signing Paper
David Cooper (NIST), Andrew Regenscheid (NIST), Murugiah Souppaya (NIST), Christopher Bean (NSA), Michael Boyle (NSA), Dorothy Cooley (NSA), Michael Jenkins (NSA)