Pregunta

Estoy luchando con el siguiente escenario:

  1. Un mensaje XML se crea del lado del cliente y se firma digitalmente usando la ventana de Mozilla.crypto.signText. Después de firmar, el mensaje y la firma se transmiten a través de un servicio web (.NET) al servidor. Todo está bien hasta este punto.

  2. En el servidor, el XML se incluirá en otro documento XML, al que se puede acceder públicamente. La firma también debe publicarse para otorgar no repudio.

P: ¿Existe una opción suave para convertir los PKC#7 separados en XML-DSIG (por ejemplo, funcionalidad dentro del marco .NET)?

P2: ¿O es posible crear el XML-DSIG ya del lado del cliente sin usar complementos externos?

Tnx para tu ayuda!

Alois Paulin

¿Fue útil?

Solución

Debido a la naturaleza de los formatos de firma digital XML y PKCS#7, no es posible convertir de uno a otro.

En una explicación muy simplificada, la firma en PKC#7 El formato contiene, entre otras cosas, algunas estructuras de datos específicas llamada DigestInfo que contiene el Data Digest y un OID (identificador de objetos), y se ha cifrado con la clave privada del usuario. los Xml-dsig El formato aplica el paso final del algoritmo criptográfico (nuevamente con la clave privada del usuario) a un valor de datos diferente calculado al digerir los datos XML originales y algunas estructuras de datos XML-DSIG específicas. Por lo tanto, dado que ambos valores cifrados no serán los mismos, solo es posible generar la firma XML-DSIG firmando los datos con la clave privada del usuario, a la que no tendrá acceso (por lo tanto, el nombre privado).

De esa explicación, la respuesta a su primera pregunta es "No, no hay una opción suave, no es posible en absoluto".

Por lo tanto, la única opción es generar el XML-DSIG directamente en el lado del cliente. Eso no es posible usar JavaScript estándar, definitivamente no con la ventana de Firefox.crypto (que solo genera firmas separadas de PKCS7). En mi empresa (www.isigma.es), Resolvemos que al usar un applet, es una solución común en la industria de la firma digital (hay muchas soluciones comerciales y también algunas de código abierto). Es posible que no sea una opción en su caso, si no desea complementos del navegador.

Capicom (el componente Active/X basado en Windows que puede usar en una configuración de Microsoft) tampoco genera XML-DSIG, solo CMS/PKCS7.

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