Estoy probando una aplicación basada en .net que se ejecuta en un servidor Win2012r2 que proporciona servicios web basados en http y confío en SChannel de Windows para implementar la autenticación mutua tls1.2 contra los clientes con capacidad tls1.2.
Hasta ahora, la autenticación mutua ha funcionado muy bien (el certificado del cliente se valida correctamente en la lista de emisores de confianza definidos y activos en el almacén de certificados del equipo local).
Ayer me encontré con el siguiente escenario que de alguna manera me desconcierta: incluso si el cliente presenta una longitud de certificado de 0, el protocolo de enlace parece ser técnicamente exitoso y no da como resultado una falla de protocolo de enlace o una alerta de protocolo de enlace:
- (en el lado del servidor) Servidor Hello, Certificate, Server Key Exchange, Solicitud de certificado , Server Hello Done;
- (en el lado del cliente) Certificado, Intercambio de claves de cliente, Cambiar espec. de cifrado, Mensaje de reconocimiento cifrado (sin embargo, el cliente de prueba no proporciona ningún certificado de cliente - longitud del certificado de cliente de 0 - durante el protocolo de enlace);
- (en el lado del servidor): cambiar la especificación de cifrado , mensaje de Apretón de manos cifrado;
¿Por qué el lado del servidor no está terminando el protocolo de enlace (falla o alerta de Handshake) después de no obtener un certificado de cliente?
¿Podría ser simplemente la forma en que wireshark está interpretando / analizando el proceso de negociación?
¿Es esto algo configurable / ajustable a nivel de SChannel o solo se puede ajustar a nivel de aplicación?