Seguridad cuando se utiliza IBM Data Server Driver para JDBC y SQLJ
Cuando utiliza el IBM® Data Server Driver for JDBC and SQLJ, elige un mecanismo de seguridad especificando un valor para la propiedad securityMechanism Connection o DataSource , o la propiedad de configuración global db2.jcc.securityMechanism.
- Si utiliza la interfaz DriverManager , establezca
securityMechanismen un objeto java.util.Properties antes de invocar el formulario del método getConnection que incluye el parámetro java.util.Properties . - Si utiliza la interfaz DataSource, y está creando y desplegando sus propios objetos DataSource, invoque el método DataSource.setSecurityMechanism después de crear un objeto DataSource.
Puede determinar el mecanismo de seguridad que está en vigor para una conexión invocando el método DB2Connection.getDB2SecurityMechanism.
La siguiente tabla enumera los mecanismos de seguridad que IBM Data Server Driver for JDBC and SQLJ y las fuentes de datos que admiten esos mecanismos de seguridad.
| Mecanismo de seguridad | Compatible con Db2 en sistemas Linux, UNIX y Windows | Con el apoyo de Db2 for z/OS® | Con el apoyo de IBM Informix® | Con el apoyo de Db2 para IBM i |
|---|---|---|---|---|
| ID de usuario y contraseña | Sí | Sí | Sí | Sí |
| Solo ID de usuario | Sí | Sí | Sí | Sí |
| ID de usuario y contraseña cifrada 1 | Sí | Sí | Sí | Sí4 |
| ID de usuario cifrado1 | Sí2 | Sí | Nee | Nee |
| ID de usuario y contraseña cifradas 1 | Sí | Sí | N.º 5 | Sí4 |
| Identificación de usuario cif rada y datos sensibles a la seguridad cifrados1 | Nee | Sí | Nee | Nee |
| ID de usuario cifrado, contraseña cifrada y datos sensibles a la seguridad cifrados1 | Sí | Sí | Nee | Nee |
| Kerberos3 | Sí | Sí | Nee | Sí |
| Plugin3 | Sí | Nee | Nee | Nee |
| Autenticación de certificados 3 | Nee | Sí | Nee | Nee |
| Autenticación de señal | Sí | Nee | Nee | Nee |
Nota:
|
||||
La siguiente tabla enumera los mecanismos de seguridad que IBM Data Server Driver for JDBC and SQLJ admite, y el valor que debe especificar para la propiedad securityMechanism para especificar cada mecanismo de seguridad.
- Cuando se establece explícitamente el mecanismo de seguridad en
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9), y no se define un proceso de reintento con un mecanismo de seguridad alternativo, el controlador no reintenta la conexión conCLEAR_TEXT_PASSWORD_SECURITY(3). El controlador lanza una excepción conReason: Security mechanism not supported. - Cuando ICSF o el criptoprocesador no están habilitados en un sistema z/OS en el que se ejecuta un Db2 for z/OS servidor de datos, el controlador devuelve un error con
Reason: Local security service non-retryable error. El controlador vuelve a intentar la conexión abriendo un nuevo socket utilizandoCLEAR_TEXT_PASSWORD_SECURITY(3). - Cuando la seguridad criptográfica FIPS 140-3 está habilitada para el entorno de ejecución de Java o el SDK para Java, y la conexión al servidor de datos utiliza
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9) de forma predeterminada, el controlador lanza una excepción conCaused by: java.lang.ExceptionInInitializerError. El controlador vuelve a intentar la conexión conCLEAR_TEXT_PASSWORD_SECURITY(3). - Cuando la versión del entorno de ejecución de Java o del SDK para Java es la 8 o anterior, los archivos de política han caducado y la conexión al servidor de datos utiliza
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9) de forma predeterminada, el controlador lanza un error de tipo "java.security.InvalidKeyException". El controlador vuelve a intentar la conexión conCLEAR_TEXT_PASSWORD_SECURITY(3). - Cuando una conexión a un Db2 for z/OS o Db2 en sistemas Linux, UNIX y Windows, la conexión utiliza SSL, la conexión utiliza
CLEAR_TEXT_PASSWORD_SECURITY(3) por defecto. Si establece explícitamente el mecanismo de seguridad en otro valor, el controlador utiliza el valor establecido explícitamente.
- El mecanismo de seguridad predeterminado es
ENCRYPTED_USER_AND_PASSWORD_SECURITY. Si el servidor de datos no admiteENCRYPTED_USER_AND_PASSWORD_SECURITY, pero admiteCLEAR_TEXT_PASSWORD_SECURITY, el controlador cambia el mecanismo de seguridad aCLEAR_TEXT_PASSWORD_SECURITYe intenta conectarse al servidor de datos.Cuando el controlador vuelve a intentar la conexión utilizandoCLEAR_TEXT_PASSWORD_SECURITY, el rendimiento puede verse afectado. Para minimizar el impacto en el rendimiento, realice una de las siguientes acciones:- Establezca explícitamente el mecanismo de seguridad en CLEAR_TEXT_PASSWORD_SECURITY en el lado del cliente.
- Cambie la configuración del servidor de datos para que admita ENCRYPTED_USER_AND_PASSWORD_SECURITY.
Cualquier discrepancia en el soporte del mecanismo de seguridad entre el solicitante y el servidor de datos que no sea
CLEAR_TEXT_PASSWORD_SECURITYyENCRYPTED_USER_AND_PASSWORD_SECURITYda lugar a un error. - Una conexión a un Db2 for z/OS subsistema o grupo de intercambio de datos que utiliza el mecanismo de seguridad predeterminado de
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9) y el cifrado AES solo se realiza correctamente si el Servicio de cifrado integrado ( z/OS, ICSF) está habilitado en el sistema de cifrado de claves ( z/OS ) donde está instalado cada subsistema o miembro de intercambio de datos. Se requiere ICSF para descifrar el ID de usuario y la contraseña. Si ICSF no está instalado, debe configurar el mecanismo de seguridad enCLEAR_TEXT_PASSWORD_SECURITY(3).
Antes de la versión 4.33 de IBM Data Server Driver for JDBC and SQLJ, el mecanismo de seguridad predeterminado es CLEAR_TEXT_PASSWORD_SECURITY (3). Si el servidor de datos no admite 3-bit SSL ( CLEAR_TEXT_PASSWORD_SECURITY ), pero admite 9-bit SSL ( ENCRYPTED_USER_AND_PASSWORD_SECURITY ), el controlador cambia el mecanismo de seguridad a 9-bit SSL ( ENCRYPTED_USER_AND_PASSWORD_SECURITY ) e intenta conectarse al servidor de datos. Cualquier otro desajuste en el soporte del mecanismo de seguridad entre el solicitante y el servidor de datos da lugar a un error.
| Mecanismo de seguridad | Valor de la propiedad securityMechanism |
|---|---|
| ID de usuario y contraseña | DB2BaseDataSource.CLEAR_TEXT_PASSWORD_SECURITY (3) |
| Solo ID de usuario | DB2BaseDataSource.USER_ONLY_SECURITY (4) |
| ID de usuario y contraseña cifrada 1 | DB2BaseDataSource.ENCRYPTED_PASSWORD_SECURITY (7) |
| ID de usuario cifrado1 | DB2BaseDataSource.ENCRYPTED_USER_ONLY_SECURITY (16) |
| ID de usuario y contraseña cifradas1, 2 | DB2BaseDataSource.ENCRYPTED_USER_AND_PASSWORD_SECURITY (9) |
| Identificación de usuario cif rada y datos sensibles a la seguridad cifrados1 | DB2BaseDataSource.ENCRYPTED_USER_AND_DATA_SECURITY (12) |
| ID de usuario cifrado, contraseña cifrada y datos sensibles a la seguridad cifrados1 | DB2BaseDataSource.ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY (13) |
| Kerberos | DB2BaseDataSource.KERBEROS_SECURITY (11) |
| Plugin | DB2BaseDataSource.PLUGIN_SECURITY (15) |
| Autenticación de certificado | DB2BaseDataSource.TLS_CLIENT_CERTIFICATE_SECURITY (18) |
| Autenticación de señal | DB2BaseDataSource.TOKEN_SECURITY (19) |
Nota:
|
|