> FIPS compliance is a great idea that makes the entire software supply chain safer
Yes, gotta implement that Dual_EC_DRBG compatibility.
FIPS compliance is not a great idea, the benefits are questionable and possibly nonexistent. It's also significantly worse advice than simple "implement decent modern crypto", you can do all kinds of really bizarre stuff and still be FIPS compliant.
>FIPS compliance is not a great idea, the benefits are questionable and possibly nonexistent.
I counter about the benefits of FIPS. If you don't do it, you don't get paid by the government for whatever contract you have. Many people find getting paid to be beneficial.
Now, it's not the vast majority of applications, but I'm sure there are a significant number of developers on HN that are working on applications that need to meet FedRamp requirements and posts like this point out potential pitfalls on what needs enabled.
Not much different when dealing with stuff like STIGs. A large number of them are highly questionable and may only apply to very specific applications, yet you see barely trained button pushers saying you need to follow them. If you're aware of them when writing your application it will save a bunch of implementation headaches when it ends up in the field.
>I counter about the benefits of FIPS. If you don't do it, you don't get paid by the government for whatever contract you have. Many people find getting paid to be beneficial.
I absolutely agree, but the OP does speak about making "the entire software supply chain safer" which is far from true.
Yeah, the first line was intended as a joke. I didn't communicate it very well though.
I think the problem with FIPS can be summed up very well as "it doesn't require you to implement good crypto", which makes it pointless and almost certainly harmful.
FIPS validates the crypto library, not your app design. It can still be a security upgrade for the crypto boundary, but you can build insecure stuff on top of it. The harm is when people treat “FIPS mode” as a magic security badge.
It's not in fact a security upgrade for your crypto library. It might have been in 1992 when people were still building products based on hand-rolled polyalphabetic substitution ciphers, but that era ended before 2000.
FIPS 140 doesn’t prove ‘no bugs’, but it’s not meaningless either. It enforces a baseline around approved algorithms, RNG, key handling, self-tests, and module integrity. You can still misuse crypto or have non-crypto bugs, but ‘utterly broken and still FIPS’ is mostly rhetoric.
Are you in a contractual relationship with the federal government that involves handling federal data?
Alternatively, do you deal with HIPAA PHI (FIPS is—unless an update since the last time I checked has changed this—part of the HITECH Act guidance specification of whether PHI is secured or unsecured, and so is a factor in whether, legally, a breach has occurred.)
Approval involves an assessment of security features, but it doesn’t change them, so the approval itself doesn't not have security value. Using it as part of a filter before choosing a solution may have efficiency benefits, though (assuming you are doing your own security assessment that has non-zero cost after the filter.)
I think we just fundamentally disagree about the quality of the “assessment” FIPS is doing.
Choosing to use FIPS is basically choosing to tether yourself to the finest decision-making that government agencies could muster based on the technology that existed decades ago.
You’re choosing to ride a horse to work because somebody whacked an “approved” brand on it. I’m sure it’s a very reliable horse, but unless somebody is paying me a lot of money to hold the reins, I’m going to opt to use the advances we’ve made as an industry since then
> I think we just fundamentally disagree about the quality of the “assessment” FIPS is doing.
I haven't said anything about the quality of the assessment done as part of FIPS approval. I think you are straining for things to disagree with.
> Choosing to use FIPS is basically choosing to tether yourself to the finest decision-making that government agencies could muster based on the technology that existed decades ago.
The current FIPS encryption standards and criteria were not decided decades ago, or based on technology adopted decades ago (FIPS 140-3 is 2019, SP 800-40 is 2023, etc.)
Beyond the basic idea of “Let’s have NIST establish standards in this area”, almost nothing is from “decades ago”.
Yes, gotta implement that Dual_EC_DRBG compatibility.
FIPS compliance is not a great idea, the benefits are questionable and possibly nonexistent. It's also significantly worse advice than simple "implement decent modern crypto", you can do all kinds of really bizarre stuff and still be FIPS compliant.