Agregar datos personalizados en el certificado X.509

7

Estoy usando SSL con la autenticación del cliente. ¿Necesito enviar algunos datos adicionales mientras envío el certificado del cliente? ¿Puedo enviarlo en el certificado? ¿Puedo usar los campos de extensión en el certificado para eso? La cantidad de datos a enviar es muy pequeña. Por lo general, una identificación y algunos permisos. Este algo que debería enviar sólo inicialmente. ¿Hay alguna otra forma mejor?

    
pregunta user2315 05.09.2012 - 10:20
fuente

2 respuestas

4

Aunque puede obtener información sobre todo lo que puede imaginar en las extensiones ad hoc en un certificado, esto rara vez es una buena idea. En particular, porque el certificado está firmado (por la Autoridad de Certificación que lo emitió), por lo que todo lo que usted coloque en el certificado tiene que pasar primero por la AC.

Los

certificados tienen que ver con autenticación y esto no convive con autorización . Los certificados son entidades de larga duración que no pueden modificarse por capricho; la única forma de "modificar" un certificado es revocarlo y emitir uno nuevo; La CA no solo debe hacer esto, sino que es un proceso inherentemente asíncrono: lleva al menos varias horas, más a menudo varios días, propagar la información de revocación con cualquier tipo de confiabilidad (y algunos clientes no verifican la revocación en absoluto ..). Para cualquier cosa relacionada con permisos , desea un sistema que reaccione rápidamente, porque cuando desea eliminar una autorización de acceso, desea eliminarla ahora , no a continuación semana .

Si, en su protocolo, el servidor tiene algo que decir al cliente, entonces parece más apropiado enviar los datos en el túnel SSL, después de el protocolo de enlace, como parte del protocolo interno (de la misma manera que HTTPS es HTTP dentro de un túnel SSL).

    
respondido por el Tom Leek 05.09.2012 - 13:24
fuente
3

Como dice @Tom Leek, el propósito principal del certificado de clave pública (PKC) del cliente es la autenticación. En el mundo PKIX existe el concepto de un Certificado de atributo ; Estos son típicamente certificados de corta duración que pueden usarse para propósitos de autorización. También hay SAML que admite el intercambio de información de autorización. Sin embargo, estos son protocolos complicados y requieren bastante configuración. Si se trata de una aplicación de servidor de cliente simple, quizás pueda almacenar los permisos del usuario de forma segura en el servidor. Una vez que el servidor haya utilizado el PKC para autenticar al cliente, puede buscar sus permisos.

    
respondido por el PhilR 05.09.2012 - 14:25
fuente

Lea otras preguntas en las etiquetas