Hot answers tagged

17

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 ...


16

The most common reason that you need to be FIPS compliant is your company is required to by law or for other compliance reasons. FIPS compliant just means that your encryption has been validated by an authoritative body and there are no inherent flaws. There are also no discovered flaws in a lot of other encryption libraries like bouncycastle. The ...


13

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 ...


13

For a software library, I would agree with @Lizbeth - FIPS 140-2 Level 1 is for software libraries like Bouncy Castle, Sun Java, and NSS (Java library this is FIPS certified). The difference is just that a FIPS compliant software library has been independently tested to meet a set of security requirements. Some industries have laws that require a certain ...


10

No, absolutely not. FIPS 140-2 level 1 is essentially a test that your cryptographic module: uses approved algorithms; implements those algorithms correctly; does not leak like a sieve. Software can be validated at FIPS 140 level 1, there is no need to involve special hardware. FIPS 140 level 1 does not indicate resistance against an attacker with ...


8

To add to the excellent previous answers by the previous posters, I'll go with an example. OpenSSL exists in both a FIPS certified version and the regular one that isn't (well a subsystem is FIPS validated). When a vulnerability is found in OpenSSL in an area that also affects the FIPS validated module, the fix is usually pushed very quickly in the ...


8

FIPS compliance (or the European equivalents such as EAL levels) is a requirement in some markets or to achieve some legal properties; for instance, in France, time stamps are considered to be legal proofs (burden of proof lying on the party who claims the time stamp to be non-binding) only if the time stamp authority went through a certification process, in ...


8

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 ...


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

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 ...


7

As the software developer, you need to ensure that not only the chosed encryption standard is FIPS compliant, but also the cryptographic module used. AES for example is FIPS 140-2 approved as a method, but the actual implementation of the Rijndael algorithm on Windows Server 2008 [not R2] is not approved (and is therefore not FIPS compliant ... you'd have to ...


7

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

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 ...


6

If you're asking to extend Bitlocker security, the TPM is certainly a good and cheap start. But it will not give you regulatory compliance, and it will also not give you complete security. Basically, what remains as attack on Bitlocker (apart from passphrase brute-forcing and physically tapping the TPM's LPC bus) are user interface spoofing attacks. E.g. I ...


6

(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 ...


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

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

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

In the Validated module list, you'll find a link to the applicable security policy. In the security policy, §2.3 describes the platforms on which the certification applies: it lists several versions of Windows, with no reference to any particular hardware. Then §6 describes usage requirements that must be met in order for the certificate to apply. One of the ...


5

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 ...


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 ...


4

Bitlocker is a FIPS 140-2 certified module with certificate number 1339. It is important for you to read the FIPS security policy to determine if the operating conditions conform to your environment. For example: The BitLocker™ components (Windows Server 2008 R2 versions: 6.1.7600.16385, 6.1.7600.16429, 6.1.7600.16757, 6.1.7600.20536, 6.1.7600.20873, 6....


4

I think it means that if you store the key in plaintext form inside the cryptographic module, then you have to make sure that no one else can access the place where the key is stored in the cryptographic module. For instance, it needs to be stored in private memory that only the cryptographic module can access, and that others are prevented from accessing. ...


4

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. ...


4

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 ...


4

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 ...


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 ...


3

The FIPS 140 standard defines a number of technical terms (§2.1). Beyond that, you can assume common English meanings for words that aren't defined in the security policy you're reading. The word operation is not defined in the standard, so it has its ordinary English meaning: “the act or process of operating” (Webster) (oh, and operate means “to produce, ...



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