Autenticar usuarios y dispositivos de IoT con Mutual TLS

Aprenda a implementar el mutuo TLS (mTLS) autenticación para proteger las conexiones de los usuarios y los dispositivos IoT. Incluye instrucciones paso a paso para la configuración del certificado, la configuración del servidor, la implementación del cliente y la resolución de problemas.

Mutuo TLS (mTLS) La autenticación crea un marco seguro para autenticar tanto a los usuarios como a los dispositivos IoT. Esta guía lo guiará en la implementación de mTLS para garantizar una autenticación bidireccional segura entre clientes y servidores.

Guía de inicio rápido

Establecimiento de mutuo acuerdo TLS Sigue un proceso sencillo. Primero, genera los certificados de servidor y cliente necesarios. A continuación, configura tu servidor para que requiera certificados de cliente. Luego, configura tus clientes con sus certificados e implementa la validación de certificados adecuada. Por último, prueba la conexión para asegurarte de que todo funciona como se espera.

SSL unidireccional y mutuo /TLS Autenticación

Una de las características definitorias de SSL /TLS El protocolo es su papel en la autenticación de partes que de otro modo serían anónimas en redes informáticas (como Internet). Cuando visita un sitio web con una confianza pública SSL /TLS certificado, su navegador puede verificar que el propietario del sitio web haya demostrado con éxito el control sobre ese nombre de dominio a una autoridad de certificación (CA) de terceros de confianza, como SSL.com. Si esta verificación falla, el navegador web le advertirá que no confíe en ese sitio.

Para la mayoría de las aplicaciones, SSL /TLS usa este tipo de autenticación unidireccional de un servidor a un cliente; un cliente anónimo (el navegador web) negocia una sesión cifrada con un servidor web, que presenta un SSL / de confianza públicaTLS certificado para identificarse durante el SSL /TLS apretón de manos: Autenticacion mutua, en el que ambos servidores y cliente en el SSL /TLS se autentican, también es posible y puede ser muy útil en algunas circunstancias. En la autenticación mutua, una vez que el servidor se autentica durante el protocolo de enlace, enviará un CertificateRequest mensaje al cliente. El cliente responderá enviando un certificado al servidor para su autenticación: Autenticación del cliente vía mutua TLS requiere que un certificado que incluya el Client Authentication (1.3.6.1.5.5.7.3.2) El uso de clave extendido (EKU) está instalado en el dispositivo cliente. Todos los de SSL.com Certificados de firma de documentos, clientes y correo electrónico incluir autenticación de cliente.

Guía de implementación detallada

Entendimiento mutuo TLS

Tradicional TLS Proporciona autenticación y encriptación del servidor, pero mutua TLS Va más allá y exige que ambas partes presenten certificados digitales. Esta verificación bidireccional garantiza la autenticidad del servidor, permite la autenticación del cliente, establece un canal de comunicación cifrado y evita ataques de intermediarios. El resultado es una conexión de alta seguridad adecuada para aplicaciones sensibles y comunicación con dispositivos IoT.

Requisitos previos

Antes de comenzar la implementación, asegúrese de tener acceso a OpenSSL o una herramienta de gestión de certificados similar. Su servidor web debe ser compatible TLS, y necesitarás acceso a un Autoridad de certificación (CA) o la capacidad de crear una CA privada. Sus clientes también deben admitir la autenticación basada en certificados.

Paso 1: Generación y gestión de certificados

Comience por generar los certificados necesarios para la autenticación del servidor y del cliente. La configuración del certificado del servidor requiere la creación de una clave privada, Generar una solicitud de firma de certificadoy firmar el certificado con su CA.

# Generar clave privada del servidor
openssl Genrsa -fuera servidor.clave 2048
?
# Crear solicitud de firma de certificado de servidor (CSR)
openssl req -nuevo -llave servidor.clave -fuera servidor.csr
?
# Firme el certificado del servidor con su CA
openssl x509 -req -in servidor.csr -CALIFORNIA ca.crt -Clave ca.clave -Createserial -fuera servidor.crt

Para los certificados de cliente, siga un proceso similar para crear sus credenciales únicas:

# Generar clave privada del cliente
openssl Genrsa -fuera cliente.clave 2048
?
# Crear cliente CSR
openssl req -nuevo -llave cliente.clave -fuera cliente.csr
?
# Firmar el certificado del cliente
openssl x509 -req -in cliente.csr -CALIFORNIA ca.crt -Clave ca.clave -Createserial -fuera cliente.crt

Paso 2: Configuración del servidor

El servidor debe estar configurado para requerir y validar certificados de cliente. A continuación, se muestra un ejemplo de configuración para Nginx:

servidor {
    escuchan 443 ssl;
    nombre del servidor ejemplo.com;
?
    ssl_certificate /camino a/servidor.crt;
    ssl_certificate_key /camino a/servidor.llave;
    certificado_cliente_ssl /ruta/a/ca.crt;
    Cliente de verificación SSL en;
    protocolos_ssl TLSv1.2 TLSv1.3;
    cifrados ssl ALTO:! aNULL:!MD5;
    cifrados de servidor de preferencia ssl en;
}

Para servidores Apache, utilice esta configuración:

<VirtualHost *:443>
    Nombre del servidor example.com
    
    Motor SSL on
    Archivo de certificado SSL /ruta/al/servidor.crt
    Archivo de clave de certificado SSL /ruta/al/servidor.clave
    Archivo de certificado SSLCA /ruta/a/ca.crt
    Cliente SSLVerify exigir
    Profundidad de verificación SSL 1

Paso 3: Implementación del cliente

La autenticación basada en navegador requiere importar el certificado del cliente al almacén de certificados de su navegador. Cada navegador gestiona este proceso de forma diferente, pero, por lo general, encontrará la opción en la configuración de seguridad o privacidad.

Para los dispositivos IoT, deberá implementar la autenticación basada en certificados en su código. A continuación, se muestra un ejemplo que utiliza la biblioteca de solicitudes de Python:

importar solicitudes 
?
certificado_cliente = ('cliente.crt', 'cliente.clave')
certificado ca = 'ca.crt'
?
respuesta = solicitudes .get('https://ejemplo.com',  
                       cert=certificado_cliente,
                       verificar=certificado ca)

Paso 4: Validación del certificado

La validación adecuada de los certificados es fundamental para la seguridad. La implementación debe verificar la integridad de la cadena de certificados, comprobar las fechas de vencimiento, validar el estado de revocación y garantizar el uso adecuado de las claves. A continuación, se muestra un ejemplo de implementación:

obtenidos de criptografía importar x509
obtenidos de criptografía.hazmat.backends importar backend predeterminado
?
def validar_certificado(ruta_certificada):
    con abierto(ruta_certificada, 'rb') as archivo_cert:
        datos del certificado = archivo_cert.read()
        cert = x509.cargar_certificado_pem_x509(datos del certificado, backend predeterminado())
        
        if cert.no válido después < datetime.datetime.ahora():
            aumento ValorError("El certificado ha expirado")
            
        try:
            uso_clave = cert.extensiones.obtener_extension_para_clase(x509.Uso de clave)
            if no uso_clave.propuesta de.firma digital:
                aumento ValorError("Certificado no válido para firma digital")
        excepto x509.extensiones.Extensión no encontrada:
            aumento ValorError("No se encontró la extensión de uso de clave requerida")

Casos de uso de autenticación mutua

Mutuo TLS La autenticación se puede utilizar tanto para autenticar a los usuarios finales como para la autenticación mutua de dispositivos en una red informática.

Autenticacion de usuario

Las empresas y otras organizaciones pueden distribuir certificados de clientes digitales a usuarios finales como empleados, contratistas y clientes. Estos certificados de cliente se pueden utilizar como factor de autenticación para acceder a recursos corporativos como Wi-Fi, VPN y aplicaciones web. Cuando se usa en lugar de (o además de) las credenciales tradicionales de nombre de usuario / contraseña, TLS ofrece varias ventajas de seguridad:
  • Mutuo TLS La autenticación no es vulnerable al robo de credenciales a través de tácticas como phishing,. De Verizon Informe de investigaciones de violación de datos de 2020 indica que casi una cuarta parte (22%) de las filtraciones de datos se deben al phishing. Las campañas de phishing buscan credenciales fácilmente recolectadas, como contraseñas de inicio de sesión en sitios web, no las claves privadas de los certificados de cliente de los usuarios. Como defensa adicional contra el phishing, todos los Firma de correo electrónico, cliente y documentos los certificados incluyen de confianza pública S/MIME para correo electrónico firmado y cifrado.
  • Mutuo TLS la autenticación no puede verse comprometida por una higiene deficiente de las contraseñas o ataques de fuerza bruta a las contraseñas. Puede exigir que los usuarios creen contraseñas seguras, pero ¿cómo sabe que no utilizan la misma contraseña "segura" en 50 sitios web diferentes o la tienen escrita en una nota adhesiva? UNA Encuesta de Google 2019 indica que el 52% de los usuarios reutilizan contraseñas para varias cuentas y el 13% de los usuarios reutilizan la misma contraseña para all de sus cuentas.
  • Los certificados de cliente ofrecen una clara cadena de confianzay se puede gestionar de forma centralizada. Con mutuo TLS, la verificación de qué autoridad de certificación (CA) emitió las credenciales de un usuario se incluye directamente en el proceso de autenticación. SSL.com's herramientas de gestión onlineAPI SWSy el acceso a protocolos estándar como SCEP facilitan la emisión, renovación y revocación de estas credenciales.
SSL.com ofrece múltiples opciones para la emisión y gestión de certificados de clientes:

Mejores prácticas de seguridad

Una seguridad sólida requiere más que simplemente implementar medidasTLS:

  • Implementar la rotación automática de certificados para garantizar que los certificados se actualicen periódicamente
  • Mantener una lista de revocación de certificados para invalidar rápidamente los certificados comprometidos
  • Utilice tamaños de clave seguros de al menos 2048 bits para claves RSA
  • Configure sus servidores para que solo acepten servidores seguros. TLS Versiones y conjuntos de cifrados fuertes

La estrategia de seguridad de su cliente debe incluir la protección de claves privadas con controles de acceso sólidos. Las auditorías de seguridad periódicas ayudarán a mantener la integridad del sistema a lo largo del tiempo.

Solución de problemas comunes

Problemas con la cadena de certificados

Al implementar mTLS, es posible que surjan problemas con la cadena de certificados. Estos suelen deberse a lo siguiente:

  • Cadenas de certificados incompletas
  • Certificados intermedios instalados incorrectamente

Para resolver estos problemas:

  • Verifique que la configuración de su ancla de confianza sea correcta
  • Asegúrese de que estén presentes todos los certificados necesarios

Problemas de conexión

Los problemas de conexión a menudo están relacionados con:

  • Bloqueo de la configuración del firewall TLS tráfico
  • Permisos de certificado incorrectos

Para solucionar problemas:

  • Comprueba que tus certificados estén nombrados correctamente
  • Asegúrese de que coincidan con el uso previsto

Consideraciones de rendimiento

Las consideraciones sobre el rendimiento se vuelven importantes a escala. Para optimizar el rendimiento:

  • Implementar el almacenamiento en caché de sesiones para reducir la sobrecarga de los protocolos de enlace repetidos
  • Elija conjuntos de cifrado eficientes que equilibren la seguridad y el rendimiento
  • Supervise su proceso de validación de certificados para asegurarse de que no genere sobrecarga innecesaria

Conclusión

Mutuo TLS Proporciona una seguridad sólida para la autenticación de usuarios y dispositivos IoT. Esta guía le ha guiado a través de los pasos esenciales de la implementación, desde la generación de certificados hasta la resolución de problemas comunes. Si sigue estas pautas y mantiene buenas prácticas de seguridad, puede crear un sistema de autenticación seguro que lo proteja contra ataques basados ​​en la red y, al mismo tiempo, garantice una identificación confiable del cliente.

Comuníquese con un especialista de SSL.com acerca de Mutual TLS y el IoT

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.