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

Reply via email to