Hi all,

I have an application that uses OpenSSL and AES 192-bit keys to encrypt data 
[files]. In it's original incarnation, it used PBKDF2 to derive the key. In its 
newer form, it uses a FIPS approved PRNG to generate a random key and the key 
is encrypted with a large RSA key for recovery. The key can also be stored into 
an HSM etc. We want to use the FIPS 140-2 compliant OpenSSL module for certain 
customers.

Anyway, when analyzing the code, I found that the current implementation is 
using CBC mode but with a fixed IV for every operation - not random or nonce 
based.

When interpreting FIPS 140-2, my understanding is that only approved security 
functions can be used in FIPS 140-2 compliant mode. Therefore, I assume that I 
need to refer to FIPS 197 for the AEA standard and SP800-38a for operation of 
block mode ciphers.

Appendix C of SP800-38a states that 'for CBC and CFB modes, the IVs must be 
unpredictable" and details two methods for this.

As we are not following SP800-38a, which states 'must', does that invalidate 
the FIPS 140-2 compliance of AES use?

SP800-38a is only a recommendations publication, but does state that 
conformance testing of the specified modes of operation [...] will be conducted 
within the framework of the CMVP.

Thanks for any advice or comment,

Regards,

Carl


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to