Implementar el protocolo TLS 1.2
Información para Desarrolladores Sifei

Apreciable cliente,


Como previamente te informamos, en Sifei estamos preparando lo necesario para en un futuro deshabilitar los protocolos TLS 1.0 y 1.1 para todos nuestros servicios, incluyendo los servicios web de timbrado y cancelación con el objetivo de alinearlos con los estándares de la industria en materia de seguridad informática.

Una vez que esto suceda, nuestros servicios no aceptaran conexiones de ninguna aplicación que no soporte TLS 1.2, por lo que será necesario que, si tus aplicaciones aún no utilizan este protocolo, vayas preparando los cambios necesarios para evitar futuros inconvenientes.

Pero no te preocupes, hemos decidido mantener el soporte de los protocolos TLS 1.0 y TLS 1.1 en nuestros servicios al mismo tiempo que habilitamos el protocolo más seguro TLS 1.2 como el método preferido por nuestros sistemas para establecer canales de comunicación cifrados con las aplicaciones de nuestros usuarios.

De esta manera, y en caso de que lo necesites, contarás con el tiempo necesario para implementar el protocolo TLS 1.2 en tus aplicaciones.


Acciones requeridas para Integradores

Si tus integraciones con los servicios web de Sifei utilizan el protocolo TLS 1.1 o inferior, empezarán a fallar cuando finalicemos nuestro proceso de actualización de servicios.

Te recomendamos que empieces a planificar la inclusión del protocolo TLS 1.2 tan pronto como sea posible.

Consulta las directrices de compatibilidad a continuación:

Java (Oracle)

Compatible con la versión más reciente, sin que el sistema operativo sea relevante.

Java 8 (1.8) y versiones posteriores

Compatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.

Java 7 (1.7)

Activa TLS 1.2 utilizando la propiedad del sistema Java https.protocols para HttpsURLConnection.

Para activar TLS 1.2 en conexiones sin HttpsURLConnection, establece los protocolos activados en las instancias creadas de SSLSocket y SSLEngine dentro del código fuente de la aplicación.

Cambiar a IBM Java puede ser una solución efectiva si la actualización a una versión de Oracle Java más reciente no es posible.

Java 8

Compatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada. Es posible que tengas que establecer com.ibm.jsse2.overrideDefaultTLS=true si tu aplicación o una biblioteca que la llame utiliza SSLContext.getinstance("TLS").

Java 7 y versiones posteriores, la actualización de servicio 1 de Java 6.0.1 (J9 VM2.6) y versiones posteriores y la actualización de servicio 10 de Java 6 y versiones posteriores

Activa TLS 1.2 empleando la propiedad del sistema de Java https.protocols para HttpsURLConnection y la propiedad del sistema de Java com.ibm.jsse2.overrideDefaultProtocol para conexiones SSLSocket y SSLEngine, según recomienda la documentación de IBM. Es posible que también tengas que establecer com.ibm.jsse2.overrideDefaultTLS=true.

.NET

Compatible con la versión más reciente cuando se ejecuta en un sistema operativo que admita TLS 1.2.

.NET 4.6 y versiones posteriores

Compatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.

.NET 4.5 a 4.5.2

.NET 4.5, 4.5.1 y 4.5.2 no activan TLS 1.2 de forma predeterminada. Existen dos opciones para activarlas, como se describe a continuación.

.NET 4.0

.NET 4.0 no activa TLS 1.2 de forma predeterminada.Para activar TLS 1.2 de forma predeterminada, es posible instalar .NET Framework 4.5 o una versión posterior, y establecer el valor DWORD de SchUseStrongCrypto en 1 en las siguientes dos entradas del registro del sistema, creándolas si no existen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319

No obstante, esas claves del registro del sistema pueden activar TLS 1.2 de forma predeterminada en todas las aplicaciones .NET 4.0, 4.5, 4.5.1 y 4.5.2 instaladas en ese sistema.

Recomendamos probar este cambio antes de implementarlo en tus versiones de producción.

Sin embargo, estos valores del registro del sistema no afectarán a las aplicaciones .NET que establecen el valor System.Net.ServicePointManager.SecurityProtocol.

.NET 3.5 y versiones anteriores

No son compatibles con el cifrado TLS 1.2 o versiones posteriores.

Python

Compatible con la versión más reciente cuando se ejecuta en un sistema operativo que admita TLS 1.2

Python 2.7.9 y versiones posteriores

Compatible con el cifrado TLS 1.2 o versiones posteriores de forma predeterminada.

Python 2.7.8 y versiones anteriores

No son compatibles con el cifrado TLS 1.2 o versiones posteriores.

Ruby

Es compatible con la versión más reciente y estable cuando se vincula con OpenSSL 1.0.1 o posteriores.

Ruby 2.0.0

TLS 1.2 se activa de forma predeterminada cuando se utiliza con OpenSSL 1.0.1 o posteriores. El uso de los símbolos :TLSv1_2 con ssl_version de SSLContext ayuda a garantizar que se desactiva TLS 1.0 o versiones anteriores.

Ruby 1.9.3 y versiones anteriores

El símbolo :TLSv1_2 no existe en la versión 1.9.3 y anteriores, pero es posible parchear Ruby para agregar ese símbolo y compilar Ruby con OpenSSL 1.0.1 o versiones posteriores.


¿Cómo puedo probar mi integración?

Hemos desarrollado algunos recursos que ponemos a tu disposición y que te serán de utilidad en el proceso de migración de tus aplicaciones de los protocolos TLS 1.0 y TLS 1.1 al protocolo TLS 1.2:

Servicio Web exclusivo para TLS 1.2

Ponemos a tu disposición un entorno de pruebas de nuestros servicios web compatible únicamente con TLS 1.2 para que puedas llevar a cabo tus pruebas, mantiene los mismos métodos y parámetros que los servicios web en los que mantuvimos el soporte para TLS 1.0 y TLS 1.1, solo necesitas cambiar la URL de los servicios web por los siguientes:

Timbrado: https://dev007.sifei.com.mx/SIFEI33/SIFEI?wsdl

Cancelación: https://dev007.sifei.com.mx/CancelacionSIFEI/Cancelacion?wsdl

Puedes usar los mismos datos de autenticación que utilizaste durante tus primeras pruebas de integración con Sifei en http://devcfdi.sifei.com.mx:8888/.Si no tienes a la mano esta información, puedes solicitarla con tu ejecutivo de cuenta o en soporte@sifei.com.mx.

Snippets

Para poder validar si tu integración mantiene una conexión usando un protocolo distinto a TLS 1.2, puedes usar los siguientes snippets dentro de tu aplicación para verificar que protocolo se está usando por defecto para las conexiones.

En caso que requieras realizar adaptaciones, es importante que recuerdes hacer este cambio lo antes posible, para evitar contratiempos en tus conexiones con sat.sifei.com.mx en un futuro.

Si tienes alguna duda o necesitas asistencia para completar exitosamente este cambio, puedes contactarnos a través del siguiente correo electrónico: soporte@sifei.com.mx.

El equipo de Sifei.

Apagado del cifrado TLS 1.0 y 1.1
Información para Desarrolladores Sifei