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]