We've been working on the FIPS enablement of our product for use in multiple regulatory frameworks, and reviewing the details around the FIPS requirements, especially when dealing with the understanding of a few customers. Looking at CMMC, CJIS, and FedRAMP, CMMC appears to be the strictest at the first glance. It requires FIPS validated cryptography, as they all do, but allows for:
While FIPS-validated modules and algorithms are critical for protecting CUI, in limited cases Enduring Exceptions and temporary deficiencies may apply when implementing such cryptographic mechanisms.
This "limited cases" statement would appear to mean that it should have a very specific purpose, otherwise, the module should be fully validated, not an update stream, as FedRAMP encourages.
However, one can inherit controls from a FedRAMP Moderate Equivalent solution, like an enclave. Would this be a general "Enduring Exception"? The issue we're having is in clients distributed in Windows, MacOS, iOS, etc. Some of our customers would rather distribute a cryptography module, even if it has to be user affirmed because the major OS version doesn't appear in the' tested or vendor affirmed OE lists, than use native cryptography from Microsoft and/or Apple on the update stream from their fully validated modules as OS updates are made, keeping up with the patching requirements of the same standards.
Is there any specific guidance anywhere around this?
Assessors, or those that have faced this particular issue, what are you opinions or experiences?
CJIS and FedRAMP have explicit guidance, in the standard, to allow or even encourage the update stream as an option. CMMC seems to have some wiggle room, but nothing nearly as clearly stated, except the above stated fact that FedRAMP can be included in CMMC in a way.