TLS y su predecesor, SSL, son protocolos criptográficos para proporcionar seguridad en las comunicaciones (confidencialidad e integridad en algunos casos y no repudio en otros) a través de una red.

En TLS unidireccional, o TLS normal, el certificado de servidor X.509 es creado por una CA en la que el cliente puede confiar cuando quiere conectarse. La Infraestructura de Clave Pública (PKI) es responsable de la gestión de la confianza y de la distribución de los certificados. Las autoridades de certificación (CA) desempeñan un papel muy importante en la PKI. Un certificado X.509 no es más que una información sobre el servidor y la clave pública del servidor que está firmada digitalmente por una CA.

Un servidor puede ser configurado para permitir las conexiones de cualquier cliente (como en TLS unidireccional) o puede ser configurado para pedir a cualquier cliente que intente conectarse a él que se autentique. Así, para que un cliente se autentique, es necesario un certificado de cliente. En la autenticación TLS bidireccional, también conocida como TLS con autenticación de certificado de cliente, el certificado de cliente también está involucrado además del certificado de servidor para endurecer el proceso de autenticación. Al igual que un certificado de servidor, un certificado de cliente contiene información básica sobre la identidad del cliente, su clave pública y la firma digital de una CA en este certificado verifica que esta información es auténtica. El certificado del cliente debe estar firmado por una CA en la que confíe el servidor y es obvio que ambos certificados X.509 deben existir antes de la conexión. Cuando usas la interfaz web de Gmail, utilizas el TLS unidireccional a través de la capacidad https del navegador, además de tu contraseña. Si no utilizas tu contraseña, sólo tú puedes verificar que te has conectado a un servidor legítimo pero el servidor de Gmail no puede verificar tu identidad por lo que no podemos decir que la conexión sea segura. Si Gmail ofrece un TLS bidireccional, puedes conectarte fácilmente sin introducir tu contraseña y la conexión se considera segura.

La intención principal de utilizar una conexión TLS bidireccional sería cuando un servidor sólo debe aceptar conexiones TLS de un grupo limitado de clientes permitidos. Un ejemplo puede ser un escenario en el que una organización quiere limitar las conexiones TLS a un servidor para que sólo provengan de los socios o clientes legítimos de la organización. Definitivamente la lista blanca de IP para los clientes no es una buena práctica de seguridad porque la IP puede ser falsificada.

Para simplificar el proceso de handshake TLS de 2 vías, podemos decir

  1. Un cliente envía una solicitud para acceder a información protegida en el servidor.

2. El servidor presenta su certificado X.509 al cliente.

3. El cliente verifica el certificado del servidor validando la firma digital de la clave pública del servidor utilizando la clave pública de la CA.

4. Si el último paso es exitoso, el cliente envía su certificado al servidor.

5. El servidor verifica el certificado del cliente utilizando el mismo enfoque del paso 3.

6. Si tiene éxito, el servidor da acceso a la información protegida al cliente.

Si necesita configurar un servidor web Apache para manejar TLS bidireccional, consulte este documento: http://www.robinhowlett.com/blog/2016/01/05/everything-you-ever-wanted-to-know-about-ssl-but-were-afraid-to-ask/

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.