0
$\begingroup$

I'm looking to learn more about FIPS compliance. I noted that it seems FIPS 140-2, is a holistic article, that then cites sub articles like FIPS 197...

It's tricky to ascertain the full picture. Is there a document anyone knows of that will specify:

  • Approved symmetric ciphers
  • Approved elliptic curves
  • Approved signature algos
  • Approved hashing functions

If not is there any resource you know of that can simplify interpretation of the regulation?

$\endgroup$
4
  • $\begingroup$ There is 140-3 $\endgroup$
    – kelalaka
    Oct 14 '20 at 13:29
  • $\begingroup$ It seems that 140-3 is the successor to 140-2, I also see that there is a bunch of sub-articles like this one: nvlpubs.nist.gov/nistpubs/SpecialPublications/…, it seems that ChaCha and 25519 etc are not FIPS compliant... I really wish it was easier to digest $\endgroup$
    – Woodstock
    Oct 14 '20 at 13:47
  • 1
    $\begingroup$ No one is shipping FIPS 140-3 validated modules today. FIPS 140-3 validations just started last month and 140-2 validations will be good for up to five more years. One of the vendors we use isn't even looking to start 140-3 validation for another or year or so, once all the kinks have been worked out. $\endgroup$ Oct 14 '20 at 14:08
  • $\begingroup$ @Swashbuckler yep I agree, I'm looking for a easily digestible (i.e. a single document) that describes all compliant primitives $\endgroup$
    – Woodstock
    Oct 14 '20 at 14:15
3
$\begingroup$

Start with Annex A: Approved Security Functions. That will give you a good idea of the approved functions. A few caveats:

  1. Not all modules support all approved functions, e.g. OpenSSL doesn't support quite a few of them (OpenSSL's validation isn't active anymore anyway)
  2. FIPS 140 is a constantly evolving target, so today's validated module is tomorrow's no longer validated module. For instance, the reason OpenSSL's validation is no longer active is because FIPS 140 changed to disallow the generation of RSA keys with 1024 bits and signatures that used 1024 bit keys, though it still allows signature verification with 1024 bit keys.
  3. Just because an algorithm is FIPS 140 approved doesn't mean customers will accept it. Both 3DES and SHA1 are still FIPS approved algorithms, but customers will complain about the use of either (both have been deprecated by NIST).
$\endgroup$
3
  • $\begingroup$ thanks for that overview, sure seems FIPS is not well shepherded by NIST. a little messy really... I can't seem to find it but is FIPS not including cha-cha or ECDH like X25519? I mean you'd expect FIPS & NIST approved to be intersecting sets. $\endgroup$
    – Woodstock
    Oct 14 '20 at 14:43
  • 1
    $\begingroup$ @Woodstock FIPS does not currently support ChaCha20 or X25519 or lots of the newer crypto. Also, FIPS has the concept of "allowed functions" (really weird to me, but...) where certain crypto functions are allowed to be used (primarily to enabled TLS), but they are not approved. I believe ECDH is one of those. You can find more info about allowed functions in the Implementation Guide: csrc.nist.gov/csrc/media/projects/… $\endgroup$ Oct 15 '20 at 16:13
  • $\begingroup$ Thank you @Swashbuckler $\endgroup$
    – Woodstock
    Oct 15 '20 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.