0% encontró este documento útil (0 votos)
59 vistas9 páginas

Si P4hash

Este documento explica el uso de funciones hash en OpenSSL, incluyendo los estándares SHA-1, SHA-2 y SHA-3. Describe cómo calcular hashes de archivos con OpenSSL y diferentes formatos de salida. También cubre puzzles hash y cómo se pueden usar funciones hash amigables para puzzles. Finalmente, propone varios ejercicios prácticos para aplicar los conceptos cubiertos, como calcular HMACs, resolver puzzles hash, y medir el número de intentos necesarios para resolver puzzles con diferentes valores de b.

Cargado por

Carlillos Tole
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
59 vistas9 páginas

Si P4hash

Este documento explica el uso de funciones hash en OpenSSL, incluyendo los estándares SHA-1, SHA-2 y SHA-3. Describe cómo calcular hashes de archivos con OpenSSL y diferentes formatos de salida. También cubre puzzles hash y cómo se pueden usar funciones hash amigables para puzzles. Finalmente, propone varios ejercicios prácticos para aplicar los conceptos cubiertos, como calcular HMACs, resolver puzzles hash, y medir el número de intentos necesarios para resolver puzzles con diferentes valores de b.

Cargado por

Carlillos Tole
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tı́tulo Propio de la

Seguridad de la Información
P4. OpenSSL y HASH
Módulo: Protección de Redes y Sistemas
Máster en Ciberseguridad

UCyS-UGR 2021/2022

Seguridad de la Información – Tema P4 .1.


Tı́tulo Propio de la

1. Funciones hash en OpenSSL - I

• OpenSSL implementa de forma nativa varias funciones


Hash, incluidos los estándares SHA-1, SHA-2 y SHA-3.
• Para trabajar con funciones hash, empleamos el comando
$> openssl dgst
• También es posible acceder a una función hash concreta
empleando su nombre como comando. De esta forma,
Módulo: Protección de Redes y Sistemas

$> openssl dgst -md5


y
Máster en Ciberseguridad

$> openssl md5


UCyS-UGR 2021/2022

son equivalentes.

Seguridad de la Información – Tema P4 .2.


Tı́tulo Propio de la

1. Funciones hash en OpenSSL - II

• Dado que una de las aplicaciones de las funciones Hash es


su uso en firma digital, los comandos anteriores incluyen
las opciones de firmar y verificar. En este caso, las claves
privada/pública deben ser indicadas. OpenSSL selecciona
el algoritmo de firma/verificación adecuado para la clave
empleada.
• Los usos de las funciones hash son muy variados. Vamos a
Módulo: Protección de Redes y Sistemas

encontrar en OpenSSL varias opciones destinadas a dar


formato a la salida de la manera más adecuada al uso
Máster en Ciberseguridad

UCyS-UGR 2021/2022

correspondiente. Por ejemplo, para labores de


firma/verificación la salida tiene que ser binaria.

Seguridad de la Información – Tema P4 .3.


Tı́tulo Propio de la

2. Puzzles con funciones hash - I

• Una función Hash H se dice amigable para puzzles si dada


cualquier posible salida y ∈ {0, 1}n de n bits, si elegimos
k ∈ {0, 1}m , no es posible encontrar un x ∈ {0, 1}∗ tal
que H(k|x) en un tiempo significativamente menor que 2n .
• Con una función Hash amigable para puzzles es posible
realizar un puzzle de búsqueda que consiste en a partir de
la función Hash H(), un valor id elegido en un conjunto
Módulo: Protección de Redes y Sistemas

homogéneo y un conjunto objetivo Y , encontrar un valor


x tal que H(id||x) ∈ Y .
Máster en Ciberseguridad

UCyS-UGR 2021/2022

• En nuestro caso, id será la concatenación de un mensaje


junto con un nonce de un solo uso.

Seguridad de la Información – Tema P4 .4.


Tı́tulo Propio de la

2. Puzzles con funciones hash - II

• Lo usual es que el conjunto Y venga dado por una cota,


es decir, y ∈ Y si y sólo si y ≤ y0 para cierto y0 .
Concretamente, y0 = 2n−b para un cierto número de bits
b. Esto quiere decir que estar en Y es equivalente a
comenzar por b ceros.
• La resistencia a preimágenes implica ser amigable para
Módulo: Protección de Redes y Sistemas

puzzles, pero no al revés. Las funciones Hash que hemos


visto son resistentes a preimágenes, por tanto pueden ser
Máster en Ciberseguridad

empleadas para puzzles de búsqueda.


UCyS-UGR 2021/2022

Seguridad de la Información – Tema P4 .5.


Tı́tulo Propio de la

3. Ejercicios - I

• Coged un archivo cualquiera de los empleados en las


prácticas anteriores. Lo denominaré <archivo>.
• Probad las diferentes opciones que dan formato a la
salida, concretamente -hex, -binary, -r, -c,
comparando las diferentes salidas y sus tamaños al calcular
los valores hash de <archivo>. Usad, para ellos dos
funciones hash con distinto tamaño de salida.
Módulo: Protección de Redes y Sistemas

• Calculad el tamaño de salida de todas las funciones hash


que aparecen en OpenSSL.
Máster en Ciberseguridad

UCyS-UGR 2021/2022

• Calculad el HMAC de <archivo> con contraseña ’0123’, y


verificad que el HMAC es correcto cambiando el archivo y la
contraseña.

Seguridad de la Información – Tema P4 .6.


Tı́tulo Propio de la

3. Ejercicios - II

• ¿Qué libro de Arturo Pérez Reverte se corresponde con el


siguiente hash?
SHA256([Link])=
[Link]
[Link]
[Link]
• ¿Es posible contestar a la pregunta anterior si agrego al
Módulo: Protección de Redes y Sistemas

tı́tulo del libro un nonce1 ?


Máster en Ciberseguridad

• Comprobad los valores hash de los archivos situados en


UCyS-UGR 2021/2022

[Link]
/stretch/bibtex2html

Seguridad de la Información – Tema P4 .7.


Tı́tulo Propio de la

3. Ejercicios - III

• Para la función SHA256, realizad, en el lenguaje de


programación que queráis, una función que tome como
entrada un texto, una cadena de 256 bits en formato
hexadecimal y un número de bits b. Creará un id que
concatene texto y cadena dados. Pegará a ese id cadenas
aleatorias x de 256 bits hasta lograr que SHA256(id||x)
tenga sus primeros b bits a cero. La salida será el id, la
Módulo: Protección de Redes y Sistemas

cadena x que haya proporcionado el hash requerido, el


valor del hash y el número de intentos llevados a cabo
Máster en Ciberseguridad

hasta encontrar el valor x apropiado.


UCyS-UGR 2021/2022

• Calculad una tabla/gráfica que vaya calculando el número


de intentos para cada valor de b.

Seguridad de la Información – Tema P4 .8.


Tı́tulo Propio de la

3. Ejercicios - IV
• Si tenemos un suceso con probabilidad ρ, el número de
repeticiones k del experimento necesario para que la
probabilidad de que ocurra el suceso sea mayor que λ es

log(λ)
k≤ .
log(1 − ρ)

Teniendo en cuenta que la probabilidad de encontrar una


salida con b bits a cero debe ser 21b , compara la gráfica
Módulo: Protección de Redes y Sistemas

anterior con la gráfica de


Máster en Ciberseguridad

$ %
UCyS-UGR 2021/2022

log( 12 )
f (b) = .
log(1 − 21b )

1
Valor aleatorio de un solo uso

Seguridad de la Información – Tema P4 .9.

También podría gustarte