Pregunta:
OpenSSL, x509: ¿cuál es el significado de CN (nombre común)?
Evan Carroll
2013-08-04 04:24:55 UTC
view on stackexchange narkive permalink

Con respecto a estos tres elementos

  1. Autoridades de certificación (CA)
  2. Certificados de puerta de enlace
  3. Certificados de punto final (cliente-cert)

¿Cuál es el significado del nombre común CN con respecto a una VPN? ¿La autoridad de certificación tiene que tener el CN ​​del Gateway Cert? Cualquier otra información sobre el CN ​​en relación con las VPN sería genial.

¿Cómo se usan para la autenticidad de los certificados?

Estoy usando StrongSwan v5.x si es importante.

Dos respuestas:
Thomas Pornin
2013-08-05 00:28:57 UTC
view on stackexchange narkive permalink

Históricamente , los nombres distinguidos en los certificados (especificados por X.500) estaban destinados a designar una entidad dentro del directorio , que es el repositorio global, mundial, estructurado en árbol para datos de gestión de identidad. El directorio se puede considerar como un servidor LDAP gigante con delegación a sub-servidores, de una manera algo similar al DNS. Sin embargo, en realidad, el directorio nunca existió y LDAP es un subconjunto práctico del Protocolo de acceso al directorio . 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 ir en el orden: país, estado o provincia, organización, organización Unidad (posiblemente varias) y luego Nombre común. X.500 es bastante abierto y son posibles otros ordenamientos (y el formato admite poner varios elementos de nombre en el mismo nivel), pero la idea aproximada es que el Nombre común es el nivel más bajo de la jerarquía. Por lo tanto, el nombre común de una entidad, cualquier entidad, es el elemento de nomenclatura más preciso.

Dado que el directorio no existe en realidad, puede poner casi cualquier cosa que desee en el nombre común, sujeto a las siguientes restricciones:

  • La codificación debe cumplir con la especificación ASN.1 de X.509: el nombre común está limitado 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. Teóricamente, las reglas de igualdad no distinguen entre mayúsculas y minúsculas, pero las reglas pueden ser complejas de implementar en un mundo Unicode completo, por lo que será mejor que te asegures de tener la igualdad de byte a byte, que funcionará correctamente en todas partes.
  • El certificado de un servidor SSL debe contener el nombre del servidor como esperaba el cliente (si usa HTTPS, este nombre será el de la URL). Esto se especifica en RFC 2818. La extensión Subject Alt Name se usa normalmente, pero el nombre común sirve como respaldo en caso de que falte esta extensión. Dado que las implementaciones de clientes SSL no siempre se han adherido estrictamente a la RFC relevante, es mejor, para evitar 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, la pantalla de inicio de sesión mostrará el nombre común en letras grandes cuando se inserte la tarjeta inteligente. Por tanto, será mejor que haga 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 uso exclusivo del servidor. El servidor interpreta el contenido del certificado, incluido el DN del sujeto y su nombre común, de la forma que crea 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 utilizará el Nombre principal del usuario que se encuentra en el Nombre alternativo del sujeto extensión, bajo un OID específico de Microsoft. El nombre común se puede mostrar al usuario humano, si hay un usuario humano (por ejemplo, como parte de una ventana emergente de selección de certificado), pero se ignorará para fines de autenticación.

Generalmente, los certificados de su cliente deberán contener lo que requiera el sistema de autenticación que utiliza el servidor VPN y, dado que 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) se describirán en la documentación del servidor RADIUS; para el servidor VPN, esto sería solo una mancha opaca.

¿Puede explicar qué son IssuerDN y SubjectDN en el ejemplo anterior? ¿La pregunta surge de la preocupación de que el punto final debe tener el mismo DN del Gateway? ¿Es eso cierto? ¿El cliente debe tener el mismo DN que la autoridad de certificación? ¿Quién tiene la lógica que comprueba los dos? ¿El cliente o la pasarela?
tylerl
2013-08-04 09:54:22 UTC
view on stackexchange narkive permalink

El significado depende de la implementación e instalación en particular. Por lo general, identifica a un determinado consumidor de VPN; ya sea un usuario, host o conjunto de configuración.

Por lo general, la ruta de la firma determina si el certificado es permisible, mientras que el CN ​​determina cuál certificado permisible es.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...