UCF STIG Viewer Logo

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.


Overview

Finding ID Version Rule ID IA Controls Severity
V-74599 DB2X-00-008700 SV-89273r1_rule Medium
Description
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.
STIG Date
IBM DB2 V10.5 LUW Security Technical Implementation Guide 2019-09-27

Details

Check Text ( C-74485r1_chk )
Run the following command to find certificate details:

$gsk8capicmd_64 -cert -details -db "" -pw "" -label ""

The output is displayed in a form similar to the following:

-- label : myselfsigned key size : 1024 version : X509 V3 serial : 96c2db8fa769a09d

-- issue:CN=myhost.mycompany.com,O=myOrganization,OU=myOrganizationUnit,
L=myLocation,ST=ON,C=CA

-- subject:CN=myhost.mycompany.com,O=myOrganization,OU=myOrganizationUnit,
L=myLocation,ST=ON,C=CA not before : Tuesday, 24 February 2009 17:11:50 PM not after : Thursday, 25 February 2010 17:11:50 PM

If the certificate is not issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs), this is a finding.
Fix Text (F-81199r2_fix)
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