Cómo identificar certificados de forma única

Cómo identificar certificados de forma única

Contamos con un servicio que recibe una gran cantidad de documentos XML firmados, algunos de ellos están firmados con un certificado autofirmado y otros están firmados por una autoridad certificadora confiable.

¿Cuál es la mejor manera de asegurarse de que el certificado utilizado para firmar el documento XML esté en una lista de certificados en los que confiamos?

Hoy comparamos la huella digital de los certificados con una lista de huellas digitales de certificados aceptados.

¿Podemos confiar en que la huella digital sea única, o es posible falsificarla?

¿Cuál sería la mejor manera de resolver esto? (No podemos hacer que todos los que envían documentos xml firmados utilicen certificados de una autoridad certificadora confiable)

Respuesta1

Si estás usando elFirma XML estándarsintaxis, entonces el KeyInfo opcional puede llevar el certificado real a utilizar.

Debería utilizar la huella digital del certificado de KeyInfo para compararla con la lista de certificados aceptados y luego validar la firma real conuna copia de ese certificado de su propia tienda de certificados confiables. Si el certificado real utilizado para firmar el documento es diferente, el paso de validación fallará, el documento debería rechazarse y, con suerte, alguien debería investigar más a fondo.

La huella digital del certificado debe ser lo suficientemente compleja como para que la probabilidad de tener dos certificados con la misma huella digital por accidente sea insignificante. Pero incluso si esto sucede (quizás por malicia), solo debería provocar que se elija un certificado incorrecto para el proceso de validación de firma, lo que definitivamente debería provocar que la validación falle.

Pero si estás validando el documentocon el certificado que viene con el propio documentoy luego verifica que la huella digital del certificado coincida con uno de los certificados confiables, estaráHaciendolo mal: básicamente estás utilizando las huellas digitales de los certificados confiables como contraseñas.

información relacionada