¿Cuáles son las mejores prácticas para asignar un certificado de cliente a una cuenta de usuario?

StackOverflow https://stackoverflow.com/questions/2613649

Pregunta

Tenemos un marco de propiedad y ahora queremos integrar la autenticación mediante certificados SSL del lado del cliente. ¿Cuáles son las mejores prácticas para asignar un certificado de cliente a una cuenta de usuario específico (por ejemplo, una tabla de usuario simple en la base de datos)?

  • Guardar a la clave pública del certificado?
  • Guardar emisor y número de serie?

O hay otras posibilidades?

¿Fue útil?

Solución

¿Está emisión de los Certificados (y tiene la posibilidad de definir algunos campos del certificado)? Hace estos certificados tienen que ser integrado con un entorno de PKI mayor escala como el correo electrónico de firma (que significa que tenga la pesadilla X.509 interoperabilidad)?

Si usted puede crear una autoridad de certificación para los usuarios, y tienen no se preocupan por los sistemas extranjeros, se puede dar a cada certificado de cliente un atributo de nombre común que mapea directamente a su cuenta de usuario. Para que pueda comprobar si el certificado de cliente está firmado por la autoridad de certificado de usuario y luego coincidir con el atributo CN certificado.

Cuando sólo hay un número limitado y bien conocida de la firma de certificados, entonces recomiendo a almacenar estos certificados y comprobar los certificados de cliente y aceptarlos sólo si están firmadas por uno de los certificados de firma. A continuación, se utiliza un campo del certificado, que los conjuntos de CA que se emite únicamente para cada usuario (que estancias iguales cuando el certificado de usuario se renueva, muchas cooperaciones permiten certificados de usuario el tiempo de espera después de un año) para conectar este campo con su base de datos de usuario.

Si no puede emitir los certificados se pueden almacenar en la de hash del certificado en la base de datos, pero esto tiene el inconveniente de que cuando un certificado se queda sin fecha necesita actualizar la base de datos. El hash es único para cada certificado, mientras que la mayoría de los campos de un certificado pueden ser falseadas.

También es posible que desee comprobar las listas de revocación de certificados para las autoridades de certificación de firma, por lo que ningún usuario puede acceder a su servicio con un certificado robado.

Otros consejos

Almacenamos de serie del certificado de cliente y DN de emisor y hacerlo coincidir. De acuerdo con http://www.tectia.com/manuals/server -admin / 60 / USERAUTH-cert.html , esto es suficiente para identificar de forma única el certificado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top