Hot answers tagged

27

For the relationships between OpenSSL and FIPS 140-2, read this documentation. The OpenSSL FIPS Object Module is a specific subset of OpenSSL, API-compatible with OpenSSL, and provided as source code. That module has gone through the long and painful administrative process of obtaining a FIPS 140-2 validation. It has achieved the "overall level: 1" (see the ...


19

FIPS 140-2 does not cover the topic of password hashing. Thus, there is no password hashing function which would be "FIPS-approved" in that sense. Using SHA-512 "as is", with or without some salt and regardless of how you inject the said salt in the engine, would not grant you the NIST approval. NIST simply does not approve (or disapprove of) password ...


10

By FIPS, I assume you mean FIPS 140. FIPS 140 defines four levels of security. Level 1 is essentially about implementing cryptography and authentication correctly, as in passing some basic functional tests. You must use approved algorithms for cryptography and for random number generation. You can certify a software product at level 1. Levels 2 and above ...


9

(Disclaimer: I am not a lawyer; don't try this at home.) The U.S. government does have very specific guidelines for government agencies wanting to consume cloud services. Those cloud services must be FedRAMP certified. This is an arduous, lengthy, expensive process... and it's specifically geared toward cloud services, not managed or shared hosting. Per ...


8

Cloud hosting is simply shared hosting with virtual machines. There's nothing particularly unique or magical about it; you can simply substitute the concept of "shared hosting" for "cloud hosting" and work out the details there. Typically doing your own examination of a hosting provider's setup isn't going to be an option, so you'll have to rely on their ...


8

The -1 or -2 part is a version number. A module that is FIPS-140-2-compliant is not more secure than a module that is FIPS-140-1-compliant, it is only more up-to-date in the certification process. The requirements for FIPS 140-1 level N and FIPS 140-2 level N are broadly similar. In other words, you get the same amount of security from FIPS 140-2 level 1 as ...


8

FIPS140-2 deals only with the proper way by which a cryptographic module must operate and be protected from attacks. One can be just compliant with his modules, or one can be compliant AND validated with her modules. There are 4 different levels of compliance, 1 to 4, with a higher level more protective than a lower level. Getting validated is an expensive ...


7

TLS is actually one of the rare instances where MD5 is, in fact, specifically stated as being allowed to be used for key agreement. Citation is in the FIPS 140-2 IG, D.8 (pg. 157, point (e)(1). SSLv3 use of MD5 is disallowed due to a difference in how MD5 is used. See footnote 2 at the bottom of page 160 of the same IG: The problem with SSL 3.0 is the ...


7

Statistical tests like the one you use cannot detect whether /dev/urandom is good or bad on a specific machine. Specifically, /dev/urandom runs a cryptographically secure PRNG. From a given initial internal state (the "seed"), it produces an arbitrarily long stream of seemingly random bytes. The PRNG being cryptographically secure means that for an attacker ...


6

Does application level code get to take advantage of the certified implementation on these devices? Yes. As a component of a secure system you may make a claim like 'we are using OpenSSL FIPS Object Module 1.2 (Validation #1051 awarded 2008-11-17.) for encryption'. that would mean they've replaced the default android JCE provider, correct? Correct. Sun/...


6

The following is a possible series of steps you could take. I'm considering that you have a secondary, online HSM for the period during which the affected HSM is removed from service for repair. Destroy all key material on the HSM Notify vendor of device problem and serial number Return device in tamper evident packaging to vendor address using secure ...


6

"FIPS compliance" is about more than the algorithm. It is about implementations. Being awarded the "compliant" badge is a long, complex and very expensive process; its conceptual meaning is that there are some strong reasons to believe that the implementation is correct and secure and fulfils a number of security properties. Since we don't really know how to ...


5

"NSA Suite B" is a definition of algorithms that shall be implemented to be able to... claim "Suite B" support. It is more guidelines than anything else, aimed at improving interoperability. Having support for Suite B algorithms can be a requirement to sell products to the US Federal Government; however, in general, there is no rule which makes ...


5

OK, these are a lot of questions for one answer, and I think I can probably only hit two of them.. but here it goes: FIPS 140-2 Level 2 The FIPS 140-2 requirements are centered around how keys are managed, protected, manipulated and stored. For reference, I'm reading the Security Requirements from the NIST site. What I'm seeing is that in the transition ...


5

If you want the project to be FIPS compliant, you'll need to have the whole solution tested for FIPS - hardware and/or software. Using FIPS compliant software packages will simplify the process though you need to ensure you use that software in a manner that supports its FIPS compliant status. For example, if you're using AES your encryption mechanism is ...


5

Roles tend to be attached to identities, as you don't authenticate a role, but you authenticate an identity. You can authorize an identity, and you can authorize a role. I believe there might be some confusion here. A role is an extension of the identity, and it usually works such that (for example) the user 'Admin' has the role 'Administrator'. A user with ...


5

I haven't tested OpenSSL but I'm pretty sure it implements AES-CBC correctly. Your program, however, obviously uses different data, so it isn't surprising that you get different results. The test vectors are given out in hexadecimal. For example KEY = 0000000000000000000000000000000000000000000000000000000000000000 IV = 00000000000000000000000000000000 ...


5

FIPS 140-2 does not list password hashing algorithms. If you actually need to use FIPS 140-2 validated algorithm, you need to find solutions that were validated by NIST for your required compliance level. You probably need to verify this with a FIPS auditor, but PBKDF2 has implementations like PBKDF2-HMAC-SHA256 or 512 for instance. That could be regarded ...


5

[Disclaimer: I'm a developer on a FIPS 140-2 Level 2 software module, and I'm a little disgruntled about the whole process] The main difference I've seen is that things that are FIPS 140-2 certified are at least 6 months out of date when you get them, and cannot be patched in the case of a vulnerability. Getting something FIPS / CC certified costs $$$, ...


5

When based on a standard, especially those as stringent as FIPS 140-2, you have to go through the following processes (which are time consuming and expensive): Design Testing Certification If you take a look at the NIST Implementation Guide for FIPS PUB 140-2, along with the other documents, you can search for the Level 4 implementation which detail that ...


4

"Role based authentication" isn't an industry term. Perhaps you confused it with Role-based access control, which is a method of controlling access to functions based on a users "role", rather than his identity. For example, a blog system might define an "Author" role and an "Editor" role. An "Author" might have permission to create new stories, but not to ...


4

FIPS 140-2 does not explicitly forbid key export; what it says is that the module shall prevent unauthorized disclosure; it furthermore states that when a private key is exported from a module, it shall be done with encryption. The important word is "unauthorized": simply encrypting with an AES key is not enough; that key must also be such that it is known ...


4

This is where you must read carefully. Compliant means that the vendor believes they have followed FIPS encryption requirements and their product meets the specificaiton. Certified means that the product has actually been tested by NIST and issued a certificate number. Certification is an expensive and time-consuming process, and must be re-done after ...


4

There are two different notions of compliance here: Using a compliant algorithm — the official term is “Approved”. Hash algorithms for HMAC are Approved if they are listed in FIPS 180-4 (or earlier versions). SHA-1, SHA-256 and SHA-512 are all FIPS Approved secure hash algorithms and the HMAC function based on them are thus FIPS Approved HMAC functions. ...


4

as all the libraries are providing almost similar functionalities ? It does not matter if they have similar functionalities because they have different implementations. The certification not only includes if a specific algorithm is implemented at all but also if it is implemented correctly.


4

Encrypting in-memory data stores/caches is generally not done because all the working data is stored in RAM and so will the encryption key at some point and if an attacker has access to the memory of the system, he will have access to the means to decrypt the data or have means to access the data after decryption so it is not providing any additional ...


4

This is a bit of a guess, but on page 6 of the Derived Test Requirements for FIPS PUB 140-2, we have (emphasis mine): Required Vendor Information VE01.12.01: The vendor shall provide a validation certificate for all Approved cryptographic algorithms. VE01.12.02: The vendor shall provide a list of all non-Approved security functions. VE01.12.03: The vendor ...


4

Blowfish is an algorithm. An algorithm isn't validated against anything. What is validated is an implementation of an algorithm. Blowfish isn't defined by any text that calls itself a standard, as far as I know. The original paper is the closest thing to an official specification. The author has also published test vectors. You should not use Blowfish ...


4

There is no open source equivalent and there doesn't need to be one since FIPS 140-2 is not restricted to closed source software. For example there is a FIPS 140-2 certification for selected versions and configurations of OpenSSL - see https://www.openssl.org/docs/fips.html. The certification i imagine costs a fortune that's why i am asking if there is ...


Only top voted, non community-wiki answers of a minimum length are eligible