Autentificación de cliente SSL / TLS por IP

4

¿Hay algún mecanismo en SSL / TLS que permita vincular un certificado a un dispositivo? Ejemplo:

Hay un cliente que habla con un servidor y, durante la configuración de SSL / TLS, hay una autenticación mutua. El servidor verifica que el cliente presentó un certificado que es válido (fecha de caducidad, CRL / OCSP, etc.) y tiene los campos necesarios que el servidor desea ver (dominio x.example.com, firmante de XYZ Corp, etc.).

Sin embargo, también nos gustaría que el servidor relacione ciertas características del certificado del cliente (huella digital, serie, etc.) con el propio cliente (IP, nombre de host, NetBT, etc.). ¿Hay algún mecanismo integrado o de terceros que haga esto, o me estoy perdiendo algo?

La preocupación es que un certificado será exportado desde un cliente por alguien con privilegios elevados (tendremos ACL estrictas, pero suponemos que no son efectivas para detener al atacante) y luego se instala en un segundo dispositivo. Entiendo que, si alguien tuviera privilegios elevados en una máquina, solo podrían hacer cualquier maldad que quisieran hacer en esa caja utilizando el entorno existente, pero si pueden usar el certificado en un segundo dispositivo, podrían pasar por alto los controles de seguridad ( firewalls locales, av, etc.) y auditorías de seguridad (el firewall está habilitado, av está activado, las acciones se registran y se envían al servidor de syslog, etc.).

    
pregunta JZeolla 23.07.2013 - 17:21
fuente

2 respuestas

2

Desde el punto de vista del servidor, todo lo que se puede ver es el certificado del cliente (un objeto público, que es básicamente un conjunto de bytes que todos conocen) y también un firma del cliente (la firma se calcula durante el protocolo de enlace SSL ). La firma, al ser verificada, ofrece cierta garantía al servidor de que quienquiera que esté hablando con ella también conoce la clave privada (que corresponde a la clave pública en el certificado).

La clave privada es todo . En criptografía en general, eres lo que sabes. "El dispositivo cliente" se define como "cualquier sistema que pueda calcular firmas comprobables con la clave pública del dispositivo". Si un administrador malvado puede absorber toda la información privada de un dispositivo, entonces podrá obtener la clave privada y suplantar el dispositivo con, digamos, otro elemento de hardware o incluso una PC. No hay nada que pueda hacer al respecto del servidor: desde el servidor, solo se pueden ver ceros y unos a través de cables. El servidor no puede saber si existe alguna pieza de hardware.

Para lograr el tipo de resistencia que está buscando, entonces necesita resistencia a la manipulación indebida : haga imposible, o al menos muy difícil, extraer toda la información privada de un cliente dispositivo. Es el área típica de tarjeta inteligente . Ahora puedes ver por qué los teléfonos móviles tienen una tarjeta SIM ...

    
respondido por el Thomas Pornin 23.07.2013 - 17:29
fuente
1

Parece que estás tratando de vincular una pieza de software o una identidad a una sola computadora física. Esto no se puede hacer . En algunas circunstancias, algunas soluciones funcionarán algunas veces, suponiendo que nadie intente eludirlas. Pero en el sentido general, este es un problema imposible.

Una solución como lo insinuó Thomas es usar un token de hardware criptográfico que tenga una clave privada que el token no revelará. Luego, puede vincular el software o la identidad al token de hardware (no a la estación de trabajo), lo que requiere que el token esté presente para cualquier operación que desee. La distinción aquí es que los tokens de seguridad física pueden diseñarse para evitar la manipulación. Las computadoras de propósito general no pueden.

    
respondido por el tylerl 23.07.2013 - 18:55
fuente

Lea otras preguntas en las etiquetas