Foros del Web » Programando para Internet » PHP »

Firma digital

Estas en el tema de Firma digital en el foro de PHP en Foros del Web. Hola a todos. Actualmente estoy haciendo un pequeño programa web con PHP y utilizo DNI electrónico para hacer la autenticación y firma. La autenticación la ...
  #1 (permalink)  
Antiguo 18/03/2010, 02:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Firma digital

Hola a todos. Actualmente estoy haciendo un pequeño programa web con PHP y utilizo DNI electrónico para hacer la autenticación y firma. La autenticación la hago sin problema, incluso valido frete al oscp de la policia.

El problema que tengo es que quiero firmar un documento y no lo consigo. Sin embargo si he conseguido firmar un texto. La forma de firmarlo es usando la funcion crypto.signText de javascript. Con esa función, me pide que elija el certificado a usar para firmar y la clave.Una vez que se firma el texto, cojo la firma generada y la guardo en un fichero.

La cosa es que cuando me pongo a verificar que la firma generada corresponde con el texto generado no me funciona. Lo que hago es guardar la firma en un fichero y el texto original en otro. Para verificarlo ejecuto el comando de openssl siguiente:

openssl smime -verify -inform pem -in sig -content msg -CAfile CA.pem

donde msg es el fichero donde tengo el texto guardado, sig es el fichero donde tengo la firma guardada y CA.pem es el certificado de la CA que se puede obtener en la web de DNI electrónico. Bueno, pues si para firmar uso el certificado de firma electrónica ese comando me dice que no es válido pero si uso el certificado de autenticación para firmar, ese comando me dice que es válido... por lo que deduzco, es que el CA que dan en dnielectronico.es es de autenticación pero no el de firma. ¿Alguien sabe como verificar todo esto?

Por último, para firmar un fichero se me ha ocurrido hacer el MD5 del fichero para obtener un resumen y firmar ese MD5, pero no sé si es correcto.

Saludos y gracias

Etiquetas: firma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.