Históricamente , los Nombres Distinguidos en los certificados (especificados por X.500) fueron diseñados para designar una entidad dentro del Directorio , que es El repositorio global, estructurado en árbol, para los datos de gestión de identidad. El Directorio se puede considerar como un servidor LDAP gigante con delegación a los sub-servidores, de una manera similar a la del DNS . Sin embargo, en realidad, el Directorio nunca existió, y LDAP es un subconjunto práctico del Protocolo de acceso a directorios . Aún así, los principios de nomenclatura se mantuvieron en vigor.
Un DN es una secuencia ordenada de elementos con nombre escritos que, para el Directorio, deben aparecer en el orden: País, Estado o Provincia, Organización, Unidad organizativa (posiblemente varios) y luego Nombre Común. X.500 es bastante abierto y otros pedidos son posibles (y el formato admite poner varios elementos de nombre en el mismo nivel), pero la idea general es que el Nombre común es el nivel más bajo de la jerarquía. Por lo tanto, el Nombre común para una entidad, cualquier entidad, es el elemento de denominación más preciso.
Dado que el Directorio no existe realmente, puede poner casi cualquier cosa que desee en el Nombre común, sujeto a las siguientes restricciones:
- La codificación debe cumplir con la X.509 especificación ASN.1 : el nombre común se limita a 64 caracteres (64 puntos de código si usa
UTF8String
, como debería, según el estándar).
- El
IssuerDN
de un certificado debe ser igual al SubjectDN
de su emisor. Las reglas de igualdad son teóricamente que no distinguen entre mayúsculas y minúsculas, pero las reglas pueden ser complejas de implementar en un mundo Unicode completo, por lo que es mejor que se asegure de tener igualdad de bytes a bytes, que funcionará correctamente en todas partes.
- El certificado de un servidor SSL debe contener el nombre del servidor como lo espera el cliente (si usa HTTPS, este nombre será el que figura en la URL). Esto se especifica en RFC 2818 . La extensión
Subject Alt Name
se usa normalmente, pero el nombre común sirve como copia de seguridad en caso de que falte esta extensión. Dado que las implementaciones de los clientes SSL no siempre se han adherido estrictamente al RFC relevante, es mejor evitar los problemas, si el certificado del servidor SSL contiene el nombre DNS del servidor como nombre común (nombre completo, como en " security.stackexchange.com
").
- Cuando un certificado, o una identidad extraída de un certificado, se "muestra" a un usuario humano, el Nombre común figurará de manera prominente. Por ejemplo, si utiliza el inicio de sesión con tarjeta inteligente en un sistema Windows, entonces la pantalla de inicio de sesión mostrará el Nombre común en letras grandes cuando se inserte la tarjeta inteligente. Así que es mejor que el nombre común sea significativo para el hombre común.
En el caso de un servidor VPN, el certificado del cliente es para el uso exclusivo del servidor. El servidor interpreta el contenido del certificado, incluido el DN del sujeto y su nombre común, en la forma que lo considere conveniente, incluso ignorándolo por completo. Por ejemplo, en un contexto de Microsoft IIS + Active Directory, cuando un cliente se autentica a través de un certificado, el servidor usará el Nombre principal del usuario tal como se encuentra en la extensión Subject Alt Name
, bajo una específica de Microsoft OID El nombre común puede mostrarse al usuario humano, si hay un usuario humano (por ejemplo, como parte de una ventana emergente de selección de certificado), pero se ignorará con fines de autenticación.
En general, los certificados de su cliente deberán contener lo que sea requerido por el sistema de autenticación que usa el servidor VPN, y como es altamente configurable, esto depende mucho del contexto local. Por ejemplo, el servidor VPN puede delegar la autenticación a un servidor RADIUS , en cuyo caso las características del certificado (incluido el nombre común) será descrito por la documentación del servidor RADIUS; para el servidor VPN, esto sería solo un blob opaco.