PGNet wrote:
With the addition of fips object to the 'mix' of available build
options, is openssl configure with
./Configure ... enable-rc5 enable-mdc2 fips (iiuc, CHANGES' stmt that
'idea' *is* enabled by default still holds?)
sufficient to enable _all_ available algorithms, with the option to
disable per-algorithm still as <no-xxx>?
Here you are presumably using a "FIPS compatible" standard OpenSSL
distribution, i.e. 0.9.8j. The "fips" option means "find and reference
the FIPS object module that has already been built and installed". The
other options continue to mean what they always have. Note that if FIPS
mode is *not* enabled at runtime (FIPS_mode_Set() function not called)
then this "FIPS compatible" OpenSSL should continue to behave as it
always has, so it still make sense to reference algorithms that are
incompatible with FIPS 140-2.
Our philosophy has been to allow generation and use of one set of
OpenSSL dependent binaries for both normal use as before, and (when FPS
mode is enabled) to satisfy FIPS 140-2 validation requirements. We do
this by providing one relatively small specialized piece of code -- the
FIPS Object Module -- that provides functionality specific to FIPS
140-2, and modifying the standard OpenSSL to enable or disable use of
that module at runtime. When that module is not enabled OpenSSL behaves
as always (even though the module is present it is dormant), when FIPS
mode is enabled then OpenSSL disables non-allowed algorithms and
references the module for the allowed ones.
Note this means that a FIPS compatible OpenSSL subsumes two separate
implementations of each FIPS allowed algorithm -- the standard
implementation in OpenSSL and the FIPS validated one within the FIPS
object module. Which one is used depends on the FIPS mode of operation.
Reading SecuritPolicy-1.2.pdf @ "4.5 Cryptographic Algorithms", I
note,
"The Module supports the following FIPS approved or allowed
algorithms: ..."
but am unclear as to which (any? all? none?) algos are enabled by
default, per specification. Is that specifically stated somewhere?
The OpenSSL FIPS Object Module *itself* doesn't have the concept of
"enabling" algorithms -- it supports only and exactly the algorithms
mentioned in the Security Policy and validation. But, as noted above
the FIPS Object Module typically isn't used by itself, usually it is
used in conjunction with a "FIPS compatible" OpenSSL distribution which
does have the concept of enabling or disabling algorithms. When FIPS
mode is enabled at runtime that FIPS compatible distribution will
automatically disable the use of non-allowed algorithms.
-Steve M.
--
Steve Marquess
Open Source Software institute
marqu...@oss-institute.org
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majord...@openssl.org