summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorShane Lontis <shane.lontis@oracle.com>2020-09-05 13:08:27 +1000
committerMatt Caswell <matt@openssl.org>2020-09-18 14:20:50 +0100
commit991a6bb58182d4d2077a68eb813c897b7de73462 (patch)
tree738fc724534be090323181dc445cf19e442b827c /doc
parent7a810fac866c6c1d93015999633ee2a29f17b3d2 (diff)
Add option to fipsinstall to disable fips security checks at run time.
Changes merged from a patch by @richsalz. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/12745)
Diffstat (limited to 'doc')
-rw-r--r--doc/man1/openssl-fipsinstall.pod.in22
-rw-r--r--doc/man5/fips_config.pod36
2 files changed, 47 insertions, 11 deletions
diff --git a/doc/man1/openssl-fipsinstall.pod.in b/doc/man1/openssl-fipsinstall.pod.in
index 7fb6ad5636..b57717f7da 100644
--- a/doc/man1/openssl-fipsinstall.pod.in
+++ b/doc/man1/openssl-fipsinstall.pod.in
@@ -20,6 +20,7 @@ B<openssl fipsinstall>
[B<-noout>]
[B<-quiet>]
[B<-no_conditional_errors>]
+[B<-no_security_checks>]
[B<-corrupt_desc> I<selftest_description>]
[B<-corrupt_type> I<selftest_type>]
[B<-config> I<parent_config>]
@@ -55,6 +56,14 @@ Regardless of whether the error state is entered or not, the current operation
(e.g. key generation) will return an error. The user is responsible for retrying
the operation if the module error state is not entered.
+=item - A control to indicate whether run-time security checks are done.
+
+This indicates if run-time checks related to enforcement of security parameters
+such as minimum security strength of keys and approved curve names are used.
+The default value of '1' will perform the checks.
+If the value is '0' the checks are not performed and FIPS compliance must
+be done by procedures documented in the relevant Security Policy.
+
=back
This file is described in L<fips_config(5)>.
@@ -150,6 +159,9 @@ Disable logging of the self tests.
Configure the module to not enter an error state if a conditional self test
fails as described above.
+=item B<-no_security_checks>
+
+Configure the module to not perform run-time security checks as described above.
=item B<-quiet>
@@ -179,21 +191,15 @@ All other options are ignored if '-config' is used.
Calculate the mac of a FIPS module F<fips.so> and run a FIPS self test
for the module, and save the F<fips.cnf> configuration file:
- openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips \
- -section_name fipsinstall -mac_name HMAC -macopt digest:SHA256 \
- -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213
+ openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips
Verify that the configuration file F<fips.cnf> contains the correct info:
- openssl fipsinstall -module ./fips.so -in fips.cnf -provider_name fips \
- -section_name fips_install -mac_name HMAC -macopt digest:SHA256 \
- -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213 -verify
+ openssl fipsinstall -module ./fips.so -in fips.cnf -provider_name fips -verify
Corrupt any self tests which have the description C<SHA1>:
openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips \
- -section_name fipsinstall -mac_name HMAC -macopt digest:SHA256 \
- -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213 \
-corrupt_desc 'SHA1'
Validate that the fips module can be loaded from a base configuration file:
diff --git a/doc/man5/fips_config.pod b/doc/man5/fips_config.pod
index ebf6d685cc..728386544a 100644
--- a/doc/man5/fips_config.pod
+++ b/doc/man5/fips_config.pod
@@ -33,17 +33,43 @@ section, as described in L<config(5)/Provider Configuration Module>.
=over 4
-=item B<module-mac>
+=item B<activate>
-The calculated MAC of the FIPS provider file.
+If present, the module is activated. The value assigned to this name is not
+significant.
=item B<install-version>
A version number for the fips install process. Should be 1.
+=item B<conditional-errors>
+
+The FIPS module normally enters an internal error mode if any self test fails.
+Once this error mode is active, no services or cryptographic algorithms are
+accessible from this point on.
+Continuous tests are a subset of the self tests (e.g., a key pair test during key
+generation, or the CRNG output test).
+Setting this value to C<0> allows the error mode to not be triggered if any
+continuous test fails. The default value of C<1> will trigger the error mode.
+Regardless of the value, the operation (e.g., key generation) that called the
+continuous test will return an error code if its continuous test fails. The
+operation may then be retried if the error mode has not been triggered.
+
+=item B<security-checks>
+
+This indicates if run-time checks related to enforcement of security parameters
+such as minimum security strength of keys and approved curve names are used.
+A value of '1' will perform the checks, otherwise if the value is '0' the checks
+are not performed and FIPS compliance must be done by procedures documented in
+the relevant Security Policy.
+
+=item B<module-mac>
+
+The calculated MAC of the FIPS provider file.
+
=item B<install-status>
-An indicator that the self-tests were run.
+An indicator that the self-tests were successfully run.
This should only be written after the module has
successfully passed its self tests during installation.
If this field is not present, then the self tests will run when the module
@@ -60,7 +86,10 @@ It is written-to at the same time as B<install-status> is updated.
For example:
[fips_sect]
+ activate = 1
install-version = 1
+ conditional-errors = 1
+ security-checks = 1
module-mac = 41:D0:FA:C2:5D:41:75:CD:7D:C3:90:55:6F:A4:DC
install-mac = FE:10:13:5A:D3:B4:C7:82:1B:1E:17:4C:AC:84:0C
install-status = INSTALL_SELF_TEST_KATS_RUN
@@ -68,6 +97,7 @@ For example:
=head1 SEE ALSO
L<config(5)>
+L<openssl-fipsinstall(1)>
=head1 COPYRIGHT