Professional Documents
Culture Documents
VICTORIA
SEGURIDAD INFORMTICA
La seguridad informtica consiste en asegurar que los recursos del sistema de informacin
(material informtico o programas) de una organizacin sean utilizados de la manera que se
decidi y que el acceso a la informacin all contenida as como su modificacin slo sea posible
a las personas que se encuentren acreditadas y dentro de los lmites de su autorizacin.
Introduccin
Podemos entender como seguridad un estado de cualquier tipo de informacin (informtico o no)
que nos indica que ese sistema est libre de peligro, dao o riesgo. Se entiende como peligro o
dao todo aquello que pueda afectar su funcionamiento directo o los resultados que se obtienen
del mismo. Para la mayora de los expertos el concepto de seguridad en la informtica es utpico
porque no existe un sistema 100% seguro. Para que un sistema se pueda definir como seguro
debe tener estas cuatro caractersticas:
Integridad: la informacin slo puede ser modificada por quien est autorizado y de
manera controlada.
Activo: recurso del sistema de informacin o relacionado con ste, necesario para que
la organizacin funcione correctamente y alcance los objetivos propuestos.
Ataque: evento, exitoso o no, que atenta sobre el buen funcionamiento del sistema.
Aunque a simple vista se puede entender que un riesgo y una vulnerabilidad se podran englobar
un mismo concepto, una definicin ms informal denota la diferencia entre riesgo y
vulnerabilidad, de modo que se debe la vulnerabilidad est ligada a una amenaza y el riesgo a
un impacto.
Objetivos
Los activos son los elementos que la seguridad informtica tiene como objetivo proteger. Son
tres elementos que conforman los activos:
Informacin
Es el objeto de mayor valor para una organizacin, el objetivo es el resguardo de la
informacin, independientemente del lugar en donde se encuentre registrada, en algn
medio electrnico o fsico.
Equipos que la soportan.
Software, hardware y organizacin.
Usuarios
Individuos que utilizan la estructura tecnolgica y de comunicaciones que manejan la
informacin.
Anlisis de riesgos
El activo ms importante que se posee es la informacin y, por lo tanto, deben existir tcnicas
que la aseguren, ms all de la seguridad fsica que se establezca sobre los equipos en los
cuales se almacena. Estas tcnicas las brinda la seguridad lgica que consiste en la aplicacin
de barreras y procedimientos que resguardan el acceso a los datos y slo permiten acceder a
ellos a las personas autorizadas para hacerlo.
Existe un viejo dicho en la seguridad informtica que dicta: "lo que no est permitido debe estar
prohibido" y sta debe ser la meta perseguida.
Los medios para conseguirlo son:
1. Restringir el acceso (de personas de la organizacin y de las que no lo son) a los
programas y archivos.
2. Asegurar que los operadores puedan trabajar pero que no puedan modificar los
programas ni los archivos que no correspondan (sin una supervisin minuciosa).
Las amenazas
Una vez que la programacin y el funcionamiento de un dispositivo de almacenamiento (o
transmisin) de la informacin se consideran seguras, todava deben ser tenidos en cuenta las
circunstancias "no informticas" que pueden afectar a los datos, las cuales son a menudo
imprevisibles o inevitables, de modo que la nica proteccin posible es la redundancia (en el
caso de los datos) y la descentralizacin -por ejemplo mediante estructura de redes- (en el caso
de las comunicaciones).
Estos fenmenos pueden ser causados por:
Un intruso: persona que consigue acceder a los datos o programas de los cuales no
tiene acceso permitido (cracker, defacer, script kiddie o script boy, viruxer, etc.).
Un siniestro (robo, incendio, por agua): una mala manipulacin o una mal intencin
derivan a la prdida del material o de los archivos.
El personal interno de sistemas. Las pujas de poder que llevan a disociaciones entre los
sectores y soluciones incompatibles para la seguridad informtica.
Tecnologas repelentes o protectoras: cortafuegos, sistema de deteccin de intrusos antispyware, antivirus, llaves para proteccin de software, etc. Mantener los sistemas de
informacin con las actualizaciones que ms impacten en la seguridad.
Consideraciones de software
Tener instalado en la mquina nicamente el software necesario reduce riesgos. As mismo tener
controlado el software asegura la calidad de la procedencia del mismo (el software obtenido de
forma ilegal o sin garantas aumenta los riesgos). En todo caso un inventario de software
proporciona un mtodo correcto de asegurar la reinstalacin en caso de desastre. El software
con mtodos de instalacin rpidos facilita tambin la reinstalacin en caso de contingencia.
Existe software que es conocido por la cantidad de agujeros de seguridad que introduce. Se
pueden buscar alternativas que proporcionen iguales funcionalidades pero permitiendo una
seguridad extra.
Los mecanismos de seguridad pueden sin embargo, causar inconvenientes a los usuarios. Con
frecuencia, las instrucciones y las reglas se vuelven cada vez ms complicadas a medida que la
red crece. Por consiguiente, la seguridad informtica debe estudiarse de modo que no evite que
los usuarios desarrollen usos necesarios y as puedan utilizar los sistemas de informacin en
forma segura.
Por esta razn, uno de los primeros pasos que debe dar una compaa es definir una poltica de
seguridad que pueda implementar en funcin a las siguientes cuatro etapas:
Proporcionar una perspectiva general de las reglas y los procedimientos que deben
implementarse para afrontar los riesgos identificados en los diferentes departamentos de
la organizacin
Definir las acciones a realizar y las personas a contactar en caso de detectar una
amenaza
La poltica de seguridad comprende todas las reglas de seguridad que sigue una organizacin
(en el sentido general de la palabra). Por lo tanto, la administracin de la organizacin en
cuestin debe encargarse de definirla, ya que afecta a todos los usuarios del sistema.
En este sentido, no son slo los administradores de informtica los encargados de definir los
derechos de acceso sino sus superiores. El rol de un administrador de informtica es el de
asegurar que los recursos de informtica y los derechos de acceso a estos recursos coincidan
con la poltica de seguridad definida por la organizacin.
Es ms, dado que el/la administrador/a es la nica persona que conoce perfectamente el
sistema, deber proporcionar informacin acerca de la seguridad a sus superiores,
eventualmente aconsejar a quienes toman las decisiones con respecto a las estrategias que
deben implementarse, y constituir el punto de entrada de las comunicaciones destinadas a los
usuarios en relacin con los problemas y las recomendaciones de seguridad.
La seguridad informtica de una compaa depende de que los empleados (usuarios) aprendan
las reglas a travs de sesiones de capacitacin y de concientizacin. Sin embargo, la seguridad
debe ir ms all del conocimiento de los empleados y cubrir las siguientes reas:
Estoy protegido pues no abro archivos que no conozco. Esto es falso, pues existen
mltiples formas de contagio, adems los programas realizan acciones sin la supervisin
del usuario poniendo en riesgo los sistemas.
Como tengo antivirus estoy protegido. En general los programas antivirus no son
capaces de detectar todas las posibles formas de contagio existentes, ni las nuevas que
pudieran aparecer conforme los ordenadores aumenten las capacidades de
comunicacin, adems los antivirus son vulnerables a desbordamientos de bfer que
hacen que la seguridad del sistema operativo se vea ms afectada an.
Tengo un servidor web cuyo sistema operativo es un unix actualizado a la fecha: puede
que este protegido contra ataques directamente hacia el ncleo, pero si alguna de las
aplicaciones web (php, perl, cpanel, etc.) Est desactualizada, un ataque sobre algn
script de dicha aplicacin puede permitir que el atacante abra una shell y por ende
ejecutar comandos en el unix.
CRIPTOGRAFA
La criptografa (del griego krypto, oculto, y graphos, escribir, literalmente
escritura oculta) es el arte o ciencia de cifrar y descifrar informacin mediante tcnicas
especiales y se emplea frecuentemente para permitir un intercambio de mensajes que slo
puedan ser leidos por personas a las que van dirigidos y que poseen los medios para
descifrarlos.
Con ms precisin, cuando se habla de esta rea de conocimiento como ciencia, se debera
hablar de criptologa, que a su vez engloba tanto las tcnicas de cifrado, es decir, la criptografa
propiamente dicha, como sus tcnicas complementarias, entre las cuales se incluye el
criptoanlisis, que estudia mtodos empleados para romper textos cifrados con objeto de
recuperar la informacin original en ausencia de las claves.
Finalidad
La finalidad de la criptografa es, en primer lugar, garantizar el secreto en la comunicacin entre
dos entidades (personas, organizaciones, etc.) y, en segundo lugar, asegurar que la informacin
que se enva es autntica en un doble sentido: que el remitente sea realmente quien dice ser y
que el contenido del mensaje enviado, habitualmente denominado criptograma, no haya sido
modificado en su trnsito.
Otro mtodo utilizado para ocultar el contenido de un mensaje es ocultar el propio mensaje en un
canal de informacin, pero en puridad, esta tcnica no se considera criptografa, sino
esteganografa. Por ejemplo, mediante la esteganografa se puede ocultar un mensaje en un
canal de sonido, una imagen o incluso en reparto de los espacios en blanco usados para
justificar un texto. La esteganografa no tiene por qu ser un mtodo alternativo a la criptografa,
siendo comn que ambos mtodos se empleen de forma simultnea para dificultar an ms la
labor del criptoanalista.
En la actualidad, la criptografa no slo se usa para comunicar informacin de forma segura
ocultando su contenido a posibles fisgones. Una de las ramas de la criptografa que ms ha
revolucionado el panorama actual de las tecnologas informticas es el de la firma digital:
tecnologa que busca asociar al emisor de un mensaje con su contenido de forma que aquel no
pueda repudiarlo posteriormente.
Conceptos
En la jerga de la criptografa, la informacin original que debe protegerse se denomina texto en
claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatas ilegible,
denominado texto cifrado o criptograma. Por lo general, la aplicacin concreta del algoritmo de
cifrado (tambin llamado cifra) se basa en la existencia de una clave: informacin secreta que
adapta el algoritmo de cifrado para cada uso distinto. Cifra es una antigua palabra arbiga para
designar el nmero cero; en la Antigedad, cuando Europa empezaba a cambiar del sistema de
numeracin romano al arbigo, se desconoca el cero, por lo que este resultaba misterioso, de
ah probablemente que cifrado signifique misterioso.
Las dos tcnicas ms sencillas de cifrado, en la criptografa clsica, son la sustitucin (que
supone el cambio de significado de los elementos bsicos del mensaje -las letras, los dgitos o
los smbolos-) y la trasposicin (que supone una reordenacin de los mismos); la gran mayora
de las cifras clsicas son combinaciones de estas dos operaciones bsicas.
El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave.
El protocolo criptogrfico especifica los detalles de cmo se utilizan los algoritmos y las claves (y
otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos,
algoritmos de cifrado, procesos de gestin de claves y actuaciones de los usuarios, es lo que
constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interacta.
Existen dos grandes grupos de cifras: los algoritmos que usan una nica clave tanto en el
proceso de cifrado como en el de descifrado, y los que emplean una clave para cifrar mensajes y
una clave distinta para descifrarlos. Los primeros se denominan cifras simtricas, de clave
simtrica o de clave privada, y son la base de los algoritmos de cifrado clsico. Los segundos se
denominan cifras asimtricas, de clave asimtrica o de clave pblica y forman el ncleo de las
tcnicas de cifrado modernas.
En el lenguaje cotidiano, la palabra cdigo se usa de forma indistinta con cifra. En la jerga de la
criptografa, sin embargo, el trmino tiene un uso tcnico especializado: los cdigos son un
mtodo de criptografa clsica que consiste en sustituir unidades textuales ms o menos largas o
complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul"
podra significar "atacar al amanecer". Por el contrario, las cifras clsicas normalmente sustituyen
o reordenan los elementos bsicos del mensaje -letras, dgitos o smbolos-; en el ejemplo
anterior, "rcnm arcteeaal aaa" sera un criptograma obtenido por transposicin. Cuando se usa
una tcnica de cdigos, la informacin secreta suele recopilarse en un libro de cdigos.
Con frecuencia los procesos de cifrado y descifrado se encuentran en la literatura como
encriptado y desencriptado, aunque ambos son neologismos errneos -anglicismos de los
trminos ingleses encrypt y decrypt- todava sin reconocimiento acadmico. Hay quien hace
distincin entre cifrado/descifrado y encriptado/desencriptado segn estn hablando de
criptografa simtrica o asimtrica, pero la realidad es que la mayora de los expertos
hispanohablantes prefieren evitar ambos neologismos hasta el punto de que el uso de los
mismos llega incluso a discernir a los aficionados y novatos en la materia de aquellos que han
adquirido ms experiencia y profundidad en la misma.
Historia de la criptografa
La historia de la criptografa se remonta a miles de aos. Hasta dcadas recientes, ha sido la
historia de la criptografa clsica - los mtodos de cifrado que usan papel y lpiz, o quizs ayuda
mecnica sencilla. A principios del siglo XX, la invencin de mquinas mecnicas y
electromecnicas complejas, como la mquina de rotores Enigma, proporcionaron mtodos de
cifrado ms sofisticados y eficientes; y la posterior introduccin de la electrnica y la
computacin ha permitido sistemas elaborados que siguen teniendo gran complejidad.
La evolucin de la criptografa ha ido de la mano de la evolucin del criptoanlisis - el arte de
"romper" los cdigos y los cifrados. Al principio, el descubrimiento y aplicacin del anlisis de
frecuencias a la lectura de las comunicaciones cifradas ha cambiado en ocasiones el curso de la
historia. De esta manera, el telegrama Zimmermann provoc que Estados Unidos entrara en la
Primera Guerra Mundial; y la lectura, por parte de los Aliados, de los mensajes cifrados de la
Alemania nazi, puede haber acortado la Segunda Guerra Mundial hasta dos aos.
Hasta los aos 70, la criptografa segura era dominio casi exclusivo de los gobiernos. Desde
entonces, dos sucesos la han colocado de lleno en el dominio pblico: la creacin de un
estndar de cifrado pblico (DES); y la invencin de la criptografa asimtrica.
Criptografa clsica
El uso ms antiguo conocido de la criptografa se halla en jeroglficos no estndares tallados en
monumentos del Antiguo Egipto (hace ms de 4500 aos). Sin embargo, no se piensa que sean
intentos serios de comunicacin secreta, sino intentos de conseguir misterio, intriga o incluso
diversin para el espectador letrado. Son ejemplos de otros usos de la criptografa, o de algo que
se le parece. Ms tarde, eruditos hebreos hicieron uso de sencillos cifrados por sustitucin
monoalfabticos (como el cifrado Atbash), quizs desde el 500 al 600 adC. La criptografa tiene
una larga tradicin en las escrituras religiosas que podran ofender a la cultura dominante o a las
autoridades polticas. Quizs el caso ms famoso es el 'Nmero de la bestia', del libro del
Apocalipsis en el Nuevo Testamento cristiano. El '666' puede ser una forma criptogrfica (es
decir, cifrada) de ocultar una referencia peligrosa; muchos expertos creen que es una referencia
oculta al Imperio Romano, o ms probablemente al propio emperador Nern (y as a las polticas
persecutorias romanas), que sera entendida por los iniciados (los que 'tenan la clave del
entendimiento'), y sin embargo sera segura o al menos negable (y por tanto 'menos' peligrosa) si
atraa la atencin de las autoridades. Al menos para las escrituras ortodoxas cristianas, casi toda
esta necesidad de ocultacin desapareci con la conversin y adopcin del cristianismo como
religin oficial del Imperio por parte del emperador Constantino.
Se dice que los griegos de la poca clsica conocan el cifrado (por ejemplo, se dice que los
militares espartanos utilizaban el cifrado por transposicin de la escitala). Herdoto nos habla de
mensajes secretos ocultos fsicamente detrs de la cera en tablas de madera, o como tatuajes
en la cabeza de un esclavo, bajo el cabello, aunque esto no son ejemplos verdaderos de
criptografa, ya que el mensaje, una vez conocido, es legible directamente; esto se conoce como
esteganografa. Los romanos s saban algo de criptografa con toda seguridad (por ejemplo, el
cifrado Csar y sus variaciones). Hay una mencin antigua a un libro sobre criptografa militar
romana (especialmente la de Julio Csar); desafortunadamente, se ha perdido.
En India tambin se conoca la criptografa. El Kama Sutra la recomienda como tcnica para que
los
amantes
se
comuniquen
sin
ser
descubiertos.
Criptografa medieval
Fue probablemente el anlisis textual del Corn, de motivacin religiosa, lo que llev a la
invencin de la tcnica del anlisis de frecuencias para romper los cifrados por sustitucin
monoalfabticos, en algn momento alrededor del ao 1000. Fue el avance criptoanaltico ms
importante hasta la Segunda Guerra Mundial. Esencialmente, todos los cifrados quedaron
vulnerables a esta tcnica criptoanaltica hasta la invencin del cifrado polialfabtico por Leon
Battista Alberti (1465), y muchos lo siguieron siendo desde entonces.
La criptografa se hizo todava ms importante (secretamente) como consecuencia de la
competicin poltica y la revolucin religiosa. Por ejemplo, en Europa, durante el Renacimiento,
ciudadanos de varios estados italianos, incluidos los Estados Pontificios y la Iglesia Catlica,
fueron responsables de una rpida proliferacin de tcnicas criptoanalticas, de las cuales muy
pocas reflejaban un entendimiento (o siquiera el conocimiento) del avance de Alberti. Los
cifrados avanzados, incluso despus de Alberti, no eran tan avanzados como afirmaban sus
inventores/desarrolladores/usuarios (y probablemente ellos mismos crean); puede que este
sobre optimismo sea algo inherente a la criptografa, ya que entonces y hoy en da es
fundamentalmente difcil saber realmente cmo de vulnerable es un sistema. En ausencia del
conocimiento, son comunes las conjeturas y esperanzas, como es de esperar.
La criptografa, el criptoanlisis y la traicin cometida por agentes y mensajeros en la
conspiracin de Babington, durante el reinado de la reina Isabel I de Inglaterra, provocaron la
ejecucin de Mara, reina de los escoceses. Un mensaje cifrado de la poca de el hombre de la
mscara de hierro (descifrado poco antes del ao 1900 por tienne Bazeries) ha arrojado algo
de luz (no definitiva, lamentablemente) sobre la identidad real de ese prisionero legendario y
desafortunado. La criptografa y su mala utilizacin estuvieron implicadas en la conspiracin que
condujo a la ejecucin de Mata Hari y en la confabulacin que provoc la ridcula condena y
encarcelamiento de Dreyfus, ambos hechos acaecidos a principios del siglo XX.
Afortunadamente, los criptgrafos tambin jugaron su papel para exponer las maquinaciones que
provocaron los problemas de Dreyfus; Mata Hari, en cambio, fue fusilada.
Fuera del Medio Oriente y Europa, la criptografa permaneci comparativamente
subdesarrollada. En Japn no se utiliz la criptografa hasta 1510, y las tcnicas avanzadas no
se conocieron hasta la apertura del pas hacia occidente en los aos 1860.
ensayo sobre los mtodos criptogrficos que resultaron tiles para descifrar los cdigos
alemanes empleados durante la Primera Guerra Mundial.
Proliferaron mtodos matemticos en la poca justo anterior a la Segunda Guerra Mundial
(principalmente con la aplicacin, por parte de William F. Friedman, de las tcnicas estadsticas
al desarrollo del criptoanlisis y del cifrado, y la rotura inicial de Marian Rejewski de la versin del
Ejrcito Alemn del sistema Enigma). Tanto la criptografa como el criptoanlisis se han hecho
mucho ms matemticas desde la Segunda Guerra Mundial. Aun as, ha hecho falta la
popularizacin de los ordenadores y de Internet como medio de comunicacin para llevar la
criptografa efectiva al uso comn por alguien que no sea un gobierno nacional u organizaciones
de tamao similar.
que se haban puesto al da con el tema. Con el tiempo, los criptlogos britnicos en los que
se incluan lumbreras como Gordon Welchman y Alan Turing, el fundador conceptual de la
computacin moderna hicieron progresar sustancialmente la escala y tecnologa del descifrado
Enigma.
El 19 de abril de 1945 se orden a los oficiales superiores britnicos que nunca deban revelar
que se haba roto el cdigo de la mquina Enigma alemana, porque esto le dara la oportunidad
al enemigo de decir que "no fueron vencidos justa y satisfactoriamente".
Los criptgrafos de la Armada estadounidense (en cooperacin con criptgrafos britnicos y
holandeses a partir de 1940) rompieron varios sistemas criptogrficos de la Armada japonesa. La
rotura de uno de ellos, el JN-25, condujo a la clebre victoria estadounidense de la Batalla de
Midway. Un grupo del ejrcito estadounidense, el SIS, consigui romper el sistema criptogrfico
diplomtico japons de alta seguridad (una mquina electromecnica llamada Prpura por los
estadounidenses) antes incluso del comienzo de la Segunda Guerra Mundial. Los
estadounidenses llamaron a la inteligencia derivada del criptoanlisis, quizs en especial la
derivada de la mquina Prpura, como Magic (Magia). Finalmente los britnicos se decidieron
por Ultra para la inteligencia derivada del criptoanlisis, en especial la derivada del trfico de
mensajes cifrados con las diversas Enigmas. Un trmino britnico anterior fue para Ultra fue
Boniface.
Los militares alemanes tambin desarrollaron varios intentos de implementar mecnicamente la
libreta de un solo uso. Bletchley Park los llam cifrados Fish, y Max Newman y sus colegas
disearon e implementaron el primer ordenador electrnico digital programable del mundo,
Colossus, para ayudarles con el criptoanlisis. La Oficina de Asuntos Exteriores alemana
empez a usar la libreta de un solo uso en 1919; parte de este trfico fue ledo en la Segunda
Guerra Mundial como resultado de la recuperacin de material importante en Sudamrica que
fue desechado con poco cuidado por un mensajero alemn.
La Oficina de Asuntos Exteriores japonesa utiliz un sistema elctrico lgico basado en
uniselectores (llamado Prpura por EEUU), y tambin utiliz varias mquinas similares para los
agregados de algunas embajadas japonesas. Una de estas recibi el nombre de Mquina M
por EEUU, y otra fue apodada Red. Todas fueron rotas en mayor o menor grado por los
aliados.
Las mquinas de cifrado aliadas utilizadas en la Segunda Guerra Mundial incluan la Typex
britnica y la SIGABA estadounidense; ambos eran diseos de rotores electromecnicos
similares en espritu a la Enigma, aunque con mejoras importantes. No se tiene constancia de
que ninguna de ellas fuera rota durante la guerra. Los polacos utilizaron la mquina Lacida, pero
se demostr que era poco segura y se cancel su uso. Las tropas de campo utilizaron las
familias M-209 y M-94. Los agentes SOE utilizaron inicialmente cifrados de poema (las claves
eran poemas memorizados), pero ms avanzada la guerra empezaron a utilzar libretas de un
solo uso.
Criptografa moderna
Shannon
La era de la criptografa moderna comienza realmente con Claude Shannon, que podra decirse
que es el padre de la criptografa matemtica. En 1949 public el artculo Communication Theory
of Secrecy Systems en la Bell System Technical Journal, y poco despus el libro Mathematical
Theory of Communication, con Warren Weaver. Estos trabajos, junto con los otros que public
sobre la teora de la informacin y la comunicacin, establecieron una slida base terica para la
criptografa y el criptoanlisis. Y, a la vez, la criptografa desapareci de la escena para quedarse
dentro de las organizaciones gubernamentales secretas como la NSA. Muy pocos trabajos se
hicieron pblicos hasta mediados de los 70, cuando todo cambi.
Un estndar de cifrado
A mediados de los 70 se vivieron dos importantes avances pblicos (es decir, no secretos). El
primero fue la publicacin del borrador del Data Encryption Standard en el Registro Federal
estadounidense el 17 de marzo de 1975. La propuesta fue enviada por IBM, por invitacin de la
Oficina Nacional de Estndares (ahora NIST), en un esfuerzo por desarrollar sistemas de
comunicacin electrnica segura para las empresas como los bancos y otras organizaciones
financieras grandes. Tras asesoramiento y ciertas modificaciones por parte de la NSA, fue
adoptado y publicado como un Federal Information Processing Standard en 1977 (actualmente el
FIPS 46-3). El DES fue el primer cifrado accesible pblicamente que fue bendecido por una
agencia nacional como la NSA. La publicacin de sus especificaciones por la NBS estimul una
explosin del inters pblico y acadmico por la criptografa.
DES fue suplantado oficialmente por el Advanced Encryption Standard (AES) en 2001, cuando el
NIST anunci el FIPS 197. Tras una competicin abierta, el NIST seleccion el Rijndael, enviado
por dos criptgrafos belgas, para convertirse en el AES. El DES, y otras variantes ms seguras
(como el Triple DES; ver FIPS 46-3), todava se utilizan hoy en da, y se han incorporado en
muchos estndares nacionales y de organizaciones. Sin embargo, se ha demostrado que el
tamao de su clave, 56 bits, es insuficiente ante ataques de fuerza bruta (un ataque as, llevado
a cabo por el grupo pro libertades civiles digitales Electronic Frontier Foundation en 1997, tuvo
xito en 56 horas - la historia se cuenta en Cracking DES, publicado por O'Reilly Associates).
Como resultado, hoy en da el uso sin ms del cifrado DES es sin duda inseguro para los nuevos
diseos de criptosistemas, y los mensajes protegidos por viejos criptosistemas que utilizan el
DES, y de hecho todos los mensajes enviados desde 1976 que usan el DES, tambin estn en
riesgo. A pesar de su calidad inherente, el tamao de la clave DES (56 bits) fue considerado por
algunos como demasiado pequeo incluso en 1976; quizs la voz ms sonora fue la de Whitfield
Diffie. Haba sospechas de que las organizaciones gubernamentales tenan suficiente potencia
de clculo para romper los mensajes DES; ahora es evidente que otros han logrado esa
capacidad.
Clave pblica
El segundo desarrollo, en 1976, fue quizs ms importante todava, ya que cambi de manera
fundamental la forma en la que los criptosistemas pueden funcionar. Fue la publicacin del
artculo New Directions in Cryptography, de Whitfield Diffie y Martin Hellman. Introdujo un mtodo
radicalmente nuevo para distribuir las claves criptogrficas, dando gran un paso adelante para
resolver uno de los problemas fundamentales de la criptografa, la distribucin de claves, y ha
terminado llamndose intercambio de claves Diffie-Hellman. El artculo tambin estimul el
desarrollo pblico casi inmediato de un nuevo tipo de algoritmo de cifrado, los algoritmos de
cifrado asimtrico.
Antes de eso, todos los algoritmos de cifrado tiles eran algoritmos de cifrado simtrico, en los
que tanto el remitente como el destinatario utilizan la misma clave criptogrfica, que ambos
deben mantener en secreto. Todas las mquinas electromecnicas utilizadas en la Segunda
Guerra Mundial eran de esta clase lgica, al igual que los cifrados Csar y Atbash y en esencia
todos los cifrados y sistemas de cdigos de la historia. La clave de un cdigo es, por supuesto,
el libro de cdigos, que debe asimismo distribuirse y mantenerse en secreto.
En estos sistemas era necesario que la partes que se iban a comunicar intercambiaran las
claves de alguna forma segura antes del uso del sistema (el trmino que se sola utilizar era
mediante un canal seguro), como un mensajero de confianza con un maletn esposado a su
mueca, o un contacto cara a cara, o una paloma mensajera fiel. Este requisito nunca es trivial y
se hace inmantenible rpidamente al crecer el nmero de participantes, o cuando no hay canales
seguros disponibles para el intercambio de claves, o cuando las claves cambian con frecuencia
(una prctica criptogrfica sensata). En particular, si se pretende que los mensajes sean seguros
frente a otros usuarios, hace falta una clave distinta para cada par de usuarios. Un sistema de
este tipo se conoce como criptosistema de clave secreta o de clave simtrica. El intercambio de
claves D-H (y las posteriores mejoras y variantes) hizo que el manejo de estos sistemas fuera
mucho ms sencillo y seguro que nunca.
forma
indefinida.
Para que dos usuarios de un algoritmo de clave asimtrica puedan comunicarse de forma segura
a travs de un canal inseguro, cada usuario necesita conocer su clave pblica y privada y la
clave pblica del otro usuario. Vase este escenario bsico: Alicia y Roberto tienen cada uno un
par de claves que han utilizado durante aos con muchos otros usuarios. Al comienzo de su
mensaje, intercambian las claves pblicas sin cifrar por una lnea insegura. Luego Alicia cifra un
mensaje utilizando su clave privada, y luego re-cifra el resultado utilizando la clave pblica de
Roberto. Luego el mensaje cifrado doblemente se enva en forma de datos digitales mediante un
cable desde Alicia hasta Roberto. Roberto recibe el flujo de bits y lo descifra usando su clave
privada, y luego descifra el resultado utilizando la clave pblica de Alicia. Si el resultado final es
un mensaje reconocible, Roberto puede estar seguro de que el mensaje procede realmente de
alguien que conoce la clave privada de Alicia, y que cualquiera que haya pinchado el canal
necesitar las claves privadas de Alicia y Roberto para entender el mensaje.
La efectividad de los algoritmos asimtricos depende de una clase de problemas matemticos
conocidos como funciones de un solo sentido, que requieren relativamente poca potencia de
clculo para ejecutarse, pero muchsima potencia para calcular la inversa. Un ejemplo clsico de
funcin de un sentido es la multiplicacin de nmeros primos grandes. Es bastante rpido
multiplicar dos primos grandes, pero muy difcil factorizar el producto de dos primos grandes.
Debido a las propiedades matemticas de las funciones de un sentido, la mayor parte de las
claves posibles tienen poca calidad para su uso criptogrfico; solo una pequea parte de las
claves posibles de una cierta longitud son candidatas ideales, y por tanto los algoritmos
asimtricos requieren claves muy largas para alcanzar el mismo nivel de seguridad
proporcionado por las claves simtricas, relativamente ms cortas. Las exigencias de generar el
par de claves y realizar el cifrado/descifrado hacen que los algoritmos asimtricos sean costosos
computacionalmente. Como, a menudo, los algoritmos simtricos pueden usar como clave
cualquier serie seudoaleatoria de bits, se puede generar rpidamente una clave de sesin
desechable para uso a corto plazo. Por consiguiente, es una prctica comn utilizar una clave
asimtrica larga para intercambiar una clave simtrica desechable mucho ms corta (pero igual
de fuerte). El algoritmo asimtrico, ms lento, enva de forma segura una clave simtrica de
sesin, y entonces el algoritmo simtrico, ms rpido, toma el control para el resto del mensaje.
La criptografa de clave asimtrica, el intercambio de claves Diffie-Hellman y los famosos
algoritmos de clave pblica/clave privada (es decir, lo que se suele llamara algoritmo RSA),
parecen haber sido desarrollados de manera independiente en una agencia de inteligencia
britnica antes del anuncio pblico de Diffie y Hellman en el 76. El GCHQ ha publicado
documentos que afirman que ellos haban desarrollado la criptografa de clave pblica antes de
la publicacin del artculo de Diffie y Hellman. Varios artculos clasificados fueron escritos en el
GCHQ durante los aos 60 y 70, que finalmente llevaron a unos sistemas esencialmente
idnticos al cifrado RSA y al intercambio de claves Diffie-Hellman en 1973 y 1974. Algunos de
ellos se acaban de publicar, y los inventores (James H. Ellis, Clifford Cocks y Malcolm Williamson
han hecho pblico parte de su trabajo.
Poltica y criptografa
Esto acab con el monopolio sobre la criptografa que mantenan las organizaciones
gubernamentales en todo el mundo (Ver Crypto de Steven Levy, un relato periodstico sobre la
controversia poltica en EEUU). Por primera vez en la historia, la gente externa a las
organizaciones gubernamentales tena acceso a criptografa que el gobierno no poda romper
fcilmente. Se desat una considerable controversia tanto pblica como privada que todava no
ha amainado. En muchos pases, por ejemplo, la exportacin de criptografa est sujeta a
restricciones. En Estados Unidos, hasta 1996, la exportacin de criptografa con claves mayores
de 40 bits estaba duramente limitada. Recientemente, en 2004, el antiguo director del FBI Louis
Freeh, en su testificacin en la Comisin del 11S, pidi nuevas leyes contra el uso pblico de la
criptografa.
El actor ms notable en la defensa del cifrado fuerte para uso pblico fue Phil Zimmermann con
la publicacin de PGP (Pretty Good Privacy) en 1991. Distribuy una versin freeware de PGP
cuando previ la amenaza de una legislacin, por aquel entonces en consideracin por el
gobierno estadounidense, que requerira la creacin de puertas traseras en todas las soluciones
criptogrficas desarrolladas dentro de EEUU. Sus esfuerzos para publicar PGP en todo el mundo
le granjearon una larga batalla con el Departamento de Justicia por la supuesta violacin de las
restricciones de exportacin. Finalmente, el Departamento de Justicia abandon el caso contra
Algoritmos ms importantes
Algoritmos de cifrado simtrico
DES
El DES (Data Encription Standard o Estndar de Encriptacin de Datos) es el nombre del
documento FIPS (Federal Information Processing Standard) 46-1 del Instituto Nacional de
Estndares y Tecnologa (NIST) del Departamento de Comercio de Estados Unidos. Fue
publicado en 1977. En este documento se describe el DEA (Data Encription Algorithm o
Algoritmo de Encriptacin de Datos. Es el algoritmo de cifrado simtrico ms estudiado, mejor
conocido y ms empleado del mundo.
El DEA (llamado con frecuencia DES) es un algoritmo de cifrado por bloques de 64 bits de
tamao. Emplea una clave de 56 bits durante la ejecucin (se eliminan 8 bits de paridad del
bloque de 64). El algoritmo fue diseado para ser implementado en hardware. Cuando se utiliza
en comunicaciones ambos participantes deben conocer la clave secreta (para intercambiarla se
suelen emplear algoritmos de clave pblica). El algoritmo se puede usar para encriptar y
desencriptar mensajes, generar y verificar cdigos de autentificacin de mensajes (MAC) y para
encriptacin de un slo usuario (p. ej para guardar un archivo en disco).
Aunque el DES era un algoritmo computacionalmente seguro, esto ha dejado de ser cierto, ya
que con hardware especfico es posible realizar ataques por fuerza bruta que descubran una
clave en pocos das. El problema principal es que el tamao de la clave (56 bits) es demasiado
pequeo para la potencia de clculo actual. De hecho, el DES dej de ser el algoritmo empleado
por el gobierno norteamericano en Noviembre de 1998 y de momento (hasta que el AES sea
elegido), emplean el Triple DES.
Triple-DES
Consiste en encriptar tres veces una clave DES. Esto se puede hacer de varias maneras:
DES-EEE2 y DES-EDE2: Igual que los anteriores pero la primera y tercera operacin
emplean la misma clave.
Dependiendo del mtodo elegido, el grado de seguridad vara; el mtodo ms seguro es el DESEEE3.
AES
El AES (Advanced Encription Standard o Estndar Criptogrfico Avanzado) es un algoritmo de
cifrado por bloques destinado a reemplazar al DES como estndar.
En la actualidad se han aceptado 15 propuestas de estndar de las que saldrn 5 candidatos
para una revisin ms completa. El proceso no parece que vaya a terminar hasta pasado el ao
2000.
RC2
El RC2 es un algoritmo de cifrado por bloques de clave de tamao variable diseado por Ron
Rivest de RSA Data Security (la RC quiere decir Ron's Code o Rivest's Cipher).
El algoritmo trabaja con bloques de 64 bits y entre dos y tres veces ms rpido que el DES en
software. Se puede hacer ms o menos seguro que el DES contra algoritmos de fuerza bruta
eligiendo el tamao de clave apropiadamente.
El algoritmo est diseado para reemplazar al DES.
RC4
El RC4 es un algoritmo de cifrado de flujo diseado por Ron Rivest para RSA Data Security. Es
un algoritmo de tamao de clave variable con operaciones a nivel de byte. Se basa en el uso de
una permutacin aleatoria y tiene un periodo estimado de ms de 10 100. Adems, es un algoritmo
de ejecucin rpida en software.
El algoritmo se emplea para encriptacin de ficheros y para encriptar la comunicacin en
protocolos como el SSL (TLS).
RC5
El RC5 es un algoritmo parametrizable con tamao de bloque variable, tamao de clave variable
y nmero de rotaciones variable. Los valores ms comunes de los parmetros son 64 o 128 bits
para el tamao de bloque, de 0 a 255 rotaciones y claves de 0 a 2048 bits. Fue diseado en
1994 por Ron Rivest.
El RC5 tiene 3 rutinas: expansin de la clave, encriptacin y desencriptacin. En la primera rutina
la clave proporcionada por el usuario se expande para llenar una tabla de claves cuyo tamao
depende del nmero de rotaciones. La tabla se emplea en la encriptacin y desencriptacin.
Para la encriptacin slo se emplean tres operaciones: suma de enteros, o-exclusiva de bits y
rotacin de variables.
La mezcla de rotaciones dependientes de los datos y de distintas operaciones lo hace resistente
al criptoanlisis lineal y diferencial. El algoritmo RC5 es fcil de implementar y analizar y, de
momento, se considera que es seguro.
IDEA
El IDEA (International Data Encription Algorithm) es un algoritmo de cifrado por bloques de 64
bits iterativo. La clave es de 128 bits. La encriptacin precisa 8 rotaciones complejas. El
algoritmo funciona de la misma forma para encriptar que para desencriptar (excepto en el clculo
de las subclaves). El algoritmo es fcilmente implementable en hardware y software, aunque
algunas de las operaciones que realiza no son eficientes en software, por lo que su eficiencia es
similar a la del DES.
El algoritmo es considerado inmune al criptoanlisis diferencial y no se conocen ataques por
criptoanlisis lineal ni debilidades algebraicas. La nica debilidad conocida es un conjunto de 251
claves dbiles, pero dado que el algoritmo tiene 2
128
problema serio.
SAFER
El SAFER (Secure And Fast Encription Routine) es un algoritmo de cifrado por bloques no
propietario. Est orientado a bytes y emplea un tamao de bloque de 64 bits y claves de 64
(SAFER K-64) o 128 bits (SAFER K-128). Tiene un nmero variable de rotaciones, pero es
recomendable emplear como mnimo 6.
El algoritmo original fue considerado inmune al criptoanlisis lineal y diferencial, pero Knudsen
descubri una debilidad en el generador de claves y el algoritmo fue modificado (SAFER SK-64 y
SAFER SK-128).
Blowfish
Es un algoritmo de cifrado por bloques de 64 bits desarrollado por Scheiner. Es un algoritmo de
tipo Feistel y cada rotacin consiste en una permutacin que depende de la clave y una
sustitucin que depende de la clave y los datos. Todas las operaciones se basan en o-exclusivas
sobre palabras de 32 bits. La clave tiene tamao variable (con un mximo de 448 bits) y se
emplea para generar varios vectores de subclaves.
Este algoritmo se diseo para mquinas de 32 bits y es considerablemente ms rpido que el
DES.
El algoritmo es considerado seguro aunque se han descubierto algunas claves dbiles, un
ataque contra una versin del algoritmo con tres rotaciones y un ataque diferencial contra una
variante del algoritmo.
Algoritmos de clave pblica
RSA
El RSA, llamado as por las siglas de sus creadores (Rivest, Shamir y Adelman), es el algoritmo
de clave pblica ms popular. El algoritmo se puede usar para encriptar comunicaciones, firmas
digitales e intercambio de claves.
La clave es de tamao variable, generalmente se usan claves entre 512 y 2048 bits. Las claves
ms grandes aumentan la seguridad del algoritmo pero disminuyen su eficiencia y generan ms
texto cifrado. Los bloques de texto en claro pueden ser de cualquier tamao, siempre que sea
menor que la longitud de la clave. Los bloques de texto cifrado generados son del tamao de la
clave.
La clave pblica del algoritmo tiene la forma (e, n), donde e es el exponente y n el mdulo. La
longitud de la clave es igual al nmero de bits de n. El mdulo se obtiene multiplicando dos
nmeros primos grandes, p y q. Los nmeros se seleccionan aleatoriamente y se guardan en
secreto. La clave privada tiene la forma (d, n), donde d es el producto inverso de emodulo(p-1)
(q-1) (es decir, (ed - 1) es divisible por (p-1)(q-1)).
El clculo de d a partir de p y q es sencillo, pero es computacionalmente imposible calcular d sin
conocer p y q para valores grandes de n, ya que obtener sus valores es equivalente a factorizar
n, que es un problema intratable computacionalmente.
El funcionamiento del algoritmo es como sigue:
Firmado. Si el emisor desea enviar el mensaje firmado usa su clave privada para
calcular c=mdmodulon y el destinatario lo valida calculando c emodulon = (md)emodulo
n = mdemodulon = m, donde (e, n) es la clave pblica del emisor.
El algoritmo es lento, ya que emplea operaciones matemticas que tienen un coste elevado y
trabaja con claves de gran tamao. Parte del problema est en la eleccin del exponente e, ya
que un exponente de 512 bits escogido aleatoriamente precisa 768 multiplicaciones en
promedio. Para solucionarlo se suelen escoger los valores 3 65537, que precisan 3 y 17
multiplicaciones respectivamente. La eleccin de un exponente fijo no disminuye la seguridad del
algoritmo si se emplean esquemas de criptografa de clave pblica adecuados, como por
ejemplo el relleno de mensajes con bits aleatorios.
Adicionalmente, el uso de exponentes fijos hace que la encriptacin sea ms rpida que la
desencriptacin y la verificacin ms rpida que la firma. Esta ltima caracterstica es incluso
deseable, ya que un usuario firma una vez un mensaje pero es posible que la firma se valide
muchas veces.
Comparado con los sistemas de cifrado simtrico como el DES, el algoritmo de RSA es 100
veces ms lento en software y de 1000 a 10000 veces ms lento en hardware.
Diffie-Hellman
El algoritmo de Diffie Hellman es un algoritmo de clave pblica que permite el intercambio seguro
de un secreto compartido. Generalmente se emplea junto con algoritmos de cifrado simtrico,
como mtodo para acordar una clave secreta. El algoritmo no se puede usar para encriptar
conversaciones o firmas digitales.
El funcionamiento del algoritmo es como sigue:
De modo similar, el destinatario escoge una clave privada d B y una clave privada eB =
gdBmodulop.
Con este sistema, aunque un tercero interceptara los nmeros p y g y las claves pblicas e A y eB,
no podra calcular el secreto compartido sin tener una de las claves privadas, lo que equivale a
calcular el logaritmo discreto de una de las claves pblicas, que es un problema intratable
computacionalmente.
El problema fundamental de este algoritmo es que es sensible a ataques activos del tipo hombre
en el medio. Si la comunicacin es interceptada por un tercero, este se puede hacer pasar por el
emisor cara al destinatario y viceversa, ya que no disponemos de ningn mecanismo para validar
la identidad de los participantes en la comunicacin. As, el hombre en el medio podra acordar
una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversacin
en ambos sentidos.
HASH
En informtica, Hash se refiere a una funcin o mtodo para generar claves o llaves que
representen de manera casi unvoca a un documento, registro, archivo, etc., resumir o identificar
un dato a travs de la probabilidad, utilizando una funcin hash o algoritmo hash. Un hash es el
resultado de dicha funcin o algoritmo.
Una funcin de hash es una funcin para resumir o identificar probabilsticamente un gran
conjunto de informacin, dando como resultado un conjunto imagen finito generalmente menor
(un subconjunto de los nmeros naturales por ejemplo). Varan en los conjuntos de partida y de
llegada y en cmo afectan a la salida similitudes o patrones de la entrada. Una propiedad
fundamental del hashing es que si dos resultados de una misma funcin son diferentes,
entonces las dos entradas que generaron dichos resultados tambin 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 tamao lmite).
Son usadas en mltiples aplicaciones, como los arrays asociativos, criptografa, procesamiento
de datos y firmas digitales, entre otros. Una buena funcin de hash es una que experimenta
pocas colisiones en el conjunto esperado de entrada; es decir que se podrn identificar
unvocamente las entradas (ver funcin inyectiva).
Muchos sistemas relacionados con la seguridad informtica usan funciones o tablas hash.
Orgenes del trmino
El trmino hash proviene, aparentemente, de la analoga con el significado estndar (en ingls)
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 memorndum datado en enero de 1953. Su
utilizacin masiva no fue hasta despus de 10 aos.
Corroborar que el archivo no ha cambiado (que algn virus se haya agregado, se haya
copiado con errores, se haya transferido mal, se haya cambiado su comportamiento en
Identificar un registro en una base de datos y permitir con ello un acceso ms rpido a
los registros (incluso ms rpido que teniendo ndices).
Tablas hash
Las tablas hash, una de las aplicaciones ms extendidas de las funciones de hash, aceleran el
proceso de bsqueda de un registro de informacin segn una clave (nota: este uso de la
palabra poco se relaciona con su significado habitual). Por ejemplo, una cadena alfanumrica
puede ser utilizada para buscar la informacin de un empleado en la base de datos de un
sistema.
La utilizacin de tablas hash provee de un acceso casi directo a dichos registros, lo que significa
que, en promedio, una bsqueda puede llegar a requerir slo uno o dos intentos en la memoria o
el archivo que contiene la informacin. Naturalmente, se prefiere una buena funcin de hash que
evitar colisiones de hash.
Si asumimos que la clave es una cadena de bytes, entonces la funcin de hash debera ser
como un ndice de los registros que tiene una distribucin aleatoria sobre las cadenas de entrada
esperadas. De otra forma, habra ms colisiones de hash degradando as el tiempo de
bsqueda. Si, por ejemplo, la clave es alfabtica, cada byte puede tener slo 26 de sus 256
valores posibles. Funciones tan simples no distribuirn los ndices de una forma pareja.
Para una comparacin de velocidad y calidad de varias funciones de hash, referirse a los
enlaces externos...
Correccin de errores
Para la correccin de errores, se asume una proximidad de la distribucin de perturbaciones
altamente probables. Las perturbaciones son clasificadas en: errores grandes (improbables) y
pequeos (probables). El segundo criterio de las funciones de hash se modifica como sigue:
Segundo criterio (3): dados H(x) y x + s, se puede conseguir x si s es lo suficientemente
pequeo.
Las funciones que se guan segn estos criterios son conocidas como "cdigos de correccin de
errores". Las derivaciones ms importantes de este tipo de cdigos de correccin son los
chequeos redundancia cclica y los cdigos Reed-Solomon.
Algoritmo Rabin-Karp
Este algoritmo es relativamente rpido para la bsqueda de cadena de caracteres. En promedio,
el tiempo de ejecucin es lineal con respecto a la longitud de la entrada. Se basa en la utilizacin
de funciones hash para comparar cadenas.
Un modelo simple (e ineficiente) de funcin de hash es
f(x) = 0 para todo entero x.
Obviamente, la colisin hash en esta funcin es total. Una un poco ms interesante es:
f(x) = x mod 1021
Esto es devuelve el resto de la divisin x entre 1021. Obviamente, la colisin es menor siempre
que el conjunto del cual toma valores x no sea muy grande o lo suficientemente aleatorio.
Adems, ntese que el hecho de que 1021 sea un nmero primo no es algo azaroso sino que
fue cuidadosamente elegido ya que mecanismos que utilizan este tipo de funciones con nmeros
primos como base son muy comunes en criptografa.
http://es.wikipedia.org/wiki/Hash
Que propiedades tienen que cumplir las funciones hash?
1- Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va
a ser la misma. Por ejemplo, si la longitud de la salida B esta defiinida en 128 bits, si aplicamos
una funcin hash a un A de 5 bits nos dar un B de 128 bits, y si se la aplicamos a un A de 380
millones de bits, nos dar un B de 128 bits igualmente.
2- Para cada entrada A, la funcin generar una salida B nica. O lo que es lo mismo, es
imposible que dos textos bases A y A' tengan un mismo hash B.
Segn estas dos primeras propiedades, nos damos cuenta enseguida de la utilidad de las
funciones de hash.
La ms inmediata es usarla para generar un resumen de algo. De hecho, estas funciones se
conocen tambin como funciones resumen. Un ejemplo real puede ser el del tpico repositorio de
documentos. Si alguien quiere almacenar digamos "Las_Aventuras_Del_Ingenioso.doc" cuyo
contenido es El Quijote enterito, el sistema lo primero que tiene que hacer es revisar que no est
previamente ya almacenado con el mismo o con otro nombre, por ejemplo "ElQuijote.doc". El
sistema puede comparar letra a letras el documento de entrada con todos los docs de su BBDD
para comprobar que no est, o puede comparar el resumen del documento de entrada con los
resmenes de los documentos de la BBDD, opcin mucho ms manejable y rpida.
Adems, como la salida B es nica para cada A, se puede usar tambin para verificar la
integridad de A. Podemos ver que muchos programas incluyen su hash junto con su descarga,
de esta forma, podemos verificar que el programa no ha sido modificado ni le han introducido un
virus o ha sido troyanizado. Si a los bytes de una aplicacin A les calculo el hash B y lo adjunto,
cuando alguien modifique la aplicacin A, al calcular de nuevo su hash su valor habr cambiado
y ser distinto de B.
3- Dado un texto base, es fcil y rpido (para un ordenador) calcular su nmero resumen.
4- Es imposible reconstruir el texto base a partir del nmero resumen.
Esto es lo que se conoce como One-Way hash functions. A partir del hash es imposible
reconstruir el texto base.
5. - No puede presentar Colisiones.
Que son las colisiones?
Segn la primera caracteristica que hemos visto de las funciones hash, que nos dice que el
tamao del hash B resultante de A es siempre el mismo, deducimos que no puede cumplirse la
segunda caracterisitca, que dice que el hash B tiene que ser nico para cada A.
Por ejemplo, la funcin MD5 nos devuelve un hash de 128 bits. Para que cada hash equivalga a
un unico texto base, tendra que existir solamente un texto por cada combinacin del hash
devuelto, o sea, tendra que haber solamente 2^128 textos distintos, lo cual no es cierto. Como
textos distintos hay infinitos, podemos decir que hay infinitas posibilidades de que dos textos
tengan el mismo hash.
Esto es lo que se conoce como colisiones.
Seguramente las hemos visto muchas veces sin darnos cuenta de que pasaba. Hay muchos
sistemas que requieren contraseas de uso, como pueden ser los sistemas de foros y dems,
donde lo que se almacena no es la contrasea, sino el hash de esa contrasea. Esto no se hace
con el propsito de resumir la contrasea, seguramente ser mas corta que el hash generado, se
hace con el propsito de que si alguien tiene acceso al almacn de contraseas, o si alguien
desensambla la aplicacin proteguida, etc, no pueda ver la contrasea en plano y siga sin
acceso.
La fortaleza de una funcin hash requiere que estas colisiones sean las mnimas posibles y que
encontrarlas sea lo ms dificil posible.
Propiedades de una funcin hash con respecto a las colisiones.
01
23
45
67
67
45
23
01
Palabra
89
ab
cd
ef
ef
cd
ab
89
Palabra
fe
dc
ba
98
98
ba
dc
fe
Palabra D = 76 54 32 10 10 32 54 76
En la primera columna los valores hexadecimales estn ordenados de modo que los valores
menos significativos aparecen en primer lugar (notacin empleada por Rivest en la
implementacin de este algoritmo), y en la segunda los valores ms significativos estn a la
izquierda (posiciones ms altas de la memoria en Intel 80xxx)
La razn de ver estas formas de representar los mismos valores se debe a intentar evitar
confusiones, pues en funcin del tipo y arquitectura de la mquina sobre la que ha de trabajar el
algoritmo, este sufrir adaptaciones en dichos valores al realizar la implementacin. Ello es
debido a las distintas formas en que se almacenan los datos en memoria en las distintas
arquitecturas (Intel, Sun, Sparc, ...)
Los algoritmos MD4 y MD5 estn pensados para facilitar su implementacin en arquitecturas
denominadas little-endian. Este formato asume que el byte menos significativo de una palabra se
almacena en la posicin ms baja, y el byte ms significativo en la parte ms alta. Es el formato
que emplean los procesadores Intel 80xxx que integran los PC domsticos.
4. Procesar el mensaje en bloques de 512 bits:
Esta es la parte central del algoritmo. Aqu se definen las cuatro funciones que se emplearn en
las cuatro vueltas que se aplicarn sobre cada bloque. Vase la siguiente figura:
Estas cuatro funciones reciben como parmetros de entrada tres palabras de 32 bits cada una
(tres enteros de 4 bytes de longitud) y devuelven como salida una. Son las siguientes:
F(X,
Y,
Z)
(X
and
Y)
or
((not
G(X,
Y,
Z)
(X
and
Z)
or
(Y
H(X,
Y,
Z)
X)
and
Z)
and
(not
Z))
1.
simplemente
realiza
la
operacin
OR-Exclusiva
(XOR)
de
X,
Z.
Pues bien, este grupo de matemticos ha descubierto un sistema que permite hacer esto con un
esfuerzo menor que por fuerza bruta.
En concreto para el SHA1, pueden encontrar una "colisin de cumpleaos" con un esfuerzo
equivalente a 2^69 operaciones hash, en vez de las 2^80 requeridas por fuerza bruta.
Como podemos ver, este es una ataque contra las colisiones fuertes, pero no contra las
colisiones de 2 preimagen, a las cuales no afecta. Si alguien quiere generar un mensaje x' que
tenga el mismo SHA1 que un mensaje x ya existente, tiene que seguir generando 2^160
mensajes para conseguirlo.
Y aunque el "ataque de cumpleaos" contra SHA1 se ha vuelto 2000 veces ms rpido, sigue
siendo del orden de 10.000 veces ms dificil que un ataque contra un DES, que no est al
alcance de todo el mundo.
Ahora bien, existen casos en que las implicaciones son importantes.
Imaginemos que redacto un contrato A de venta de un inmueble en word, al cual le adjunto
varios jpgs con fotografas del inmueble.
Al mismo tiempo genero un contrato alternativo A' con las mismas fotos pero modificando el
precio de venta a mi favor.
Es prcticamente imposible que el h(A) = h(A').
Sin embargo puedo crear mltiples versiones de A y de A', modificando aleatoriamente bits de
las fotografas (se podra hacer modificando el texto, aadiendo espacios, cambiando cosas no
significativas, etc, pero quedara un texto muy sucio y se notara la "trampa". Pero modificando
bits de las fotografas como mucho perder algo de calidad), hasta conseguir dos versiones que
tengan el mismo hash.
Le presento al comprador la versin de A, acepta las condiciones y lo firma electrnicamente.
Cambio la variante de A por la de A' y ya tengo un contrato legal de compraventa firmado con
unas condiciones distintas de lo establecido.
Si la funcin hash que se va a utilizar para realizar la firma es por ejemplo un SHA1, mediante el
ataque tri-chino tendr que generar 2^69 variantes de A y 2^69 variantes de A', que como hemos
visto antes, aunque no est al alcance de cualquiera, es factible.
Pero si la funcin hash es por ejemplo un MD5, solo tendr que generar 2^32 variantes de A y
2^32 variantes de A', que est al alcance de cualquier PC.
Ataque Multicolision de Joux-Wang.
Si nos fijamos en el funcionamiento del algoritmo MD5, vemos el mensaje se divide en bloques
de 512 bits. El primer bloque es "hasheado" usando como parmetro el vector de inicializacin y
dando como resultado otro vector de 128 bits, que sirve como inicializacin para el siguiente
bloque de 512 bits, y as sucesivamente.
Entonces se hace obvio que si tengo dos n*bloques A y B, siendo A != B, que cumplen que
MD5(A) = MD5(B), si les aado un "payload" Q, entonces MD5(A+Q) = MD5(B+Q).
Estado actual de las funciones Hash.
La funcin hash MD4 est totalmente rota y descatalogada, de hecho existen algoritmos que
encuentran colisiones en pocos segundos.
Para el uso del MD5 hay que tomar ciertas precauciones, pero cualquiera que se haya leido este
artculo est capacitado para tomarlas. Lo mejor es no usarlo, pero si no nos queda ms
remedio, usndolo con cuidado es perfectamente seguro. Por ejemplo no firmeis nada usando
MD5 si el que redacta el documento a firmar es parte interesada, o antes de firmarlo modificad
algo del documento, o guardad copia, etc.
Para SHA1, yo no dira como se dice en muchos sitios que el edificio est en llamas y que
estamos perdidos. Lo nico es que las alarmas suenan, aunque no veamos an el humo, y lo
prudente es ir hacia la salida de emergencia, pero no hace falta correr ni que cunda el pnico.
Pero tampoco hay que quedarse en el sitio, porque los ataques criptoanalticos cada da
mejoran, y cada ser ms fcil y rpido.
La solucin que se est dando a esta problemtica es ir incrementando el tamao de los hashes.
PGP ya usa SHA256, etc. Pero es solamente un parche. Estos algoritmos son todos
monocultivo, y dndoles mas bits solo incrementas el esfuerzo para encontrar colisiones. Pero
segn avancen los mtodos de criptoanlisis y la potencia de los ordenadores, se irn
recortando los tiempos, y estaremos en las mismas.
El punto ms crtico es el legal. Todo lo que se firme con un certificado legal o con el futuro DNI
electrnico, tiene el mismo valor que una firma manuscrita.
Esta consideracin legal se sustenta entre otras cosas en que el algoritmo de hash de la firma
funciona como tiene que ser y que el hash resultante es nico para el texto firmado.
Si un sistema no puede garantizar que es tal el documento que has firmado, y que no hay
posibilidad de que te hayan dado el cambiazo con otro documento que tiene el mismo hash,
todos los documentos firmados por esa aplicacin no sern legales.
Solucin?
Muy
simple.
Usando
dobles
hashes.
Si para firmar algo en vez de cifrar el MD5 o el SHA1 o el SHA256 del documento, se cifrara una
concatenacin por ejemplo de MD5+SHA1, habra que buscar una colisin doble para conseguir
un documento alternativo, lo que actualmente es imposible.
Si teneis que usar las firmas electrnicas para vuestros documentos, y se van a firmar por
ejemplo usando MD5, aadidles un campo estilo fingerprint con el hash del documento en SHA1.
SHA (Secure Hash Algorithm, Algoritmo Hash Seguro). Diseado por NIST (National Institute of
Standards and Technology), produce un valor hash de 160-bits. Su diseo tiene mucha relacin
con MD5 pero con ciertas diferencias (ej. salida de 160-bits). Se considera ms seguro que MD4
y MD5 por su longitud de tamao. Tambin est considerado como un estndar (FIPS PUB 1801).
La familia SHA es un sistema de funciones hash criptogrficas relacionadas de la Agencia de
Seguridad Nacional de los Estados Unidos. El primer miembro de la familia fue publicado en
1993 es oficialmente llamado SHA. Sin embargo, hoy da, no oficialmente se le llama SHA-0
para evitar confusiones con sus sucesores. Dos aos ms tarde el primer sucesor de SHA fue
publicado con el nombre de SHA-1. Existen cuatro variantes ms que se han publicado desde
entonces cuyas diferencias se basan en un diseo algo modificado y rangos de salida
incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamndose SHA-2 a todos ellos).
En 1998, un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA-1, se desconoce
si fue la NSA quien lo descubri pero aument la seguridad del SHA-1
SHA-1 ha sido examinado muy de cerca por la comunidad criptogrfica pblica, y no se ha
encontrado ningn ataque efectivo. No obstante, en el ao 2004, un nmero de ataques
significativos fueron divulgados sobre funciones criptogrficas de hash con una estructura similar
a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1.
SHA-0 y SHA-1 producen una salida resumen de 160 bits de un mensaje que puede tener un
tamao mximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald
L. Rivest del MIT en el diseo de los algoritmos de resumen de mensaje MD4 y MD5.
La codificacin hash vaca para SHA-1 corresponde a:
SHA1(" ") = da39a3ee5e6b4b0d3255bfef95601890afd80709
encontradas razones para cuestionar su seguridad. Las versiones de 256 y 320 bits solamente
disminuyen la posibilidad de colisiones hash accidentales, y no tienen niveles ms altos de
seguridad con respecto a RIPEMD-128 y RIPEMD-160.
RIPEMD-160 fue diseado en la comunidad acadmica abierta, en contraste con el algoritmo
SHA-1, diseado por la Agencia de Seguridad Nacional estadounidense (NSA). Por otra parte,
RIPEMD-160 es un diseo menos popular y correspondientemente est peor estudiado.
Ninguna patente est asociada al RIPEMD-160.
En agosto del ao 2004, una colisin hash fue divulgada para el algoritmo RIPEMD original que
no afecta al resto de algoritmos.
Los hashes de 160 bits RIPEMD (tambin llamados resmenes RIPE del mensaje) se
representan tpicamente como nmeros en hexadecimal 40 dgitos. El resultado de usar
RIPEMD-160 con una cadena vaca es este:
RIPEMD-160(" ") = 9c1185a5c5e9fc54612808977ee8f548b2258d31
BIBLIOGRAFA
SEGURIDAD INFORMTICA
http://delta.cs.cinvestav.mx/~francisco/ssi/intro.ppt
http://www.tidap.gob.mx/Presentaciones/Encuentros/Presentaci%F3n%20Jos%E9%20Antonio
%20MorenoSegInf%20Tidap03.pps
http://www.authorstream.com/Presentation/jemarinoi-86620-seguridad-inform-tica-8-informaticaeducation-ppt-powerpoint/
http://es.kioskea.net/contents/secu/secuintro.php3
http://es.wikipedia.org/wiki/Seguridad_inform%C3%A1tica
ALGORITMOS DE CIFRADO
http://www.taringa.net/posts/info/1699913/Criptografia-%5BMuy-buena-Info%5D.html
http://www.loba.es/flossic/Contenidos/Manuales/Criptografia.pdf
http://www.uv.es/~sto/cursos/seguridad.java/html/sjava-12.html
http://csrc.nist.gov/archive/aes/index.html
FUNCIONES HASH
http://foro.elhacker.net/criptografia/funciones_de_hash-t100025.0.html
http://www.fismat.umich.mx/~emurguia/mipagina/tesis/node27.html
http://www.peiper.com.ar/edicion04/hashing.pdf
http://www.codeproject.com/dotnet/HackingMD5.asp
http://homes.esat.kuleuven.be/~bosselae/ripemd160.html
http://homes.esat.kuleuven.be/~cosicart/ps/AB-9601/