Actualizando a TLS 1.2

PERSONALIZAR ¿Estás utilizando TLS anterior a 1.2? Está bien, los retrasos en las actualizaciones de mantenimiento nos pasan a todos. Lo entendemos. Sin embargo, es hora de avanzar.

Author

Pájaro

Categoría

Ingeniería

Actualizando a TLS 1.2

PERSONALIZAR ¿Estás utilizando TLS anterior a 1.2? Está bien, los retrasos en las actualizaciones de mantenimiento nos pasan a todos. Lo entendemos. Sin embargo, es hora de avanzar.

Author

Pájaro

Categoría

Ingeniería

Actualizando a TLS 1.2

PERSONALIZAR ¿Estás utilizando TLS anterior a 1.2? Está bien, los retrasos en las actualizaciones de mantenimiento nos pasan a todos. Lo entendemos. Sin embargo, es hora de avanzar.

Author

Pájaro

Categoría

Ingeniería

¿Estás utilizando TLS anterior a 1.2?  Está bien, los retrasos en las actualizaciones de mantenimiento le suceden a todos.  Lo entendemos.  Sin embargo, es hora de seguir adelante.

Recuerda hace tiempo en junio de 2018 cuando deprecamos el uso de TLS 1.0? Si no lo recuerdas, está bien, puedes leer todo al respecto en esta publicación.  Bueno, aquí estamos, 2 años después y la próxima versión está a punto de ser relegada, así que queremos que estés preparado y evitar cualquier interrupción en el servicio.  Esta publicación trata de prepararte para funcionar sin el uso de TLS1.1 para que podamos restringir el acceso solo a TLS1.2.  Te guiaremos a través de cómo comprobar tu versión actual y cómo actualizar a la última.  Solo por diversión, nos gustaría realmente escuchar tus comentarios y agregarte a un “muro de grandeza” que presenta todas aquellas empresas conscientes de la seguridad que hacen el cambio temprano.


¿Me afecta esto?

En 2018 pedimos a nuestros clientes que actualizaran, y TLS 1.2 ha sido la recomendación durante bastante tiempo, así que es muy probable que NO te veas afectado.  Sin embargo, si utilizas cualquier método para inyectar mensajes (SMTP o REST API) o recopilar datos (métricas o webhooks, etc.), entonces realmente deberías comprobar ahora para asegurarte de que tu sistema pueda soportar TLS 1.2.  Asegúrate de ejecutar las siguientes pruebas en los servidores que realmente se conectan a SparkPost.  


Por qué es importante

  1. SparkPost no aceptará conexiones en TLS 1.1 después de septiembre de 2020

  2. Las versiones anteriores no son seguras

  3. TLS 1.2 ha sido el protocolo recomendado durante más de una década

  4. Todos los chicos geniales lo están haciendo

  5. IETF dice que está oficialmente deprecado


¿Por qué ahora?

En realidad, la pregunta debería ser “¿por qué todavía lo estás apoyando?”  TLS 1.2 ha sido el estándar seguro recomendado durante más de una década y estamos al borde de que alguien ofrezca algún soporte en absoluto para cualquier cosa menos que TLS1.2. Es hora de que el soporte HTTPS débil muera de una vez por todas.  Si aún estás utilizando TLS 1.1 después de marzo de 2020, tendrás dificultades para conectarte a la mayoría de los servicios.  SparkPost ha proporcionado una amplia gracia para actualizar esto y ahora estamos enviando avisos finales para que se actualice antes de septiembre, cuando lo eliminemos definitivamente.


Pero, ¿cómo, te lo pregunto, puedes solucionarlo?

Es muy posible que tu SysAdmin de TI o WebAdmin ya lo haya hecho por ti como parte de su mantenimiento normal.  Si es así, deberías comprarle una cerveza y decir gracias.  Si no, puedes seguir algunos de los pasos a continuación para hacerlo en Linux, Windows y Mac.

Ten en cuenta que a lo largo de este documento probaremos con el punto final de SparkPost de EE. UU.

Si normalmente utilizas el despliegue europeo, debes usar el punto final de la UE en su lugar.


¿Cómo puedes comprobarlo? (versión de Linux)

Primero, verifiquemos si tu amable SysAdmin del vecindario ya se encargó de esto por ti. En realidad, esto es parte de la configuración de SSL, por lo que se puede gestionar en la configuración de tu sistema.  Suponiendo que estás usando Linux, el método más descriptivo es usar nmap, pero también puedes usar openssl.  Puedes usar nmap con Linux, Windows y Mac, pero también exploraremos otros métodos para Windows y Mac si no quieres instalar nuevo software.

Para hacerlo con nmap, prueba los cifrados contra un host HTTPS conocido.  Dado que el objetivo es asegurarnos de que estamos conectando a SparkPost de forma segura, probemos contra ese punto final. Asegúrate de ejecutar las siguientes pruebas en los servidores que realmente se conectan a SparkPost. 

nmap --script ssl-enum-ciphers -p 443 api.sparkpost.com

Esto se hizo en mi propio servidor de desarrollo y puedes ver fácilmente que mi configuración soporta TLS 1.1 y 1.2, pero no 1.3.  Es importante señalar en este punto que los ALB de AWS y, por lo tanto, las conexiones de SparkPost, aún no soportan TLS1.3, pero está en la hoja de ruta de AWS.

Iniciando Nmap 6.40 ( http://nmap.org ) a 2020-05-06 22:41 UTC Informe de escaneo de Nmap para api.sparkpost.com (52.13.246.255) El host está activo (0.00059s de latencia). Otras direcciones para api.sparkpost.com (no escaneadas): 34.211.102.211 52.43.22.201 54.213.185.174 100.20.154.199 52.43.110.79 52.40.215.39 52.40.175.169 rDNS record para 52.13.246.255: ec2-52-13-246-255.us-west-2.compute.amazonaws.com PUERTO ESTADO SERVICIO 443/tcp abierto https | ssl-enum-ciphers: | TLSv1.1: | cifrados: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - fuerte | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - fuerte | TLS_RSA_WITH_AES_128_CBC_SHA - fuerte | TLS_RSA_WITH_AES_256_CBC_SHA - fuerte | compresores: | NULL | TLSv1.2: | cifrados: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - fuerte | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - fuerte | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - fuerte | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - fuerte | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - fuerte | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - fuerte | TLS_RSA_WITH_AES_128_CBC_SHA - fuerte | TLS_RSA_WITH_AES_128_CBC_SHA256 - fuerte | TLS_RSA_WITH_AES_128_GCM_SHA256 - fuerte | TLS_RSA_WITH_AES_256_CBC_SHA - fuerte | TLS_RSA_WITH_AES_256_CBC_SHA256 - fuerte | TLS_RSA_WITH_AES_256_GCM_SHA384 - fuerte | compresores: | NULL |_ fuerza mínima: fuerte Nmap hecho: 1 dirección IP (1 host activo) escaneado en 0.11 segundos

En este punto, puedes detenerte si quieres porque el objetivo es asegurarte de que puedes conectarte a SparkPost utilizando TLS 1.2.  Si tu conexión soporta TLS 1.2, eso es lo que necesitamos en este momento, así que estamos bien aquí.  Ve y compra una cerveza a ese SysAdmin y dile gracias.

Envíanos un correo electrónico y háznoslo saber que tuviste éxito.


Comprobando el soporte en tu Mac

La razón más común por la que puedes necesitar comprobar el soporte en tu Mac es que lo uses para desarrollo local, así que asumamos eso y comprobemos tu soporte. 

El método menos invasivo es usar curl, que debería estar integrado en cada Mac. Lanza la aplicación Terminal y usa la bandera de protocolo para probar específicamente TLS1.2.

curl https://api.sparkpost.com/ --tlsv1.2 --verbose * Intentando 54.213.185.174... * TCP_NODELAY establecido * Conectado a api.sparkpost.com (54.213.185.174) puerto 443 (#0) * ALPN, ofreciendo h2 * ALPN, ofreciendo http/1.1 * Selección de cifrado: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * ubicación de verificación de certificado correctamente establecida: * CAfile: /etc/ssl/cert.pem CApath: none * TLSv1.2 (SALIDA), apretón de manos TLS, saludo del Cliente (1): * TLSv1.2 (ENTRANTE), apretón de manos TLS, saludo del Servidor (2): * TLSv1.2 (ENTRANTE), apretón de manos TLS, Certificado (11): * TLSv1.2 (ENTRANTE), apretón de manos TLS, intercambio de claves del Servidor (12): * TLSv1.2 (ENTRANTE), apretón de manos TLS, Servidor completado (14): * TLSv1.2 (SALIDA), apretón de manos TLS, intercambio de claves del Cliente (16): * TLSv1.2 (SALIDA), cambio de cifrado TLS, saludo del Cliente (1): * TLSv1.2 (SALIDA), apretón de manos TLS, Término (20): * TLSv1.2 (ENTRANTE), cambio de cifrado TLS, saludo del Cliente (1): * TLSv1.2 (ENTRANTE), apretón de manos TLS, Término (20): * Conexión SSL utilizando TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, el servidor aceptó usar h2 * Certificado del servidor: * sujeto: CN=*.sparkpost.com * fecha de inicio: 30 de enero 00:00:00 2020 GMT * fecha de caducidad: 28 de febrero 12:00:00 2021 GMT * subjectAltName: host "api.sparkpost.com" coincide con el certificado "*.sparkpost.com" * emisor: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon * Verificación de certificado SSL ok. * Usando HTTP2, el servidor soporta multiuso * El estado de conexión cambió (HTTP/2 confirmado) * Copiando datos de HTTP/2 en el búfer de conexión después de la actualización: len=0 * Usando ID de flujo: 1 (manejador fácil 0x7fbd69805200) > GET / HTTP/2 > Host: api.sparkpost.com > User-Agent: curl/7.54.0 > Accept: */* > * El estado de conexión cambió (MAX_CONCURRENT_STREAMS actualizado)! < HTTP/2 200 < fecha: Thu, 07 May 2020 15:14:30 GMT < content-type: text/plain < content-length: 95 < servidor: msys-http < * Conexión #0 al host api.sparkpost.com dejó intacta ¡Oh, hola! ¡Deberías trabajar con nosotros y construir cosas increíbles!

Si deseas probar usando la conexión SMTP, también puedes hacerlo con este comando:

openssl s_client -crlf -starttls smtp -tls1_2 -connect smtp.sparkpostmail.com:587

Devuelve una gran cantidad de datos que incluyen:

SSL-Session: Protocolo : TLSv1.2 Cifrado : ECDHE-RSA-AES256-GCM-SHA384


Comprobando el soporte en Windows

Similar al caso de uso de Mac, la razón más común por la que puedes necesitar comprobar el soporte en tu Windows es que lo uses para desarrollo local, así que asumamos eso y comprobemos tu soporte. 

Windows 7 y Windows 10 usan básicamente el mismo proceso.  Si estás usando algo anterior, actualiza ya que las versiones anteriores no soportan TLS 1.2.

Empieza por hacer clic en INICIO en la esquina inferior izquierda (normalmente).


Escribe "Opciones de Internet" y selecciona la coincidencia de la lista resultante.


Haz clic en la pestaña Avanzado y desde allí desplázate hacia abajo hasta la parte inferior. Si TLS 1.2 está marcado, ya estás listo. Si no lo está, marca la casilla adyacente a Usar TLS 1.2 y luego Aplica.


¿Espera, qué? ¿No hay 1.2? 

Vaya, amigo.  Tu trabajo aún no está terminado.

Si solo tienes TLS1.1, entonces deberías actualizar la configuración de tus cifrados.

Suponiendo que estés usando Linux y Apache para la gestión de conexiones TLS, puedes actualizar la configuración SSL modificando esta línea para agregar “+TLSv1.2 ”:

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2 

(Nota al margen: Dado que ya no están realmente soportadas en ningún lugar, también tiene sentido eliminar las configuraciones 1.0 y 1.1 mientras estás aquí).

Esa configuración generalmente se encuentra en /etc/httpd/conf.d/ssl.conf 

Reinicia Apache y estarás listo para continuar. 

service httpd restart

Si estás usando Nginx, querrás modificar esta línea de manera similar:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Esa configuración generalmente se encuentra en /etc/nginx/conf.d/ 

Reinicia Nginx y estarás listo para continuar. 

service nginx restart

Si te encuentras con algún mensaje de error con el reinicio, es posible que tengas una biblioteca SSL desactualizada.  Asegúrate de estar usando al menos openssl v1.0.1g.

Si estás usando Windows, las instrucciones para configurar TLS1.2 están en la sección “Comprobando el soporte en Windows” arriba.

¿Todo listo ahora? Envíanos un correo electrónico y háznoslo saber que tuviste éxito.


Yendo un paso más allá

¿Por qué detenerse en TLS 1.2 cuando sabes – solo sabes – que todos tendremos que actualizar a TLS 1.3 en el próximo año o más?  ¿Por qué no simplemente actualizar a TLSv1.3 mientras estamos en eso?

Desafortunadamente, los ALB de AWS aún no soportan TLS1.3, así que si actualizas tu configuración, tu conexión a SparkPost y cualquier otro servicio de AWS que utilice la capa ALB seguirá estando limitada a TLS1.2. Personalmente, aún creo que es una buena idea adelantarse y actualizar a 1.3 mientras haces cambios de todos modos. 

Si deseas agregar soporte para TLS 1.3, probablemente deberás actualizar tu biblioteca OpenSSL primero a V1.1.1 o posterior y luego agregar +TLSv1.3   a la línea de protocolo mencionada arriba.  Instrucciones similares se pueden encontrar aquí para Nginx y Cloudflare también.


Mantente seguro allá afuera

Finalmente, sería genial si pudieras enviarnos un correo electrónico rápido para hacernos saber que has verificado que eres capaz de TLS 1.2.  Realmente no queremos cortar a nadie y la fecha límite es septiembre de 2020.  Si sabemos que todos están en la zona segura, nos sentiremos mucho mejor al desactivar el soporte viejo.

Sign up

La plataforma potenciada por IA para Marketing, Soporte y Finanzas

Al hacer clic en "Obtener una demostración" aceptas los términos de Bird's

Sign up

La plataforma potenciada por IA para Marketing, Soporte y Finanzas

Al hacer clic en "Obtener una demostración" aceptas los términos de Bird's

Sign up

La plataforma potenciada por IA para Marketing, Soporte y Finanzas

Al hacer clic en "Obtener una demostración" aceptas los términos de Bird's

Channels

Grow

Engage

Automate

APIs

Resources

Company

Socials

Crecer

Gestionar

Automatizar

Crecer

Gestionar

Automatizar