Mark Schank wrote: > Hi > > I am in the process of upgrading an application which was using the > FIPS 1.1.2 module to using the FIPS 1.2 module and I am looking for a > sanity check. My system is an x86 (AMD Geode LX 800) system running > Linux 2.6.26. > > I noticed the time it takes to execute FIPS_mode_set(1) went from > under 1 second with the FIPS 1.1.2 module to almost 20 seconds with > the FIPS 1.2 module. Were there significant changes to the > self-tests that would account for this increase in run-time?
Yes, we had to increase the key sizes for some of the KATs (Known Answer Tests) per evolving CMVP requirements. > When I built the FIPS 1.2 module, I did have to specify the "no-asm" > option as it seems the asm code is not compatible with the Geode CPU. > I don't recall doing this for the FIPS 1.1.2 module. Did it use any > x86 asm code by default or is the asm code new to the FIPS1.2 module? No, and yes. > Is there any chance I built something wrong to end up with this > significant slowdown. I built the FIPS module per the security > policy and User's guide. When I built the OpenSSL library, I > specified: ./config fips --withfipslibdir=/usr/local/ssl/fips-1.0/lib > --prefix=/usr --openssldir=/etc/ssl Well, you don't have any options on building the OpenSSL FIPS Object Module, and how you build the FIPS compatible OpenSSL won't affect the performance of the former. > Any insight would be appreciated. The slowdown particularly hurts my > application because it is called multiple times from a script with > each call incurring the 20 second FIPS_mode_set(1) delay. Note that FIPS_mode_set() is really intended to be called once only, as at host system initialization (boot time). Any application that has to invoke it multiple times is in trouble, for any FIPS validated software. The FIPS_mode_set() call is there so you have the option of never enabling FIPS mode, or enabling it once (so that the same binaries can be shipped to all customers). The performance hit is a known problem and one of the reasons FIPS mode often isn't enabled in the real world. Sad to say everyone wants the FIPS validation so they can sell/procure software, but when actually deployed the FIPS mode often isn't enabled. I've been told by several prominent vendors of FIPS validated software that few of their customers enable FIPS mode in real-world settings. Like so many validations/certifications/accreditations the FIPS validation is a paper chase, not a practical technical specification. At any rate there isn't anything that can be done for the current v1.2 module. If/when we tackle another validation we'll take a hard look at minimizing the performance hit to the maximum extent consistent with validation. -Steve M. -- Steve Marquess Veridical Systems, Inc. marqu...@veridicalsystems.com ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org