Huella y firma digital

Iniciado por theuser, 23 Abril 2012, 13:21 PM

0 Miembros y 1 Visitante están viendo este tema.

theuser

Hola gente.

Necesito que me ayuden con algunas ideas que andan dando vuelta por mi cabeza, una es una conclusion y otra una duda.

1. Conclusion:
A le manda un mensaje a B con su respectiva huella MD5, para que B pueda comprobar que el mensaje no fue alterado durante la transmision.

C intercepta el mensaje durante su envio y lo modifica. Tambien crea una nueva huella MD5 a partir del mensaje falso. Envia el mensaje.

B recibe el mensaje, le aplica la funcion MD5 para comprobar su integridad y obtiene el mismo valor que la huella MD5 recibida con el mensaje falso.

Ahora pensemos en el mismo proceso pero agreguemos algo: antes de enviar el mensaje, A firma la huella MD5.
Cuando C realiza la intercepcion, se encuentra con que:
- puede modificar el mensaje
- puede crear una nueva huella MD5
- NO puede firmar la huella MD5

La conclusion a la que llego es que no tiene sentido crear una huella digital sin firmarla posteriormente, ya que si alguien intercepta el mensaje, no hay nada que le impida crear una nueva huella digital a partir de un mensaje falso.

2. Duda:
Se puede crear la firma digital de un mensaje a partir del mismo y no de su huella digital? Lo pregunto porque segun veo, siempre que se crea una firma, se hace a partir de una huella.

Saludos y gracias de antemano.

adastra

#1
Lee sobre claves asimetricas y simetricas.
En concreto, te viene bien el tema de algoritmos de clave pública/privada.
Se trata de un mecanismo basado en el concepto de clave simetrica que hace que los ataques MITM sean más dificiles de llevar a cabo.

theuser

Hola adastra, gracias por tu respuesta.

2. Todavia no pude responder esta pregunta con certeza, pero creo que se puede crear una firma directamente a partir de un mensaje y no de su huella, ya que la validez de la firma radica en cifrar con la clave privada del emisor, independientemente de lo que se cifre.

Una ayuda para aclarar este duda no viene mal :).

Saludos.

adastra

Cita de: theuser en 24 Abril 2012, 13:19 PM
creo que se puede crear una firma directamente a partir de un mensaje y no de su huella, ya que la validez de la firma radica en cifrar con la clave privada del emisor, independientemente de lo que se cifre.

El cifrado de clave publica/privada, consiste en que solamente el emisor puede descifrar mensajes utilizando su clave privada, mientras que absolutamente cualquiera puede cifrar mensajes utilizando la clave pública, evidentemente en este escenario cifrar mensajes es simple (solamente es necesario disponer de la clave pública) pero para descifrar el mensaje es necesario conocer la clave privada (que solamente conoce el emisor que ha creado dicho par de claves). Es un mecanismo de cifrado fuerte que no depende de la huella digital y que es ampliamente utilizado en soluciones como TLS/SSL y SSH.
Para conocer un poco como funciona y que te sirva de ejemplo, puedes utilizar GnuPG (GPG):  http://www.gnupg.org/

También puedes utilizar OpenSSH que tiene una herramienta llamada ssh-keygen la cual permite la generación de un par de claves Pública/Privada utilizando RSA o DSA.

http://thehackerway.com/2011/08/15/herramientas-para-hacking-en-entornos-de-red-%E2%80%93-conceptos-basicos-y-avanzados-de-ssh-parte-vi/

Si después de leer los enlaces y otros recursos que encuentres en internet, tienes alguna duda, intentaré contestarte, pero vamos, que en realidad no es tan complejo como suena.
Un Saludo.

theuser

Hola adastra, gracias por tu respuesta.

El funcionamiento de la criptografia asimetrica lo entiendo, solo que mi duda es mas puntual.

Siempre que lei sobre firmas digitales, me percate de que primero se crea la huella digital del documento a firmar.
Lo que me gustaria saber es si este paso es obligatorio y por que.

Por cierto, ya habia visto tu sitio antes de que me pasaras el link, esta muy bueno.

Saludos y gracias otra vez.

adastra

Cita de: theuser en 25 Abril 2012, 03:01 AM
Hola adastra, gracias por tu respuesta.

El funcionamiento de la criptografia asimetrica lo entiendo, solo que mi duda es mas puntual.

Siempre que lei sobre firmas digitales, me percate de que primero se crea la huella digital del documento a firmar.
Lo que me gustaria saber es si este paso es obligatorio y por que.

Por cierto, ya habia visto tu sitio antes de que me pasaras el link, esta muy bueno.

Saludos y gracias otra vez.

Ah, vale, ahora entiendo tu duda...
Cuando se firma un documento, es necesario crear una huella de dicho documento, la razón? por integridad de los datos y no repudio, que quiere decir esto? cuando se cifra cierto volumen de datos, (por ejemplo, documentos de texto) las técnicas de cifrado de mensajes habituales resultan poco practicas (por el tamaño que puede generar el mensaje cifrado) por esta razón, se utilizan algunas funciones matemáticas que generan la huella digital del documento, que normalmente es conocida como "hash" del documento.
Este tipo de funciones son interesantes principalmente por 3 características:

1. Cuando se aplica a grandes volúmenes de datos, el resultado es una huella con un tamaño relativamente pequeño (una huella (o hash) tiene entre 128 y 160 bits).
2. Aunque teóricamente es posible encontrar dos mensajes con idéntica huella, la probabilidad de que esto ocurra es realmente pequeña. Si se manipulan los datos, la huella cambia, esto quiere decir que es fácil darse cuenta que un documento ha cambiado si su hash es distinto del documento original.
3. Se trata de un mecanismo "pesado" lo que hace que los ataques de fuerza bruta sean computacionalmente exhaustivos y dificultosos.

Si no se creará un hash del documento, firmar un documento "crudo" daría como resultado streams de bytes con tamaños inmanejables y probablemente poco consistentes, además de que alguien podría manipular el documento y no habría constancia de dicho cambio, ya que no hay una huella que lo demuestre.
Por ese motivo, siempre que se firmen documentos o mensajes con un cierto tamaño, es necesario generar el hash del documento.

theuser

2.

a. Entonces no es que la firma sea menos valida si se hace a partir del documento mismo, sino que hacerla a partir de su huella requiere menos recursos.

b. Ademas, la creacion de la huella permite comprobar la integridad del documento.

adastra

Cita de: theuser en 25 Abril 2012, 12:17 PM
2.

a. Entonces no es que la firma sea menos valida si se hace a partir del documento mismo, sino que hacerla a partir de su huella requiere menos recursos.

b. Ademas, la creacion de la huella permite comprobar la integridad del documento.
Correcto.
Ademas de que algunos algoritmos no admiten mensajes demasiado largos (situación que se da con frecuencia en el flujo de bytes de documentos), por ello se hace necesario obtener la huella y posteriormente trabajar sobre ella.