You are on page 1of 8

Diseo y Construccin de trabajo del curso

Criptografa
Jaime Henao, Luis Ardila, Fabio Castro, Amaury Gamarra, Jaider Contreras
Escuela de Ciencias Bsicas Tecnologa e Ingeniera
Colombia
jhhenao@gmail.com, fabies79@hotmail.com, jaider.contreras@gmail.com,
amauryg77@gmail.com

Universidad Nacional y a Distancia UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Resumen Este documento pretende ser una gua para todos
quienes hagan uso del sistema operativo Linux en especial paraColombia
los
que trabajan en Seguridad Informtica utilizando la versin Kali
Linux. Este documento corresponde a un manual que orienta al
lector acerca sobre Criptografa. El documento contiene algunas
imgenes y conceptos del proceso de encriptacin, utilizacin de
firmas digitales, md5 claves privadas y pblicas, tambin se
muestran imgenes de la vulnerabilidad de las contraseas al
poderlas descifrar con un script que emplea openssl y con
herramientas que posee Kali Linux como es Jhon The Ripper.
Palabras clave Mquina Virtual, Sistema Operativo,
Hardware, Software, Autenticacin, Claves, firmas digitales,
script, md5, hash, salt, vulnerabilidad

Abstract This document is intended as a guide for all those


who use the Linux operating system especially for those
working in Information Security Kali using the Linux version.
This document pertains to a manual that guides the reader
about on Cryptography. The document contains some images
and concepts of the encryption process, using digital signatures,
md5 private and public keys, pictures of the vulnerability of
passwords are also shown by taking them decipher a script that
uses openssl and tools that owns Kali Linux Jhon The Ripper.
Keywords Virtual machine, Operating system, Hardware,
Software, Authentication, keys, digital signatures, script, md5, hash,
salt, vulnerability

este no pueda leer la informacin, ni la pueda manipular


posteriormente de acuerdo con su conveniencia. 1
La proteccin que deben proporcionarle los administradores a
estos medios de almacenamiento, debe garantizar que la
informacin tenga los principios de seguridad de la informacin
los cuales son:
Integridad: la cual permite garantizar que los datos no han sido
modificados por personas ajenas a la entidad.
Confidencialidad: este principio permite no develar los datos a
usuarios no autorizados, es decir, la privacidad de la
informacin (proteccin de datos) y el principio de
Disponibilidad: que garantiza que la informacin debe estar
accesible a los usuarios autorizados en el momento que lo
requieran.
II. DESARROLLO DEL ARTCULO
Cabe destacar que se debern leer y comprender las
referencias requeridas para identificar el problema presentado
en la actividad referente a firma digital y ataques de
diccionarios.

III. DISEO Y CONSTRUCCIN


I. INTRODUCCIN
os numerosos riesgos inmersos no solo en la gran red de
redes, Internet, sino en las mismas redes domsticas y/o
empresariales, hacen necesario adoptar mecanismo de
proteccin para garantizar en la medida de lo posible, la
confidencialidad de la informacin, uno de los tres grandes
pilares de la seguridad de la informacin.

Archivos descargados, figura 1.


Fig. 1 Archivos descargados

Una de las medidas que se pueden adoptar es el empleo de la


criptografa, herramienta que permite evitar que cuando un
intruso intercepte de alguna forma los datos de una vctima,
Fuente: los autores

Fig. 4 Generacin de llave privada

Verificamos el contenido del archivo: archivo_z.ps, fig. 2.


Fig. 2 archivo_z. ps

Fuente: Los autores


Fig. 5 Llave Privada

Fuente: Los autores

Verificamos el contenido del archivo: archivo_y.ps, fig. 3.

Fuente: Los autores

Ahora generamos la llave pblica, figuras 6 y 7.


Fig. 6 Llave Pblica

Fig. 3 archivo_y. ps

Fuente: Los autores

Fig. 7 Llave Pblica

Fuente: Los autores

Fuente: Los autores

IV. GENERACION DE FIRMA DIGITAL DE UN


ARCHIVO
Lo primero es generar la llave rsa de 2048 privada, despus
se procede a generar la llave pblica por medio de la llave
privada. Y con las opciones expresadas en el protocolo,
generamos el archivo ver figuras: 4 y 5.

Ahora bien procedemos a generar la firma del archivo con


salida a otro archivo llamado firma_archivo_y.txt. Para ello
mostramos los archivos localizados y generados con openssl,
figuras: 8 y 9.

Fig. 8 Generacin de firma

Qu Resultados obtuvieron en este proceso de firma


Digital? Esto s debera suceder o ser posible?
Se crearon un par de claves: una privada y una pblica; para
firmar documentos.
Qu firmaron realmente en el proceso que se llev a cabo?

Fuente: Los autores

Se firm el archivo_y.ps y se gener el archivo


firma_archivo_y.txt correspondiente a la firma digital del
archivo_y.ps. Con el proceso de firma digital: se aplic una
funcin hash que se encarga de hacer un resumen del contenido
del documento, para luego realizar el cifrado con la clave
privada del usuario.

Fig. 9 Firma generada

Por qu obtuvieron dicho resultado? Cul es la debilidad


en el sistema de firma digital OpenSSL?

Fuente: Los autores

Podemos observar que la informacin ha sido modificada por


medio del algoritmo RSA, figuras: 10 y 11.
Fig. 10 Informacin Encriptada

Fuente: Los autores

Se gener un archivo con la firma digital utilizando el hash


criptogrfico MD5 para el archivo_y.ps, pero al verificar el
archivo de la clave se utiliz el archivo_z.ps y dando como
resultado OK. Esta es una demostracin de una vulnerabilidad
del clculo del hash dentro del proceso de firmado, que se puede
verificar con la funcin md5sum, figura 13.
Esta vulnerabilidad se denomina como ataque de colisin hash,
en realidad es un error en la forma en que MD5 calcula el hash,
pero como openssl usa esa funcin all es donde vemos el error.
Este consiste en la creacin de dos archivos diferente en
contenido pero que tengan el mismo valor hash firmado, para
aprovecharse de esta circunstancia y utilizar la firma sobre el
segundo mensaje, no se sabe con qu intensin.
Fig. 13 Informacin Encriptada

Fig. 11 Archivo visto desde el editor gedit

Fuente: Los autores

V. SEGURIDAD DE CONTRASEAS

Fuente: Los autores

Despus procedemos a verificar el resultado por medio de la


llave pblica y la encriptacin md5. Verificamos que tanto el
archivo firma_archivo_y.txt como el archivo_z.ps sean los
mismos.
Fig. 12 Archivo visto desde el editor gedit

Fuente: Los autores

Utilizaremos un script que se relacionar en el aula virtual.


Este script tiene una caracterstica que permite realizar un
ataque de fuerza bruta para encontrar contraseas.
Descargamos y mostramos el scrip, para poder realizar la
decriptacin de las contraseas offline, para ello utilizamos, la
descarga y la revisin del script, figura 14

punto no deba escribirse, figura 17.


Fig. 14 script descargado
Fig. 17 Obtencin segunda clave

Fuente: Los autores


Verificamos el contenido del archivo script, figura 15.
Fig. 15 Contenido del archivo script

Fuente: Los autores

Editamos el archivo original para cambiar los space de tal


forma que pueda identificar las claves, figura 18.
Fig. 18 Intercambio de spaces

Fuente: Los autores

Ahora utilizamos el script con el alfabeto 1, pero antes


debemos asignar privilegios plenos pues si no se realiza este
paso se genera error de acceso denegado, figura 16.
Fig. 16 Asignacin privilegios plenos

Fuente: Los autores

Como no se poda identificar si el hash era correcto o no porque


no nos estaba mostrando la clave, entonces se decidi buscar
otra aplicacin que permitiera captar ms informacin de la
entrada o el hash, empleamos JOHN THE RIPPER. Una
funcin que est incluida dentro de kali linux, para no tener que
instalarla en debian, hicimos las pruebas en kali-linux.
Buscamos la aplicacin, como la aplicacin est en una ruta
especfica de PATH para su ejecucin, decidimos asignar la ruta
cambiando la variable PATH, y creamos los 5 archivos de los
hash que faltaban.
Fuente: Los autores

En la figura 16 tambin se muestra como queda des-encriptada


la primera clave o el hash.
En la siguiente imagen vemos como para la clave 2 no se
muestra el resultado. Despus de procedimientos varios,
notamos que el problema est en el hash para sta clave. El

Esta aplicacin enva un mensaje en caso de que el hash est


mal escrito o no sea reconocido, adems de la cantidad de
intentos realizados por el algoritmos, pero no solo eso, tambin
se descubri que puede realizar decriptacin de archivos de
MYSQL y mostrar el listado de todas las claves, figura 19.

5
Fig. 19 Obtencin segunda clave

Fig. 22 Alfabeto modificado

Fuente: Los autores

Despus de esto procedemos a buscar la contrasea.


Ahora procedemos a descifrar la tercera contrasea del Alfabeto
3, pero antes modificamos el script, el cual lo realizamos con
un editor de Deban, con Leafpad y remplazamos as, figura 23.
Fig. 23 Cambio de alfabeto
Fuente: Los autores

Posteriormente realizamos los dems obtenciones de claves,


figura 20.

Fuente: Los autores

Modificamos y guardamos, figura 24.


Fig. 20 Obtencin de las siguientes claves
Fig. 24 Alfabeto modificado

Fuente: Los autores

Nos dirigimos al directorio y creamos archivos con leafpad o


con otro editor para ingresar el hash de contrasea en este caso
U./Se8tPqytD2 y guardamos con el nombre hash3, figuras 25 y
26.
Fuente: Los autores

Fig. 25 Alfabeto modificado

Los resultados fueron:


Fuente: Los autores

Clave 1: yep
Clave 2: YEP
Clave 3: ;-)
Clave 4: 9Y;
Clave 5: marta
Clave 6: madrid

Fig. 26 Ubicacin del hash

Ahora procedemos a descifrar la segunda clave del Alfabeto 2,


pero antes modificamos el script, el cual lo realizamos con un
editor de Debian, en mi caso Leafpad y remplazamos as, figura
21.
Fig. 21 Cambio de alfabeto

Fuente: Los autores


Fuente: Los autores

Modificamos y guardamos, figura 22.

Ahora procedemos a descifrar la cuarta contrasea del Alfabeto


4, pero antes modificamos el script, el cual lo realizamos con
un editor de Debian, en mi caso Leafpad y remplazamos as,
figuras 27 y 28.

6
Fig. 27 Cambio de alfabeto

Fig. 32 Tabla con: salt, hash, contrasea, tiempo

Fuente: Los autores

Fig. 28 Alfabeto modificado


Fuente: Los autores
Fuente: Los autores

Por tal motivo se procedi a realizar el proceso con la funcin


John para las dos contraseas que faltaron realizando el proceso
de crear dos archivos de texto hash5 y hash6 cada uno con sus
respectivas hash de contrasea, figura 29.
Fig. 29 Hash 5 y 6

Por qu el script no encontr todas las contraseas?


Porque con el salt puesto en el cifrado dentro del ciclo que
compara con el hash no lo encuentra con el diccionario.
Por qu se demor tanto tiempo en encontrar las
contraseas el Script?
Porque el script que se manej en la prctica compara carcter
por carcter, haciendo que los ciclos sean ms extensos y por
ende se demore ms.
Cmo puedo mejorar la bsqueda de las contraseas?
El script de John the riper realizo las bsquedas de manera ms
gil, toda vez que el diccionario de datos sea ms completo,
genera ms palabras, que pueden ser contraseas tpicas, y las
va probando todas. Para cada palabra, la cifra y la compara con
el hash a descifrar. Si coinciden, es que la palabra es la correcta.
Es por eso que mejor la bsqueda de las contraseas

Fuente: Los autores

Ejecutamos la funcin John


y los resultados fueron
sorprendentemente rpidos. Para el hash5 fue de inmediato,
figura 30.
Fig. 30 Hash 5

VI. EXPLOTACIN DE VULNERABILIDAD CON


LIVE HTTP HEADERS.
Luego de haber visto el video expuesto por el tutor y haber
realizado la prctica para corroborar el aprovechamiento de la
vulnerabilidad con el complemento liveHTTP header se puede
responder los siguientes interrogantes:
Por qu se presenta esta falla de seguridad?

Fuente: Los autores

Y para el hash6 se demor 2 segundos, figura 31.


Fig. 31 Hash 6

Esta falla de seguridad se presenta porque en este caso en el


sitio web, para enviar los datos proporcionados se us el tipo de
autenticacin basada en formularios, cuyo mtodo de
autenticacin funciona enviando sus credenciales a travs del
formulario al sitio web para verificacin en el lado del servidor,
se usa peticin POST en la cual los datos a enviar al servidor se
incluyen en el cuerpo de la misma peticin con las cabeceras
HTTP asignadas correspondientemente respecto al tipo de
peticin, en este caso los datos enviados no fueron codificados
en el cliente o navegador.

Fuente: Los autores

A continuacin se muestra una tabla que contiene datos como


el nmero de caracteres que contiene la contrasea ya cifrada
y los tiempos de proceso, figura 32.

Una falla adicional ligada al tema de seguridad, ya no tcnica


sino humana y aunque al parecer no se sale del objetivo del
curso pero es importante destacar es la evidenciada en la NO
precaucin del usuario en revisar que programas se ejecutan en
el navegador o junto a l.

Que se debera encriptar para que no suceda este error?


En este caso se debera encriptar el campo tipo password html
del formulario que almacena la contrasea, antes de generarse
la peticin HTTP y ser enviada al el servidor, es decir generar
encriptacin del lado del cliente sin evidenciar el algoritmo de
encriptacin que se usa del lado de servidor, pues un hacker
podra obtener la contrasea a travs de un Rainbow Tables.

III. CONCLUSIONES

Cul sera la solucin para solventar este error?


Mejoras en los aplicativos y sitios web en mecanismos de
Encriptacin del lado del cliente antes que se realice la peticin
HTTP. Tambin es pertinente la implementacin de protocolos
HTTPS en las aplicaciones web para realizar peticiones
seguras.
Y para solventar el error humano, es importante tener una
cultura de precaucin en temas de seguridad informtica, con el
fin de revisar y verificar nuestro equipo y navegador a la hora
de realizar transacciones con formularios web.
Qu semejanza existe entre un keylogger y el complemento
http headers?
LiveHTTP headers es un complemento para el navegador
Firefox, sirve para la captura de los encabezados de mensajes
generados en las pginas web. Aunque este complemento es til
para la solucin de problemas, para el anlisis y la optimizacin
de un sitio web, tambin como se vio en la prctica, esta
informacin aloja datos sobre el conjunto de caracteres,
lenguaje, memoria cach, la autorizacin y la caducidad del
contenido y normalmente estos datos no se muestran en el
navegador, pero con la utilizacin Live HTTP Headers se
pueden observar, tal como ocurri en este caso en el cual se
pueden ver los datos transmitidos a travs de una peticin HTTP
por autenticacin va formulario web.
Un keylogger es sistema que permite el registro de las
pulsaciones que se realizan en el teclado en un fichero. A partir
de esta informacin se puede tener acceso a informacin
sensible de los usuarios.

Si no corrigen MD5, openssl debera cambiar de


funcin para el clculo del hash.
Las firmas electrnicas viene para solucionar un
problema de autentificacin.
La utilizacin de la firma digital asegura que el emisor
y el receptor del mensaje puedan realizar una
transaccin fiable.
Las metodologas, herramientas y tcnicas que se
aplican en Criptografa son indispensables en la
bsqueda de evidencias en los delitos realizados.
Las vulnerabilidades referentes a las contraseas, se
destacan actualmente por la poca importancia que el
usuario le da, esto conlleva a que los delincuentes
informticos puedan descifrar contraseas de manera
muy rpida.

IV. REFERENCIAS
[1] Pgina Oficial de Deban. Recuperado de:
https://www.debian.org/index.es.html
[2] Instalacion de Debian. Recuperado de:
http://debianfacil.wordpress.com/instalar-debian/
[3] Actualidad sobre seguridad Informtica. Recuperado de:
http://www.vnunet.es/Actualidad/Noticias/Seguridad/Vulnera
bilidades/20030911031
[4] John the Ripper password cracker - Openwall. Recuperado
de: www.openwall.com/john/
[5] Firmando archivos digitalmente en Linux. Recuperado de:
www.wreyes.net/blog/firmando-archivos-digitalmente-enlinux/
[6] Cmo utilizar Live HTTP Headers Recuperado de:
http://www.ehowenespanol.com/utilizar-live-http-headerscomo_6646/
[7] Keylogger. Recuperado de :
http://es.wikipedia.org/wiki/Keylogger

La similitud en este caso entre los dos es que ambos son capaces
de capturar digitada en las cajas de textos del sitio web, aunque
el mecanismo sea distinto para los dos.

[8] Generar y convertir claves y certificados con OpenSSL.


Recuperado de: http://picodotdev.github.io/blogbitix/2014/02/generar-y-convertir-claves-y-certificados-conopenssl/

La diferencia entre los dos es que el keylogger fue pensado para


el robo de contraseas y otra informacin importante que es
digitada o tecleada, en cambio el complemento liveHTTP
headers fue creada y es usada por administradores de sistemas,
desarrolladores web y profesionales de la seguridad informtica
para la deteccin de errores y vulnerabilidades en sus
aplicaciones y desarrollos web y en los sistemas de navegacin
y transporte de datos.

[9] OpenSSL: Generating an RSA Key From the Command


Line. Recuperado de:
https://rietta.com/blog/2012/01/27/openssl-generating-rsa-keyfrom-command/
[10] P. M. Darbisi, Estudio de factibilidad para actualizacin
de algoritmo de hash en la infraestructura nacional de
certificacin electrnica del estado venezolano, Ministerio del

poder popular para la ciencia, tecnologa e industrias


intermedias, 2011.
V. BIOGRAFA
Jaime Henao naci en Bogot, el 12 de enero de 1958. Se
gradu bachiller en el Colegio Nacional de San Simn,
Licenciado en Matemticas y Fsica en la Universidad del
Tolima, Ingeniero de Sistemas de la Unad, Especializacin
en Ingeniera de software en la Universidad Distrital.
Ejerci profesionalmente la direccin docente para la
secretara de educacin del Tolima, Universidad Colegio
Mayor de Cundinamarca, Escuela Nacional de Impuestos
de la Dian. En el rea de TI: Director de informtica en la
Dian, Director de Informtica de Telecom, asesor en informtica en Ecopetrol,
asesor en informtica en el Seguro Social, asesor en informtica en Siesa,
Director de Calidad en desarrollo informtico en Sertisoft. Asesor y
desarrollador de soluciones de software. Experiencia acumulada en el rea de
TI por ms de 25 aos. Vinculado como estudiante a la Unad desde 2007, con
periodos de interrupcin. Vinculado al CEAD de Barranquilla, aunque por
razones laborales estoy ahora radicado en Bogot.

Luis Ardila. De nacionalidad colombiano, Naci en


Cartagena bolvar, es Tecnlogo en administracin de
empresa, Ingeniero de Sistemas y administracin de
empresa graduado de la Universidad Nacional y a
Distancia UNAD y Especialista tcnica en seguridad
industrial y est realizando estudios en la Especializacin
en Seguridad Informtica que ofrece la UNAD.
Labora como administracin de las salas informtica de la universidad de
Cartagena como Responsable de todas las sedes , enlace municipal jvenes
en accin DPS

Fabio Castro, naci en Barranquilla, Colombia, el 12


de marzo de 1981. Ser gradu en la Universidad
Abierta y a Distancia UNAD en Ingeniera
Electrnica.
Trabaja
actualmente
en
UNE
EPM
Telecomunicaciones en la cabecera de TV, tiene 7
aos laborando en la empresa, vive en la ciudad de
Barranquilla, sus expectativas como ingeniero son
seguir creciendo en el mbito laboral y profesional.
Pertenezco al CEAD Simn Bolivar de la ciudad de Cartagena.

Amaury Gamarra nacio en Cartagena Bolivar, el 24


julio 1977 se gradu en el Instituto Tecnologico
Comfenalco en convenio con la Universidad
Tecnologica de Bolivar en Ingenieria de Sistemas,
realizo estudios especiallizado en Administracion de
Bases de datos en el Servicio Nacional de
Aperendisaje SENA.
Ejerci profesionalmente en la Departamento
administrativo Nacional de Estadsticas DANE desde 2008 como ingeniero de
soporte.
Su experiencia profesional est enfocada en la administracin de las base de
datos y en la seguridad de los Dispositivos Mviles, actualmente trabaja en el
Departamento Administrativo Nacional de Estadsticas DANE como ingeniero
de plata como apoyo y soporte informtico en la captura y transmisin de los
datos recolectados en campo de las Investigaciones estadsticas que se llevan a
cabo en la ciudad de Cartagena.

Jaider Contreras naci en Sincelejo Sucre, Colombia,


el 25 de Septiembre de 1983. Se gradu en 2006 como
Ingeniero de Sistemas en la Corporacin Universitaria
del Caribe. Sus experiencias profesionales incluyen la
corporacin autnoma regional de Sucre (CARSUCRE),
el SENA, ParqueSof, entre otras, actualmente se
desempea como ingeniero de sistemas en el cargo de
profesional especializado dentro de la Oficina de Tecnologas de la
Informacin de la Unidad de Restitucin de Tierras.