Keeping pace with evolving code signing baseline requirements
Maintaining code integrity has always been top of mind for today’s development-driven organizations. However, the recent SolarWinds breach was a stark reminder of the importance of stopping malicious tampering and maximizing trust. The attack was especially audacious because it took advantage of what is normally an industry best practice: regular software updates.
Although software signing processes and not a code signing certificate caused the SolarWinds incident, its impact has helped motivate the industry to strengthen code signing certificates with larger keys, to create signatures that will stay secure well into the future.
Changes have been in the works for quite some time because code signing certificates and signatures have a longer lifespan and need to be trusted longer than most other types of certificates. The shorter the key length, the less resistant it will be to cryptographic attacks — and the weaker the trust in signed code.
In addition to longer key sizes to mitigate brute force attacks, companies also need to do more to protect their code-signing keys from falling into the wrong hands. The consequences of a stolen certificate go beyond cybersecurity. Since the company’s name is on its certificate, if it is stolen, that name will also appear on the associated malware, which can do tremendous damage to its brand and reputation.
A forward-looking approach to code signing
Regulatory bodies have understood that practical security improvements to code signing have been needed for a long time. In May 2020, the National Institute of Standards and Technology (NIST) issued updated recommendations for key management in NIST SP 800-57. The guidance recommended that 2048-bit RSA keys be retired by 2030. Although 2030 might seem far in the future, many of the signatures and certificates that are being created today will still be in use then.
Other key standards bodies have made similar moves. The latest CA/Browser Forum requirements specify a 3072-bit RSA minimum key requirement for publicly trusted code signing and time-stamping certificates. Existing certificates and signatures are unaffected, but new certificates, renewals and replacements will need to comply with the new requirements. These updates go into effect on June 1, 2021.
Microsoft has followed the lead of regulatory bodies and updated their policies as well. The company now requires all new root keys for code signing and time stamping to use 4096-bit RSA. Microsoft has also announced that it will no longer trust 2048-bit RSA root certificates after 2030.
An opportunity to redouble best practices
These changes represent a positive move for security — and they are also a good opportunity for organizations to re-evaluate their own security practices. Even the most stringent security technologies will be of little use if they aren’t backed by management procedures that have been correctly implemented. Enterprises should carefully review their code signing practices to make sure they know where their certificates are, what management procedures are associated with them, and how they are protecting their private keys.
Controlling the use of signing keys is an essential foundation for secure code signing. For example, a strong, frequent key rotation strategy, rather than using the same key to sign everything, is critical. Without one, if a key becomes compromised, everything it has signed is at risk. Successful code signing also requires transparency and control. Being able to specify and exercise full control over signing rights gives organizations peace of mind in knowing that their signing keys are not vulnerable. To ensure accountability, enterprises also need the ability to generate reports to show when code has been signed and by whom.
A service-based approach to managing code signing can provide significant advantages to key management. With a modern managed signing service, organizations apply automated security across CI/CD pipelines with portable, flexible deployment models. They can also apply best practices like unique key and certificate per signing for private signing, on-demand keys and rotating keys. A modern signing management tool also lets enterprises smoothly and seamlessly integrate code into their product development processes, while delegating signing activities and management in a controlled, auditable way. An ideal solution will enable fast deployment of high volumes of certificates, while also providing the flexibility to deploy on-premises, in-country or in the cloud.
Key storage is another critical component to code signing. Organizations need to know where all their keys reside and be able to securely store them. A modern management tool will give companies the option of storing their keys securely offline in virtual hardware security modules (HSMs), and be able to access them on-demand. It will also help engineering teams deploy security-conscious signing systems with unique keys so that key sharing is discouraged.
If an organization makes cryptographic changes, a centralized management system will enable them to know not only where all their keys reside and where all the certificates are located, but will also give them the ability to easily swap out and update key sizes or algorithms in an automated way, at scale. Using a centralized platform also allows security teams to enforce organizational policy controls to limit certificates with non-compliant certificate attributes, such as improper key sizes or certificate validity, from being issued.
Key protection is constantly evolving
One thing is certain: more changes are on the horizon for developers that will require companies to boost their cryptographic agility to keep pace with the coming unpredictability. To do it, they must prioritize automation and rapid response as part of their code signing certificate processes.
For example, the developers of the widely-adopted git software version control system are in the process of migrating from the SHA-1 hashing algorithm to the more robust SHA-265 algorithm. This staged migration is expected to address vulnerabilities, but will also require organizations to move quickly to implement the new, stronger hash function.
The post-quantum era of computing is also coming up soon, and most IT professionals believe that it will present a major security threat in the near future. Although we are not yet at the point where quantum technology is putting algorithms like RSA or ECC at risk, industry bodies such as NIST are actively taking steps to choose quantum-safe algorithms.
As the use of crypto continues to grow across distributed systems as a required practice, attackers do not stop innovating — and neither can security teams. For organizations struggling with the time or resources to keep up and ensure compliance, a centralized, managed PKI platform can make it easy to keep up with the very latest best practices, to protect their solutions, their customers and their brand.