Adjusting to the new world of NIST cryptographic module standards
We have had a number of queries recently at Cryptosense from people trying to figure out what FIPS 140-3 is, and how they can supply a FIPS 140-3 compliant solution to their customers.
To make sense of this question we first need to understand a little background. Maintained by NIST, the Federal Information Processing Standards (FIPS) gives guidance to external suppliers regarding the standards their products have to reach for use by the US Government. Over time, they have become de facto standards for other sectors and other countries.
FIPS 140 describes the standard for cryptographic module. It covers everything from a pure software cryptographic library to a tamper-resistant hardware security module (HSM). It is currently in its second version, FIPS 140-2. The standard describes different levels of validation requiring varying levels of testing, which is why we hear talk of a module being “FIPS 140-2 level 3” certified and so on.
Recently NIST has been looking to update FIPS 140-2 to bring it in to line with international guidelines, specifically ISO 19790(2012). However, NIST didn’t want to adopt exactly the ISO standard for various reasons, hence FIPS 140-3 is essentially ISO 19790 plus a certain number of annexes published by NIST that override the ISO content.
You now have six months to comply
Now we’ve understood what FIPS is and what it’s used for, we can get back to the original question: how can a vendor supply a FIPS 140-3 compliant solution?
If the product is a cryptographic module, it must be approved under the FIPS 140-3 process. There are numerous differences between FIPS 140-2 and FIPS 140-3 that will need to be taken into account.
At the moment, FIPS 140-2 is still the current version, and FIPS 140-3 testing will not start until September 2020. However, testing labs are already advertising FIPS 140-3 validation services, since preparing a validation takes some time. The two versions will run in parallel for “at least a year”.
If the product is an application, the meaning of FIPS 140-3 is less clear, but in practice what this means is that all the application cryptography takes place using FIPS 140-3 approved mechanisms and is carried out by a FIPS 140-3 approved library.
What are the FIPS approved algorithms? Fortunately this part of the standard is free to access: you just need to consult the NIST replacement for Appendix C of the ISO standard.
For an easy way to find out what cryptographic modules an application is using, and whether FIPS approved algorithms are indeed being used, try Cryptosense Analyzer.