[PYTHON] Verificar integridad de un mensaje

Iniciado por Josholsan, 22 Octubre 2014, 19:33 PM

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

Josholsan

Buenas tardes, necesito un poco de ayuda/guía en un pequeño proyecto que tengo que hacer en clase y que no tengo muy claro.
El caso es que me piden verificar la integridad de un mensaje enviado de un cliente a un servidor en lenguaje Python, pero no se me ocurre muy bien como podría hacerlo. Tengo hechos ya un servidor y un cliente simples mediante el uso de sockets, y me gustaría a ver si alguien tiene idea de como podría solucionar el problema de la verificación de integridad en los mensajes que el cliente envía al servidor.
Un saludo, y gracias por adelantado
A veces, se requiere la supervisión de un adulto. :)

Estudiante de Ingeniería Informática: Tecnologías Informáticas en la Universidad de Sevilla.

daryo

#1
hash:En definitiva las funciones hash se encargan de representar de forma compacta un archivo o conjunto de datos que normalmente es de mayor tamaño que el hash independientemente del propósito de su uso.

puedes usar un hash por ejemplo de md5 y enviarlo junto a el mensaje . el servidor calculara el hash del mensaje y si coincide el mensaje esta bien.

http://www.genbetadev.com/seguridad-informatica/que-son-y-para-que-sirven-los-hash-funciones-de-resumen-y-firmas-digitales

https://docs.python.org/2/library/md5.html
buenas

Josholsan

Hola daryo, en otro pequeño proyecto tuve que implementar un verificador de archivos, usando la libreria hashlib de Python. Pero mi pregunta es... supuestamente tengo que, como dice literalmente, "verificar la integridad de datos en la transmisión por redes públicas como Internet y la importancia del tamaño de las claves en ello."
Y no se si sería exactamente igual o usando algún protocolo como SSL con certificados o clave simétrica.
Y en el caso de hacerlo con hash... como lo verifico, por que puedo calcular el hash del mensaje enviado por el cliente si... pero para compararlo, el cliente debería enviarme también el hash (Con el consecuente riesgo de que si un atacante puede modificar el archivo, también podría modificar el hash)

Gracias por tu interes y ayuda.
A veces, se requiere la supervisión de un adulto. :)

Estudiante de Ingeniería Informática: Tecnologías Informáticas en la Universidad de Sevilla.

daryo

#3
Citar"verificar la integridad de datos en la transmisión por redes públicas como Internet y la importancia del tamaño de las claves en ello."
si la cuestion es seguridad firma el mensaje . en el enlace de genbeta explica como hacer este proceso.

creas el hash del mensaje y lo cifras con la clave privada de algun cifrado asimetrico.

hay que usar alguna tecnologia en especial?
buenas

Josholsan

#4
No hay que usar ninguna tecnología en general, tenemos elección libre.

EDIT

Ya está solucionado, lo que he hecho es usar la libreria HMAC de Python, con la cual a través de una clave privada y un mensaje, calcula un hash.
Enviando el mensaje y ese hash, el otro equipo podrá calcularlo y comprobarlo ya que también tendría la clave privada.
A veces, se requiere la supervisión de un adulto. :)

Estudiante de Ingeniería Informática: Tecnologías Informáticas en la Universidad de Sevilla.