TLS 1.0 y 1.1 son protocolos obsoletos que no admiten algoritmos criptográficos modernos y contienen vulnerabilidades de seguridad que pueden ser explotadas por los atacantes. El Grupo de Trabajo de Ingeniería de Internet (IETF por sus siglas en inglés) también está planeando dejar oficialmente en desuso ambos protocolos. Además, la gran mayoría del tráfico cifrado de Internet utiliza TLS 1.2, que se introdujo hace ya más de una década.
Los sistemas operativos como son Windows XP, Windows Vista y Windows 7 dejaron de tener actualizaciones de seguridad por parte de Microsoft por lo cual ya no serán compatibles con los protocolos más recientes en cuanto a cifrado de los datos por lo que es necesario puedas migrar a un sistema operativo más reciente.
Si se reciben errores de TLS, hay que verificar el sistema operativo y el idioma de la aplicación del software que se está ejecutando, para asegurar que usen una versión compatible con TLS 1.2
La siguiente lista contiene algunos ejemplos de requisitos mínimos en diferentes sistemas operativos y aplicaciones.
Windows – Windows 7
Windows Server 2008 R2 +
Linux
Las aplicaciones Linux dependen principalmente de la versión OpenSSL instalada. Los ejemplos proporcionados son plataformas donde el OpenSSL predeterminado por default es reciente:
· Ubuntu – 12.04 (Preciso) o superior
· Red Hat / CentOS – v6 +
· Debian – 7.0 (Wheezy) +
OpenSSL
Debe ser al menos la versión 1.0.1.
.NET
La versión 4.6 tiene por defecto TLS 1.2
La versión 4.5 e inferiores requieren una bandera para especificar el uso de TLS, sin embargo, para versiones inferiores a 4.5 su sistema aún necesitará .NET 4.5 instalado para admitir TLS 1.2.
Java
La versión 8 (1.8) tiene como default TLS 1.2. Para Java 7 (1.7) se debe indicar el uso de TLS 1.2.
PHP / Ruby / Node.js
Estos se basan principalmente en OpenSSL para manejar las necesidades de TLS. Verifique que su versión de OpenSSL sea al menos 1.0.1.
Android
El sistema operativo del cliente debe ser de la versión 4.4.2+ para admitir TLS v1.2
Android API versión 16-19 es compatible con TLS 1.2 pero requiere que se especifique, la versión 20+ admite TLS 1.2 de forma predeterminada.
iOS
TLS 1.2 es compatible con iOS 7 en adelante. Si su aplicación es compatible con las versiones de iOS 7.1 a 7.9, deberá asegurarse de tener las configuraciones adicionales para admitir TLS 1.2.
Para las versiones 8+, TLS 1.2 está habilitado de forma predeterminada.
Si su conexión no utiliza TLS 1.2, puede se reciba un error similar al siguiente:
“The underlying connection was closed: An unexpected error occurred on a send.”
“Authentication failed because the remote party has closed the transport stream.”
“javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
Caused by: java.io.EOFException: SSL peer shut down incorrectly”
“Unknown SSL protocol error in connection to test.paxfacturacion.com.mx:453″
Ten en cuenta que dependiendo de la aplicación se pueden mostrar variantes de estos mensajes o manejar el error de manera diferente, por lo que, si se recibe un error similar al anterior, es posible que se deba a la conexión por el uso de un cifrado TLS obsoleto.