Crypto-agility
Crypto-agility (cryptographic agility) is a practice paradigm in designing information security systems that encourages support of rapid adaptations of new cryptographic primitives and algorithms without making significant changes to the system's infrastructure. Crypto-agility acts as a safety measure or an incident response mechanism when a cryptographic primitive of a system is discovered to be vulnerable.[1] A security system is considered crypto agile if its cryptographic algorithms or parameters can be replaced with ease and is at least partly automated.[2][3]
Example
The X.509 public key certificate illustrates crypto-agility. A public key certificate has cryptographic parameters including key type, key length, and a hash algorithm. X.509 version v.3, with key type RSA, a 1024-bit key length, and the SHA-1 hash algorithm were found by NIST to have a key length that made it vulnerable to attacks, thus prompting the transition to SHA-2.[4]
Importance
With the rise of secure transport layer communication in the end of the 1990's, cryptographic primitives and algorithms have been increasingly more popular; as an example, by 2019 more than 80% of all website employed some form of security measures.[5] Furthermore, cryptographic techniques are widely incorporated to protect applications and business transactions.
However, as cryptographic algorithms are deployed, researching their security intensifies, and new attacks against cryptographic primitives (old and new alike) are discovered in short intervals. Crypto-agility tries to tackle the implied threat to information security by allowing swift deprecation of vulnerable primitives and replacement by new ones.
This threat is not merely theoretical; many algorithms that were once considered secure (DES, 512 bit RSA, RC4) are now known to be vulnerable, some even to amateur attackers. On the other hand, new algorithms (AES, Elliptic Curve Cryptography) are often both more secure and faster in comparison to old ones. Systems designed to meet crypto-agility criteria are expected to be less affected should current primitives are found vulnerable, and may enjoy better latency or battery usage by using new and improved primitives.
As an example, quantum computing, if feasible, is expected to be able to defeat existing public key cryptography algorithms. The overwhelming majority of the existing public key infrastructure rely on the computational hardness of problems such as large integer factorization and discrete logarithm problems (which includes elliptic-curve cryptography as a special case). Quantum computers running Shor's algorithm can solve these problems exponentially faster than the best known algorithms for conventional computers.[6] Post-quantum cryptography is the subfield of cryptography that aims to replace algorithms broken with new ones that are believed hard to break even for a quantum computer. The main families of post-quantum alternatives to factoring and discrete logarithm include lattice-based cryptography, multivariate cryptography, hash-based cryptography and code-based cryptography.
Awareness
System evolution and crypto-agility are not the same. System evolution progresses on the basis of emerging business and technical requirements. Crypto-agility is related instead to computing infrastructure and requires consideration by security experts, system designers and application developers.[7]
Best practices
Best practices about dealing with crypto-agility include:[8]
- All business applications involving any sort of crypto technology should incorporate the latest algorithms and techniques.
- Crypto-agility requirements must be disseminated to all hardware, software and service suppliers, who must comply on a timely basis; suppliers who cannot address these requirements must be replaced.
- Suppliers must provide timely updates and identify the crypto technology they employ.
- Quantum-resistant solutions should be taken in mind.[9]
- Symmetric-key algorithm should be flexible in their key lengths.
- Hash algorithms should support different lengths of outputs.
- Digital certificate and private key rotations must be automated. [10]
- Comply with standards and regulations.[11]
- The names of the algorithms used should be communicated and not assumed or defaulted.
References
- Henry, Jasmine. "What is Crypto-Agility?". Cryptomathic. Retrieved 26 November 2018.
- Patterson, Royal Holloway, University of London, Kenny. "Key Reuse: Theory and Practice (Workshop on Real-World Cryptography)" (PDF). Stanford University. Retrieved 26 November 2018.CS1 maint: multiple names: authors list (link)
- Sullivan, Bryan. "Cryptographic Agility" (PDF). Microsoft Corporation on Blackhat.com. Retrieved 26 November 2018.
- Grimes, Roger A. (2017-07-06). "All you need to know about the move from SHA1 to SHA2 encryption". CSO Online. Retrieved 2019-05-19.
- "How Let's Encrypt doubled the internet's percentage of secure websites in four years". University of Michigan News. 13 November 2019.
- Bl, Stephanie; a (2014-05-01). "Shor's Algorithm – Breaking RSA Encryption". AMS Grad Blog. Retrieved 2019-08-09.
- Henry, Jasmine. "3DES is Officially Being Retired". Cryptomathic. Retrieved 26 November 2018.
- Mehmood, Asim. "What is crypto-agility and how to achieve it?". Utimaco. Retrieved 26 November 2018.
- Chen, Lily; Jordan, Stephen; Liu, Yi-Kai; Moody, Dustin; Peralta, Rene; Perlner, Ray; Smith-Tone, Daniel. "Report on Post-Quantum Cryptography (NISTIR 8105)" (PDF). National Institute of Standards and Technology NIST. Retrieved 26 November 2018.
- "Digital certificate and private key rotations must be automated". www.appviewx.com. Retrieved 20 April 2020.
- Macaulay, Tyson. "Cryptographic Agility in Practice" (PDF). InfoSec Global. Retrieved 5 March 2019.