Validación del nombre de host para el certificado del lado del servidor

0

Tengo un proxy inverso que se conecta a una aplicación que presenta un certificado utilizado para la validación basada en PKI. Me preguntaba si debería imponer la condición de que el nombre común (o subjectAltName) en el certificado coincida con el nombre del host junto con el cliente. El correspondiente RFC 6125 dice:

If the hostname does not match the identity in the certificate, user oriented 
clients MUST either notify the user (clients MAY give the user the opportunity to 
continue with the connection in any case) or terminate the connection with a bad 
certificate error.  Automated clients MUST log the error to an appropriate audit
log (if available) and SHOULD terminate the connection (with a bad certificate 
error). Automated clients MAY provide a configuration setting that disables 
this check, but MUST provide a setting which enables it.

Para el escenario de proxy inverso, ¿la conexión del lado del servidor es un "cliente automatizado" o un "cliente orientado al usuario"?

    
pregunta Rahul 19.11.2015 - 20:30
fuente

3 respuestas

2

Es tu propia decisión. Pros y contras de cada lado.

Si aplicas controles estrictos, eso es una cosa más que se puede romper. Si no le importa el cifrado desde el equilibrador de carga al servidor de back-end, entonces déjelo apagado. Esto es algo que puede elegir hacer si ha decidido que el lado LAN del LB es lo suficientemente seguro para usted.

  • Si decide que necesita preocuparse por los atacantes activos del lado de la LAN, entonces vuelva a encriptarlos (o tal vez nunca descifre y solo haga un balance de carga limitado) y sea estricto al respecto.

  • Si decide que necesita preocuparse por los escuchas pasivos solo en el lado de LAN, el cifrado sin autenticación será suficiente.

  • Si decide que no debe preocuparse por ningún atacante del lado de LAN, entonces no necesita cifrado allí.

Y en cuanto al tipo de cliente: "cliente automatizado". Los usuarios necesitan / no deben conocer ningún equilibrador de carga, incluso si existe en la ruta de la red.

    
respondido por el StackzOfZtuff 19.11.2015 - 22:37
fuente
1

Depende:

  • Si espera que un certificado específico, la forma más segura es configurar su proxy inverso de modo que espere exactamente este certificado. En este caso, el asunto real del certificado no importa y también puede ser autofirmado, porque el proxy inverso no aceptará nada más que este certificado.
  • Si, en cambio, acepta un certificado siempre que esté firmado por una CA de confianza, deberá verificar el asunto de manera adicional. De lo contrario, cualquier otro certificado emitido por una CA de confianza podría llevar a cabo un ataque de intermediario y, al menos, si utiliza una CA pública, estos certificados son fáciles de obtener sin ningún tipo de piratería.

Para los certificados firmados por una CA pública, generalmente el nombre en subjectAltName / CN se compara con el nombre de host real del servidor (desde la URL) porque esta es la parte que se considera lo suficientemente específica y se espera que nadie pueda obtener un certificado para un nombre de host (s) que no posee. Si tiene otra propiedad que se puede usar como identificador seguro con las mismas propiedades que esta, también podría usarse en su lugar, pero la CA pública generalmente quiere el nombre del host.

La forma en que se propaga el error en caso de que el certificado no coincida depende del diseño exacto de su aplicación. Pero, por lo general, el proxy inverso es parte del servidor y, en este caso, los errores en la validación significan que hay un error en el servidor que debe solucionarse allí. Por lo tanto, podría decirle al cliente que algo está mal, pero los detalles reales probablemente no deberían ser comunicados al cliente.

    
respondido por el Steffen Ullrich 19.11.2015 - 22:33
fuente
0

Lo primero y más importante es que un proxy inverso es, por definición, un atacante de hombre en el medio.

Anotaciones notadas: cuando se usa donde no se inspeccionan los paquetes TLS / SSL.

Como han dicho otros, es su decisión, pero no puede haber SEGURIDAD REAL para una comunicación cuando hay un proxy inverso presente.

-jim

    
respondido por el jwilleke 20.11.2015 - 13:30
fuente

Lea otras preguntas en las etiquetas