DB2X-00-008700 - DB2 must only accept end entity certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs) for the establishment of all encrypted sessions - CAs

Information

Only DoD-approved external PKIs have been evaluated to ensure that they have security controls and identity vetting procedures in place which are sufficient for DoD systems to rely on the identity asserted in the certificate. PKIs lacking sufficient security controls and identity vetting procedures risk being compromised and issuing certificates that enable adversaries to impersonate legitimate users.

The authoritative list of DoD-approved PKIs is published at http://iase.disa.mil/pki-pke/interoperability.

This requirement focuses on communications protection for the DBMS session rather than for the network packet.

NOTE: Nessus has not performed this check. Please review the benchmark to ensure target compliance.

Solution

Create a key database and set up the digital certificates.

The following command creates a key database called mydbserver.kdb and a stash file called mydbserver.sth:

$gsk8capicmd_64 -keydb -create -db 'mydbserver.kdb' -pw 'myServerPassw0rdpw0' -stash

When you create a key database, it is automatically populated with signer certificates from a few certificate authorities (CAs), such as Verisign.

Add a certificate for your server to your key database.

To obtain a certificate, you can either use GSKCapiCmd to create a new certificate request and submit it to a CA to be signed, or you can create a self-signed certificate for testing purposes.

Following is an example of command to create a self-signed certificate with a label of myselfsigned, use the GSKCapiCmd command as shown in the following command:

$gsk8capicmd_64 -cert -create -db 'mydbserver.kdb' -pw 'myServerPassw0rdpw0' -label 'myselfsigned' -dn 'CN=myhost.mycompany.com,O=myOrganization, OU=myOrganizationUnit,L=myLocation,ST=ON,C=CA'

Notes:

-- Use the GSKCapiCmd tool to create the key database. It must be a Certificate Management System (CMS) type key database.

The GSKCapiCmd is a non-Java-based command-line tool, and Java does not need to be installed on the system to use this tool.

You invoke GSKCapiCmd using the GSKCAPICMD command, as described in the GSKCapiCmd User's Guide.

The path for the command is sqllib/gskit/bin on Linux and UNIX platforms, and C:\Program Files\IBM\GSK8\bin on both 32-bit and 64-bit Windows platforms.

On 64-bit platforms, the 32-bit GSKit executable files and libraries are also present; in this case, the path for the command is C:\ProgramFiles (x86)\IBM\GSK8\bin. - Ensure PATH (on the Windows platform) includes the proper GSKit library path, and LIBPATH, SHLIB_PATH, or LD_LIBRARY_PATH (on UNIX or Linux platforms) include the proper GSKit library path, such as sqllib/lib64/gskit.
The -stash option creates a stash file at the same path as the key database, with a file extension of .sth. At instance start-up, GSKit uses the stash file to obtain the password to the key database.
To extract the certificate you created to a file, so that you can distribute it to computers running clients that will be establishing SSL connections to your DB2 server.

Run the following GSKCapiCmd command extracts the certificate to a file called mydbserver.arm:

$gsk8capicmd_64 -cert -extract -db 'mydbserver.kdb' -pw 'myServerPassw0rdpw0' -label 'myselfsigned' -target 'mydbserver.arm' -format ascii -fips

See Also

https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_IBM_DB2_V10-5_LUW_V2R1_STIG.zip

Item Details

Category: SYSTEM AND COMMUNICATIONS PROTECTION

References: 800-53|SC-23(5), CAT|II, CCI|CCI-002470, Rule-ID|SV-213728r879798_rule, STIG-ID|DB2X-00-008700, STIG-Legacy|SV-89273, STIG-Legacy|V-74599, Vuln-ID|V-213728

Plugin: IBM_DB2DB

Control ID: 310dd99025c6bfb16f51950ab039593cf6836f7886149e8262e5bd20a257947f