Función hash

58
Función hash Una función de hash en funcionamiento. A las funciones hash (adopción más o menos directa del término inglés hash function) también se les llama funciones picadillo, funciones resumen o funciones de digest (adopción más o menos directa del término inglés equivalentedigest function) 1 2 3 Una función hash H es una función computable mediante un algoritmo , H: U M x h(x), que tiene como entrada un conjunto de elementos, que suelen ser cadenas , y los convierte (mapea) en un rango de salida finito, normalmente cadenas de longitud fija. Es decir, la función actúa como una proyección del conjunto U sobre el conjunto M. Observar que M puede ser un conjunto definido de enteros. En este caso podemos considerar que la longitud es fija si el conjunto es un rango de números de enteros ya que podemos considerar que la longitud fija es la del número con mayor número de cifras. Todos los números se pueden convertir al número especificado de cifras simplemente anteponiendo ceros. Normalmente el conjunto U tiene un número elevado de elementos y M es un conjunto de cadenas con un número más o menos pequeño de símbolos. Por esto se dice que estas funciones resumen datos del conjunto dominio.

description

jj

Transcript of Función hash

Page 1: Función hash

Función hash

Una función de hash en funcionamiento.

A las funciones hash (adopción más o menos directa del término inglés hash function) también se les

llama funciones picadillo, funciones resumen o funciones de digest (adopción más o menos directa

del término inglés equivalentedigest function)1 2 3 Una función hash H es una función computable

mediante un algoritmo,

 H: U → M

 x → h(x),

que tiene como entrada un conjunto de elementos, que suelen ser cadenas, y los convierte

(mapea) en un rango de salida finito, normalmente cadenas de longitud fija. Es decir, la función

actúa como una proyección del conjunto U sobre el conjunto M.

Observar que M puede ser un conjunto definido de enteros. En este caso podemos considerar

que la longitud es fija si el conjunto es un rango de números de enteros ya que podemos

considerar que la longitud fija es la del número con mayor número de cifras. Todos los números

se pueden convertir al número especificado de cifras simplemente anteponiendo ceros.

Normalmente el conjunto U tiene un número elevado de elementos y M es un conjunto

de cadenas con un número más o menos pequeño de símbolos. Por esto se dice que estas

funciones resumen datos del conjunto dominio.

La idea básica de un valor hash es que sirva como una representación compacta de

la cadena de entrada. Por esta razón decimos que estas funciones resumen datos del

conjunto dominio.

Índice

  [ocultar] 

Page 2: Función hash

1 Orígenes del término

2 Terminología asociada

3 Parámetros adicionales

o 3.1 Funciones hash con clave

4 Propiedades

o 4.1 Bajo costo

o 4.2 Compresión

o 4.3 Uniforme

o 4.4 De rango variable

o 4.5 Inyectividad. Función hash perfecta

o 4.6 Determinista

o 4.7 Propiedades para analizar la resistencia frente a colisiones

4.7.1 Resistencia a la primera imagen

4.7.2 Resistencia a la segunda preimagen

4.7.3 Resistencia a colisiones (CRHF)

4.7.4 Función hash de un solo sentido (OWHF)

4.7.5 Resistencia a la casi colisión

4.7.6 Resistencia a las preimágenes parciales

o 4.8 Con normalización de datos

o 4.9 Continuidad. Efecto avalancha

o 4.10 Resistencia a la computación de nuevos valores hash

5 Familias de funciones hash y propiedades asociadas

o 5.1 Motivación[17]

o 5.2 Concepto

o 5.3 Familia de funciones hash resistente a colisiones

5.3.1 Definición formal

o 5.4 Función hash universal

5.4.1 Definición formal[23]

o 5.5 Familia de funciones hash universal de un solo sentido

5.5.1 Definición formal

o 5.6 Comparación UOWHF y CRHF[27]

6 Funciones hash iterativas. Construcción de Merkle-Damgård

7 Aplicaciones

Page 3: Función hash

8 Véase también

9 Referencias

10 Enlaces externos

Orígenes del término[editar · editar código]

El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés)

de dicha palabra en el mundo real: picar y mezclar. Donald Knuth cree que H. P. Luhn,

empleado de IBM, fue el primero en utilizar el concepto en un memorándum fechado en enero

de 1953. Su utilización masiva no fue hasta después de 10 años.

Terminología asociada[editar · editar código]

Al conjunto U se le llama dominio de la función hash. A un elemento de U se le

llama preimagen o dependiendo del contexto clave o mensaje.

Al conjunto M se le llama imagen de la función hash. A un elemento de M se le llama valor

hash, código hash o simplemente hash.

Se dice que se produce una colisión cuando dos entradas distintas de la función de hash

producen la misma salida. De la definición de función hash podemos decir que U, el dominio de

la función, puede tener infinitos elementos. Sin embargo M, el rango de la función, tiene un

número finito de elementos debido a que el tamaño de sus cadenas es fijo. Por tanto la

posibilidad de existencia de colisiones es intrínseca a la definición de función hash. Una buena

función de hash es una que tiene pocas colisiones en el conjunto esperado de entrada. Es

decir, se desea que la probabilidad de colisión sea muy baja.

Parámetros adicionales[editar · editar código]

La definición formal dada, a veces se generaliza para poder aprovechar las funciones hash en

otros ámbitos. Para ello a la función hash se le añaden nuevos parámetros de forma que el

valor hash no es sólo función del contenido en sí, sino además de otros nuevos factores.

Para hallar valores hash de ficheros a veces se usan, además del contenido en sí, diversos

parámetros como el nombre del archivo, su longitud, hora de creación, etc.

Otras veces se añaden parámetros que permiten configurar el comportamiento de la función.

Por ejemplo, la función hash puede recibir como parámetro una función de generación de

valores pseudoaleatorios que es usada dentro del algoritmo de la función hash.

Otros ejemplos de parámetros son el uso de valores sal, el uso de claves secretas, el uso de

parámetros que especifican el rango de la función (funciones hash de rango variable), el uso de

Page 4: Función hash

parámetros que especifican el nivel de seguridad que se quiere en el valor hash de salida

(funciones hash dinámicas),....

Funciones hash con clave[editar · editar código]

Una función hash con clave HK (en inglés keyed hash function) es una función hash H que

tiene un parámetro secreto K que pertenece al conjunto posible de claves   y en la que para

una entrada x, hK(x) es el valor hash de x. Al resto de funciones hash se dice que son sin

clave (en inglés unkeyed hash function).

Propiedades[editar · editar código]

La calidad de una función hash viene definida con base en la satisfacción de ciertas

propiedades deseables en el contexto en el que se va a usar.

Bajo costo[editar · editar código]

Calcular el valor hash necesita poco costo (computacional, de memoria,...).

Compresión[editar · editar código]

Una función hash comprime datos si puede mapear un dominio con datos de longitud muy

grande a datos con longitud más pequeña

Uniforme[editar · editar código]

Se dice que una función hash es uniforme cuando para una clave elegida aleatoriamente es

igualmente probable tener un valor hash determinado, independientemente de cualquier otro

elemento.

Para una función hash H uniforme del tipo H:{0,1}m→{0,1}n, es decir:

Las cadenas están construidas sobre un alfabeto de 2 símbolos (Alfabeto binario)

El dominio es el conjunto de las cadenas de longitud m

El rango es el conjunto de las cadenas de longitud n

podemos decir que a cada resumen le corresponde 2m-n mensajes y que la probabilidad de

que dos mensajes den como resultado la misma salida es 2-n

Para algoritmos de búsqueda, si todas las entradas son igualmente probables, se busca

esta propiedad para minimizar el número de colisiones ya que cuantas más colisiones

haya, será mayor el tiempo de ejecución de las búsquedas.

De rango variable[editar · editar código]

Page 5: Función hash

En algunas funciones hash el rango de valores hash puede ser diferente a lo largo del

tiempo. Ejemplo: Funciones hash usadas para tablas hash que necesitan expandirse. En

estos caso a la función hash se le debe pasar un parámetro que le permita saber en qué

rango se mueve la ejecución para hallar el valor hash.

Inyectividad. Función hash perfecta[editar · editar código]

Se dice que la función hash es inyectiva cuando cada dato de entrada se mapea a un valor

hash diferente. En este caso se dice que la función hash es perfecta. Para que se dé, es

necesario que la cardinalidad del conjunto dominio sea inferior o igual a la cardinalidad del

conjunto imagen. Normalmente sólo se dan funciones hash perfectas cuando las entradas

están preestablecidas. Ejemplo:Mapear los días del año en números del 1 al 366 según el

orden de aparición.

Formalización:

 implica 

Cuando no se cumple la propiedad de inyectividad se dice que hay colisiones. Hay

una colisión cuando   y 

Determinista[editar · editar código]

Una función hash se dice que es determinista cuando dada una cadena de entrada

siempre devuelve el mismo valor hash. Es decir, el valor hash es el resultado de aplicar un

algoritmo que opera sólo sobre la cadena de entrada. Ejemplos de funciones hash no-

deterministas son aquellas funciones hash que dependen de parámetros externos, tales

como generadores de números pseudoaleatorios o la fecha. Tampoco son deterministas

aquellas funciones hash que dependen de la dirección de memoria en la que está

almacenada la cadena de entrada. Esa dirección es accidental y no se considera un

cambio de la cadena entrada en sí. De hecho puede cambiar dinámicamente durante la

propia ejecución del algoritmo de la función hash.

Propiedades para analizar la resistencia frente a colisiones[editar · editar código]

El estudio de este tipo de propiedades es muy útil en el campo de la criptografía para los

llamados 'códigos de detección de modificaciones'.

Resistencia a la primera imagen[editar · editar código]

Page 6: Función hash

4 Se dice que una función hash tiene resistencia a la primera preimagen o simplemente

que tiene resistencia a preimagen (del inglés preimage-resistant) si dado un valor hash

y, es computacionalmente intratable encontrar un x, tal que h(x)=y.

Resistencia a la segunda preimagen[editar · editar código]

5 Se dice que una función hash tiene resistencia a la segunda preimagen (en

inglés second preimage-resistant) si dado un mensaje x, es computacionalmente

intratable encontrar un x',  , tal que h(x)=h(x').

Resistencia a colisiones (CRHF)[editar · editar código]

6 Se dice que una función hash tiene resistencia a colisiones o que es resistente a

colisiones o CRHF (del inglés Collision Resistant Hash Function) si encontrar un

par   con  tal que   es computacionalmente intratable. Es

decir, es difícil encontrar dos entradas que tengan el mismo valor hash.

Como encontrar una segunda preimagen no puede ser más fácil que encontrar una

colisión, entonces la resistencia a colisiones incluye la propiedad de resitencia a la

segunda preimagen.7 8 Por otro lado se puede decir que la mayoría de las funciones hash

CRHFs son resistentes a preimagen.9 La resistencia a colisisiones implica resistencia a

preimagen para funciones hash con salida aleatoria uniforme.10

En algunos trabajos a estas funciones se les llama funciones hash de un sólo sentido

fuertes (del inglés strong one way hash function) para resaltar que es fuerte debido a que

hay libre elección de los dos valores x e y.

Función hash de un solo sentido (OWHF)[editar · editar código]

11 Una función hash se dice que es una función hash de un solo sentido o que

es OWHF (del inglés One-Way Hash Function) si tiene las propiedades de resistencia a

preimagen y de resistencia a segunda preimagen. Es decir, es difícil encontrar una

entrada cuya hash sea un valor hash preespecificado.

Observar que es diferente a la definición general que se hace de funciones de un solo

sentido:

12 Una función se dice que es una función de un solo sentido o que es OWF si para cada x

del dominio de la función, es fácil computar f(x), pero para todo y del rango de f, es

computacionalmente intratable encontrar cualquier x tal que y=f(x).

La diferencia entre OWHF y OWF es que OWF no requiere que sea función hash ni que sea

resistente a segunda preimagen.

Page 7: Función hash

En algunos trabajos a estas funciones se les llama funciones hash de un sólo

sentido débiles (del inglés strong one way hash function) para resaltar que es

débil en contraste conCRHF (que es fuerte) debido a que al cumplir la propiedad

de resistencia a segunda preimagen no hay libre elección en la selección del

valor x, y por tanto del valor h(x), en el que se tiene que producir la colisión.

Resistencia a la casi colisión[editar · editar código]

13 H es resistente a la casi colisión (en inglés near-colission resistance) si es difícil

encontrar dos mensajes   y   con   para las cuales sus

imágenes   y   difieran solamente en unos pocos bits.

14 Por ejemplo podemos tener una función resistente a colisiones de 256 bits que

no es resistente a la casi colisión porque se pueden encontrar casi-colisiones

para los 224 bits de más a la izquierda.

Resistencia a las preimágenes parciales[editar · editar código]

15 Una función hash tiene resistencia a preimágenes parciales (en inglés Partial-

preimage resistance) si es difícil encontrar una parte de la preimagen de un valor

hash incluso conociendo el resto de la preimagen. Es decir, se debe recurrir a la

fuerza bruta: si se desconocen t bits de la preimagen, se deben realizar en

promedio 2n-t operaciones de hash encontrarlo.

A una función hash resistente a preimágenes parciales también se le dice que

es localmente de un sólo sentido (del inglés local one-wayness).

Con normalización de datos[editar · editar código]

En algunas aplicaciones, las cadenas de entrada pueden contener características

que son irrelevantes cuando comparamos las cadenas. Por ejemplo en algunas

aplicaciones las mayúsculas pueden ser irrelevantes. Por tanto para hallar el

valor hash es interesante ignorar las distinciones no relevantes entre las cadenas

de entrada. De esta forma cadenas distintas con diferencias no relevantes, tienen

asociados valores hash iguales.

Continuidad. Efecto avalancha[editar · editar código]

Se dice que una función es continua cuando una modificación minúscula (ej un

bit) en la cadena de entrada ocasiona pequeños cambios en el valor hash.

En una función hash se dice que no hay correlación cuando los bits de las

cadenas de entrada y los bits de las cadenas de salida no están relacionados, es

Page 8: Función hash

decir cuando una modificación minúscula (ej un bit) en la cadena de entrada

ocasiona cambios en el valor hash comparables a un cambio de cualquier otro

tipo. Por tanto cualquier cambio en el mensaje original idealmente hace que cada

uno de cualquier bit del valor hash resultante cambie con probabilidad 0.5.

Cuando esto sucede (o casi) se dice que se produce un efecto avalancha

En funciones hash usadas para búsqueda normalmente se buscan funciones tan

continuas como sea posible; de forma que entradas que difieran un poco

deberían tener valores hash similares o iguales. Sin embargo la continuidad no es

deseable para funciones hash usadas para sumas de verificación o funciones

criptográficas por evidentes razones.

Resistencia a la computación de nuevos valores hash[editar · editar código]

16 Una función hash con clave K,   se dice que tiene resistencia a la

computación de nuevos valores hash (en inglés Computation-resistance) si a

partir de un rango de pares conocidos   no puede ser computado

para un nuevo dato x   con   para cualquier i, sin que K sea

conocida.

Observar que la propiedad anterior implica que no debería ser posible calcular K

a partir de un rango de pares conocidos  . A esta propiedad se la

llama propiedad de no recuperación de clave (en inglés key non-recovery).

El estudio de este tipo de propiedades son muy útiles en el campo de

la criptografía para los llamados 'códigos de autenticación de mensajes'

Familias de funciones hash y propiedades asociadas[editar · editar código]

Motivación17 [editar · editar código]

Podríamos imaginarnos un algoritmo probabilístico de tiempo polinomial con dos

mensajes codificados en el algoritmo que dan lugar a una colisión para una

específica función hash. El algoritmo simplemente devolvería los dos mensajes

que causan la colisión. Crear tal algoritmo puede ser extremadamente difícil, pero

una vez construido podría ser ejecutado en tiempo polinomial. Sin embargo,

definiendo una familia de funciones hash como una familia infinita de funciones

hash nos impide que la búsqueda de este algoritmo tenga éxito para todas las

funciones hash de la familia, porque hay infinitas. Por tanto las familias hash nos

Page 9: Función hash

proporcionan un mecanismo interesante para el estudio y categorización de las

funciones hash respecto a su fortaleza frente a la búsqueda de colisiones por

parte de un adversario. Este tipo de estudios es muy útil en el campo de

la criptografía para los llamados 'códigos de detección de modificaciones'.

Concepto[editar · editar código]

Sea  , el dominio de la función, sea   el rango de la

función. Sea   el conjunto de todas las posibles claves (teóricamente es infinito

aunque en la práctica es finito),

Una familia de funciones hash   es un conjunto infinito de funciones hash de

la forma   (notación equivalente  ,

donde cada función de la familia es indexada por una clave   que

cumple las siguientes propiedades:

 es accesible, es decir hay un algoritmo probabilístico de tiempo

polinomial, que sobre una entrada   devuelve una instancia 

 es muestreable, es decir, hay un algoritmo probabilístico de tiempo

polinomial, que selecciona uniformemente elementos de  .

 es computable en tiempo polinomial, es decir, hay un algoritmo de

tiempo polinomial (en l) que sobre una entrada   

computa  .

Ejemplo: SHA-1 es una sola instancia de función hash, no una familia. Sin

embargo SHA-1 puede ser modificado para construir una familia finita de

funciones. M. Bellare y P. Rogaway18 modificaron SHA-1 de tal forma que la

claves especifica las constantes usadas en la cuarta ronda de las funciones. En

este caso el tamaño de la clave es de 128 bits y por tanto 

,   y  .

Observar que en la definición de una función hash el dominio se puede formalizar

como  , sin embargo en una función hash definida como instancia de un

elemento de una familia de funciones hash el dominio es  . Esto es debido a

que para que se cumplan las propiedades de seguridad es necesario que el

dominio sea muestreado uniformemente en tiempo polinomial. Una familia de

funciones   puede siempre ser definida con aquel tamaño apropiado para

acomodar cualquier mensaje que sea necesario.

Page 10: Función hash

Familia de funciones hash resistente a colisiones[editar · editar código]

De forma informal una familia de funciones es familia de funciones hash

resistente a colisiones, también llamadas CRHF por sus siglas en inglés

(Collision Resistant Hash Function), dada una función escogida aleatoriamente

de la familia, un adversario es incapaz de obtener una colisión para ella.19

Definición formal[editar · editar código]

20 Se dice que una familia de funciones hash es una (t,ε)-familia hash resistente

a colisiones   con la forma   con n,l y k enteros

positivos y n>=l, que satisfacen la siguiente condición: Sea   un buscador de

colisiones de cadenas que para un entrada K en el espacio de claves usa

tiempo   y obtiene como salida  , un par   tal

que  . Para cada  ,

.

Observar que la probabilidad es tomada sobre las elecciones aleatorias

de  .

Mirando esta definición se ve que son interesantes aquellas familias que

tienen un t/ε suficientemente grande.

Estrictamente hablando hablamos de familias CRHF pero por simplicidad se

suele hablar simplemente de CRHF.

La definición no se mete en cómo se eligen las funciones hash de la familia.

Este punto es crucial.21 En realidad, en cualquier aplicación de funciones

hash resistentes a colisiones, alguna parte P tienen que elegir una función de

la familia de forma aleatoria para producir la descripción de la función. Es

importante distinguir entre dos casos:

La elección aleatoria se puede hacer pública (o 'public-coin'). La

elección aleatoria puede ser revelada como parte de la descripción de la

función.

La elección aleatoria se tiene que mantener secreta (o 'secret-coin').

La revelación la elección aleatoria realizada puede que permita

encontrar colisiones. Por tanto P tiene que mantener secreta la elección

después de producir la descripción de la función.

Page 11: Función hash

Evidentemente una familia CRHF elegible de forma pública (public-coin)

también puede trabajar si uno elige o mantiene la elección de forma privada

(secret-coin).

Función hash universal[editar · editar código]

Una función hash universal es un familia de funciones donde la

probabilidad de colisión entre dos textos escogidos es despreciable.22

Definición formal23 [editar · editar código]

Una k-familia de funciones hash universal es un conjunto H de

funciones   tal que para cada

elemento   y todos los (no necesariamente

distintos)  .

24 Una familia de funciones hash   es ε-casi universal o ε-AU (del inglés ε-

almost universal) si es menor que ε la probabilidad de que dos entradas

distintas m,n tengan el mismo valor hash asociado, estando la función hash

elegida aleatoriamente entre los miembros de  . De la definición se percibe

que son interesantes aquellas familias que tienen un valor pequeño de ε

indicando que el adversario no puede encontrar un par de entradas que

producen el mismo valor hash, para una función hash elegida aleatoriamente

de entre los elementos la familia.

Familia de funciones hash universal de un solo sentido[editar · editar código]

Una familia de funciones hash universal de un solo sentido, también

llamadas UOWHF por sus siglas en inglés (Universal One-Way Hash

Function), es una familia de funciones hash universales donde, elegida una

clave K aleatoriamente en el espacio de claves, dada una cadena x con valor

hash hK(x) es difícil encontrar un x' distinta de x tal que hK(x)=hK(x'). Al par

(x,x') se le llama par de colisión

Definición formal[editar · editar código]

25 26 Se dice que una familia de funciones hash   es (t,ε)-función hash

universal de un sólo sentido (UOWHF) si no existe ningún adversario que

en tiempo menor que t pueda ganar el siguiente juego con probabilidad

mayor o igual que ε: El adversario escoge un valor x del Rango, entonces

Page 12: Función hash

recibe una clave K del espacio de claves escogida de forma aleatoria. El

juego se gana si encuentra un x' tal que hK(x)= hK(x').

El adversario está compuesto por dos algoritmos  .

 sólo tiene como parámetro de entrada el conjunto de la familia de

funciones hash. Produce como salida x y State. x es el valor hash

objetivo y State es alguna información extra que puede ayudar a A2 a

encontrar la colisión.

 tiene como parámetros de entrada K,x y State y produce como

salida x'

por tanto

.

siendo   un par   con   tal que hK(x)= hK(x')

Observar que, al igual que en la definición de (t,ε)-CRHF la probabilidad

es tomada sobre las elecciones aleatorias de  . La gran diferencia es

que aquí la entrada x se fija primero.

Mirando esta definición se ve que son interesantes aquellas familias que

tienen un t/ε suficientemente grande.

Comparación UOWHF y CRHF27 [editar · editar

código]

Una familia UOWHF es una noción más débil que una familia CRHF. En

una CRHF, a el oponente primero se le da la clave y después ella o él

tiene que producir la pareja de entradas que colisiona. Encontrar

colisiones para un parámetro fijo de una UOWHF, puede que sea

bastante más fácil, pero esto no ayudará a un oponente a violar la

seguridad. Simon28 ha demostrado que existe un oráculo relativo a el

cual UOWHF existe, pero no CRHF.

Funciones hash iterativas. Construcción de Merkle-Damgård[editar · editar código]

29 30 31 Muchas funciones hash se construyen mediante el proceso

iterativo siguiente hasta conseguir el valor hash de la entrada X, h(X):

Page 13: Función hash

El número de bits de la entrada X (en principio de longitud arbitraria)

tiene que ser múltiplo de la longitud de bloque. Para conseguirlo se

tiene una regla de padding que alarga la entrada a una longitud

aceptable. Normalmente esta regla consiste en añadir al final de la

entrada unos símbolos adicionales a los que se

llama relleno o padding.

Se divide la entrada en bloques de longitud fija. Obteniendo un

conjunto de bloques x1,...,xt.

Se realiza un proceso iterativo de la siguiente forma:

H0=IV

Hi=f(xi,Hi-1), i=1,2,...,t y

h(X)=g(Ht).

Al valor IV se le llama valor inicial y se representa por esas siglas

por el término inglés Initial Value. A la función f se la llama función

de ronda o función de compresión. A la función g se la

llama transformación de salida. Lo que hace la función g es

derivar a partir de Ht tantos bits como se quieran en la salida de la

función. Frecuentemente g es la función identidad o un

truncamiento de Ht.

En este tipo de descripción de funciones hash hay dos elecciones

importantes que afectarán a las propiedades que tendrá la función:

La elección de la regla de padding. Si lo que se quiere es evitar

colisiones es recomendable que la regla de padding no permita

que existan dos mensajes que sean rellenados a el mismo

mensaje.

La elección de valor inicial (IV). Debería ser definido como

parte de la descripción de la función hash.

A las funciones que se construyen mediante el anterior sistema se

dice que son son funciones hash iterativas.

A esta forma de construcción recursiva se la conoce también como

de Merkle-Damgård debido a que fue usado por primera vea por R.

Merkle y I. Damgård independientemente en 1989.

Aplicaciones[editar · editar código]

Page 14: Función hash

Las funciones hash son usadas en múltiples campos. Ejemplos:

Herramienta básica para la construcción de utilidades más

complejas:

Construcción de estructuras de datos: Su uso en distintas

estructuras de datos hacen más eficientes las búsquedas.

Ej. tablas hash.

Construcción de esquemas de compromiso. Los esquemas

de compromiso permiten que una entidad elija una valor

entre un conjunto finito de posibilidades de tal forma que

no pueda cambiarla. Esa entidad no tiene que revelar su

elección hasta si acaso el momento final (la elección

puede permanecer oculta).

Construcción de algoritmos de cifrado/descifrado. Por

ejemplo se usa en la construcción de cifradores de flujo y

de cifradores de bloque.

Construcción de algoritmos generadores de números

pseudoaleatorios.

Construcción de cadenas pseudoaleatorias. Por ejemplo el

llamado modelo de oráculo aleatorio se basa en considerar

que funciones hash con ciertas propiedades se comportan

como funciones que escogen cadenas al azar, se usa para

el estudio de la seguridad los esquemas criptográficos.

Construcción de algoritmos de testeo de pertenencia o no

a un conjunto.- Se han usado funciones hash para la

construcción de acumuladores criptográficos y filtros de

Bloom. Estas tecnologías permiten establecer mecanismos

que permiten pronunciarse, a veces con cierto grado de

error, sobre la pertenencia o no a cierto conjunto.

Construcción de métodos de generación de sellos de

tiempo confiables.

Herramienta para proteger la integridad

En la firma digital

Como dato que se firma:En los algoritmos de firma

convencionales normalmente en lugar de firmar todo

Page 15: Función hash

el contenido se suele ser firmar sólo el valor hash del

mismo. Algunas de las motivaciones para hacer esto

son:32

Cuando se usa para firmar algoritmos de firma

por bloques donde los mensajes son más largos

que el bloque, no es seguro firmar mensajes

bloque a bloque ya que un enemigo podría borrar

bloques del mensaje firmado o insertar bloques

de su elección en el mensaje antes de que sea

firmado. Al usar una función hash hacemos una

transformación que hace a la firma dependiente

de todas las partes del mensaje.

Normalmente los valores hash son mucho más

cortos que los datos originales de entrada. Se

puede mejorar mucho la velocidad de firma

firmando el valor hash en lugar de firmar el dato

original.

Si los mensajes a firmar pueden tener cierta

estructura algebraica y el algoritmo de firma se

comporta de forma que el sistema resultante

puede ser vulnerable acriptoanálisis con ataques

de texto escogido, podemos usar funciones hash

para destruir esta estructura algebraica.

Como parte del algoritmo de firma: Se han

desarrollado algoritmos de firma que usan funciones

hash en el propio algoritmo de firma como una

herramienta interna del mismo. Ejemplo de este tipo

algoritmos son el esquema de firma de Merkle.

Suma de verificación  (del inglés checksum): Cuando

queremos almacenar o transmitir información, para

protegernos frente a errores fortuitos en el

almacenamiento o transmisión, es útil acompañar a los

datos de valores hash obtenidos a partir de ellos aplicando

funciones hash con ciertas propiedades de forma que

puedan ser usados para verificar hasta cierto punto el

Page 16: Función hash

propio dato. A el valor hash se le llama Suma de

verificación.

Prueba de la integridad de contenidos.- Por ejemplo

cuando se distribuye un contenido por la red, y se quiere

estar seguro de que lo que le llega al receptor es lo que se

está emitiendo, se proporciona un valor hash del contenido

de forma que ese valor tiene que obtenerse al aplicar la

función hash sobre el contenido distribuido asegurando así

la integridad. A esto se le suele llamar checksum

criptográfico debido a que es un checksum que requiere

el uso de funciones hash criptográficas para que sea difícil

generar otros ficheros falso que tengan el mismo valor

hash. Otro ejemplo de uso esta tecnología para verificar la

integridad es calcular y guardar el valor hash de archivos

para poder verificar posteriormente que nadie (Ej un virus)

los ha modificado. Si en lugar de verificar la integridad de

un solo contenido lo que se quiere es verificar la integridad

de un conjunto de elementos, se pueden usar algoritmos

basados en funciones hash como los árboles de

Merkle que se basan en aplicar reiteradamente las

funciones hash sobre los elementos del conjunto y sobre

los valores hash resultantes.

Herramientas vinculadas a la autenticación y control de acceso

Autenticación de entidades: Por ejemplo es frecuente el

uso para este propósito de funciones hash deterministas

con clave secreta que tienen ciertas propiedades

(Códigos de autenticación de mensajes). En estos

esquemas tanto el servicio de autenticación, o verificador,

como la entidad que se quiere autenticar mantienen en

secreto la clave de la función hash. El esquema funciona

de la siguiente forma: El que se quiere autenticar genera

un mensaje y calcula su valor hash. Estos dos datos se

mandan al verificador. El verificador comprueba que el

valor hash se corresponde con el mensaje enviado y de

esta forma verifica que la entidad tiene la clave secreta y

Page 17: Función hash

por otra parte puede asegurar que el mensaje es íntegro

(no ha sido modificado desde que se calculó el valor hash).

Observar que el esquema no tiene la propiedad del no-

repudio por parte del que se quiere autenticar ya que el

verificador, al disponer de la clave secreta, puede generar

también los valores hash.

Protección de claves: Para comprobar la corrección de una

clave no es necesario tener la clave almacenada, lo que

puede ser aprovechado para que alguien no autorizado

acceda a ella, sino almacenar el valor hash resultante de

aplicar una función hash determinista. De esta forma para

verificar si una clave es correcta basta con aplicar la

función hash y verificar si el resultado coincide con el que

tenemos almacenado.

Derivación de claves: Por ejemplo en algunas aplicaciones

usan funciones hash para derivar una clave de sesión a

partir de un número de transacción y una clave maestra.

Otro ejemplo de aplicación sería el uso de funciones hash

para conseguir sistemas de autenticación con claves de un

solo uso o OTP (del inglés One Time Password). En este

tipo de sistemas la clave es válida para un solo uso. Estos

sistemas se basan en tener un semilla inicial y luego ir

generando claves (mediante un algoritmo que puede usar

funciones hash) que pueden tener un solo uso y así

evitar ataques de REPLAY.

Herramienta para la identificación y la rápida comparación de

datos: Se pueden usar funciones hash para proporcionar una

identificación de objetos o situaciones. Una buena función hash

para este propósito debería ser rápida y asegurarse de que dos

objetos o situaciones que se considerar iguales den lugar al

mismo valor hash. Observar que dos objetos o situaciones

pueden ser considerados iguales sin ser idénticos. Por ejemplo

podemos considerar iguales a dos ficheros que son distintos bit

a bit porque realmente son la digitalización de la misma

película. Es labor del diseño de la función hash capturar la

Page 18: Función hash

esencia del criterio de igualdad. Por otra parte la evaluación de

la función hash debería ser poco costosa para facilitar la rápida

comparación de elementos candidatos a ser iguales y de esta

forma poder implementar algoritmos de búsqueda rápidos.

Huellas digitales .- El uso de funciones hash aplicados

a cadenas permiten obtener valores hash que pueden

usarse detectar fácilmente la aparición de esos datos en

distintos sitios. Pueden ser usados para distintos usos

como búsqueda de virus, autenticación con datos

biométricos, detección de copias,...La idea puede usarse

más allá de textos y ser aplicado a cualquier tipo de

contenido multimedia:33 34 Las funciones hash

específicamente diseñadas para este propósito obtienen

valores hash que permiten detectar características

intrínsecas del contenido multimedia, de forma que se

pueda identificar si dos archivos diferentes se

corresponden con el mismo contenido multimedia. Como

aplicación práctica de este tipo de algoritmo tenemos los

programas que se ejecutan en dispositivos móviles y que

son capaces de adivinar el título de la canción que está

sonando en la habitación solamente capturando el sonido

y comparándolo con estos valores hash. Este tipo de

algoritmos también se puede utilizar para protección de

contenidos multimedia ya que permite validar

automáticamente si cierto fichero multimedia está

protegido o no por derechos de autor.

Identificación de contenidos: En algunas aplicaciones se

usa el valor hash de un contenido multimedia para

identificar ese contenido independientemente de su

nombre o ubicación. Esto es ampliamente usado en

redes Peer-to-peer que intercambian de archivos, tales

como Kazaa, Ares Galaxy, Overnet, BitTorrent.

Identificar un registro en una base de datos y permitir con

ello un acceso más rápido a los registros (incluso más

rápido que teniendo índices).

Page 19: Función hash

Algorítmos de búsqueda de subcadenas : Los algoritmos

de búsqueda de subcadenas tratan el problema de

buscar subcadenas, a la que llaman patrón, dentro de

otra cadena a la que llaman texto. Hay algoritmos de este

tipo que usan funciones hash en su implementación.

Ejemplo: algoritmo Karp-Rabin.

Detección de virus: Para detectar los virus muchos

antivirus definen funciones hash que capturan la esencia

del virus y que permiten distinguirlos de otros programas o

virus. Es lo que se llama firma del virus. Estas firmas son

usadas por los antivirus para poder detectarlos.

Muchas de las aplicaciones de las funciones hash son relativas al

campo de la criptografía ( Cifradores, acumuladores

criptográficos, firma digital, protocolos criptográficos de

autenticación,...). La Criptografía es una rama de las matemáticas

que proporciona herramientas para conseguir seguridad en los

sistemas de información. Las funciones hash interesantes en el

área de la criptografía se caracterizan por cumplir una serie de

propiedades que permiten a las utilidades criptográficas que las

utilizan ser resistente frente ataques que intentan vulnerar la

seguridad del sistema. A las funciones hash que cumplen estas

propiedades se las llama funciones hash criptográficas.

Véase también

Page 20: Función hash

FUNCIONES HASH Edit    0    10   …

Ver //Funciones Hash// encontraras un concepto mas claro acerca de Hash.

FUNCIÓN HASH (HISTORIA)

Fue creada en 1990, Ron Rivest (la R de RSA) inventó la función hash MD4. En 1992, mejoró el MD4 y desarrolló otra función hash: MD5. En 1993, la National Security Agency (organismo dependiente del gobierno de EE.UU.) publicó una función hash muy similar al MD5, llamada SHA (Secure Hash Algorithm). Cuando, en 1995, se descubrieron debilidades, la NSA hizo cambios al SHA. El nuevo algoritmo fue llamado SHA-1. Hoy la función más popular de hash es SHA-1.Existen funiciones hash de una vía (one-way) que son una construcción criptográfica empleada en muchas aplicaciones. Son usadas junto con los algoritmos de clave pública para cifrado y firma digital.Son usadas en la verificación de integridad, en autenticación. Conforman aplicaciones de muchos protocolos diferentes. Mucho más que los algoritmos de cifrado, las funciones de hashing de una vía son los verdaderos caballos de trabajo de la criptografía

Page 21: Función hash

moderna.Estas tienen dos propiedades: 1. Ser de una sola vía. Esto significa que es fácil tomar un mensaje y computarlo en el valor del hash, pero es imposible(o dificultar mucho) tomar el valor del hash y recrear el mensaje original.

2. Estar libres de colisiones. Quiere decir que es imposible encontrar dos mensajes que generen un digesto del mismo valor.

Quebrar una función hash significa mostrar que cada una o ambas de estas propiedades no son ciertas.En febrero del 2005, tres criptógrafos chinos mostraron que el SHA-1 no está libre de colisiones. Esto es: desarrollaron un algoritmo para encontrar las colisiones más rápido que la fuerza bruta.SHA-1 produce un digesto de 160-bit. Cada

mensaje “hasheado” genera un número de 160-bit. Teniendo que hay infinito

número de mensajes que se resumen en cada valor posible, hay infinito número de posibles colisiones. Pero debido a que el número de posibles digestos es también muy grande, la posibilidad de encontrar uno por azar es increíblemente pequeña (uno en 280, para ser exactos). Si se hace hashing de 280 mensajes aleatorios, podrá encontrar un par cuyo digesto es el mismo valor. Esta es la forma en que por “fuerza bruta” se encuentran las colisiones, y dependen únicamente de la longitud del valor del hash. "Quebrar" la función hash significa contar con la posibilidad de encontrar colisiones más rápido que eso.Ellos encontraron colisiones en el SHA-1 en 269 cálculos, cerca de 2.000 veces más rápido que la fuerza bruta. Ahora, esto es justo en el lejano borde de las facilidades de la actual teccnología. Dos cálculos masivos comprables ilustrarán este punto. 

EN INFORMATICA HASH:En //informática//, Hash se refiere a una //función// o método para generar //claves// o llaves que representen de manera casi unívoca a

Page 22: Función hash

un//documento//, //registro//, //archivo//, etc., resumir o identificar un //dato// a través de la //probabilidad//, utilizando una función hash o algoritmo hash. Un hash es el resultado de dicha //función// o //algoritmo//.Una función de hash es una //función// para resumir o identificar probabilísticamente un gran //conjunto// de información, dando como resultado un conjunto imagen finito generalmente menor (un //subconjunto// de los //números naturales// por ejemplo). Varían en los conjuntos de partida y de llegada y en cómo afectan a la salida similitudes o patrones de la entrada. Una propiedad fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces las dos entradas que generaron dichos resultados también lo son.Es posible que existan claves resultantes iguales para objetos diferentes, ya que el rango de posibles claves es mucho menor que el de posibles objetos a resumir (las claves suelen tener en torno al centenar de bits, pero los ficheros no tienen un tamaño límite).Son usadas en múltiples aplicaciones, como los //arrays asociativos//, //criptografía//, procesamiento de datos y //firmas digitales//, entre otros. Una buena función de hash es una que experimenta pocas //colisiones// en el conjunto esperado de entrada; es decir que se podrán identificar unívocamente las entradas (ver //función inyectiva//).Muchos sistemas relacionados con la seguridad informática usan funciones o tablas hash.

Page 23: Función hash

FUNCIONES DE LA FUNCION HASHUna herramienta fundamental en la cripotografía, son las funciones hash, son usadas principalmente para resolver el problema de la integridad de los mensajes, así como la autenticidad de mensajes y de su origen. Una función hash es también ampliamente usada para la firma digital, ya que los documentos a firmar son en general demasiado grandes, la función hash les asocia una cadena de longitud 160 bits que los hace más manejables para el propósito de firma digital.

De forma gráfica la función hash efectúa lo siguiente: un mensaje de longitud arbitraria lo transforma de forma "única" a un mensaje de longitud constante.

¿Cómo hace esto? La idea general es la siguiente:La función hash toma como entrada una cadena de longitud arbitraria, digamos 5259 bits, luego divide éste mensaje en pedazos iguales, digamos de 160 bits, como en este caso y en general el mensaje original no será un múltiplo de 160, entonces para completar un número entero de

Page 24: Función hash

pedazos de 160 bits al último se le agrega un relleno, digamos de puros ceros. En nuestro caso en 5259 caben 32 pedazos de 160 bits y sobran 139, entonces se agregarán 21 ceros más.

El mensaje toma la forma X = X1, X2, X3,…,Xt donde cada Xi tiene igual longitud (160 bits por ejemplo).

Posteriormente se asocia un valor constante a un vector inicial IV y H0=IV

Ahora se obtiene H1 que es el resultado de combinar H0 con X1 usando una función de compresión f

H1 = f(H0,X1)

Posteriormente se obtiene H2, combinando H1 y X2 con f

H2 = f(H1,X2)

Se hace lo mismo para obtener H3

H3 = f(H2,X3)

Hasta llegar a Ht

Ht = f(Ht-1, Xt)

Entonces el valor hash será h(M) = HtDe alguna forma lo que se hace es tomar el mensaje partirlo en pedazos de longitud constante y combinar de alguna forma pedazo por pedazo hasta obtener un mensaje único de longitud fija como muestra la figura siguiente:

Las funciones hash (o primitivas hash) pueden operar como: MDC (Modification Detection Codes) ó MAC (Massage Authentication Codes).

Los MDC sirven para resolver el problema de la integridad de la información, al mensaje se le aplica un MDC (una función hash) y se manda junto con el propio mensaje, al recibirlo el receptor aplica la función hash al mensaje y comprueba que sea igual al hash que se envió antes.

Page 25: Función hash

Es decir, se aplica un hash al mensaje M y se envía con el mensaje (M, h(M)), cuando se recibe se le aplica una vez más el hash (ya que M es público) obteniendo h'(M), si h(M)=h'(M), entonces se acepta que el mensaje sea transmitido sin alteración.

Los MAC sirven para autenticar el origen de los mensajes (junto con la integridad), un MAC. Es decir, se combina el mensaje M con una clave privada K y se les aplica un hash h(M,K), si al llegar a su destino h(M, K) se comprueba de integridad de la clave privada K, entonces se demuestra que el origen es solo el que tiene la misma clave K, probando así la autenticidad del origen del mensaje.

De forma simple se muestra en la siguiente figura el funcionamiento de un MAC

Las propiedades que deben de tener las primitivas hash son:

1. Resistencia a la preimagen significa que dada cualquier imagen, es computacionalmente imposible encontrar un mensaje x tal que h(x)=y. Otra forma como se conoce esta propiedad es que h sea de un solo sentido.

2. Resistencia a una segunda preimagen significa que dado x, es computacionalmente imposible encontrar una x' tal que h(x)=h(x'). Otra forma de conocer esta propiedad es que h sea resistente a una colisión suave.

3. Resistencia a colisión significa que es computacionalmente imposible encontrar dos mensajes diferentes x, x' tal que h(x)=h(x'). Esta propiedad también se conoce como resistencia a colisión fuerte.

Para ilustrar la necesidad de estas propiedades veamos los siguientes ejemplos:

Consideremos un esquema de firma digital con apéndice, entonces la firma se aplica a h(x), en este caso h debe ser un MDC con resistencia a una 2° preimagen, ya que de lo contrario un atacante C que conozca la firma sobre h(x), puede encontrar otro mensaje x' tal que h(x) = h(x') y reclamar que la firma es del documento x'.

Si el atacante C puede hacer que el usuario firme un mensaje, entonces el atacante puede

Page 26: Función hash

encontrar una colisión (x, x') (en lugar de lo más difícil que es encontrar una segunda preimagen de x) y hacer firmar al usuario a x diciendo que firmo x'. En este caso es necesaria la propiedad de resistenhttp:www.google.es/search?q=biography+%22John+Mccarthy%22&hl=es&lr=&ie=UTF-8&start=20&sa=Ncia a colisión.

Por último si (e,n) es la clave pública RSA de A, C puede elegir aleatoriamente un y y calcular z = ye mod n, y reclamar que y es la firma de z, si C puede encontrar una preimagen x tal que z = h(x), donde x es importante para A. Esto es evitable si h es resistente a preimagen.

Las funciones hash más conocidas son las siguientes: las que se crean a partir de un block cipher como DES, MD5 ], SHA-1 y RIPEMD 160.

Actualmente se ha podido encontrar debilidades en las funciones hash que tienen como salida una cadena de 128 bits, por lo que se ha recomendado usar salidas de 160 bits. Así mismo se han encontrado ataques a MD5 y SHA-0 (antecesora de SHA-1), esto ha dado lugar que se dirija la atención sobre la función has RIPEMD-160.

El ataque más conocido (a fuerza bruta) a una función hash es conocido como "birthday attack" y se basa en la siguiente paradoja, si hay 23 personas en un local existe una probabilidad de al menos 1/2, de que existan dos personas con el mismo cumpleaños. Aunque parezca muy difícil esa posibilidad se puede mostrar que en general al recorre la raíz cuadrada del número de un conjunto de datos, se tiene la probabilidad de al menos ½ de encontrar dos iguales.

Al aplicar esto a una función hash, es necesario recorrer entonces la raíz cuadrada de 2160 mensajes para poder encontrar dos con el mismo hash, o sea encontrar una colisión. Por lo tanto una función hash son salida 2160 tiene una complejidad de 280, y una función de 128 bits de salida tiene una complejidad de 264, por lo que es recomendable usar actualmente salida de 160 bits (48 dígitos).

La criptografía simétrica, es claramente insuficiente para llevar a cabo comunicaciones seguras a través de canales inseguros -léase internet-, debido a que los dos interlocutores necesitan compartir una clave secreta -llamada "clave de sesión"-. Dicha clave debe ser

Page 27: Función hash

transmitida en algún momento desde un extremo a otro del canal de comunicación de forma segura, ya que de ella depende la protección de toda la información que se transmita a lo largo de esa sesión en particular.Se necesita, pues, un canal seguro para poder crear otro canal seguro. Es la pescadilla que se muerde la cola.

La criptografía asimétrica ofrece una salida al problema, proporcionando ese canal seguro de comunicación que va a permitir a los participantes intercambiar las claves de sesión. Y ésa no es la única ventaja, ya que los algoritmos asimétricos ofrecen mecanismos fiables para que ambos interlocutores se puedan identificar frente al otro de manera segura. La razón por la que no se emplean algoritmos asimétricos todo el tiempo es porque, entre otras ventajas, los criptosistemas simétricos resultan mucho más eficaces y rápidos.

Suponga que hemos creado una función HASHde forma tal que el resumen es sólo de 4 bits, independientemente del tamaño de dicho mensaje de entrada y nos //surge// la pregunta:¿Cuál es la //probabilidad// de que dos mensajes distintos tengan igual función HASH?Si esta probabilidad fuese muy baja (en este caso 1/16: HASH desde 0000 hasta 1111) y podría darse el siguiente caso: Alguien modifica nuestro mensaje firmado y envía ese mensaje falso con la firma del primero ya que en ambos casos son los mismos 4 bits.Mensaje 1: "Rechazamos el //contrato// por no interesarnos nada" HASH: 1101.Mensaje 2: "Firma todo lo que te pongan porque nos interesa" HASH: 1101.Observe que ambos mensajes tienen 47 caracteres, así podríamos crear una gran cantidad de mensajes diferentes que digan cosas distintas incluso con igual número de caracteres, ¡Hasta que los dos HASH coincidan!, y por este motivo para que las funciones HASHsean interesantes en criptografía deben cumplir un conjunto de propiedades, ellas son:h(M) será segura si tiene las siguientes características:

Unidireccionalidad

: Conocido un resumen h(M), debe ser computacionalmente imposible encontrar M a

Page 28: Función hash

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óno : El resumen h(M) debe ser una función compleja

de todos los bits del mensaje Msi se modifica un solo bits del mensaje M y entonces elHASH h(M) debería cambiar la mitad de sus bits aproximadamente

o

TABLAS HASHUna tabla hash o mapa hash es una //estructura de datos// que asocia llaves o claves con valores. La operación principal que soporta de manera eficiente es la búsqueda: permite el acceso a los elementos (teléfono y dirección, por ejemplo) almacenados a partir de una clave generada (usando el nombre o número de cuenta, por ejemplo). Funciona transformando la clave con una //función hash// en un //hash//, un número que la tabla hash utiliza para localizar el valor deseado.Las tablas hash se suelen implementar sobre //arrays// de una dimensión, aunque se pueden hacer implementaciones multi-dimensionales basadas en varias claves. Como en el caso de los arrays, las tablas hash proveen tiempo constante de búsqueda promedio //O(1)//,//[1//] sin importar el número de elementos en la tabla. Sin embargo, en casos particularmente malos el tiempo de búsqueda puede llegar a O(n), es decir, en función del número de elementos.Comparada con otras estructuras de arrays asociadas, las tablas hash son más útiles cuando se almacenan grandes cantidades de información.Las tablas hash almacenan la información en posiciones pseudo-aleatorias, así que el acceso ordenado a su contenido es bastante lento. Otras estructuras como //árboles binarios auto-balanceables// son más rápidos en promedio (tiempo de búsqueda O(log n)) pero la información está ordenada en todo momento.

Page 29: Función hash

Archivo:Tabla hash1.png

ventajas de la tabla hashUna tabla hash tiene como principal ventaja que el acceso a los datos suele ser muy rápido si se cumplen las siguientes condiciones://

o Una razón de ocupación no muy elevada (a partir del 75% de ocupación se producen demasiadas colisiones y la tabla se vuelve ineficiente).

o Una //función resumen// que distribuya uniformemente las claves. Si la función está mal

Page 30: Función hash

diseñada, se producirán muchas colisiones

desventajas de la tabla hash

o Necesidad de ampliar el espacio de la tabla si el volumen de datos almacenados crece. Se trata de una operación costosa.

o Dificultad para recorrer todos los elementos. Se suelen emplear //**listas**// para procesar la totalidad de los elementos.

o Desaprovechamiento de la memoria. Si se reserva espacio para todos los posibles elementos, se consume más memoria de la necesaria; se suele resolver reservando espacio únicamente para //punteros// a los elementos.

o A finales del año 2004 científicos chinos de la Shandong University presentan trabajos en los que se analizan las debilidades reales de las funciones

Funciones Hash más usadas:1. Hash de División:Dado un diccionario D, se fija un número m >= |D| (m mayor o igual al tamaño del diccionario) y que sea primo no cercano a potencia de 2 o de 10. Siendo k la clave a buscar y h(k) la función hash, se tiene h(k)=k%m (Resto de la división k/m).2. Hash de MultiplicaciónSi por alguna razón, se necesita una tabla hash con tantos elementos o punteros como una potencia de 2 o de 10, será mejor usar una función hash de multiplicación, independiente del tamaño de la tabla. Se escoge un tamaño de tabla m >= |D| (m mayor o igual al tamaño del diccionario) y un cierto número irracional φ (normalmente se usa 1+5^(1/2)/2 o 1-5^(1/2)/2). De este modo se define h(k)= Suelo(m*Parte fraccionaria(k*φ)).

CONCLUSIONESDespues de haber analizado las funciones HASH, su integridad y autenticidad de mensajes y el origen en si. podemos ver que generalmete es el resultado un algoritmo matematico que permite calcular un valor resumen de los datos al ser firmados digitalmete,en si funcionan en una misma direccion.

o Las funciones HASH como son MD5, SHA-1, y otras, pueden usarse además para autenticar a dos usuarios.

o Estas funciones como carecen de una clave privada no pueden usarse de forma directa para estos propósitos, no obstante existen algoritmos

Page 31: Función hash

que permiten añadirles esta función.o usando los HASH vistos anteriormente está la

funcion HMAC y una clave secreta autentica a dos usuarios mediante sistemas de clave secreta, las funciones MAC (Message Authentication Code) y HMAC se dedican a la autenticación y firma digital.

o Dentro de la funcion HASH, HMAC se usa en plataformasseguras ip como por ejemplo en Secure Socket Layer, SSL.

ADMINISTRACION DE SEGURIDAD.WIKIPEDIAEl objetivo de la administración de seguridad es lograr la exactitud, integridad y protección de todos los procesos y recursos de los sistemas de información.De este modo la administración de seguridad minimiza errores, fraudes y pérdidas en los sistemas de información que interconectan a las empresas actuales, así como a sus clientes, proveedores y otras partes interesadas.TIPOS DE DEFENSAS DE SEGURIDAD.

* Cifrado .Implica el uso de algoritmos matemáticos especiales, o llaves, para transformar los datos digitales en códigos cifrados antes de ser transmitidos y para descifrarlos cuando son recibidos. El método más usado es el llamado, método de llave pública, que es exclusivamente para el receptor que es conocida por el transmisor.

*Firewalls .Puede ser un procesador de comunicaciones, por lo común un ruteador, o un servidor dedicado, junto con software firewall. Sirve como un sistema de “portero” que protege las intranets de una empresa y otras redes informáticas de la intrusión al proporcionar un filtro y punto de transferencia seguro para el acceso a Internet y otras redes.

*Defensas contra la negación de serviciosLos ataques de negación de servicios a través de Internet dependen de 3 niveles de sistemas interconectados:1) En el sitio Web de la víctima 2) En el proveedor de servicios de Internet 3) En las máquinas zombis

*Monitoreo del correo electrónico*Defensa contra virus ]Muchas empresas crean defensas contra la diseminación de virus al centralizar la distribución y actualización de software de antivirus como responsabilidad de sus departamentos de sistemas de información.

a seguridad de la información es el conjunto de medidas preventivas y reactivas de

las organizaciones y de los sistemastecnológicos que permiten resguardar y proteger

la información buscando mantener la confidencialidad, la disponibilidad e integridad de la misma.

Page 32: Función hash

El concepto de seguridad de la información no debe ser confundido con el de seguridad

informática, ya que este último sólo se encarga de la seguridad en el medio informático, pero la

información puede encontrarse en diferentes medios o formas, y no solo en medios informáticos.

Para el hombre como individuo, la seguridad de la información tiene un efecto significativo respecto

a su privacidad, la que puede cobrar distintas dimensiones dependiendo de la cultura del mismo.

El campo de la seguridad de la información ha crecido y evolucionado considerablemente a partir

de la Segunda Guerra Mundial, convirtiéndose en una carrera acreditada a nivel mundial. Este

campo ofrece muchas áreas de especialización, incluidos la auditoría de sistemas de información,

planificación de la continuidad del negocio, ciencia forense digital y administración de sistemas de

gestión de seguridad, entre otros.

Índice

  [ocultar] 

1 Concepción de la seguridad de la información

o 1.1 Confidencialidad

o 1.2 Integridad

o 1.3 Disponibilidad

o 1.4 Autenticación o autentificación

2 Servicios de seguridad

o 2.1 No repudio

o 2.2 Protocolos de Seguridad de la Información

3 Planificación de la seguridad

o 3.1 Creación de un plan de respuesta a incidentes

o 3.2 Consideraciones legales

o 3.3 Planes de acción

4 El manejo de riesgos

o 4.1 Medios de transmisión de ataques a los sistemas de seguridad

o 4.2 Actores que amenazan la seguridad

o 4.3 Otros conceptos

5 Gobierno de la Seguridad de la Información

6 Tecnologías

7 Estándares de seguridad de la información

o 7.1 Otros estándares relacionados

8 Certificaciones

o 8.1 Certificaciones independientes en seguridad de la información

Page 33: Función hash

9 Véase también

10 Referencias

o 10.1 Bibliografía

o 10.2 Enlaces externos

Concepción de la seguridad de la información[editar · editar código]

En la seguridad de la información es importante señalar que su manejo está basado en la

tecnología y debemos de saber que puede ser confidencial: la información está centralizada y

puede tener un alto valor. Puede ser divulgada, mal utilizada, ser robada, borrada o saboteada.

Esto afecta su disponibilidad y la pone en riesgo. La información es poder, y según las

posibilidades estratégicas que ofrece tener acceso a cierta información, ésta se clasifica como:

Crítica: Es indispensable para la operación de la empresa.

Valiosa: Es un activo de la empresa y muy valioso.

Sensible: Debe de ser conocida por las personas autorizadas

Existen dos palabras muy importantes que son riesgo y seguridad:

Riesgo: Es la materialización de vulnerabilidades identificadas, asociadas con su

probabilidad de ocurrencia, amenazas expuestas, así como el impacto negativo que

ocasione a las operaciones de negocio.

Seguridad: Es una forma de protección contra los riesgos.

La seguridad de la información comprende diversos aspectos entre ellos la

disponibilidad, comunicación, identificación de problemas, análisis de riesgos,

la integridad, confidencialidad, recuperación de los riesgos.

Precisamente la reducción o eliminación de riesgos asociado a una cierta

información es el objeto de la seguridad de la información y la seguridad

informática. Más concretamente, laseguridad de la información tiene como

objeto los sistemas el acceso, uso, divulgación, interrupción o destrucción no

autorizada de información.1 Los términos seguridad de la

información, seguridad informática y garantía de la información son usados

frecuentemente como sinónimos porque todos ellos persiguen una misma

finalidad al proteger laconfidencialidad, integridad y disponibilidad de la

información. Sin embargo, no son exactamente lo mismo existiendo algunas

diferencias sutiles. Estas diferencias radican principalmente en el enfoque,

las metodologías utilizadas, y las zonas de concentración. Además, la

seguridad de la información involucra la implementación de estrategias que

cubran los procesos en donde la información es el activo primordial. Estas

estrategias deben tener como punto primordial el establecimiento de políticas,

controles de seguridad, tecnologías y procedimientos para detectar

amenazas que puedan explotar vulnerabilidades y que pongan en riesgo

dicho activo, es decir, que ayuden a proteger y salvaguardar tanto

información como los sistemas que la almacenan y administran. La seguridad

Page 34: Función hash

de la información incumbe a gobiernos, entidades militares, instituciones

financieras, los hospitales y las empresas privadas con información

confidencial sobre sus empleados, clientes, productos, investigación y su

situación financiera.

En caso de que la información confidencial de una empresa, sus clientes, sus

decisiones, su estado financiero o nueva línea de productos caigan en manos

de un competidor; se vuelva pública de forma no autorizada, podría ser causa

de la pérdida de credibilidad de los clientes, pérdida de negocios, demandas

legales o incluso la quiebra de la misma.

Por más de veinte años[¿cuándo?] la Seguridad de la Información ha declarado

que la confidencialidad, integridad y disponibilidad (conocida como la Tríada

CIA, del inglés: "Confidentiality,Integrity, Availability") son los principios

básicos de la seguridad de la información.

La correcta Gestión de la Seguridad de la Información busca establecer y

mantener programas, controles y políticas, que tengan como finalidad

conservar la confidencialidad, integridad y disponibilidad de la información, si

alguna de estas características falla no estamos ante nada seguro. Es

preciso anotar, además, que la seguridad no es ningún hito, es más bien un

proceso continuo que hay que gestionar conociendo siempre las

vulnerabilidades y las amenazas que se ciñen sobre cualquier información,

teniendo siempre en cuenta las causas de riesgo y la probabilidad de que

ocurran, así como el impacto que puede tener. Una vez conocidos todos

estos puntos, y nunca antes, deberán tomarse las medidas de seguridad

oportunas.

Confidencialidad[editar · editar código]

La confidencialidad es la propiedad que impide la divulgación de información

a personas o sistemas no autorizados. A grandes rasgos, asegura el acceso

a la información únicamente a aquellas personas que cuenten con la debida

autorización.

Por ejemplo, una transacción de tarjeta de crédito en Internet requiere que el

número de tarjeta de crédito a ser transmitida desde el comprador al

comerciante y el comerciante de a una red de procesamiento de

transacciones. El sistema intenta hacer valer la confidencialidad mediante el

cifrado del número de la tarjeta y los datos que contiene la banda magnética

durante la transmisión de los mismos. Si una parte no autorizada obtiene el

número de la tarjeta en modo alguno, se ha producido una violación de la

confidencialidad.

La pérdida de la confidencialidad de la información puede adoptar muchas

formas. Cuando alguien mira por encima de su hombro, mientras usted tiene

información confidencial en la pantalla, cuando se publica información

privada, cuando un laptop con información sensible sobre una empresa es

Page 35: Función hash

robado, cuando se divulga información confidencial a través del teléfono, etc.

Todos estos casos pueden constituir una violación de la confidencialidad.

Integridad[editar · editar código]

Es la propiedad que busca mantener los datos libres de modificaciones no

autorizadas. (No es igual a integridad referencial en bases de datos.) A groso

modo, la integridad es el mantener con exactitud la información tal cual fue

generada, sin ser manipulada o alterada por personas o procesos no

autorizados.

La violación de integridad se presenta cuando un empleado, programa o

proceso (por accidente o con mala intención) modifica o borra los datos

importantes que son parte de la información, así mismo hace que su

contenido permanezca inalterado a menos que sea modificado por personal

autorizado, y esta modificación sea registrada, asegurando su precisión y

confiabilidad. La integridad de un mensaje se obtiene adjuntándole otro

conjunto de datos de comprobación de la integridad: la firma digital Es uno de

los pilares fundamentales de la seguridad de la información

Disponibilidad[editar · editar código]

La disponibilidad es la característica, cualidad o condición de la información

de encontrarse a disposición de quienes deben acceder a ella, ya sean

personas, procesos o aplicaciones. Groso modo, la disponibilidad es el

acceso a la información y a los sistemas por personas autorizadas en el

momento que así lo requieran.

En el caso de los sistemas informáticos utilizados para almacenar y procesar

la información, los controles de seguridad utilizados para protegerlo, y los

canales de comunicación protegidos que se utilizan para acceder a ella

deben estar funcionando correctamente. La Alta disponibilidad sistemas

objetivo debe estar disponible en todo momento, evitando interrupciones del

servicio debido a cortes de energía, fallos de hardware, y actualizaciones del

sistema.

Garantizar la disponibilidad implica también la prevención de ataque

de denegación de servicio. Para poder manejar con mayor facilidad la

seguridad de la información, las empresas o negocios se pueden ayudar con

un sistema de gestión que permita conocer, administrar y minimizar los

posibles riesgos que atenten contra la seguridad de la información del

negocio.

La disponibilidad además de ser importante en el proceso de seguridad de la

información, es además variada en el sentido de que existen varios

mecanismos para cumplir con los niveles de servicio que se requiera. Tales

mecanismos se implementan en infraestructura tecnológica, servidores de

correo electrónico, de bases de datos, de web etc, mediante el uso de

clusters o arreglos de discos, equipos en alta disponibilidad a nivel de red,

Page 36: Función hash

servidores espejo, replicación de datos, redes de almacenamiento (SAN),

enlaces redundantes, etc. La gama de posibilidades dependerá de lo que

queremos proteger y el nivel de servicio que se quiera proporcionar.

Autenticación o autentificación[editar · editar código]

Es la propiedad que permite identificar el generador de la información. Por

ejemplo al recibir un mensaje de alguien, estar seguro que es de ese alguien

el que lo ha mandado, y no una tercera persona haciéndose pasar por la otra

(suplantación de identidad). En un sistema informático se suele conseguir

este factor con el uso de cuentas de usuario y contraseñas de acceso.

Esta propiedad se puede considerar como un aspecto de la integridad -si está

firmado por alguien, está realmente enviado por el mismo- y así figura en la

literatura anglosajona.

Servicios de seguridad[editar · editar código]

El objetivo de un servicio de seguridad es mejorar la seguridad de los

sistemas de procesamiento de datos y la transferencia de información en las

organizaciones. Los servicios de seguridad están diseñados para

contrarrestar los ataques a la seguridad y hacen uso de uno o más

mecanismos de seguridad para proporcionar el servicio.

No repudio[editar · editar código]

Proporciona protección contra la interrupción, por parte de alguna de las

entidades implicadas en la comunicación, de haber participado en toda o

parte de la comunicación. El servicio de Seguridad de No repudio o

irrenunciabilidad está estandarizado en la ISO-7498-2.

No Repudio de origen: El emisor no puede negar que envío porque el

destinatario tiene pruebas del envío, el receptor recibe una prueba

infalsificable del origen del envío, lo cual evita que el emisor, de negar tal

envío, tenga éxito ante el juicio de terceros. En este caso la prueba la crea el

propio emisor y la recibe el destinatario.

Prueba que el mensaje fue enviado por la parte específica.

No Repudio de destino: El receptor no puede negar que recibió el mensaje

porque el emisor tiene pruebas de la recepción. Este servicio proporciona al

emisor la prueba de que el destinatario legítimo de un envío, realmente lo

recibió, evitando que el receptor lo niegue posteriormente. En este caso la

prueba irrefutable la crea el receptor y la recibe el emisor.

Prueba que el mensaje fue recibido por la parte específica.

Si la autenticidad prueba quién es el autor de un documento y cual es su

destinatario, el “no repudio” prueba que el autor envió la comunicación (no

repudio en origen) y que el destinatario la recibió (no repudio en destino). El

Page 37: Función hash

no repudio evita que el emisor o el receptor nieguen la transmisión de un

mensaje. Así, cuando se envía un mensaje, el receptor puede comprobar

que, efectivamente, el supuesto emisor envió el mensaje. De forma similar,

cuando se recibe un mensaje, el emisor puede verificar que, de hecho, el

supuesto receptor recibió el mensaje. Definición según la recomendación

X.509 de la UIT-T Servicio que suministra la prueba de la integridad y del

origen de los datos- ambos en una relación infalsificable que pueden ser

verificados por un tercero en cualquier momento.

Protocolos de Seguridad de la Información[editar · editar código]

Los protocolos de seguridad son un conjunto de reglas que gobiernan dentro

de la transmisión de datos entre la comunicación de dispositivos para ejercer

una confidencialidad,integridad, autenticación y el no repudio de la

información. Se componen de:

Criptografía  (Cifrado de datos), se ocupa del cifrado de mensajes un

mensaje es enviado por el emisor lo que hace es transposicionar o

ocultar el mensaje hasta que llega a su destino y puede ser descifrado

por el receptor.

Lógica (Estructura y secuencia). Llevar un orden en el cual se agrupán

los datos del mensaje el significado del mensaje y saber cuando se va

enviar el mensaje.

Identificación (Autentication). Es una validación de identificación es la

técnica mediante la cual un proceso comprueba que el compañero de

comunicación es quien se supone que es y no se trata de un impostor.

Planificación de la seguridad[editar · editar código]

Hoy en día la rápida evolución del entorno técnico requiere que las

organizaciones adopten un conjunto mínimo de controles de seguridad para

proteger su información y sistemas de información. El propósito del plan de

seguridad del sistema es proporcionar una visión general de los requisitos de

seguridad del sistema y se describen los controles en el lugar o los previstos

para cumplir esos requisitos. El plan de seguridad del sistema también

delinea las responsabilidades y el comportamiento esperado de todos los

individuos que acceden al sistema. Debe reflejar las aportaciones de distintos

gestores con responsabilidades sobre el sistema, incluidos los propietarios de

la información, el propietario de la red, y el alto funcionario de la agencia de

información de seguridad (SAISO).

Los administradores de programas, los propietarios del sistema, y personal

de seguridad en la organización debe entender el sistema de seguridad en el

proceso de planificación. Los responsables de la ejecución y gestión de

sistemas de información deben participar en el tratamiento de los controles

de seguridad que deben aplicarse a sus sistemas.

Page 38: Función hash

Creación de un plan de respuesta a incidentes[editar · editar código]

Es importante formular un plan de respuestas a incidentes, soportarlo a lo

largo de la organización y probarlo regularmente. Un buen plan de respuestas

a incidentes puede no sólo minimizar los efectos de una violación sino

también, reducir la publicidad negativa.

Desde la perspectiva del equipo de seguridad, no importa si ocurre una

violación o abertura (pues tales eventos son una parte eventual de cuando se

hacen negocios usando un método de poca confianza como lo es Internet),

sino más bien cuando ocurre. El aspecto positivo de entender la inevitabilidad

de una violación a los sistemas (cualquier sistema donde se procese

información confidencial, no esta limitado a servicios informáticos) es que

permite al equipo de seguridad desarrollar un curso de acciones para

minimizar los daños potenciales. Combinando un curso de acciones con la

experiencia le permite al equipo responder a condiciones adversas de una

manera formal y oportuna.

El plan de respuesta a incidentes puede ser dividido en cuatro fases:

Acción inmediata para detener o minimizar el incidente

Investigación del incidente

Restauración de los recursos afectados

Reporte del incidente a los canales apropiados

Una respuesta a incidentes debe ser decisiva y ejecutarse rápidamente.

Debido a que hay muy poco espacio para errores, es crítico que se efectúen

prácticas de emergencias y se midan los tiempos de respuesta. De esta

forma, es posible desarrollar una metodología que fomenta la velocidad y la

precisión, minimizando el impacto de la indisponibilidad de los recursos y el

daño potencial causado por el sistema en peligro.

Un plan de respuesta a incidentes tiene un número de requerimientos,

incluyendo:

Un equipo de expertos locales (un Equipo de respuesta a emergencias

de computación)

Una estrategia legal revisada y aprobada

Soporte financiero de la compañía

Soporte ejecutivo de la gerencia superior

Un plan de acción factible y probado

Recursos físicos, tal como almacenamiento redundante, sistemas en

stand by y servicios de respaldo

Consideraciones legales[editar · editar código]

Otros aspectos importantes a considerar en una respuesta a incidentes son

las ramificaciones legales. Los planes de seguridad deberían ser

Page 39: Función hash

desarrollados con miembros del equipo de asesoría jurídica o alguna forma

de consultoría general. De la misma forma en que cada compañía debería

tener su propia política de seguridad corporativa, cada compañía tiene su

forma particular de manejar incidentes desde la perspectiva legal. Las

regulaciones locales, de estado o federales están más allá del ámbito de este

documento, pero se mencionan debido a que la metodología para llevar a

cabo el análisis post-mortem, será dictado, al menos en parte, por la

consultoría jurídica. La consultoría general puede alertar al personal técnico

de las ramificaciones legales de una violación; los peligros de que se escape

información personal de un cliente, registros médicos o financieros; y la

importancia de restaurar el servicio en ambientes de misión crítica tales como

hospitales y bancos.

Planes de acción[editar · editar código]

Una vez creado un plan de acción, este debe ser aceptado e implementado

activamente. Cualquier aspecto del plan que sea cuestionado durante la

implementación activa lo más seguro es que resulte en un tiempo de

respuesta pobre y tiempo fuera de servicio en el evento de una violación.

Aquí es donde los ejercicios prácticos son invalorables. La implementación

del plan debería ser acordada entre todas las partes relacionadas y ejecutada

con seguridad, a menos que se llame la atención con respecto a algo antes

de que el plan sea colocado en producción.

La respuesta a incidentes debe ir acompañada con recolección de

información siempre que esto sea posible. Los procesos en ejecución,

conexiones de red, archivos, directorios y mucho más debería ser auditado

activamente en tiempo real. Puede ser muy útil tener una toma instantánea

de los recursos de producción al hacer un seguimiento de servicios o

procesos maliciosos. Los miembros de CERT y los expertos internos serán

recursos excelentes para seguir tales anomalías en un sistema.

El manejo de riesgos[editar · editar código]

Dentro de la seguridad en la información se lleva a cabo la clasificación de

las alternativas para manejar los posibles riegos que un activo o bien puede

tener dentro de los procesos de organización. Esta clasificación lleva el

nombre de manejo de riegos. El manejo de riesgos, conlleva una estructura

bien definida, con un control adecuado y su manejo, habiéndolos identificado,

priorizados y analizados, a través de acciones factibles y efectivas. Para ello

se cuenta con las siguientes técnicas de manejo del riesgo:

Evitar. El riesgo es evitado cuando la organización rechaza aceptarlo, es

decir, no se permite ningún tipo de exposición. Esto se logra

simplemente con no comprometerse a realizar la acción que origine el

riesgo. Esta técnica tiene más desventajas que ventajas, ya que la

empresa podría abstenerse de aprovechar muchas oportunidades.

Ejemplo:

Page 40: Función hash

No instalar empresas en zonas sísmicas

Reducir. Cuando el riesgo no puede evitarse por tener varias dificultades

de tipo operacional, la alternativa puede ser su reducción hasta el nivel

más bajo posible. Esta opción es la más económica y sencilla. Se

consigue optimizando los procedimientos, la implementación de controles

y su monitoreo constante. Ejemplo:

No fumar en ciertas áreas, instalaciones eléctricas anti flama, planes de contingencia.

Retener, Asumir o Aceptar el riesgo. Es uno de los métodos más

comunes del manejo de riesgos, es la decisión de aceptar las

consecuencias de la ocurrencia del evento. Puede ser voluntaria o

involuntaria, la voluntaria se caracteriza por el reconocimiento de la

existencia del riesgo y el acuerdo de asumir las perdidas involucradas,

esta decisión se da por falta de alternativas. La retención involuntaria se

da cuando el riesgo es retenido inconscientemente. Ejemplo de asumir el

riesgo:

Con recursos propios se financian las pérdidas.

Transferir. Es buscar un respaldo y compartir el riesgo con otros

controles o entidades. Esta técnica se usa ya sea para eliminar un riesgo

de un lugar y transferirlo a otro, o para minimizar el mismo,

compartiéndolo con otras entidades. Ejemplo:

Transferir los costos a la compañía aseguradora

Medios de transmisión de ataques a los sistemas de seguridad[editar · editar código]

El mejor en soluciones de su clase permite una respuesta rápida a las

amenazas emergentes, tales como:

Malware  y spam propagado por e-mail.

La propagación de malware y botnets.

Los ataques de phishing alojados en sitios web.

Los ataques contra el aumento de lenguaje de marcado extensible (XML)

de tráfico, arquitectura orientada a servicios (SOA) y servicios web.

Estas soluciones ofrecen un camino a la migración y la integración. Como las

amenazas emergentes, cada vez más generalizada, estos productos se

vuelven más integrados en un enfoque de sistemas.

Un enfoque de sistemas de configuración, la política, y el seguimiento se

reúne cumplimiento de las normativas en curso y permite a los sistemas

rentables de gestión. El enfoque de sistemas de gestión de la seguridad,

dispone:

Configuración de la política común de todos los productos

Page 41: Función hash

Amenaza la inteligencia y la colaboración de eventos

Reducción de la complejidad de configuración

Análisis de riesgos eficaces y operativos de control

En la actualidad gracias a la gran cantidad posibilidades que se tiene para

tener acceso a los recursos de manera remota y al gran incremento en las

conexiones a la internet los delitos en el ámbito de TI se han visto

incrementado, bajo estas circunstancias los riesgos informáticos son más

latentes. Los delitos cometidos mediante el uso de la computadora han

crecido en tamaño, forma y variedad. Los principales delitos hechos por

computadora o por medio de computadoras son:

Fraudes

Falsificación

Venta de información

Entre los hechos criminales más famosos en los Estados Unidos están:

El caso del Banco Wells Fargo donde se evidencio que la protección de

archivos era inadecuada, cuyo error costo USD 21.3 millones.

El caso de la NASA donde dos alemanes ingresaron en archivos

confidenciales.

El caso de un muchacho de 15 años que entrando a la computadora de

la Universidad de Berkeley en California destruyo gran cantidad de

archivos.

También se menciona el caso de un estudiante de una escuela que

ingreso a una red canadiense con un procedimiento de admirable

sencillez, otorgándose una identificación como un usuario de alta

prioridad, y tomo el control de una embotelladora de Canadá.

También el caso del empleado que vendió la lista de clientes de una

compañía de venta de libros, lo que causo una pérdida de USD 3

millones.

También el caso de estudiantes de Ingeniería electrónica donde

accedieron al sistema de una Universidad de Colombia y cambiaron las

notas de sus compañeros generando estragos en esta Universidad y

retrasando labores, lo cual dejó grandes perdidas económicas y de

tiempo.2

Los virus, troyanos, spyware, malware y demás código llamado malicioso (por

las funciones que realiza y no por tratarse de un código erróneo), tienen

como objetivo principal el ejecutar acciones no solicitadas por el usuario, las

cuales pueden ser desde, el acceso a una página no deseada, el

redireccionamiento de algunas páginas de internet, suplantación de identidad

o incluso la destrucción o daño temporal a los registros del sistemas, archivos

y/o carpetas propias. El virus informático es un programa elaborado

accidental o intencionadamente, que se introduce y se transmite a través

Page 42: Función hash

cualquier medio extraíble y transportable o de la misma red en la que se

encuentre un equipo infectado, causando diversos tipos de daños a los

sistemas.

Históricamente los virus informáticos fueron descubiertos por la prensa el 12

de octubre de 1985, con una publicación del New York Times que hablaba de

un virus que fue se distribuyó desde un BBS y aparentemente era para

optimizar los sistemas IBM basados en tarjeta gráfica EGA, pero al ejecutarlo

salía la presentación pero al mismo tiempo borraba todos los archivos del

disco duro, con un mensaje al finalizar que decía "Caíste".

Este dato se considera como el nacimiento de su nombre, ya que los

programas con código integrado, diseñados para hacer cosas inesperadas

han existido desde que existen las propias computadoras. Las primeras

referencias de virus con fines intencionales surgieron en 1983 cuando Digital

Equipament Corporation (DEC) empleó una subrutina para proteger su

famoso procesador de textos Decmate II, que el 1 de abril de 1983 en caso

de ser copia ilegal borraba todos los archivos de su unidad de disco.

Actores que amenazan la seguridad[editar · editar código]

Un hacker es cualquier persona con amplios conocimientos en

tecnología, bien puede ser informática, electrónica o comunicaciones,

mantiene permanentemente actualizado y conoce a fondo todo lo

relacionado con programación y sistemas complejos; es un investigador

nato que se inclina ante todo por conocer lo relacionado con cadenas de

datos cifrados y las posibilidades de acceder a cualquier tipo de

"información segura". Su formación y las habilidades que poseen les da

una experticia mayor que les permite acceder a sistemas de información

seguros, sin ser descubiertos, y también les da la posibilidad de difundir

sus conocimientos para que las demás personas se enteren de cómo es

que realmente funciona la tecnología y conozcan las debilidades de sus

propios sistemas de información.

Un cracker, es aquella persona con comportamiento compulsivo, que

alardea de su capacidad para reventar sistemas electrónicos e

informáticos. Un cracker es un hábil conocedor de programación de

Software y Hardware; diseña y fabrica programas de guerra y hardware

para reventar software y comunicaciones como el teléfono, el correo

electrónico o el control de otros computadores remotos.

Un lamer Es una persona que alardea de pirata informático, cracker o

hacker y solo intenta utilizar programas de FÁCIL manejo realizados por

auténticos hackers.

Un copyhacker' es una persona dedicada a falsificar

y crackear hardware, específicamente en el sector de tarjetas

inteligentes. Su estrategia radica en establecer amistad con los

verdaderos Hackers, para copiarles los métodos de ruptura y después

Page 43: Función hash

venderlos los bucaneros. Los copyhackers se interesan por poseer

conocimientos de tecnología, son aficionados a las revistas técnicas y a

leer todo lo que hay en la red. Su principal motivación es el dinero.

Un "bucanero" es un comerciante que depende exclusivamente de de la

red para su actividad. Los "bucaneros" no poseen ningún tipo de

formación en el área de los sistemas, si poseen un amplio conocimiento

en área de los negocios.

Un phreaker se caracterizan por poseer vastos conocimientos en el área

de telefonía terrestre y móvil, incluso más que los propios técnicos de las

compañías telefónicas; recientemente con el auge de los teléfonos

móviles, han tenido que entrar también en el mundo de la informática y

del procesamiento de datos.

Un newbie o "novato de red" es un individuo que sin proponérselo

tropieza con una página de hacking y descubre que en ella existen áreas

de descarga de buenos programas de hackeo, baja todo lo que puede y

empieza a trabajar con ellos.

Un script kiddie o skid kiddie, es un simple usuario de Internet, sin

conocimientos sobre hackeo o crackeo que, aunque aficionado a estos

tema, no los conoce en profundidad limitándose a recopilar información

de la red y a buscar programas que luego ejecuta, infectando en algunos

casos de virus a sus propios equipos.

Un tonto o descuidado, es un simple usuarios de de la información, con

o sin conocimientos sobre hackeo o crackeo que accidentalmente borra

daña o modifica la información, ya sea en un mantenimiento de rutina o

supervision.

Otros conceptos[editar · editar código]

Otros conceptos relacionados son:3

Auditabilidad: Permitir la reconstrucción, revisión y análisis de la

secuencia de eventos

Identificación: verificación de una persona o cosa; reconocimiento.

Autenticación: Proporcionar una prueba de identidad; puede ser algo

que se sabe, que se es, se tiene o una combinación de todas.

Autorización: Lo que se permite cuando se ha otorgado acceso

No repudio: no se puede negar un evento o una transacción.

Seguridad en capas: La defensa a profundidad que contenga la

inestabilidad

Control de Acceso: limitar el acceso autorizado solo a entidades

autenticadas

Métricas de Seguridad, Monitoreo: Medición de actividades de

seguridad

Gobierno: proporcionar control y dirección a las actividades

Estrategia: los pasos que se requieren para alcanzar un objetivo

Page 44: Función hash

Arquitectura: el diseño de la estructura y las relaciones de sus

elementos

Gerencia: Vigilar las actividades para garantizar que se alcancen los

objetivos

Riesgo: la explotación de una vulnerabilidad por parte de una amenaza

Exposiciones: Áreas que son vulnerables a un impacto por parte de una

amenaza

Vulnerabilidades: deficiencias que pueden ser explotadas por

amenazas

Amenazas: Cualquier acción o evento que puede ocasionar

consecuencias adversas

Riesgo residual: El riesgo que permanece después de que se han

implementado contra medidas y controles

Impacto: los resultados y consecuencias de que se materialice un riesgo

Criticidad: La importancia que tiene un recurso para el negocio

Sensibilidad: el nivel de impacto que tendría una divulgación no

autorizada

Análisis de impacto al negocio: evaluar los resultados y las

consecuencias de la inestabilidad

Controles: Cualquier acción o proceso que se utiliza para mitigar el

riesgo

Contra medidas: Cualquier acción o proceso que reduce la

vulnerabilidad

Políticas: declaración de alto nivel sobre la intención y la dirección de la

gerencia

Normas: Establecer los límites permisibles de acciones y procesos para

cumplir con las políticas

Ataques: tipos y naturaleza de inestabilidad en la seguridad

Clasificación de datos: El proceso de determinar la sensibilidad y

Criticidad de la información

Gobierno de la Seguridad de la Información[editar · editar código]

Un término a tomar en cuenta en el área de la seguridad de la información es

su Gobierno dentro de alguna organización empezando por determinar los

riesgos que le atañen y su forma de reducir y/o mitigar impactos adversos a

un nivel aceptable mediante el establecimiento de un programa amplio y

conciso en seguridad de la información y el uso efectivo de recursos cuya

guía principal sean los objetivos del negocio, es decir, un programa que

asegure una dirección estratégica enfocada a los objetivos de una

organización y la protección de su información.

Tecnologías[editar · editar código]

Page 45: Función hash

Las principales tecnologías referentes a la seguridad de la información en

informática son:4

Cortafuegos

Administración de cuentas de usuarios

Detección y prevención de intrusos

Antivirus

Infraestructura de llave publica

Capas de Socket Segura (SSL)

Conexión única "Single Sign on- SSO"

Biométria

Cifrado

Cumplimiento de privacidad

Acceso remoto

Firma digital

Intercambio electrónico de Datos "EDI" y Transferencia Electrónica de

Fondos "EFT"

Redes Virtuales Privadas "VPNs"

Transferencia Electrónica Segura "SET"

Informática Forense

Recuperación de datos

Tecnologías de monitoreo

onceptos de Seguridad

Los conceptos confidencialidad, integridad o disponibilidad son muy comunes en el ámbito de la seguridad y aparecen como fundamentales en toda arquitectura de seguridad de la información, ya sea en el ámbito de la protección de datos, normativa vigente relacionada con la protección de datos de carácter personal, como de códigos de buenas prácticas o recomendaciones sobre gestión de la seguridad de la información y de prestigiosas certificaciones internacionales, éstas últimas, relacionadas con la auditoría de los sistemas de información. Suele referirse al grupo de estas características como CIDAN, nombre sacado de la inicial de cada característica.Por estos motivos es importante tener una idea clara de estos conceptos.

Confidencialidad

Se trata de la cualidad que debe poseer un documento o archivo para que este solo se entienda de manera comprensible o sea leído por la persona o sistema que este autorizado.

De esta manera se dice que un documento (o archivo o mensaje) es confidencial si y solo si puede ser comprendido por la persona o entidad a quien va dirigida o esté autorizada. En el caso de un mensaje esto evita que exista una intercepción de este y que pueda ser leído por una persona no autorizada.

Page 46: Función hash

Por ejemplo, si Andrea quiere enviar un mensaje a Bruno y que solo pueda leerlo Bruno, Andrea cifra el mensaje con una clave (simétrica o asimétrica), de tal modo que solo Bruno sepa la manera de descifrarlo, así ambos usuarios están seguros que solo ellos van a poder leer el mensaje.

Integridad

La integridad es la cualidad que posee un documento o archivo que no ha sido alterado y que además permite comprobar que no se ha producido manipulación alguna en el documento original. Aplicado a las bases de datos seria la correspondencia entre los datos y los hechos que refleja.

Page 47: Función hash

Teniendo como muestra el ejemplo anterior. Finalmente Bruno compara ambas funciones resumen, que se trata de una función que produce un valor alfanumérico que identifica cualquier cambio que se produzca en el mensaje, y si éstas funciones son iguales, quiere decir que no ha existido manipulación del mensaje

Autenticación

La autenticación es la situación en la cual se puede verificar que un documento ha sido elaborado (o pertenece) a quien el documento dice.

Aplicado a la verificación de la identidad de un usuario, la autenticación se produce cuando el usuario puede aportar algún modo de que se pueda verificar que dicha persona es quien dice ser, a partir de ese momento se considera un usuario autorizado.

Otra manera de definirlo seria, la capacidad de determinar si una determinada lista de personas ha establecido su reconocimiento sobre el contenido de un mensaje.

Disponibilidad

Se trata de la capacidad de un servicio, de unos datos o de un sistema, a ser accesible y utilizable por los usuarios (o procesos) autorizados cuando estos lo requieran.

No repudio

El no repudio o irrenunciabilidad es un servicio de seguridad estrechamente relacionado con la autenticación y que permite probar la participación de las partes en una comunicación. La diferencia esencial con la autenticación es que la primera se produce entre las partes que establecen la comunicación y el servicio de no repudio se produce frente a un tercero, de este modo, existirán dos posibilidades:

No repudio en origen: El emisor no puede negar que envío porque el destinatario tiene pruebas del envío, el receptor recibe una prueba infalsificable del origen del envío, lo cual evita que el emisor, de negar tal envío, tenga éxito ante el juicio de terceros. En este caso la prueba la crea el propio emisor y la recibe el destinatario

No repudio en destino: El receptor no puede negar que recibió el mensaje porque el emisor tiene pruebas de la recepción. Este servicio proporciona al emisor la prueba de que el destinatario legítimo de un envío, realmente lo

Page 48: Función hash

recibió, evitando que el receptor lo niegue posteriormente. En este caso la prueba irrefutable la crea el receptor y la recibe el emisor.

Si la autenticidad prueba quién es el autor de un documento y cual es su destinatario, el “no repudio” prueba que el autor envió la comunicación (no repudio en origen) y que el destinatario la recibió (no repudio en destino).

Relación de los servicios de seguridad

En la imagen superior se ilustra como se relacionan los diferentes servicios de seguridad, unos dependen de otros jerárquicamente, así si no existe el de mas abajo, no puede aplicarse el superior. De esta manera, la disponibilidad se convierte en el primer requisito de seguridad, cuando existe esta, se puede disponer de confidencialidad, que es imprescindible para conseguir integridad, para poder obtener autenticación es imprescindible la integridad y por ultimo el no repudio solo se obtiene si se produce previamente la autenticación.