EP11-00-004900 - The EDB Postgres Advanced Server must use NIST FIPS 140-2 or 140-3 validated cryptographic modules for all cryptographic operations including generation of cryptographic hashes and data protection - version

Warning! Audit Deprecated

This audit has been deprecated and will be removed in a future update.

View Next Audit Version

Information

Use of weak or not validated cryptographic algorithms undermines the purposes of utilizing encryption and digital signatures to protect data. Weak algorithms can be easily broken and not validated cryptographic modules may not implement algorithms correctly. Unapproved cryptographic modules or algorithms should not be relied on for authentication, confidentiality, or integrity. Weak cryptography could allow an attacker to gain access to and modify data stored in the database as well as the administration settings of the DBMS.

Applications, including DBMSs, utilizing cryptography are required to use approved NIST FIPS 140-2 or 140-3 validated cryptographic modules that meet the requirements of applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance.

NSA Type-X (where X=1, 2, 3, 4) products are NSA-certified, hardware-based encryption modules.

The standard for validating cryptographic modules will transition to the NIST FIPS 140-3 publication.

FIPS 140-2 modules can remain active for up to 5 years after validation or until September 21, 2026, when the FIPS 140-2 validations will be moved to the historical list. Even on the historical list, CMVP supports the purchase and use of these modules for existing systems. While Federal Agencies decide when they move to FIPS 140-3 only modules, purchasers are reminded that for several years there may be a limited selection of FIPS 140-3 modules from which to choose. CMVP recommends purchasers consider all modules that appear on the Validated Modules Search Page:
https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules

More information on the FIPS 140-3 transition can be found here:
https://csrc.nist.gov/Projects/fips-140-3-transition-effort/

When the EDB FIPS 140 certified cryptographic modules are configured properly, an EDB Postgres Advanced Server will fail to start if non-FIPS 140 ciphers are specified for the Postgres ssl_ciphers parameter. To test whether the FIPS 140 compliant configuration is working, temporarily set the 'ssl_ciphers' parameter in the postgresql.conf file to 'RC4-SHA' and then attempt to restart the database service. Since 'RC4-SHA' is not a FIPS 140 approved cipher, the database will fail to start. Using the Event Viewer in Windows, a 'FATAL: could not set the cipher list (no valid ciphers available)' error will be found under 'Event Viewer (Local) >> Windows Logs >> Application'.

Satisfies: SRG-APP-000179-DB-000114,SRG-APP-000514-DB-000382,SRG-APP-000514-DB-000383

Solution

Edit <postgresql data dir>\pg_hba.conf so that each uncommented line starts with 'hostssl'

If the EDB Postgres Advanced Server minor version is less than version 11.6, install the 11.6 update or later version or contact EnterpriseDB to obtain a copy of the FIPS 140 compliant versions of the 'ssleay32.dll' and 'libeay32.dll' files and replace the 'ssleay32.dll' and 'libeay32.dll' files in <EDB Postgres Advanced Server Home>\bin with FIPS 140 compliant DLLs from EnterpriseDB. If the EDB Postgres Advanced Server minor version is 11.6 or greater, the FIPS 140 compliant versions of these DLLs are installed by default and do not need to be replaced.

Create C:\usr\local\ssl\openssl.cnf or another file referenced by a System Environment variable called OPENSSL_CONF with these contents:

HOME = .
RANDFILE = $ENV::HOME/.rnd
openssl_conf=openssl_conf_section
[openssl_conf_section]
alg_section=evp_settings
[evp_settings]
fips_mode=yes

Restart the Postgres server via the Services administration GUI.

See Also

https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_EDB_PGS_Advanced_Server_v11_Windows_V2R2_STIG.zip

Item Details

References: CAT|I, CCI|CCI-000803, CCI|CCI-002450, Rule-ID|SV-224174r836880_rule, STIG-ID|EP11-00-004900, STIG-Legacy|SV-109477, STIG-Legacy|V-100373, Vuln-ID|V-224174

Plugin: PostgreSQLDB

Control ID: ae72de4fc5cc343bc6c596910acc723310ca5d2d9df3df0ed295fcf6d836da14