Actualización de Lista de Entidades Raices de Confianza y uso de Certificados Clientes para sitios SSL

Hoy me ha parecido interesante comentar sobre una experiencia vivida recientemente mientras visitaba un cliente. El caso es que tras una jornada de trabajo, se nos indica que hay problemas en el acceso a diversas aplicaciones web, y coincidía que todas usaban HTTPS y habían sido configuradas para requerir certificados clientes.

El error observado por los clientes era:

12-10-2012 8-31-43 PM

 

Tras una revisión de los visores de suceso en los servidores Web, pudimos identificar los siguientes eventos:

Event Type: Warning
Event Source: Schannel
Event Category: None
Event ID: 36885
Date:
Time:
User:
Computer: COMPUTERNAME
Description: When asking for client authentication, this server sends a list of trusted certificate authorities to the client. The client uses this list to choose a client certificate that is trusted by the server. Currently, this server trusts so many certificate authorities that the list has grown too long. This list has thus been truncated. The administrator of this machine should review the certificate authorities trusted for client authentication and remove those that do not really need to be trusted.

Esto ocurre porque hay demasiadas entradas en la lista de Entidades Raíces de Confianza en el servidor de aplicación, y como parte del proceso de negociación SCHANNEL se debe enviar esta lista a los clientes para que puedan usar un certificado cliente emitido por una Entidad Certificador en la que el servidor confía.

La particularidad de este proceso es que el tamaño del paquete en el SCHANNEL envía esta lista no puede exceder los 12,228 KB (valor por defecto), por lo tanto si la lista es muy larga tendrá que truncar la lista lo que traerá como consecuencia los errores descritos anteriormente, ya que lo más probable es que tenga que usar un certificado asocia a una entidad raíz que fue descartada de la lista.

COMO RECUPERAR EL ACCESO A LAS APPLICACIONES WEB

La verdad es que existen dos opciones, la primera de ellas y por la cual yo decantaría seria el evitar que SCHANNEL envíe la lista de entidades de confianza durante el proceso de negociación SSL.

Para hacerlo se deberá modificar el registro en los servidores IIS.

Advertencia Pueden producirse problemas graves si modifica incorrectamente el registro mediante el Editor del registro o con cualquier otro método.

Para ello habrá que crear una entrada en el registro ya que de forma predeterminada no existe.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

 

Nombre de valor: SendTrustedIssuerList
Tipo de valor: REG_DWORD
Información del valor: 0 (falso)

 

Es importante resaltar que a raíz de este cambio, cuando los clientes consuman la aplicación Internet Explorer le mostrara todos los certificados de cliente instalados en su perfil para que seleccione el que se usara para la autenticación.

Otra opción igualmente beneficiosa es la de eliminar certificados raíces de confianza. Esta actividad debería ser regular con el propósito de quitar los certificados que no se sigan utilizando.  Consistiria en dirigirse a cada servidor IIS y tras abrir la consola mmc (almacén de certificados de la cuenta de equipo) eliminar las entidades no necesarias del contenedor Entidades emisoras de certificados raíz de confianza.

12-10-2012 8-19-32 PM

Importante: Windows necesita ciertos certificados que no deberían eliminarse, para conocer más sobre esta lista, este artículo es una vista obligatoria.

https://support.microsoft.com/kb/293781

Por último, pero no menos importante es el considerar la instalación del parche 933430. Este se supone debe ser instalado únicamente cuando se experimente este problema y lo que hará es actualizar la DLL de Schannel. El cambio consiste en incrementar el tamaño del paquete de negociación SCHANNEL para el intercambio de certificados raíces de confianza a 16 KB. En mi experiencia personal, esta actualización permitirá reducir la probabilidad de verse afectado por esta limitación, pero en ciertos escenarios incluso no llegara a ser suficiente para evitar que el paquete sea truncado y que desencadenen los errores nuevamente.

COMO EVITAR QUE OCURRA

Como ya comento en el post, lo más importante sería hacer un adecuado mantenimiento de los contenedores de certificado en los servidores WEB y reducir el número de entidades raíces de confianza que no se usan.  Sin embargo me gustaría resaltar algo más y es que Microsoft cuenta con un programa de actualización de los contenedores de entidades raíces, este programa consiste en la instalación de una actualización que agrega nuevos certificados…… Es por ello que recomiendo ser extremadamente cuidadoso con la aplicación de este parche en servidores, y particularmente servidores web, ya que depende de la versión de sistema operativo ejecutado podría agregar más de 100 certificados nuevos.

 

¿Cuál es el parche?…. El 931125…https://support.microsoft.com/kb/931125

El parche para SO servidor no es de instalación automática en Windows Server 2003 por lo que deberá ser aprobado o desplegado vía WSUS o SCCM bajo consentimiento expreso de los administradores.

Para saber más sobre el programa de actualización para clientes post Windows Vista y servidores post Windows 2008 visitar el KB 931125 .

Espero el post sea de ayuda y evite algunos momentos de “stress”.

 

NOTA : ESTE PROBLEMA PUEDE AFECTAR A SERVIDORES IIS EN WINDOWS SERVER 2008 YA QUE EL TAMAÑO MAXIMO DEL PAQUETE DE NEGOCIACION HA SIDO DEFINIDO EN 16 KB.