Funciones hash

Son utilizados para proporcionar una huella digital de un fichero, para asegurar que el mismo no ha sido alterado por el usuario o un virus.

Son comúnmente utilizados por los sistemas operativos para cifrar las contraseñas. Asegurando así la integridad de un fichero o mensaje.

Ofrecen niveles de seguridad que posee las siguientes características a la hora de comprobar y operar un mensaje.



Una función hash no cifra, lo que hace es crear un resumen o «firma» de un conjunto de datos, el mismo se pasa como parámetro a esta función. Así, verificamos la integridad, por ejemplo, de un fichero. Tan solo tenemos que emplear dicha función sobre el fichero recibido y verificar que el hash en el mismo sea el informado por el emisor.

Algunos algoritmos HASH:

MD5, SHA-1, SHA-256 y SHA-512, otros.

Donde son utilizados:

Git: es un software (GNU, código libre) que se ha usado como base sobre el que se han desarrollado otros proyectos como:

Gerrit.

Las plataformas de forja

SparkleShare.

git-crypt.

Herramientas, como gitflow.

Aplicaciones de seguridad que requieren autenticación.

E-mail.

Transferencia electrónica de fondos.

Distribución de software.

Almacenamiento de datos.

Ejemplo de MD5: Caso práctico con md5sum:​

A continuación, utilizaremos md5sum para generar un hash del archivo y almacenar el resultado en un fichero llamado “file.txt.md5”:

$ md5sum file.txt > file.txt.md5

Para ver el hash que acabas de generar:

$ cat file.txt.md5

Ver el adjunto 12918

Con md5sum es posible verificar que el hash sea correcto y que el archivo original no haya sido manipulado desde que se creó el fichero “file.txt.md5”. Para ello, escribe el siguiente comando y observa el resultado mostrado:

$ md5sum -c file.txt.md5

Ver el adjunto 12919

Ahora vamos a modificar el fichero original “file.txt” y comprobar que en este caso la verificación del hash falla.

$ nano file.txt

Ver el adjunto 12920

Para guardar los cambios en el archivo, presiona Ctrl-X y luego Yes.

Una vez modificado el archivo, volvemos a realizar la verificación del hash. Comprueba que validación ha fallado lo que demuestra que cualquier cambio que introduzcamos en el fichero, por muy pequeño que sea, generará un hash diferente:

Ver el adjunto 12921

SHA-256: Caso práctico con shasum

Vamos a repetir los pasos que hicimos en el caso práctico anterior pero esta vez utilizando la función hash SHA-256 mediante el uso de la herramienta shasum. SHA-256 ofrece mayor seguridad que MD5 y es uno de los hash más utilizados.

Lo primero que haremos será generar de nuevo el hash del fichero “file.txt”. El argumento –a especifica el algoritmo que se quiere utilizar, siendo SHA-1 el predeterminado si no se indica ningún otro valor.

$ shasum -a 256 file.txt > file.txt.sha256

SHA-256 genera un hash más largo que MD5 y, por tanto, más difícil de adivinar:

$ cat file.txt.sha256

Ver el adjunto 12922

Por último, vamos verificar el hash generado y comprobar que el fichero original no ha sido modificado:

$ shasum -c file.txt.sha256

Ver el adjunto 12923

Existen muchos peligros cuando de enviar mensajes se trata, es importante establecer qué nivel de seguridad hemos de utilizar al enviar mensajes, por eso es importante conocer los riesgos y saber las estrategias a tomar para prevenir este tipo de eventos.

Estas técnicas son perfectamente combinables para crear un envió mucho más seguro, por lo que podríamos tener mensajes que contengan sello digital, se envíen cifrados y sobre un canal seguro. Esto desde luego logra que nuestro mensaje sea Integro, conserve la autenticidad.

 

Adjuntos

  • 1.jpg
    1.jpg
    4.3 KB · Visitas: 8
  • 2.jpg
    2.jpg
    4.1 KB · Visitas: 8
  • 3.jpg
    3.jpg
    12.3 KB · Visitas: 8
  • 4.jpg
    4.jpg
    6.5 KB · Visitas: 8
  • 5.jpg
    5.jpg
    6.7 KB · Visitas: 8
  • 6.jpg
    6.jpg
    4.1 KB · Visitas: 8

Ara

Miembro Leyenda
Mod
‏‏‎ ‎Mensajes‏‏‎ ‎
1,593
Reacciones
9,087
Oro
132,273
A cada momento las aplicaciones poseen más necesidad de intercambiar mensajes para integrar aplicaciones o notificar algo para ello es indispensable asegurarnos que para que sean enviados estos mensajes deba existir un canal seguro y que el mensaje enviado sea el mismo que se reciba del otro lado sin ninguna variación, por lo que somos los encargados de asegurarnos que la información (ya sea nombres, números de cuentas bancarias, etc.) continué siendo confidencial y mantenga su integridad y su autenticación.
  • Primero plantearnos cuales son los significados de estos:
  • Confidencialidad: Es la alternativa que tiene un mensaje para mantener oculto su contenido de tal manera que si una tercera persona ve el mensaje no pueda descifrar su contenido: cada vez que enviamos información por la red estamos exponiéndola a que otras personas no autorizadas puedan interceptarlas y hacer con ellas mucho daño.
  • Integridad: Se refiere a que el contenido del mensaje, datos, documentos, y otras formas dentro del mismo, no han sido modificados en tránsito o en reposo: tiene como objetivo identificar que un mensaje no ha sido manipulado por una tercera persona con el fin de realizar alguna acción en nuestro nombre.
  • Autenticidad: Va a garantizar que el mensaje ha sido enviado por quien dice ser: que el emisor no sea un impostor. Este tipo de eventos es muy común cuando esta tercera persona trata de infligir algún daño a nuestros sistemas enviando mensajes para realizar ciertas tareas en nombre de otra entidad.
hay programas o algoritmos que integran y hacen que funciones los planteamientos de arriba...

Funciones hash

Son algoritmos que, en esencia, no usan llave de cifrado. Por el contrario, un valor de longitud fija es el resultado del texto original haciendo imposible obtener el contenido o la longitud del texto en claro. La salida de la función, es llamada un valor hash y son empleados para la emisión de certificados, firmas digitales, generación de claves y verificación de password.

Son utilizados para proporcionar una huella digital de un fichero, para asegurar que el mismo no ha sido alterado por el usuario o un virus.

Son comúnmente utilizados por los sistemas operativos para cifrar las contraseñas. Asegurando así la integridad de un fichero o mensaje.

Ofrecen niveles de seguridad que posee las siguientes características a la hora de comprobar y operar un mensaje:

Unidireccionalidad: conocido un resumen h(M) (resumen de un mensaje), debe ser computacionalmente imposible encontrar M a partir de dicho resumen.

Compresión: a partir de un mensaje de cualquier longitud, el resumen h(M) debe tener una longitud fija. Lo normal es que la longitud de h(M) sea menor que el mensaje M.

Facilidad de cálculo: debe ser fácil calcular h(M) a partir de un mensaje M.

Difusión: el resumen h(M) debe ser una función compleja de todos los bits del mensaje M: si se modifica un solo bit del mensaje M, el hash h(M) debería cambiar la mitad de sus bits aproximadamente.

Colisión simple: será computacionalmente imposible conocido M, encontrar otro M' tal que h (M) = h (M'). Esto se conoce como resistencia débil a las colisiones.

Colisión fuerte: será computacionalmente difícil encontrar un par (M, M') de forma que h(M) = h(M'). Esto se conoce como resistencia fuerte a las colisiones.

Una función hash no cifra, lo que hace es crear un resumen o «firma» de un conjunto de datos, el mismo se pasa como parámetro a esta función. Así, verificamos la integridad, por ejemplo, de un fichero. Tan solo tenemos que emplear dicha función sobre el fichero recibido y verificar que el hash en el mismo sea el informado por el emisor.

Algunos algoritmos HASH:

MD5: desarrollado por Ron Rivest en 1992. Es una mejora al MD4 y MD2 (1990), es más lento, pero con mayor nivel de seguridad. Resumen de 128 bits. Aunque está obsoleto desde 2005 su algoritmo constituye la base de otras funciones.

SHA-1: Desarrollado por el NIST, National Institute of Standards and Technology, 1995.Similar a MD5, pero con resumen de 160 bits. Existen otras propuestas conocidas como SHA-256 y SHA-512, posibles estándares.

En la actualidad, muchas aplicaciones todavía dependen de SHA-1, a pesar de que fue oficialmente desaprobado por el NIST en 2011. Existen alternativas más seguras, como SHA-256 o superiores.

SHA-1 seguirá siendo un nivel adecuado de protección. Sin embargo, presenta un riego alto en entornos y aplicaciones donde los niveles de confianza sean máximos, como: la banca, los contratos legales o las firmas digitales. Un uso muy común de SHA-1 es para la integridad de archivos, incluso Git y muchos desarrolladores y compañías lo emplean con ese propósito.

Donde son utilizados:

Git: es un software (GNU, código libre) que se ha usado como base sobre el que se han desarrollado otros proyectos como:

Gerrit.

Las plataformas de forja

SparkleShare.

git-crypt.

Herramientas, como gitflow.

Aplicaciones de seguridad que requieren autenticación.

E-mail.

Transferencia electrónica de fondos.

Distribución de software.

Almacenamiento de datos.

 

yeni

Miembro Nuevo
‏‏‎ ‎Mensajes‏‏‎ ‎
9
Reacciones
11
Oro
181
A cada momento las aplicaciones poseen más necesidad de intercambiar mensajes para integrar aplicaciones o notificar algo para ello es indispensable asegurarnos que para que sean enviados estos mensajes deba existir un canal seguro y que el mensaje enviado sea el mismo que se reciba del otro lado sin ninguna variación, por lo que somos los encargados de asegurarnos que la información (ya sea nombres, números de cuentas bancarias, etc.) continué siendo confidencial y mantenga su integridad y su autenticación.
  • Primero plantearnos cuales son los significados de estos:
  • Confidencialidad: Es la alternativa que tiene un mensaje para mantener oculto su contenido de tal manera que si una tercera persona ve el mensaje no pueda descifrar su contenido: cada vez que enviamos información por la red estamos exponiéndola a que otras personas no autorizadas puedan interceptarlas y hacer con ellas mucho daño.
  • Integridad: Se refiere a que el contenido del mensaje, datos, documentos, y otras formas dentro del mismo, no han sido modificados en tránsito o en reposo: tiene como objetivo identificar que un mensaje no ha sido manipulado por una tercera persona con el fin de realizar alguna acción en nuestro nombre.
  • Autenticidad: Va a garantizar que el mensaje ha sido enviado por quien dice ser: que el emisor no sea un impostor. Este tipo de eventos es muy común cuando esta tercera persona trata de infligir algún daño a nuestros sistemas enviando mensajes para realizar ciertas tareas en nombre de otra entidad.
hay programas o algoritmos que integran y hacen que funciones los planteamientos de arriba...

Funciones hash

Son algoritmos que, en esencia, no usan llave de cifrado. Por el contrario, un valor de longitud fija es el resultado del texto original haciendo imposible obtener el contenido o la longitud del texto en claro. La salida de la función, es llamada un valor hash y son empleados para la emisión de certificados, firmas digitales, generación de claves y verificación de password.

Son utilizados para proporcionar una huella digital de un fichero, para asegurar que el mismo no ha sido alterado por el usuario o un virus.

Son comúnmente utilizados por los sistemas operativos para cifrar las contraseñas. Asegurando así la integridad de un fichero o mensaje.

Ofrecen niveles de seguridad que posee las siguientes características a la hora de comprobar y operar un mensaje:

Unidireccionalidad: conocido un resumen h(M) (resumen de un mensaje), debe ser computacionalmente imposible encontrar M a partir de dicho resumen.

Compresión: a partir de un mensaje de cualquier longitud, el resumen h(M) debe tener una longitud fija. Lo normal es que la longitud de h(M) sea menor que el mensaje M.

Facilidad de cálculo: debe ser fácil calcular h(M) a partir de un mensaje M.

Difusión: el resumen h(M) debe ser una función compleja de todos los bits del mensaje M: si se modifica un solo bit del mensaje M, el hash h(M) debería cambiar la mitad de sus bits aproximadamente.

Colisión simple: será computacionalmente imposible conocido M, encontrar otro M' tal que h (M) = h (M'). Esto se conoce como resistencia débil a las colisiones.

Colisión fuerte: será computacionalmente difícil encontrar un par (M, M') de forma que h(M) = h(M'). Esto se conoce como resistencia fuerte a las colisiones.

Una función hash no cifra, lo que hace es crear un resumen o «firma» de un conjunto de datos, el mismo se pasa como parámetro a esta función. Así, verificamos la integridad, por ejemplo, de un fichero. Tan solo tenemos que emplear dicha función sobre el fichero recibido y verificar que el hash en el mismo sea el informado por el emisor.

Algunos algoritmos HASH:

MD5: desarrollado por Ron Rivest en 1992. Es una mejora al MD4 y MD2 (1990), es más lento, pero con mayor nivel de seguridad. Resumen de 128 bits. Aunque está obsoleto desde 2005 su algoritmo constituye la base de otras funciones.

SHA-1: Desarrollado por el NIST, National Institute of Standards and Technology, 1995.Similar a MD5, pero con resumen de 160 bits. Existen otras propuestas conocidas como SHA-256 y SHA-512, posibles estándares.

En la actualidad, muchas aplicaciones todavía dependen de SHA-1, a pesar de que fue oficialmente desaprobado por el NIST en 2011. Existen alternativas más seguras, como SHA-256 o superiores.

SHA-1 seguirá siendo un nivel adecuado de protección. Sin embargo, presenta un riego alto en entornos y aplicaciones donde los niveles de confianza sean máximos, como: la banca, los contratos legales o las firmas digitales. Un uso muy común de SHA-1 es para la integridad de archivos, incluso Git y muchos desarrolladores y compañías lo emplean con ese propósito.

Donde son utilizados:

Git: es un software (GNU, código libre) que se ha usado como base sobre el que se han desarrollado otros proyectos como:

Gerrit.

Las plataformas de forja

SparkleShare.

git-crypt.

Herramientas, como gitflow.

Aplicaciones de seguridad que requieren autenticación.

E-mail.

Transferencia electrónica de fondos.

Distribución de software.

Almacenamiento de datos.

tu y yo trabajamos juntas antes y ahora, y las funciones hash son importantes también a la hora de verificar la veracidad de un archivo en cualquier formato, hasta si esta oculto a la vista por cambio de extensión, el valor hash no falla.
 

w1re

Bestia prohibida
Mod
‏‏‎ ‎Mensajes‏‏‎ ‎
762
Reacciones
1,315
Oro
44,053
las funciones hash son importantes también a la hora de verificar la veracidad de un archivo en cualquier formato, hasta si esta oculto a la vista por cambio de extensión, el valor hash no falla.
Para modificaciones accidentales (errores de transmisión, sectores dañados, etc.), probablemente. Pero podría darse el caso de que un atacante genere un archivo con el mismo hash que el original pero con un contenido distinto.
 
Arriba