Autenticación de certificados en IBM Data Server Driver para JDBC y SQLJ

El IBM® Data Server Driver for JDBC and SQLJ proporciona soporte para la autenticación de certificados de conexiones a Db2 for z/OS® Servidores de datos de la versión 10 o posterior.

La seguridad de autenticación de certificados de cliente en un Db2 for z/OS servidor de datos admite el uso de certificados digitales para la autenticación mutua entre solicitantes y servidores. Al utilizar certificados digitales de z/OS, el protocolo SSL (Secure Socket Layer) da soporte a la autentificación de servidor y de cliente durante la fase de reconocimiento. Un servidor de datos puede validar los certificados de un cliente en el servidor, que impide que el cliente obtenga una conexión segura sin un certificado aprobado por la instalación. La autentificación del certificado digital del cliente remoto se realiza mediante el protocolo AT-TLS (Application Transparent Transport Layer Security) que se proporciona con la pila z/OS Communications Server TCP/IP.

El IBM Data Server Driver for JDBC and SQLJ admite la autenticación de certificados solo para la conectividad de tipo 4 IBM Data Server Driver for JDBC and SQLJ.

Usted habilita IBM Data Server Driver for JDBC and SQLJ la autenticación de certificados especificando DB2BaseDataSource.TLS_CLIENT_CERTIFICATE_SECURITY como valor de la propiedad securityMechanism Connection o DataSource . Si el servidor de datos de destino soporta la autenticación de certificados de cliente y la autenticación mutua se ejecuta satisfactoriamente, el controlador pasa un objeto Connection válido a la aplicación. Si el servidor de datos no da soporte a autenticación de certificados de cliente, o la conexión no se ha autentificado mediante AT-TLS y SSL, el controlador emite una DisconnectException.

Puede utilizar la autenticación de certificados con o sin un ID de usuario o una contraseña. Si la aplicación no proporciona un ID de usuario o una contraseña, la autenticación se realiza en la capa de red únicamente. Si se proporciona un ID de usuario o una contraseña, la autenticación se realiza en la capa de red y en la capa del servidor de datos.

Para utilizar el cifrado SSL con la autenticación de certificados, puede establecer la propiedad de Connection o DataSource de sslConnection o las propiedades de configuración db2.jcc.override.sslConnection o db2.jcc.sslConnection en true.

El ejemplo siguiente muestra cómo habilitar la autenticación de certificados y la seguridad por ID de usuario y contraseña en una aplicación JDBC.

com.ibm.db2.jcc.DB2SimpleDataSource dataSource = new 
  com.ibm.db2.jcc.DB2SimpleDataSource();
// Specify certificate authentication
dataSource.setSecurityMechanism 
(com.ibm.db2.jcc.DB2BaseDataSource.TLS_CLIENT_CERTIFICATE_SECURITY);
// Set a user ID and password to be passed to the data server
((com.ibm.db2.jcc.DB2BaseDataSource)dataSource).setUser("sysadm"); 
dataSource.setPassword("password”);
// Identify the SSL truststore, keystore and their passwords
System.setProperty("javax.net.ssl.trustStore","c:/temp/SSL/cacerts");
System.setProperty("javax.net.ssl.trustStorePassword","password");
System.setProperty("javax.net.ssl.keyStore","c:/temp/SSL/myKS");
System.setProperty("javax.net.ssl.keyStorePassword","123456");
…
// Create a connection
con = dataSource.getConnection ();