Vous êtes sur la page 1sur 5

1

Cifrado PKD, Aplicación de Mensajería Cifrada


para una Comunicación Segura entre el Personal
Estable de la UCSM
Gallegos Beltrán Katherin1, Gutiérrez Ampuero Diego Mario 2, and Pacsi Gamboa Priscila3
{160432736, 271558796, 371558796}@ucsm.edu.pe
Universidad Católica de Santa María, Arequipa - Perú

Resumen— En el presente artículo presentamos un método El manejo de la seguridad de los datos se tomaba en cuenta
mejorado de cifrado sobre el método MD5, usando dos arreglos desde los inicios de la era de la Información, pero con el
de números primos y compuestos y una sola clave, es con este avance de la tecnología, el concepto de seguridad antes usado
nuevo cifrado que se desarrolla una aplicación móvil de
abarca más aspectos, pero los principios de base no han
mensajería, la cual tiene como objetivo mantener una
comunicación segura entre el Personal Estable de la Universidad cambiado en esencia, antes la criptografía se utilizaba para
Católica Santa María. Abordaremos temas de las herramientas transmisiones de mensajes militares o comerciales secretos.
que se utilizaron como el gestor de base de datos y con qué Aunque estos mecanismos eran considerados los
herramienta se creó la aplicación móvil; los procedimientos que suficientemente seguros como para confiar en ellos la
se siguió para elaborar la aplicación empezando con el diseño de seguridad de un estado, actualmente los podría descifrar hasta
la interfaz, la construcción de ella, la creación de nuestra técnica
un niño.
y su debida desencriptación que finalmente mostraremos los
resultados comprobando el debido comportamiento de la
aplicación con las cadenas encriptadas y desencriptadas. Actualmente existen muchos tipos de cifrados, dentro de ellos
se encuentran los cifrados basados en funciones Hash. MD5
Abstract— In this article we present an improved method of es una de las funciones hash criptográficas más utilizadas en
encryption on the MD5 method, using two arrays of prime and la actualidad. [2]. Se trata de un algoritmo de resumen de
composite numbers and a single key, it is with this new mensaje, toma como entrada un mensaje de longitud arbitraria
encryption that mobile messagin application is developed, which y produce como salida un resumen de mensaje de 128 bits. [3]
aims to maintain a communication secure among the Stable Staff
of the Universidad Catolica de Santa Maria. We will cover topic Aunque investigaciones recientes han demostrado que las
of the tools that were used as the database manager and with funciones hash ampliamente utilizadas, son vulnerables a los
which tool the mobile application was created; the procedures ataques de colisión [4]. Es por ello que han comenzado a
that were followed to develop the application starting with the desarrollar algoritmos basados en MD5 mejorados como en el
design of the interface, the construction of it, the technique we artículo “An Efficient Hash Algorithm to Preserve Data
made and its proper decryption that will finally show the resultd Integrity” [5], donde demuestran que su técnica hash es más
checking the proper behavior of the application with the
encrypted and decrypted chains. eficiente que las existentes. Y así no solo sobre MD5, sino que
. sobre otros ya existentes como en el artículo “Efficiency and
Pseudo-Randomness of a Variant of Zémor-Tillich Hash
I. INTRODUCCIÓN Function” [6] mostrándonos también una mejora a una técnica
hash llamada ZT.
E n la actualidad la seguridad en nuestros dispositivos
móviles es un aspecto muy importante a considerar, pues
cada día somos más conscientes de lo vulnerables que pueden
Es así, que consideramos posible mejorar las técnicas de
encriptación ya existentes, y poder mejorar también la
ser las telecomunicaciones y exigimos tener más privacidad
seguridad en el intercambio de datos en un sistema de
en los mensajes que enviamos a través de las aplicaciones. Si
mensajería para la Comunicación entre el Personal Estable de
antes pensó en una oficina móvil, ahora es realidad, muchos
la Universidad Católica Santa María; mediante la creación de
grupos de trabajo en las empresas prefieren usar más una
un nuevo método de cifrado realizado sobre el cifrado MD5,
aplicación móvil de mensajería en lugar que hablar por
usando dos arreglos con números primos y compuestos y una
teléfono o enviar un correo electrónico. Y para asegurar tener
llave, siento también de tipo de encriptación simétrica por usar
la privacidad y confiabilidad que deseamos en nuestros
una sola clave privada que es la misma usada en MD5.
mensajes en este tiempo, las aplicaciones nos ofrecen un
concepto de criptografía que se encarga, precisamente, de
cifrar o codificar mensajes para evitar que su contenido pueda
ser leído por un tercero no autorizado, Manteniendo así la
seguridad de la información. [1] [7]

*
Seguridad de Redes
2

II. MATERIALES Y MÉTODOS


A. Datos:
1) SQLite:
Es un sistema de gestión de datos relacional que el
sistema operativo Android posee integrado en si mismo
para el manejo de datos alocados en el celular o en la
memoria externa extraíble que pueda poseer conectada.
Dentro del uso de la aplicación de cifrado para la
comunicación entre el personal es necesario también el
llevar un log sobre los mensajes recibidos y enviados por
cada uno de los usuarios conectados por lo que SQLite es
utilizado para tener este guardado del estado de la
mensajería ya sea de manera en visualización sin
encriptar y por seguridad encriptado en el algoritmo
presente. [8]

Gracias a la ligereza de SQLite en el manejo de bases


de datos se puede usar y reutilizar sin mayor
inconveniente dentro del uso de la aplicación para cada
usuario, el servidor del chat sería el que de por si
almacenase y mostrase el log con todos los datos Fig.1. Interfaz de la IDE de DroidScript
pertinentes de los mensajes enviados.
2) Android OS 4.4.4.:
B. Metodología: Esta versión del sistema operativo Android también
conocida como KitKat es la onceava interacción que
1) DroidScript:
existe y también es el OS más genérico distribuido en la
DroidScript es un IDE (Integrated Development
mayoría de los teléfonos móviles por lo que es la
Environment) desarrollado para ser ejecutado en la
plataforma objetivo para el que se desarrolló el desarrollo
mayoría de versiones del sistema operativo Android, su
de nuestra aplicación. [10]
particularidad es el uso del lenguaje JavaScript para
desarrollar otras aplicaciones móviles con interfaces
Debido a que la mayoría de los usuarios de teléfonos
estables y buen funcionamiento sin necesidad de usar
inteligentes en la UCSM también es Android de manera
otras IDEs más pesadas o complicadas de comprender en
preliminar el objetivar la aplicación a ellos es una
su despliegue para el desarrollo. [9]
prioridad común, gracias a que es la versión más
distribuida la propia instalación y configuración de la
Esta IDE utiliza un conjunto de APIs distribuidas de
aplicación no causaría un consumo de tiempo u otros
manera libre también por Google para las
recursos mayor evidenciando su efectividad.
funcionalidades mucho más especializadas de los
teléfonos móviles que cuentan con su OS hoy en día,
como por ejemplo los servicios otorgados para la C. Metodología:
interconectividad de celulares en un red, donde entra ahí 1) Metodología de Prototipado:
el rol del desarrollo de conectar todos los dispositivos Para el desarrollo de la aplicación móvil se ha tenido
móviles de los empleados a una sola red LAN conjunta y en cuenta la “Metodología de Prototipado” que consiste
un dispositivo que sería el administrador de chat tomaría en el desarrollo de modelos de prototipos basados en la
el rol del Servidor mientras todos los demás trabajadores premisa de la misma aplicación para poder crear una
serían los clientes de comunicación. parte funcional que tenga en cuenta las pruebas
necesarias para asegurar su calidad y la normal
operatividad mostrándole a los propios desarrolladores y
a los potenciales usuarios una muestra tangible. Todo el
desarrollo se da a manera de ciclos en la que las fases
son: [11]

➢ Comunicación: el establecimiento de la
comunicación entre los desarrolladores y los
requerimientos funcionales y no funcionales que sean
necesitados para el normal desarrollo del prototipo de
la aplicación actual. Por el carácter de la aplicación
los requerimientos para el prototipado son dados por
el equipo de desarrollo teniendo en cuenta la
disponibilidad del tiempo.
3

➢ Elaboración Plan Rápido: Después de la reunión III. RESULTADOS


anteriormente establecida se elabora el plan de
desarrollo del prototipo actual, para la aplicación de
mensajería esta se desarrolla en el transcurso de 1 a 2 A. Módulos de la Aplicación:
días entre el equipo de desarrollo para dejar realizar El prototipo actual de la Aplicación de Mensajería
la evaluación y planeación. Cifrada tiene en cuenta la implementación de esta a través
del uso de 2 partes de la misma, por un lado, una que es
➢ Modelo Diseño Rápido: Se realiza el rápido diseño la mensajería propia entre los usuarios de la red y por el
de la interfaz del prototipo y de las clases necesarias otro el servidor del Área Local donde se conectan los
para el desarrollo del prototipo actual que será clientes para así establecer la comunicación segura,
utilizado en el tiempo de desarrollo. debido a que todos los dispositivos móviles de los
usuarios estarán conectados al servicio de internet
➢ Construcción del prototipo: La codificación del inalámbrico Wi-Fi que la Universidad Católica de Santa
prototipo se realizó en un periodo de 2 semanas con María tiene implementado en casi la mayoría de sus
la disponibilidad del grupo de desarrollo según lo sectores en el campus principal.
acordado en el modelo de decenio pasado y el plan
de desarrollo, por la facilidad del uso de DroidScript ➢ Aplicación de Chat:
y las dependencias de las APIs para la interconexión La aplicación de Chat es la aplicación misma de los
de los teléfonos celulares no fue necesario el usuarios comunes que se conectaran a la Red de la
desarrollo presencial con el grupo. universidad para entablar la comunicación. Este
módulo necesita una configuración inicial en la cual
➢ Desarrollo, entrega y retroalimentación: Finalizado se escribe la dirección IP del dispositivo que va a
el desarrollo de la aplicación se implementa la hacer el rol de Servidor de Mensajería, y después de
entrega y las pruebas a realizar para el proceso de confirmar la dirección se establece la conexión y se
retroalimentación según la evaluativa de los usuarios, muestra el lobby principal de todos los usuarios que
la evaluación actual de la aplicación aún está en interactúan en el momento.
transcurso debido a su cualidad de prototipado rápido
hasta la fecha de presentación de este documento.

Fig.3. Cuadro de configuración inicial de la dirección IP


del servidor del chat.

El prototipo actual también tiene en cuenta la


validación de siempre estar conectado a una Local
Area Network – Red de Área Local, de esa manera si
es que el celular no esta en una red LAN de Wi-Fi no
podrá conectarse a ningún servidor posible.

Fig.2. Interfaz de la IDE de DroidScript [11]

Dentro del desarrollo de la aplicación de mensajería,


que trabaja como una intranet, hasta la fecha de
presentación de este documento se ha realizado el
desarrollo de un prototipo mismo para analizar y Fig.4. Validación de uso de una LAN en Wi-Fi para
demostrar cómo sería la funcionalidad del producto final establecer el normal funcionamiento de la aplicación.
para su presentación y futura mejora, esto de igual modo
realizado en cantidades de tiempo acordes.
Con el simple hecho de escribir un mensaje y
Gracias a que la metodología aplicada nos ayuda a dar mandarlo ya se registra que ha habido una
resultados y a probar la misma aplicación por fases la conversación y estos datos del mensaje se mandan al
mejora progresiva es algo que se ha logrado con el Servidor encriptados, para después mostrarlo para
tiempo de desarrollo, pero también está proyectado en las todos de forma desencriptada.
siguientes iteraciones del desarrollo mismo.
4

de mensaje, que toma como entrada un mensaje de


longitud arbitraria y produce como salida un resumen
de mensaje de 128 bits. La entrada se procesa en
bloques de 512 bits. [3]

➢ Encriptado Mejorado:
Nuestro cifrado consiste en intercambiar números
primos o compuestos (almacenados en dos arreglos)
por los espacios en la cadena del mensaje a cifrar,
dependiendo del valor con el que comience la clave
privada, una vez que se tiene la cadena sin espacios
y con números primos o compuestos transpuestos, se
Fig.5. Pantalla principal del prototipo de la aplicación de
procede a invertir toda la cadena, a esa cadena recién
Chat.
la enviamos a la función de cifrado de DroidScript.
➢ Aplicación de Servidor:
A continuación, un ejemplo explicado paso a paso:
La aplicación de Servidor también esta
implementada en un dispositivo móvil de la red, el
cual actuará como un nodo para entablar la Mensaje = ESTE MENSAJE SERA
CIFRADO Y LUEGO ENVIADO
comunicación entre los demás teléfonos móviles.
Key = 1 2 3 4
En el servidor mismo es donde los mensajes
encriptados enviados por las aplicaciones llegan, este
los almacena en la base de datos de SQLite a manera var primos = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
de un log de la conversación y posteriormente los 31, 37, 41, 43, 47, 53, 59, 61, 67,
71];
desencripta y muestra para el chat mismo de los
usuarios que estén conectados a tal servidor actual en
var compuestos = [4, 6, 8, 9, 10, 12, 14, 15, 16,
uso. Aquí es donde se tiene la mayor parte de la
18, 20, 21, 22, 24, 25, 26, 27, 28,
implementación de los códigos de encriptación MD5
y el método mejorado que serán mostrados y 30, 32];
explicados en el siguiente punto.
1.- Si el primer número de la key es:

Primo
→ESTE2MENSAJE3SERA5CIFR
ADO7Y11LUEGO13ENVIADO

No Primo
→ESTE4MENSAJE6SERA8CIFR
ADO9Y10LUEGO12ENVIADO

2.- Se procede a invertir la cadena:

Invertida
→ODAIVNE31OGEUL11Y7ODA
RFIC5ARES3EJASNEM2ETSE

Invertida
→ODAIVNE21OGEUL01Y9ODA
RFIC8ARES6EJASNEM4ETSE

Fig.6. Pantalla principal del uso del Servidor, donde se 3.- Le aplicamos MD5
tiene en la parte superior el chat general, y abajo el log de los
mensajes.
CON MD5
→c4968428ec3cd8d278601d7016
B. Funcionalidad: 920833
➢ Encriptado MD5:
La función de cifrado con la que trabaja DroidScript CON MD5
es MD5, este cifrado trabaja con tablas hash y con →c04357f10c1bb93e635705f6ae9
una sola clave privada, es un algoritmo de resumen b7f4a
5

Finalmente, una vez explicado nuestro cifrado, IV. CONCLUSIONES


describiremos las partes del código más importantes
desarrolladas en DroidScript para la encriptación del 1. Se ha creado una aplicación móvil con un sistema de
mensaje:
mensajería privada, en la que la comunicación es segura
mediante un cifrado mejorado a MD5.
1.- Se debe empezar primero definiendo la clave
privada que se usara en ambas funciones de cifrado:
2. La Universidad Católica Santa María no cuenta con un
sistema de mensajería para la comunicación entre el
personal interno, es así que esta aplicación seria de gran
ayuda porque mucha de esa información es de gran
Fig.7. Definición de la clave de cifrado confidencialidad y su seguridad es importante.

2.- Creamos un objeto para utilizar la función de 3. En el futuro las técnicas existentes ya habrán sido
encriptación del DroidScript, esta función es la que descifradas y debemos comenzar a realizar mejoras de
usa por defecto el algoritmo de cifrado MD5. ellas o mejor incluso crear nuevas técnicas de cifrado
para el bien de nuestra información.

Fig.8. Creación del objeto de la clase de encriptación V. REFERENCIAS

3.- Es en la función getAllMessage(), donde usamos [1] A. Azfar, K. R. Choo, L. Liu, Hawaii International Conference on
nuestros métodos de descifrado primero y luego System Science, 2014, “A study of ten popular Android mobile VoIP
cifrado, primero esta función recibe la cadena de applications: Are the communications encrypted?”.
texto y la pasa a un arreglo para poder trabajar con [2] Xiaoyun Wang and Hongbo Yu, Shandong University, Jinan 250100,
ella. China, “How to Break MD5 and Other Hash Functions”. Disponible en:
http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf

[3] W. Stallings, Fundamentos de Seguridad en Redes Aplicaciones y


Estándares, Madrid: Pearson, 2004.
Fig.9. Conversión de la cadena en array.
[4] M, Backes; G, Barthe; M, Berg; B, Gregoire; “Verified Security of
4.- Procedemos a desencriptar, primero en MD5, el Merkle-Damgard”, Universidad Politécnica de Madrid, Spain.
texto del array para el entendimiento del usuario Disponible en:
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6266171
mediante el siguiente código:
[5] G.K. Sodhi, G. S. Gaba, School of Electronics & Communication
Engineering, 2018, “An Efficient Hash Algorithm to Preserve Data
Integrity”. Disponible en:
http://jestec.taylors.edu.my/Vol%2013%20issue%203%20March%202
018/13_3_17.pdf
Fig.10. Desencriptación de MD5
[6] C. Petit, N. Veyrat-Charvillon, J. Quisquater, “Efficiency and Pseudo-
Randomness of a Variant of Zémor-Tillich Hash Function”
5.- Luego de desencriptar el texto por MD5,
procedemos a usar nuestra función de [7] F. Solís, D. Pinto, S. Solís, “Seguridad de la información en el
desencriptación: intercambio de datos entre dispositivos móviles con sistema Android
utilizando el método de encriptación RSA”

[8] S.T. Bhosale, T. Patil, P. Patil, “SQLite: Light Database System”,


International Journal of Computer Science and Mobile Computing,
Fig.11. Desencriptación para nuestro cifrado Shivaji University de Kolhapur, India, 2015. Disponible en:
https://ijcsmc.com/docs/papers/April2015/V4I4201599a35.pdf

6.- Finalmente, una vez que el usuario pudo recién [9] DroidScript Official WebPage. Disponible en: http://droidscript.org/
visualizar el mensaje, enviará su respuesta, para
ello, ahora deberá pasar primero por nuestro cifrado [10] Android Official WebPage “KitKat 4.4”, Sistema Operativo. Disponible
y luego por el de MD5: en: https://www.android.com/versions/kit-kat-4-4/

[11] Anónimo,” Metodología de prototipos” , Blog de Marichelo. Disponible


en: http://marich.blogspot.es/1459397526/metodologia-de-prototipos/

Fig.12. Aplicando nuestro cifrado al mensaje por enviar.