No se puede conectar 2.0 de controlador JDBC de Microsoft SQL Server 2008 desde una aplicación habilitada para FIPS IBM WebSphere


Síntomas


Considere el siguiente escenario. Tiene una aplicación de IBM WebSphere con Federal Information Processing estándares (FIPS) habilitado. Cuando utiliza 2.0 de controlador JDBC de Microsoft SQL Server para conectarse a SQL Server 2008 desde la aplicación de IBM WebSphere, se produce un error en la conexión. Además, recibirá el siguiente mensaje de error:
java.sql.SQLException: el controlador no pudo establecer una conexión segura a SQL Server utilizando el cifrado de Secure Sockets Layer (SSL). Error: No se puede habilitar el protocolo SSLv3 en modo FIPS. DSRA0010E: Estado SQL = 08S01, código de Error = 0

en com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate (fuente desconocida)

en com.microsoft.sqlserver.jdbc.TDSChannel.throwSSLConnectionFailed (fuente desconocida)

en com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL (fuente desconocida)


Causa


Este problema se produce porque la aplicación de IBM WebSphere requiere el protocolo TLS para las conexiones SSL cuando la aplicación tiene habilitado el FIPS. Sin embargo, 2.0 de controlador JDBC de Microsoft SQL Server solicita el protocolo SSLv3. Por lo tanto, se produce un error en la conexión.

2.0 de controlador JDBC de Microsoft SQL Server llama a la función SSLContext.getInstance . Esta función toma un argumento de cadena. El argumento de cadena determina qué protocolos debe admitir el contexto devuelto. Según la Guía de referencia de Java Secure Sockets Extension (JSSE), la función SSLContext.getInstance devuelve una instancia de SSLContext que admite el protocolo especificado. Sin embargo, la instancia devuelta de SSLContext también puede admitir otros protocolos.

Con más detalle cuando 2.0 de controlador JDBC de Microsoft SQL Server pasa "SSLv3" como argumento de cadena, el proveedor de JSSE de Sun devuelve una instancia de SSLContext que admite el protocolo SSLv3 y el protocolo TLS. Sin embargo, el proveedor de IBMJSSE2 devuelve una instancia de SSLContext que sólo admite el protocolo SSLv3. Cuando una aplicación WebSphere tiene habilitado el FIPS, IBM Java Runtime Environment (JRE) requiere el protocolo TLS para las conexiones SSL. Por lo tanto, se produce un error en la conexión.

Solución


Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, envíe una solicitud al servicio de atención al cliente y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información de la clave del registro

Para utilizar una de las revisiones de este paquete, no es necesario realizar ningún cambio en el registro.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.
versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraAlgoritmos hashPlataforma
Sqljdbc.jarNo aplicable448,01029-Apr-201006:56No aplicableNo aplicable
Sqljdbc4.jarNo aplicable466,30429-Apr-201006:56No aplicableNo aplicable
Sqljdbc_auth.dll2.0.1803.209172,46429-Apr-201006:56MD5: C8469387C4F00B56A6D01FB2A7EB4AA8
SHA1: CF204CE34A46549DF05B1F0697F7A736B1F9B710
IA-64
Sqljdbc_auth.dll2.0.1803.20986,44829-Apr-201006:56MD5: 12AB590CBA210BDF9D4BA05DB84F6144
SHA1: F1B8CF75E0102B01FFE567BC8A1485F69C53538C
x64
Sqljdbc_auth.dll2.0.1803.20969,04029-Apr-201006:56MD5: C58C33FC8C1C4B05BFFA4F1CCC2A1856
SHA1: 4ACFAE835558AAC917AAB72001015B5E74CBCD85
x86
Xa_install.sqlNo aplicable3.71229-Apr-201006:56No aplicableNo aplicable
Sqljdbc_xa.dll2.0.1803.209251,82429-Apr-201006:56MD5: C312A65209D4E2454DA8E60D8A9DEB5D
SHA1: 2F6D468B2BECA13E47CC35F1D51E3D0ECD5AA553
IA-64
Sqljdbc_xa.dll2.0.1803.209130,48029-Apr-201006:56MD5: 1D7E2961C1C956BF792AE9F86C49EC26
SHA1: 04CD6D7C7F1C5658E16BD62A876BEF9FF6C1B785
x64
Sqljdbc_xa.dll2.0.1803.209101,29629-Apr-201006:56MD5: 749C78CFF95D7A06D6671DCBA827F5CF
SHA1: FA757C9423B2DC2EF24CBF5A469A73CC25C1944A
x86
versión basada en x64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraAlgoritmos hashPlataforma
Sqljdbc.jarNo aplicable448,01029-Apr-201006:56No aplicableNo aplicable
Sqljdbc4.jarNo aplicable466,30429-Apr-201006:56No aplicableNo aplicable
Sqljdbc_auth.dll2.0.1803.209172,46429-Apr-201006:56MD5: C8469387C4F00B56A6D01FB2A7EB4AA8
SHA1: CF204CE34A46549DF05B1F0697F7A736B1F9B710
IA-64
Sqljdbc_auth.dll2.0.1803.20986,44829-Apr-201006:56MD5: 12AB590CBA210BDF9D4BA05DB84F6144
SHA1: F1B8CF75E0102B01FFE567BC8A1485F69C53538C
x64
Sqljdbc_auth.dll2.0.1803.20969,04029-Apr-201006:56MD5: C58C33FC8C1C4B05BFFA4F1CCC2A1856
SHA1: 4ACFAE835558AAC917AAB72001015B5E74CBCD85
x86
Xa_install.sqlNo aplicable3.71229-Apr-201006:56No aplicableNo aplicable
Sqljdbc_xa.dll2.0.1803.209251,82429-Apr-201006:56MD5: C312A65209D4E2454DA8E60D8A9DEB5D
SHA1: 2F6D468B2BECA13E47CC35F1D51E3D0ECD5AA553
IA-64
Sqljdbc_xa.dll2.0.1803.209130,48029-Apr-201006:56MD5: 1D7E2961C1C956BF792AE9F86C49EC26
SHA1: 04CD6D7C7F1C5658E16BD62A876BEF9FF6C1B785
x64
Sqljdbc_xa.dll2.0.1803.209101,29629-Apr-201006:56MD5: 749C78CFF95D7A06D6671DCBA827F5CF
SHA1: FA757C9423B2DC2EF24CBF5A469A73CC25C1944A
x86
Versión de arquitectura Itanium
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraAlgoritmos hashPlataforma
Sqljdbc.jarNo aplicable448,01029-Apr-201006:56No aplicableNo aplicable
Sqljdbc4.jarNo aplicable466,30429-Apr-201006:56No aplicableNo aplicable
Sqljdbc_auth.dll2.0.1803.209172,46429-Apr-201006:56MD5: C8469387C4F00B56A6D01FB2A7EB4AA8
SHA1: CF204CE34A46549DF05B1F0697F7A736B1F9B710
IA-64
Sqljdbc_auth.dll2.0.1803.20986,44829-Apr-201006:56MD5: 12AB590CBA210BDF9D4BA05DB84F6144
SHA1: F1B8CF75E0102B01FFE567BC8A1485F69C53538C
x64
Sqljdbc_auth.dll2.0.1803.20969,04029-Apr-201006:56MD5: C58C33FC8C1C4B05BFFA4F1CCC2A1856
SHA1: 4ACFAE835558AAC917AAB72001015B5E74CBCD85
x86
Xa_install.sqlNo aplicable3.71229-Apr-201006:56No aplicableNo aplicable
Sqljdbc_xa.dll2.0.1803.209251,82429-Apr-201006:56MD5: C312A65209D4E2454DA8E60D8A9DEB5D
SHA1: 2F6D468B2BECA13E47CC35F1D51E3D0ECD5AA553
IA-64
Sqljdbc_xa.dll2.0.1803.209130,48029-Apr-201006:56MD5: 1D7E2961C1C956BF792AE9F86C49EC26
SHA1: 04CD6D7C7F1C5658E16BD62A876BEF9FF6C1B785
x64
Sqljdbc_xa.dll2.0.1803.209101,29629-Apr-201006:56MD5: 749C78CFF95D7A06D6671DCBA827F5CF
SHA1: FA757C9423B2DC2EF24CBF5A469A73CC25C1944A
x86

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información


Los productos de terceros que se indican en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, respecto al rendimiento o confiabilidad de estos productos.

Para obtener más información sobre el controlador JDBC de Microsoft, visite el siguiente sitio Web de Microsoft:


Para obtener más información acerca de FIPS, visite el siguiente sitio Web:



Microsoft proporciona información de contacto de terceros para ayudarle a encontrar soporte técnico. Esta información de contacto puede cambiar sin previo aviso. Microsoft no garantiza la exactitud de esta información de contacto de terceros.