RichTaylor wrote:
I recently inherited the task of adding FIPS support to our product.  The
product has a fairly large codebase that I'm still coming up to speed on,
including our existing use of OpenSSL.
I've read the Security Policy and User Guides for 1.1.2 and have been
analyzing our code and delving into OpenSSL code a bit, but have a few
questions.  I'm currently working on getting our product built against the
FIPS Module 1.1.2.

Questions: 1. I'm trying to determine if the removal of DSA from 1.1.2 impacts us. We
use the following DSA methods, but it's not clear to me whether or not this
breaks the rules. (psuedocode)
DSA->meth = DSA_get_default_method()
DSA->meth->do_verify()
DSA_SIG_new()
DSA_SIG_free()

From reading the security policy I am concerned that this will be problem
and result in FIPS errors.  Is this correct?

Yes and no. The implementation of DSA did not change at all, so calls to the DSA*() functions will work as before. However, the rules did change since that code was first validated to require a 1024 bit Known Answer Test for DSA (versus the 512 currently coded) and so the CMVP has administratively prohibited use of DSA.

2. I'm also searching our code for other sections that potentially violate
the rules of FIPS.  I'm doing a code review and am curious if others found a
particular strategy helpful for locating potential FIPS problems.  For
example, given a large code base, what was your strategy for finding
potential FIPS violating code?  I don't want to rely solely on the internal
error checking calls such as FIPS_dsa_check().

Well, Steve Henson did a fairly thorough job of automatically disabling typical non-FIPS usages in FIPS mode, as you will discover if you link an application with the FIPS object module and enable FIPS mode. However, the DSA calls are *not* so disabled, so those references will need to be tracked down manually.

Yes, it would have been nice to either fix the DSA KAT (a very simple code change) or even to automatically disable DSA calls, but otherwise simple changes become gruesomely difficult where FIPS 140-2 validation is concerned -- just look at how long it took to get the little PRNG vulnerability patch approved.

-Steve M.

--
Steve Marquess
Open Source Software Institute
[EMAIL PROTECTED]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to