¿Por qué se requiere un certificado de CA para los clientes EAP-TLS?

8

Al configurar clientes con WPA2 EAP-TLS, la mayoría de los clientes (es decir, mi teléfono, mi computadora) requieren un par de llaves público / privado (por razones obvias) y un certificado de autoridad de certificación.

Es este segundo parámetro para el que no estoy seguro de su uso. Mi configuración actual se ve así:

.
└── root-ca
    ├── wifi-client-ca
    │   └── client1-client-cert
    └── wifi-server-cert

Tengo una única CA raíz autofirmada ( root-ca ) que se ramifica por debajo. Mi servidor RADIUS usa wifi-server-cert como el certificado SSL y usa la autoridad de certificado wifi-client-ca para validar los certificados de cliente.

Uso los certificados de cadena en la implementación en todas partes, tanto para el cliente como para los componentes del certificado del lado del servidor.

No he tenido ningún problema para conectar usando client1-client-cert y wifi-client-ca en mis máquinas Ubuntu, pero no he podido conectarme en Android usando estos mismos certificados. Estoy pensando que el problema radica en el hecho de que Android no está escalando la cadena de certificados correctamente.

Esto se divide en dos preguntas similares:

  1. ¿Por qué se requiere un certificado de CA para los clientes de EAP-TLS / qué hace?
  2. ¿Qué certificado de CA se debe usar en mis clientes, el certificado root-ca (que firma directamente el wifi-server-cert ) o el wifi-client-ca ?
pregunta Naftuli Kay 02.01.2014 - 03:58
fuente

1 respuesta

11

EAP-TLS realmente encapsula un protocolo de enlace SSL / TLS, en el que tanto el servidor como el cliente se envían mutuamente un certificado. Esto tiene las siguientes propiedades:

  • Cuando el servidor envía un certificado , en realidad envía una cadena de certificados , incluida la CA que la emitió y la CA por encima, y así sucesivamente, hasta la raíz (la raíz misma puede enviarse, pero esto es opcional).
  • Del mismo modo, cuando un cliente envía un certificado, también forma parte de la cadena de certificados.
  • El cliente valida la cadena del servidor, el servidor valida la cadena del cliente.

Por lo tanto, en el lado del cliente, con sus anotaciones:

  • El cliente debe conocer wifi-client-ca porque debe enviarlo como parte de su "cadena de clientes" al servidor.
  • El cliente debe conocer y trust root-ca para poder validar el certificado del servidor (esto es crucial para la seguridad: esto protege al cliente de hablar con un punto de acceso falso). / li>

Algunos clientes podrían estar convencidos de confiar directamente en wifi-server-cert , pero no todos permiten esa confianza directa, y eso significaría problemas cuando el certificado expire.

Puede ser esclarecedor considerar lo siguiente: el certificado del cliente es para el servidor, no para el propio cliente; Por lo tanto, el cliente no necesita confiar en su propio certificado. De manera genérica, la CA raíz para el certificado del servidor y la CA raíz para los certificados de cliente pueden ser distintas y no estar relacionadas entre sí. Aún así, el cliente debe conocer (pero no necesariamente confiar ) la cadena de su propio certificado para poder enviarlo al servidor, como mandatos SSL / TLS.

    
respondido por el Thomas Pornin 02.01.2014 - 17:41
fuente

Lea otras preguntas en las etiquetas