Criptografia - Firmas digitales por más de un emisor

 
Vista:

Firmas digitales por más de un emisor

Publicado por Carlos (2 intervenciones) el 15/10/2006 21:54:48
Hola

Necesito firmar un archivo por dos emisores. El archivo firmado será enviado al servidor. El servidor estará seguro de que los dos emisores han sido los responsables del envío.

¿La solución es firmar primero usando la clave privada de uno y firmar el resultado usando la segunda clave privada? ¿En ese caso como sabe el servidor en que orden tiene que comprobar las firmas?

He buscado por internet y no he encontrado mucho sobre el tema. Agradezco cualquier tipo de ayuda.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Firmas digitales por más de un emisor

Publicado por zkoria (13 intervenciones) el 08/12/2006 04:28:00
Salu2.

Antes que nada debes tener claro que, el orden de verificacion de la firma debe ser parte del protocolo en cuestion, es decir, no deberia haber ningun problema tecnico si es ke lo estas desarrollando.

Otro aspecto importante a considerar es que, actualmente bajo RSA (por citar, por si es tu caso) para firmar algo primero a ese algo (en tu caso el documento, y en general cualquier flujo de bytes) se le saca el HASh y eso es lo que ce cifra con la privada y entonces esto es lo que en ese contexto se conoce como firma.

por lo que el problema que tienes es el siguiente suponiendo, puesto que el servidor debe comprobar la firma lo primero que hace es (supo un solo emisor)

KprivA(H(M))......... esto es la firma que le llega al server por parte del emisor
entonces el server toma la llave publica de A para decifrar y despues calcla el hash de M para comparar ambos y si es igual asume que fue firmado legitimammente por A.

Es decir, por partes... Notese que M tambien lo conoce el Server, comunmente se envia junto con la firma, por tanto lo que se envia al servidor es lo siguiente
(KprivA(H(M)), M), de esta forma si ademas agregas un certificado para la llave publica de A pos ya esta asegurado!!!.

Lo que tu estas planteando es lo siguiente dadas dos entidades A y B mandar al server lo siguiente:

KprivA(H(M)) .......... la firma de A sobre M
pero si tu kieres firmar esto por B, pos ve lo ke pasa:
KprivB(H(KprivA(H(M))))
y aqui esta el problema semantico como conoce el server "KprivA(H(M))" de un trancaso no tiene forma de saberlo por lo que tendrias que diseñar un protocolo para este fin.

Mira yo tesugiero un simple (pero tal ves habria que mejorarlo)

A --> S: (KprivA(H(M)), M) = SignA A envia a S su firma sobre M y M.
S: KpubA(SignA) == H(M) Verifica que sea A realmente kien se lo envio

A---> B: (KprivA(H(M)), M) = SignA A envia a B su firma sobre M y M
B: KpubA(SignA) == H(M) verifica que sea A realmente kien se lo envio

B: kprivB( H(SignA)) = SignB Ahora B firma lo que recibio de A
B--->S: SignB
S: kpubB(SignB) = H(SignA)
S: H(SignA) == H(SignA) : si la comparacion con el primer valor
recibido por desde A es cierta toma la
firma como buena.

ThePorThisInMind...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar