Identidad del cliente que no sea la URL / nombre DNS en el certificado

4

Actualmente estoy trabajando en un proyecto en el que casi toda la comunicación se realiza mediante HTTPS y ActiveMQ. Los servidores y clientes están físicamente en diferentes lugares, diferentes organizaciones y en diferentes dominios. Los componentes del sistema se comunicarán utilizando SSL de 2 vías (o más bien TLS con autenticación mutua? No soy muy bueno para nombrar cosas todavía), lo que nos da autenticación, pero nos gustaría usar algún valor del certificado para realizar la autorización ( particularmente acceso a colas en el intermediario de mensajes). Debido a estos y otros requisitos, nos gustaría dar un identificador único similar a URI a cada componente del sistema. Hemos decidido que se verá similar a esto: "< ORGANIZATION > .backend.processor" o "< ORGANIZATION > .device. < UUID >" ..

Ahora, mi pregunta es: ¿debo poner este identificador en el campo DN / CN y poner los nombres DNS (direcciones físicas) en SAN (o subjAltName) del certificado, o más bien debería ponerlo en SAN y DNS en ambos SAN y DN / CN campo?

De acuerdo con esta respuesta , poner el identificador mencionado anteriormente en el campo DN / CN es seguro, ya que nuestra infraestructura será homogénea y las conexiones desde fuentes externas se realizarán solo mediante navegadores, lo que podemos poner fácilmente en los requisitos, esto debería funcionar perfectamente. Pero tal vez deberíamos generar dos certificados para cada componente y usar uno para presentar a los clientes conectados (por lo tanto, DNSname en SAN y DN / CN) y el otro para autorizarnos a los componentes a los que nos conectamos.

    
pregunta Jędrzej Dudkiewicz 24.08.2016 - 09:16
fuente

1 respuesta

1
  

nos gustaría usar algún valor del certificado para realizar la autorización

Utiliza el certificado para autenticación y una vez que autentique a un usuario, puede hacer la autorización.

Suena como la división del cabello, pero ayuda a mejorar el diseño.

Además, de acuerdo con rfc3820 puede usar extKeyUsage para almacenar algunos datos básicos de autorización en el certificado En sí.

Para fines de identificación, el uso de CN / SAN está bien, pero es posible que desee utilizar subdominios de un dominio que posea para ellos.

  

Pero tal vez deberíamos generar dos certificados para cada componente y   use uno para presentar a los clientes conectados (por lo tanto, el nombre DNS en ambos SAN)   y DN / CN) y el otro para autorizarnos a componentes que   nos conectamos a?

Puedes usar el mismo certificado para ambos propósitos. Si el servidor está comprometido, tendría que revocar ambas claves de todos modos.

    
respondido por el GnP 30.08.2016 - 13:49
fuente

Lea otras preguntas en las etiquetas