Cómo resolver un problema de TLS Handshake cuando se conecta a internet

Primero, lea la respuesta de David Brower (no repetiré su explicación):

La respuesta de David Brower a ¿Cómo resuelvo un problema de TLS Handshake cuando me conecto a Internet?

Como Jeff Brunner señala en su respuesta colapsada pero válida, si sucede en muchos sitios, una posible causa de problemas es tener una fecha y hora incorrectas. La fecha se usa para probar si el certificado que establece que el sitio es quién dice que es, es válido o expiró. Tener una fecha incorrecta puede hacer que parezca que los certificados no son válidos. Este es un caso especial del punto de David Brower sobre los certificados incorrectos.

Eso sería algo inusual en estos días, porque la mayoría de los sistemas están configurados para obtener automáticamente el tiempo de la red, y la mayoría de las personas notarían el problema de todos modos, pero es un elemento para verificar.

También sugiere probar otro navegador. Esto es útil para reducir el problema. Si solo ocurre con un navegador, no le dice por qué, pero sí le dice que es algo que se hace de manera diferente con ese navegador (sin embargo, tal vez no sea incorrecto para el navegador).

Y si sucede con un navegador diferente, puede recibir un mensaje de error diferente que puede aclarar la situación.

Otra causa de problemas durante los apretones de manos TLS es si no puede mantener una conexión funcional al sitio a través del apretón de manos TLS. O bien, la conexión se abre pero no puede pasar el tráfico, o se cae o se bloquea después de solo una pequeña cantidad de datos.

Connect-but-no-data puede ocurrir con una configuración de firewall que permite conexiones pero no datos. No he visto que esto suceda en mucho tiempo; la mayoría de los enrutadores domésticos al menos no le dan una forma de configurar mal de esta manera. O puede suceder cuando una conexión apenas funciona y no puede manejar paquetes más grandes.

He visto un enrutador popular que si configuras solo para permitir que ciertos dispositivos se conecten, y tu dispositivo no está en la lista, pasará un poco de tráfico antes de iniciarte. Esto puede suceder durante el apretón de manos TLS.

Intentar usar HTTPS en un sitio que no esté usando TLS fallará durante el protocolo de enlace, incluso si está en el puerto 443. (El puerto no importa). A veces surge la situación en la que un sitio que se supone que usa TLS recibe un error que informa como si la conexión fuera HTTP. Esto no será obvio a menos que se conecte por otros medios (como los comandos curl o wget ) y observe la respuesta real.

Una versión no hostil de una situación de hombre en el medio como la que describió David Bower es un proxy solo HTTP que se le pide al proxy HTTPS. Es, de hecho, una situación MITM, y con razón rechazada, a pesar de que no es un ataque.

Entonces, algunas cosas para probar:

  • Prueba diferentes sitios
  • Pruebe con una conexión de red diferente (es decir, cableada en lugar de WiFi)
  • Pruebe con una red diferente (por ejemplo, configure su teléfono como punto de acceso, o vaya a un café, etc.)
  • Intenta conectarte con el comando curl . Puede usarlo para conectarse al servidor: puerto sin TLS, y puede usarlo para obtener un rastro del protocolo de enlace TLS, lo que debería permitirle reducir el problema de manera bastante definitiva, si puede reproducirlo con curl .
  • Si no puede reproducirlo con curl , deberá observar más de cerca lo que está haciendo su navegador: configuración de proxy, extensiones, malware, extensiones de “privacidad” antivirus que escanean sus conexiones “seguras”, etc. Al escanear una conexión “segura”, no es tan segura: debe confiar en el software, tanto para no violar su privacidad como para no estropear la conexión, y he visto lo último, y me preocuparía lo primero.

En algún lugar de esto, deberías ser capaz de descubrir qué está pasando. Sin embargo, la interpretación de la salida de seguimiento de rizo requerirá conocer más detalles sobre el protocolo de enlace TLS.

Pero deberías llegar a algo que se vea así:

== Información: conexión SSL utilizando TLSv1.2 / ECDHE-ECDSA-AES128-GCM-SHA256
== Información: ALPN, servidor aceptado para usar http / 1.1
== Información: Certificado del servidor:
== Información: asunto: C = US; ST = California; L = Vista a la montaña; O = Google Inc; CN = www.google.com
== Información: fecha de inicio: 23 de enero 13:36:46 GMT de 2018
== Información: fecha de caducidad: 17 de abril 13:36:00 GMT de 2018
== Información: subjectAltName: host “www.google.com” coincide con el certificado “www.google.com”
== Información: emisor: C = US; O = Google Inc; CN = Autoridad de Internet de Google G2
== Información: certificado SSL verificar ok.

Desde ese punto, el apretón de manos está completo. La primera línea proporciona la versión y el cifrado de TLS, y además le brinda la información del certificado del servidor.

No se conecta TLS a “Internet”. Utiliza TLS cuando se conecta a un sitio en particular. Puede haber problemas de configuración con ese sitio (frecuentemente certificados que son malos de alguna manera).

Otra posibilidad es un “hombre en el medio” que está interceptando las conexiones TLS y estropeando el camino de alguna manera. Algunos programas antivirus instalan cosas que hacen eso, aunque es una práctica dudosa; el peor de los casos es que un virus en sí mismo ha instalado algo que está interceptando las conexiones TLS y está estropeando el proceso. Mal virus!

Entonces, si es un sitio único, probablemente no seas tú.

Si se trata de todos o la mayoría de los sitios de TLS, podría ser su máquina, y debe hacer una verificación de virus y ver si hay un antivirus que pueda tener la culpa