Función hash
Una función de hash en funcionamiento.
A las funciones hash (adopción hash (adopción más o menos directa del término inglés hash function) también se les picadillo, funciones resumen o resumen o funciones de digest (adopción digest (adopción más o menos directa llama funciones picadillo, del término inglés equivalentedigest function )1 2 3 Una función hash H es una función computable mediante un algoritmo algoritmo,, H : U → U → M x → x → h( x x ), ),
que tiene como entrada un conjunto de elementos, que suelen ser cadenas 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 c onsiderar 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 s implemente 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 resumen datos del conjunto la cadena de entrada. Por esta razón decimos que es tas funciones resumen datos dominio. Índice [ocultar ]
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 s entido (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
o
5.4 Función hash universal
o
5.4.1 Definición formal [23]
5.5 Familia de funciones hash universal de un s olo sentido
o
5.3.1 Definición formal
5.5.1 Definición formal
5.6 Comparación UOWHF y CRHF [27]
6 Funciones hash iterativas. Construcción de Merkle-Damgård
7 Aplicaciones
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 s entido (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
o
5.4 Función hash universal
o
5.4.1 Definición formal [23]
5.5 Familia de funciones hash universal de un s olo sentido
o
5.3.1 Definición formal
5.5.1 Definición formal
5.6 Comparación UOWHF y CRHF [27]
6 Funciones hash iterativas. Construcción de Merkle-Damgård
7 Aplicaciones
8 Véase también
9 Referencias
10 Enlaces externos
editar ·· editar código] código] Orígenes del término [editar El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés inglés)) de dicha palabra en el mundo real: picar y mezclar . Donald Knuth cree que H. P. Luhn, Luhn , empleado de IBM IBM,, fue el primero en utilizar el concepto en un memorándum fechado en enero de 1953 1953.. Su utilización masiva no fue hasta después de 10 años.
editar ·· editar código] código] Terminología asociada [editar Al conjunto U se le llama dominio de la función hash. A un un elemento de U se le preimagen o dependiendo del contexto clave clave o mensaje. llama preimagen o o mensaje. Al conjunto M se le llama imagen de la función hash. A un elemento elemento de M se le llama llama valor hash, hash, código hash o hash o simplemente hash. hash. Se dice que se produce una colisión cuando 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.
editar ·· editar código] código] Parámetros adicionales [editar 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 s e 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 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
parámetros que especifican el nivel de seguridad que se quiere en el valor hash de salida (funciones hash dinámicas),....
editar ·· editar código] código] Funciones hash con clave[editar Una función hash con clave H clave HK (en inglés keyed hash function) function) es una función hash H que tiene un parámetro secreto K que que pertenece pertenece al conjunto conjunto posible de claves 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 clave (en inglés unkeyed hash function). function).
editar ·· editar código] código] Propiedades [editar 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.
editar ·· editar código] código] Bajo costo[editar Calcular el valor hash necesita poco costo ( computacional, de memoria,...). memoria,...).
editar ·· editar código] código] Compresión[editar 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
editar ·· editar código] código] Uniforme[editar 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 c adenas de longitud m
El rango es el conjunto c onjunto de las cadenas de longitud n podemos decir que a cada resumen le corresponde 2 m-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.
editar ·· editar código] código] De rango variable[editar
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]
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 s alida aleatoria uniforme.10 En algunos trabajos a estas funciones s e 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 par a 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.
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 imágenes 14
y
y
con
para las cuales sus
difieran solamente en unos pocos bits.
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 c adenas. 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
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 para un nuevo dato x
con
no puede ser computado 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
proporcionan un mecanismo interesante para el estudio y c ategorizació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.
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
que
, un par
. Para cada
tal
,
. 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 gr ande.
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 p ermita encontrar colisiones. Por tanto P tiene que mantener secreta la elección después de producir la descripción de la función.
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 distintos)
24
Una familia de funciones hash
y todos los (no necesariamente .
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 h K(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
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 l a 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 A 2 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):
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 x 1,...,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 H t. 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 f unció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]
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 c ierto 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
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 c ierta 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 for ma que puedan ser usados para verificar hasta cierto punto el
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 sec reta y
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 norepudio 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
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).
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
FUNCIONES HASH Edit
0
10
…
Ve r //Funciones Hash// e n c o n t r a r as u n conc epto mas claro acerca de Hash.
FUNCIÓN H A SH (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
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, 80 para ser exactos). Si se hace hashi ng de 2 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 HA SH: 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 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.
FUNCIONES DE LA FUNC ION HASH Una 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 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 d e 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) = Ht De 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 recibir lo el receptor aplica la función hash al mensaje y comprueba que sea igual al hash que se envió
antes. 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 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=UTF8&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 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 H A S H d e 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 H A S H ? Si esta probabilidad fuese muy baja (en este caso 1/16: HASH desde 0000 hasta 1111) y podría darse el siguiente caso: Alguien m odifica nuestro mensaje firmado y envía ese mensaje falso con la firma del primero ya que en ambos casos son los mismos 4 bits. : "Rechazamos el //contrato// por no Mensaje 1 interesarnos nada" H A S H : 1101. : "Firma todo lo que te pongan porque Mensaje 2 nos interesa" H A S H : 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 H A S H coincidan!, y por este motivo para que las funciones HASH sean interesantes en criptografía deben cumplir un conjunto de propiedades, ellas son: h(M) será segura si tiene las siguientes características:
Unidireccionalidad
o
: Conocido un resumen h(M), debe ser computacionalmente imposible encontrar M a partir de dicho resumen. Compresión : A partir de un mensaje de cualquier longitud, el resumen h(M) debe tener una longitud fija, lo normal es que la longitud de h(M) sea menor que el mensaje M . Facilidad de cálculo : Debe ser fácil calcular h(M) a partir de un mensaje M . Difusión : El resumen h(M) debe ser una función compleja de todos los bits del mensaje M si se modifica un solo bits del mensaje M y entonces el H A S H h(M) debería cambiar la mitad de sus bits aproximadamente
o
TABLAS HASH Una 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 s e suelen implementar sobre //arrays// de una dimensión, aunque se pueden hacer implementaciones multidimensionales 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 autobalanceables// son más rápidos en promedio (tiempo de búsqueda O(log n)) pero la información está ordenada en todo momento.
Archivo:Tabla hash1.png
ventajas de la tabla hash Una tabla hash tiene como principal ventaja que
el acceso a los datos suele ser muy rápido si se cumplen las siguientes condiciones:// o
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). Una //función resumen// que distribuya uniformemente las claves. Si la función está mal diseñada, se producirán muchas colisiones
desventajas de la tabla hash o
o
o
o
Necesidad de ampliar el espacio de la tabla si el volumen de datos almacenados crece. Se trata de una operación costosa. Dificultad para recorrer todos los elementos. Se suelen emplear //**listas**// para procesar la totalidad de los elementos. 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. 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 Func ion es Hash m ás us adas: 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ón Si 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*φ)). CONCLUSIONES Despues 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 d atos al ser firmados digitalmete, en si funcionan en una misma direccion. o
o
o
o
Las funciones HASH como son MD5, SHA-1, y otras, pueden usarse además para autenticar a dos usuarios. Estas funciones como carecen de una clave privada no pueden usarse de forma directa para estos propósitos, no obstante existen algoritmos que permiten añadirles esta función. usando los H A S H 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 l a autenticación y firma digital. Dentro de la funcion HASH, HMAC se usa en plataformasseguras ip como por ejemplo en Secure Socket Layer, SSL.
ADMINISTRACION DE SEGURIDAD.WIKIPEDIA El 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 l laves, 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 co ntra la negación de servicios
Los 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 cor reo electrónico *Defensa cont ra 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. 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 so lo 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
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 d ivulgada, 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 di versos 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, di vulgació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 de la información incumbe a gobiernos, e ntidades 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 n ada 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 confidenciali dad 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 s obre una empresa es 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 m odificado 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 utili zados 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 se guridad 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, 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 rec eptor 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 n iegue 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 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 m omento.
Protocolos de Seguridad de la Información [editar · editar código] Los protocolos de seguridad son un conjunto de reglas que gobiernan d entro 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 d e 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 d el 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.
Creación de un plan de respuesta a incidentes[editar · editar código] Es importante formular un plan de respuestas a i ncidentes, 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 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 m enos 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 úti l 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 m uchas oportunidades. Ejemplo:
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 c urso y permite a los sistemas rentables de gestión. El enfoque de s istemas de gestión de la seguridad, dispone:
Configuración de la política común de todos los productos 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 cualquier medio extraíble y transportable o de l a misma red en la que se encuentre un equipo infectado, causando diversos tipos de d añ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 s istemas 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 c o p y h a c k e r ' 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 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 n e w b i e 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 s c r i p t k i d d i e 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 t o n t o 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 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] Las principales tecnologías referentes a la seguridad d e 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
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. 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.
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 dich a 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, r ealmente lo recibió, evitando que el receptor lo niegue posteriormente. En este caso la prueba ir refutable 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