PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE...

119
1 PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE ENCRIPTACIÓN AES Y RSA, IMPLEMENTADO SOBRE UNA RED GRID. ANDRES MAURICIO CLAVIJO MEJÍA. JHON ALEXANDER CHACÓN TORRES. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERÍA TELEMÁTICA BOGOTÁ D.C 2019

Transcript of PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE...

Page 1: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

1

PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE

ENCRIPTACIÓN AES Y RSA, IMPLEMENTADO SOBRE UNA RED GRID.

ANDRES MAURICIO CLAVIJO MEJÍA.

JHON ALEXANDER CHACÓN TORRES.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA INGENIERÍA TELEMÁTICA

BOGOTÁ D.C

2019

Page 2: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

2

PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE

ENCRIPTACIÓN AES Y RSA, IMPLEMENTADO SOBRE UNA RED GRID.

ANDRES MAURICIO CLAVIJO MEJÍA.

JHON ALEXANDER CHACÓN TORRES.

PROYECTO DE GRADO

TUTOR(A)

ING. GERARDO CASTANG MONTIEL

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA INGENIERÍA TELEMÁTICA

BOGOTA D.C

2019

Page 3: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

3

Nota de Aceptación ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ _______________________ Firma del Tutor _______________________ Firma del Jurado

Bogotá D.C 07 de mayo de 2019

Page 4: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

4

Tabla de contenido INTRODUCCIÓN. .......................................................................................................................... 12

RESUMEN. ................................................................................................................................... 13

ABSTRACT. ................................................................................................................................... 14

1. PLANEACIÓN. ....................................................................................................................... 15

1.1. Título. ........................................................................................................................... 15

1.2. Planteamiento del problema. ....................................................................................... 15

1.2.1. Descripción. .......................................................................................................... 15

1.2.2. Formulación del problema. ................................................................................... 17

1.3. Alcances y Delimitaciones. ............................................................................................ 18

1.3.1. Alcances. ............................................................................................................... 18

1.3.2. Delimitaciones. ..................................................................................................... 18

1.3.2.1. Temáticas. ..................................................................................................... 18

1.3.2.2. Técnicas. ....................................................................................................... 18

1.3.2.3. Geográficas. .................................................................................................. 19

1.3.2.4. Temporales. .................................................................................................. 19

1.4. Objetivos. ..................................................................................................................... 20

1.4.1. Objetivo general. .................................................................................................. 20

1.4.2. Objetivos específicos. ............................................................................................ 20

1.5. Justificación. ................................................................................................................. 21

1.6. Marco de referencia. .................................................................................................... 22

1.6.1. Estado del arte ...................................................................................................... 22

1.6.2. Marco histórico ..................................................................................................... 26

1.6.3. Marco teórico ....................................................................................................... 30

1.6.3.1. Criptografía ................................................................................................... 30

1.6.3.2. Cifrado simétrico ........................................................................................... 30

1.6.3.3. Cifrado asimétrico ......................................................................................... 31

1.6.3.4. Hibridación de sistemas de cifrado ................................................................ 32

1.6.3.5. Algoritmo AES ............................................................................................... 33

1.6.3.6. Algoritmo RSA ............................................................................................... 33

1.6.3.7. Tipos de ataques informáticos conocidos ...................................................... 34

1.6.3.8. Computación en grid ..................................................................................... 34

1.6.3.9. Seguridad de la información .......................................................................... 35

Page 5: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

5

1.6.3.10. Metodología para el desarrollo de software .................................................. 36

1.6.3.10.1. Waterfall Process ..................................................................................... 36

1.6.3.10.2. Rational Unified Process ........................................................................... 36

1.6.3.10.3. Essential Unified process .......................................................................... 37

1.6.3.10.4. Team Software Process ............................................................................ 37

1.6.3.10.5. Microsoft Solution Framework ................................................................. 37

1.6.3.10.6. Scrum Framework .................................................................................... 37

1.6.3.11. Planificación de proyectos de software.......................................................... 39

1.6.3.12. Planificación de proyectos ............................................................................. 40

1.6.3.13. Proyectos de software ................................................................................... 40

1.6.3.13.1. Elementos de un proyecto de software .................................................... 40

1.6.3.14. Desarrollo en JPA .......................................................................................... 41

1.6.3.15. Desarrollo en ReactJs .................................................................................... 41

1.6.3.16. Desarrollo en NodeJs ..................................................................................... 42

1.6.3.17. Desarrollo en C#, .Net Core ........................................................................... 42

1.6.3.18. Servicios Rest ................................................................................................ 43

1.6.3.19. Desarrollo MySql ........................................................................................... 44

1.6.3.20. WebSockets .................................................................................................. 45

1.6.3.21. Modelo vista controlador .............................................................................. 45

1.6.4. Marco conceptual ................................................................................................. 46

1.7. Metodología de desarrollo. ........................................................................................... 50

1.7.1. Inicio del ciclo. ...................................................................................................... 50

1.7.2. Sprint .................................................................................................................... 51

1.7.3. Entregables ........................................................................................................... 51

1.8. Factibilidad. .................................................................................................................. 52

1.8.1. Técnica. ................................................................................................................ 52

1.8.2. Operativa. ............................................................................................................. 52

1.8.3. Legal. .................................................................................................................... 53

1.8.4. Económica. ........................................................................................................... 53

1.8.4.1. Recurso humano. .......................................................................................... 53

1.8.4.2. Recursos tecnológicos. .................................................................................. 54

1.8.4.3. Recurso transporte. ....................................................................................... 56

1.8.4.4. Otros gastos .................................................................................................. 56

Page 6: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

6

1.8.4.5. Costo total..................................................................................................... 56

1.9. Resultados esperados ................................................................................................... 57

1.10. Impactos ................................................................................................................... 58

1.11. Cronograma de actividades ....................................................................................... 59

2. Fase de inicio........................................................................................................................ 61

2.1. Incertidumbre............................................................................................................... 61

2.1.1. Requerimientos informales. .................................................................................. 61

2.2. Descripción de las funcionalidades................................................................................ 61

3. Historias de usuario. ............................................................................................................. 61

4. Definición y priorización de Product Backlog. ....................................................................... 64

4.1. Creación del product backlog. ....................................................................................... 64

4.2. Priorización del product backlog. .................................................................................. 64

4.3. Pila del producto. ......................................................................................................... 64

5. Sprint planning. .................................................................................................................... 65

5.1. Sprint 0. ........................................................................................................................ 66

5.2. Sprint 1. ........................................................................................................................ 66

5.3. Sprint 2. ........................................................................................................................ 66

5.4. Sprint 3. ........................................................................................................................ 66

6. Sprint 0. ............................................................................................................................... 66

6.1. Objetivos. ..................................................................................................................... 67

6.1.1. Diseñar el algoritmo de cifrado hibrido. ................................................................ 67

6.1.2. Definir tamaño de llaves para AES y RSA. .............................................................. 69

6.1.3. Estudiar librería AES a usar en el cifrado hibrido.................................................... 71

6.1.4. Estudiar librería RSA a usar en el cifrado hibrido. .................................................. 72

6.2. Reunión revisión del sprint. .......................................................................................... 72

6.3. Scrum taskboard. .......................................................................................................... 72

6.4. Cierre y entrega. ........................................................................................................... 73

7. Sprint 1. ............................................................................................................................... 73

7.1. Objetivos. ..................................................................................................................... 74

7.1.1. Método generación de llaves. ............................................................................... 74

7.1.2. Desarrollo del algoritmo de cifrado. ...................................................................... 75

7.1.3. Desarrollo del algoritmo de descifrado. ................................................................. 77

7.1.4. Estudiar el concepto de aplicaciones de escritorio con React y Electrón. ............... 78

Page 7: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

7

7.1.5. Servicio Rest de registro de usuarios. .................................................................... 78

7.1.6. Socket de comunicación de usuarios activos. ........................................................ 79

7.1.7. Integración de los servicios de información de usuario y cifrado. .......................... 80

7.1.8. Integración de la aplicación con los servicios desarrollados. .................................. 81

7.2. Reunión revisión del sprint. .......................................................................................... 86

7.3. Scrum taskboard. .......................................................................................................... 86

7.4. Cierre y entrega. ........................................................................................................... 87

8. Sprint 2. ............................................................................................................................... 88

8.1. Objetivos. ..................................................................................................................... 88

8.1.1. Montar ambiente de virtualización. ...................................................................... 88

8.1.2. Crear servidores virtuales. ..................................................................................... 89

8.1.3. Configurar ambiente en grid. ................................................................................ 90

8.1.4. Implementar servicios de mensajería, usuario y comunicación sobre la grid. ......... 93

8.1.5. Pruebas integrales. ............................................................................................... 96

8.2. Reunión revisión del sprint. .......................................................................................... 97

8.3. Scrum taskboard. .......................................................................................................... 97

8.4. Cierre y entrega. ........................................................................................................... 98

9. Sprint 3. ............................................................................................................................... 99

9.1. Objetivos. ..................................................................................................................... 99

9.1.1. Criptoanálisis del algoritmo hibrido implementado. ............................................ 100

9.1.2. Interceptar comunicación de usuarios para intentar descifrar mensajes.............. 104

9.1.3. Identificar niveles de seguridad del algoritmo, eficiencia y confidencialidad. ....... 109

9.2. Reunión revisión del sprint. ........................................................................................ 110

9.3. Scrum taskboard. ........................................................................................................ 110

9.4. Cierre y entrega. ......................................................................................................... 112

10. Cierre del proyecto. ........................................................................................................ 112

11. Conclusiones. ................................................................................................................. 113

12. Recomendaciones. ......................................................................................................... 115

Referencias ................................................................................................................................ 116

Page 8: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

8

LISTA DE ANEXOS.

ANEXO 1: PASO A PASO DE CONFIGURACIÓN Y CREACIÓN DE

PROYECTO.

Page 9: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

9

LISTA DE ILUSTRACIONES.

Ilustración 1. Diagrama de bloques del sistema propuesto................................................... 23

Ilustración 2. Criptosistema PSoC RSA-AES. ........................................................................ 24

Ilustración 3. Proceso de cifrado del método propuesto. ...................................................... 25

Ilustración 4. Proceso de descifrado del método propuesto. ................................................ 25

Ilustración 5. Esquema de las 5 fases de desarrollo Scrum. ................................................ 39

Ilustración 6. Premisa Rest sin estado. ................................................................................... 43

Ilustración 7. Arquitectura en capas. ....................................................................................... 44

Ilustración 8. Funcionamiento WebSocket.............................................................................. 45

Ilustración 9. Arquitectura MVC. .............................................................................................. 46

Ilustración 10. Historias de Usuario. ........................................................................................ 62

Ilustración 11. Historias de Usuario ......................................................................................... 63

Ilustración 12. Formato Product BackLog. .............................................................................. 64

Ilustración 13. Scrum Taskboard del Proyecto. ...................................................................... 65

Ilustración 14. Modelo de cifrado hibrido. ............................................................................... 67

Ilustración 15. Proceso de firmado digital. .............................................................................. 71

Ilustración 16. Scrum taskboard 1 sprint 0.............................................................................. 72

Ilustración 17. Scrum taskboard 2 sprint 0.............................................................................. 72

Ilustración 18. Scrum taskboard 3 sprint 0.............................................................................. 73

Ilustración 19. Scrum taskboard 4 sprint 0.............................................................................. 73

Ilustración 20. Diagrama de secuencia del prototipo. ............................................................ 83

Ilustración 21. Diagrama de flujo del mensaje........................................................................ 84

Ilustración 22. Arquitectura del prototipo. ............................................................................... 85

Ilustración 23. Scrum taskboard 1 sprint 1.............................................................................. 86

Ilustración 24. Scrum taskboard 2 sprint 1.............................................................................. 87

Ilustración 25. Scrum taskboard 3 sprint 1.............................................................................. 87

Ilustración 26. Scrum taskboard 4 sprint 1.............................................................................. 87

Ilustración 27. VMs Creadas en host1 .................................................................................... 89

Ilustración 28. Configuración red virtual. ................................................................................. 89

Ilustración 29. Configuración tarjeta de red vm. ..................................................................... 90

Ilustración 30. Conectividad red contra BOINC. ..................................................................... 90

Ilustración 31. Proyecto Cifrado Híbrido en BOINC. .............................................................. 91

Ilustración 32. Creación usuario Cliente1. ........................................................................ 91

Ilustración 33. Estado conexión cliente y proyecto BOINC. .................................................. 92

Ilustración 34. Ejecución servidor Apache Tomcat. ............................................................... 93

Ilustración 35. Servicios desplegados. .................................................................................... 94

Ilustración 36. Ejecución de socket de comunicación. .......................................................... 94

Ilustración 37. Base de datos de aut_key_service. ................................................................ 95

Ilustración 38. Propiedades Servicio de Cifrado CHAT. ........................................................ 96

Ilustración 39. Instalación final de la aplicación de mensajería. ........................................... 96

Ilustración 40. Funcionamiento servicio de mensajería entre dos clientes. ......................... 97

Ilustración 41. Scrum taskboard 1 sprint 2.............................................................................. 97

Page 10: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

10

Ilustración 42. Scrum taskboard 2 sprint 2.............................................................................. 98

Ilustración 43. Scrum taskboard 3 sprint 2.............................................................................. 98

Ilustración 44. Sprint 3 Backlog ............................................................................................... 99

Ilustración 45. Inicio de la aplicación de mensajería. ........................................................... 105

Ilustración 46. Distribución de llaves. .................................................................................... 105

Ilustración 47. Componente de mensajería. ......................................................................... 106

Ilustración 48. Uso de aplicación de mensajería con envió de mensajes sin cifrado. ...... 106

Ilustración 49. Captura de mensajes sin prototipo de cifrado. ............................................ 107

Ilustración 50. Comunicación de los usuarios mediante la aplicación de mensajería. ..... 108

Ilustración 51. Escaneo de paquetes por protocolo. ............................................................ 108

Ilustración 52. Captura de mensajes con implementación del prototipo de cifrado. ......... 109

Ilustración 53. Scrum taskboard 1 sprint 3............................................................................ 111

Ilustración 54. Scrum taskboard 2 sprint 3............................................................................ 111

Ilustración 55. Scrum taskboard 3 sprint 3............................................................................ 111

Page 11: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

11

LISTA DE TABLAS.

Tabla 1. Recurso humano. ....................................................................................................... 54

Tabla 2. Recursos tecnológicos. .............................................................................................. 55

Tabla 3. Recurso transporte. .................................................................................................... 56

Tabla 4. Otros gastos. .............................................................................................................. 56

Tabla 5. Costo total ................................................................................................................... 56

Tabla 6. Priorización del Product Backlog. ............................................................................. 64

Tabla 7. Sprint 0 Backlog. ........................................................................................................ 67

Tabla 8. Niveles de Seguridad para cifrados en bloque comunes. ...................................... 70

Tabla 9. Niveles de Seguridad para cifrados en bloque comunes. ...................................... 70

Tabla 10. Niveles de Seguridad para funciones hash comunes. .......................................... 71

Tabla 11. Sprint 1 Backlog. ...................................................................................................... 74

Tabla 12. Sprint 2 Backlog. ...................................................................................................... 88

Page 12: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

12

INTRODUCCIÓN.

Las técnicas que permiten la protección de la información en entornos de

comunicación no seguros como internet han ido evolucionando en sus niveles de

complejidad generando niveles de seguridad aceptables para la transferencia de

datos, sin embargo, del mismo modo se han encontrado falencias ya sea a nivel

criptográfico, de canal o en su implementación que han exigido el avance o

surgimiento de nuevos métodos de protección más seguros.

De este modo, el desarrollo del proyecto se fundamenta en dar respuesta a este

interrogante, ¿Es posible realizar un prototipo de cifrado que combine los métodos

de encriptación AES y RSA para proteger la comunicación entre usuarios sobre una

red en grid? Hemos planteado el uso del cifrado simétrico y asimétrico con el fin de

obtener las ventajas y eliminar las desventajas y/o vulnerabilidades de estos en una

misma solución, es probable que requiera más capacidad computacional o de

tiempo para llevar a cabo las tareas requeridas, aunque parezca que su

implementación tiende a ser más compleja el beneficio obtenido se verá reflejado

en su nivel de seguridad.

El desarrollo del proyecto se verá reflejado en la protección de información aplicado

en un sistema de mensajería que transmite información entre diferentes usuarios,

dando un método comunicación segura dado que no transmite información en claro

en ninguna de sus interacciones dado que desde el principio se establece una forma

de negociación por el intercambio de llaves que no implicarán vulnerabilidades para

el sistema en caso de ser interceptadas.

Page 13: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

13

RESUMEN.

Este proyecto se desarrolla con la finalidad de presentar una prototipo de cifrado

híbrido implementado en una red en grid con el propósito de demostrar el nivel de

seguridad que es posible alcanzar con esta forma de cifrado por medio de una

aplicación de mensajería que será objeto de análisis con y sin la implementación de

los algoritmos desarrollados comparando los resultados obtenidos una vez se

encuentre en marcha, así mismo se realizará un proceso de criptoanálisis sobre el

prototipo planteado para verificar posibles puntos de falla y en qué tiempo serían

exitosos en caso de aplicarse.

Se desarrolló el prototipo basado en una arquitectura capaz de compartir recursos

y funcionalidades con el fin de proveer la capacidad de operar con cualquier sistema

que requiera el uso de ellos, por lo tanto, la aplicación de mensajería en si es solo

un objeto de prueba que brinda información de la capacidad del prototipo de cifrado

y pretende dar un nivel de confianza para su implementación en más sistemas de

comunicación.

Por otro lado, a nivel técnico, el uso del framework de .Net Core con el cual se

desarrollan los diferentes métodos del prototipo de cifrado permite hacer uso de las

ventajas del desarrollo con el lenguaje C# y su despliegue en múltiples plataformas,

permitiendo su implementación en cualquier entorno que se requiera sin estar atado

a las tecnologías de Microsoft. Además, se cuenta con la aplicabilidad de los

servicios que se pueden crear mediante la tecnología JPA que provee java con el

fin de realizar puntos de conexión entre la aplicación y el servicio que provee el

prototipo de cifrado el cual también puede ser desplegado en cualquier sistema

operativo, así mismo la utilización de todos estos servicios son llamados o

invocados por una interfaz de mensajería desarrollada mediante la librería de

ReactJs el cual comunica a los diferentes usuario implementando un socket que

reside en NodeJs. Finalmente, se usan máquinas virtuales desplegadas por medio

de vmware player que harán uso de la plataforma BOINC en un proyecto integrado

por medio de la simulación de un servidor propio capaz de proveer los servicios de

red en grid y distribuir la carga computacional de los servicios en el momento que

se requiera.

Page 14: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

14

ABSTRACT.

This project is developed with the objective of present an hybrid encryption prototype

implemented on a grid network with the purpose of demonstrate the security level

that is possible to reach with this encryption way through of messaging application

that will be analyzed with and without the use of the algorithms developed comparing

the results obtained when this will be running, likewise will be carried a cryptanalysis

process over the prototype showed with the purpose of check means points of

failures and when these would be exploited in case of be applied.

The prototype was developed based on an architecture able to share resources and

functionalities with the purpose to provide capabilities to operate with any system

that require the use of them, so, the messaging application itself is only an element

that works like a test that give us information about the capacity of the encryption

prototype and expect give a confidence level for its implementation in more

communication systems.

Furthermore, at a technical level, the use of the .Net core framework with which the

different methods of the encryption prototype are developed allows the use of the

advantages of the development with the C # language and its deployment on multiple

platforms, allowing its implementation in any environment that require without be tied

to the Microsoft technologies. In addition, we have the applicability of the services

that can be created using JPA technology that provides java in order to make

connection points between the application and the service provided by the

encryption prototype which can also be deployed in any system operative, likewise

the use of all these services are called or invoked by a messaging interface

developed through the ReactJs library which communicates to the different users

implementing a socket that resides in NodeJs. Finally, we use virtual machines

deployed through vmware player that will be make use of BOINC platform in an

integrated project by means of the simulation of its own server able to provide the

grid network services and distributing the computational load of the services in the

moment that is required.

Page 15: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

15

1. PLANEACIÓN.

1.1. Título.

Prototipo de cifrado híbrido combinando los métodos de encriptación AES y RSA,

implementado sobre una red grid.

1.2. Planteamiento del problema.

1.2.1. Descripción.

En la actualidad los diferentes tipos de aplicaciones que se están desarrollando

realizan interacciones constantes con sistemas externos, enviando y recibiendo

información que contiene datos de todo tipo acerca de las personas, empresas,

negocios, etc. requiriendo niveles altos de seguridad en dichos procesos de

transmisión dada la sensibilidad de los datos y las consecuencias de que la

información sea conocida por terceros. Existen mecanismos de seguridad

adaptados especialmente para la protección de la información y que está en

constante desarrollo, se parte de la ideología de mantener la información de manera

confidencial, íntegra y disponible; Donde dos sistemas sean capaces de interactuar

sin ningún tipo de intrusión por parte de agentes externos, lo que hace necesario

que usuarios y corporaciones busquen e implementen estándares que permitan el

manejo seguro de los datos con el fin de suplir este tipo de necesidad.

Dando solución a los problemas de intercepción de la comunicación, usados en

cualquier sistema de la información por un emisor y un receptor se han adaptado

técnicas enfocadas en la protección de los canales de comunicación y los datos que

se transmiten por medio ellos como lo son los métodos de cifrado. Los retos a nivel

de seguridad de la información tienden a ser más complejos con el paso del tiempo,

en primera instancia las comunidades dedicadas al robo de información han ido

creciendo y con ellas el desarrollo de herramientas que facilitan este tipo de

procesos, por otro lado se encuentra la evolución a nivel de procesamiento de las

máquinas que permiten que determinados ataques puedan ser efectivos de manera

más rápida y eficiente generando riesgo para las técnicas de cifrado más débiles y

una preocupación para las más complejas.

Page 16: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

16

El uso e implementación de la criptografía se puede enmarcar en dos mecanismos

generales, simétricos o asimétricos, estos implementan diversas operaciones

matemáticas generando llaves para su cifrado y descifrado solo conocidas por los

interlocutores, su principal diferencia radica en la compartición de llaves y recursos

necesarios para su ejecución, donde entre mayor sea la lógica de sus operaciones

el consumo de recursos computacionales es mucho más exigente. Este tipo de

técnicas siempre han sido objetivo de ataques dada su popularización en grandes

organizaciones con el fin de encontrar aquellos puntos débiles o vulnerabilidades

que estos puedan presentar. A la fecha existen modelos que no han podido ser

penetrados debido a sus complejidades en operaciones matemáticas y

arquitecturas.

Evaluando específicamente las redes corporativas donde hacen principalmente

presencia este tipo de mecanismos de cifrado, se evalúa la arquitectura de

computación en grid la cual tiene como características fundamentales la propiedad

de compartición de recursos y métodos para el acceso a la información, si se usa

RSA en una grid las llaves generadas deben ser enviadas a cada host que se

encuentre en la red, creando vulnerabilidades que permiten ataques de hombre en

el medio tratando de conocer la información compartida, entendiéndose esto como

falla de seguridad en red mas no del algoritmo de cifrado, por tal razón se hace uso

del sistema de cifrado de clave pública (PKI) la cual se apoya en el uso de

certificados digitales, sin embargo, presenta vulnerabilidades por ser sensible a la

alteración de depósitos de claves y robo de llaves privadas mediante ataques a los

servidores de certificación de autoridad (CA), de igual forma sucede en el caso de

usar AES quien necesariamente debe exponer su llave privada a los equipos de la

red usada para cifrado y descifrado (Amaya, 2014)1.

1 Amaya, C. g. (24 de 06 de 2014). welivesecurity. Recuperado el 28 de 09 de 2018, de https://www.welivesecurity.com/la-

es/2014/06/24/pki-paradigma-criptografia-asimetrica/

Page 17: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

17

Con lo expuesto anteriormente, se ha planteado la necesidad de trabajar en

modelos de encriptación de diferentes tipos, tales como mecanismos de

encriptación basados en blockchain, polimórficos, híbridos, etc. y formas diferentes

de publicación y protección de llaves, todos en busca de un prototipo capaz de

soportar los retos en seguridad de la información que se aproximan tomando como

base las tecnologías existentes y las que se encuentran en tendencia donde su base

principal es la comunicación y paso de información de manera confidencial.

1.2.2. Formulación del problema.

¿Es posible realizar un prototipo de cifrado que combine los métodos de

encriptación AES y RSA para proteger la comunicación entre usuarios sobre una

red en grid?

Page 18: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

18

1.3. Alcances y Delimitaciones.

1.3.1. Alcances.

Este proyecto tiene como alcance realizar un prototipo de cifrado combinando los

métodos de encriptación AES y RSA, en el cual se quiere realizar una aplicación

que haga uso de él y permita verificar su eficiencia y comparación con cada

algoritmo de manera individual. Se busca analizar los dos métodos mencionados

anteriormente para realizar una combinación que permita generar un prototipo de

cifrado diferente, se considera la implementación del modelo en un servicio de

mensajería alojado sobre una red en grid donde se pretende interceptar la

comunicación de los usuarios que hacen uso de este con el fin de analizar los

procesos de seguridad, mejoras establecidas y posibles falencias.

1.3.2. Delimitaciones.

1.3.2.1. Temáticas.

Las temáticas que comprenden el desarrollo de este proyecto están enfocadas en:

prototipo de cifrado, métodos de encriptación AES y RSA, computación en grid,

servicio que implemente el prototipo desarrollado, dentro de lo cual se pretende

comprender el funcionamiento y mecanismos de seguridad usados pretendiendo

dar mejoras mediante una solución de encriptación combinada entre los algoritmos

anteriormente nombrados.

1.3.2.2. Técnicas.

Dados los diferentes elementos que comprenden el desarrollo del proyecto se

plantea el uso de las siguientes herramientas y el modo en que serán trabajadas de

acuerdo a los planteamientos expuestos:

Entorno de desarrollo C# y .Net Core para el diseño y programación del

algoritmo que implementa la combinación de los sistemas AES y RSA,

pretendiendo buscar como resultado mayor eficiencia para los procesos de

encriptación de la información.

Entorno de desarrollo para la creación del servicio web el cual hará uso del

algoritmo propuesto para encriptar la información generada por los usuarios

que se estén comunicando.

Page 19: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

19

Entorno de virtualización vmware, donde se montarán VM’s simulando una

red en grid las cuales tienen como propósito hostear el servicio de mensajería

que implementa la solución propuesta.

Herramienta de monitoreo de paquetes en la red Wireshark, con el fin de

interceptar la comunicación que se realice entre los servidores para

posteriormente filtrar la información encriptada.

Herramientas de desarrollo de software como C#, .Net Core, JPA, ReactJs,

NodeJs, MySql que permiten la realización de los diferentes servicios y la

aplicación de mensajería.

1.3.2.3. Geográficas.

El desarrollo del prototipo planteado no genera limitación geográfica dada su

naturaleza, ya que el desarrollo de servicios referentes a la programación y su

implementación sobre sistemas de transmisión de información permiten dinamismo

en este sentido, donde no se requieren instalaciones o espacios específicos.

1.3.2.4. Temporales.

El prototipo que se plantea desarrollar en un modo piloto y estará disponible en los

recursos digitales de la universidad, con el fin de que las personas interesadas sobre

el tema pueden consultar, plantear mejoras o realizar su implementación en otros

sistemas, dando paso a un punto de partida para construcción de nuevos sistemas

criptográficos.

Page 20: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

20

1.4. Objetivos.

1.4.1. Objetivo general.

Desarrollar un mecanismo de cifrado híbrido basado en los métodos de

encriptación AES y RSA, en una red en grilla mediante servicios de

mensajería.

1.4.2. Objetivos específicos.

Analizar y diseñar un algoritmo de cifrado basado en los métodos de

encriptación de AES y RSA.

Desarrollar un servicio de mensajería que implemente el método de

encriptación propuesto.

Implementar una red en grid donde se publique un servicio de mensajería

propuesto.

Realizar la captura de tráfico que permita evidenciar la implementación del

prototipo de cifrado propuesto.

Configurar un entorno de pruebas, que permitan identificar las posibles

mejoras desarrolladas en base al servicio de mensajería implementado.

Page 21: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

21

1.5. Justificación.

El estudio de modelos criptográficos hoy en día es un tema de mucha profundidad,

dadas las condiciones en las que se desarrolla el mundo donde el centro de todo

son los datos, se requieren niveles de protección muy altos por lo que es muy común

usar servicios potentes y conocidos especialmente a nivel de las grandes

organizaciones donde una falla puede generar grandes pérdidas, por lo tanto entre

mayor complejidad presenté el modelo de protección de datos es aún mejor, sin

perder de vista el nivel computacional requerido.

Los métodos actuales de encriptación brindan soluciones al momento de realizar la

protección de la información, pero sus códigos de implementación y operaciones

implementadas son de libre acceso lo que genera que terceros puedan aprovechar

información que se conoce y planteen la posibilidad de realizar ataques, es

importante poder tener la posibilidad de implementar un método de cifrado basado

en aquellos que aun siendo conocidos siguen sin ser quebrados y brindarles aún

más seguridad generando desconocimiento de su modo de construcción haciéndolo

en teoría mucho más complejo y seguro.

La realización de este proyecto tiene como finalidad mostrar un prototipo de

combinación de los algoritmos de encriptación AES y RSA con el propósito reunir

sus bondades en cuanto a complejidad y nivel de protección se refiere, lo cual

permitirá analizar si es posible mantener y mejorar los niveles de seguridad que

poseían cada uno de ellos por medio de su implementación en una simulación de

sistema de red en grid.

Page 22: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

22

1.6. Marco de referencia.

1.6.1. Estado del arte

Modelo híbrido de encripción y desencripción para imágenes usando RSA, AES y

afinamiento con la operación XOR.

El modelo propuesto describe un modelo de encriptación simétrico en el siguiente

orden, encripción por RSA, seguido por AES y finaliza con afinación con XOR. Se

realiza la exposición de los datos sobre los diferentes algoritmos, para AES se usa

el tamaño de llave de 128 bits (10 rondas) (Avinash , Potnis, Kumar, Dwivedy, &

Soofi, 2017)2.

Los resultados experimentales del modelo propuesto por los autores muestran que

el cifrado tiene rendimiento aleatorio gracias a mediciones de parámetros como

MSE, ED, MD y PSNR por lo que se puede concluir que su seguridad es de nivel

complejo.

Este modelo híbrido a diferencia de lo propuesto como desarrollo en este proyecto

presenta un método adicional de cifrado, optimizado para ser usado sobre

imágenes, aun así, no contempla el desarrollo a alto nivel de una solución nueva,

como tal se hace uso de modelos existentes y acoplarlo a un objetivo específico y

la protección de llaves por medio de sistemas adicionales.

Encripción de datos segura por medio de combinación de AES, RSA y HMAC.

El modelo propuesto depende de 3 funciones híbridas que son combinadas entre

ellas para producir un sistema de protección fuerte. La función AES es usada para

encriptar los archivos de manera simétrica, el algoritmo asimétrico RSA es usado

para encriptar el password AES y HMAC para encriptar la autenticación entre

cliente-servidor o cliente-cliente (Ibrahim Harba, 2017).3

2

Avinash , R., Potnis, A., Kumar, S., Dwivedy, P., & Soofi, S. (Agosto de 2017). Internation Journal Of Engineering

Research and Applications. Obtenido de http://www.ijera.com/papers/Vol7_issue8/Part-1/O0708019094.pdf

3 Ibrahim Harba, E. S. (2017). Engineering, Technology & Applied Science Research. Obtenido de

https://etasr.com/index.php/ETASR/article/viewFile/1272/536

Page 23: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

23

Ilustración 1. Diagrama de bloques del sistema propuesto.

Tomado de: https://etasr.com/index.php/ETASR/article/viewFile/1272/536

Los datos recorren el modelo bajo los tres niveles de seguridad usando los 3

algoritmos en combinación.

El receptor usa RSA para generar las parejas de llave (pública y privada) y

envía el valor de la llave pública al emisor.

El emisor usa el algoritmo AES para encriptar los datos usando llaves

cifradas de 256 bits.

RSA es usado para encriptar la llave simétrica con la pública del receptor.

HMAC con SHA256 es usado para calcular la MAC que incluye la

combinación de función hash con una llave de criptografía secreta.

Al texto cifrado producido por la encriptación del texto plano se le añade MAC

desde el texto cifrado.

El receptor usa la llave almacenada (llave privada) para desencriptar la clave

AES, y después desencripta la información usando esta.

El modelo propuesto usa 3 tipos de cifrado de manera combinada en determinado

orden con el fin de explotar las ventajas de cada uno de los algoritmos

implementado para la construcción de un sistema altamente seguro, resaltando que

la ejecución general de cifrado es simple y rápida con bajos requisitos

computacionales.

Analizando este modelo con el proyecto propuesto se presenta similitud ya que se

ofrece un método que puede ser acoplado a cualquier sistema de comunicación a

diferencia que usa el cifrado con HMAC como capa adicional de seguridad

Page 24: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

24

haciéndolo más complejo donde el paso de llaves también contempla el cifrado,

pero como principal diferencia en el proyecto propuesto se establece un método de

paso seguro de llaves por medio de servicios externos y no capas de cifrado

adicionales.

Criptosistema híbrido RSA - AES PSoC (Programmable System on Chip).

Se especifica un modelo en hardware para la encriptación en AES dado que según

sus autores necesita ser acelerado por hardware a fin de brindar mejoras en

performance. Se plantea un software para realizar la encriptación de la llave de AES

sobre RSA adicional a la operación de generación de RoundKeys de AES la cual es

realizada solo al inicio de las tareas de encripcion y desencripción (Anane & Nadjia,

2015)4.

Ilustración 2. Criptosistema PSoC RSA-AES.

Tomado de: https://ieeexplore-ieee-org.bdigital.udistrital.edu.co/document/7348109

Los resultados de la aplicación de este sistema muestran que efectivamente la

optimización realizada a nivel de hardware permite mejorar la eficiencia cuando se

trata de ejecutar procesos de cifrado, lo cual dio como ventaja tiempos de respuesta

más óptimos que permiten el aumento del rendimiento de la ejecución sobre AES.

En comparación con la propuesta a desarrollar, se evidencian diferencias en cuanto

el medio por el cual se busca la optimización de los procesos ya que la idea

4 Anane, M., & Nadjia, A. (Marzo de 2015). IEEE Xplore Digital Library. Obtenido de https://ieeexplore-ieee-

org.bdigital.udistrital.edu.co/document/7348109

Page 25: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

25

contemplada se enfoca en la combinación de los algoritmos de los sistemas sin

contemplar hardware dedicado para el proceso.

Modelo de encripcion híbrido basado en AES, RSA y TWOFISH para encripcion

bluetooth.

El modelo plantea un enfoque de encripcion de la siguiente forma:

Se usa el algoritmo AES con una llave de 128 bits para encriptación del mensaje,

se encripta el mensaje nuevamente usando TWOFISH con la misma llave de 128

bits, finalmente, la llave generada al inicio será encriptada por RSA con una llave de

1024 bits para protección sobre la transferencia.

En el receptor el proceso de desencripción trabaja en orden inverso al proceso de

encripcion, generando conexiones más seguras para conexión vía bluetooth

(Albahar, Olawumi, Haataja, & Toivanen, 2018)5.

Ilustración 3.Proceso de cifrado del método propuesto.

Tomado de: http://file.scirp.org/pdf/JIS_2018040814373482.pdf

Ilustración 4.Proceso de descifrado del método propuesto.

Tomado de: http://file.scirp.org/pdf/JIS_2018040814373482.pdf

5 Albahar, M. A., Olawumi, O., Haataja, K., & Toivanen, P. (2018). Scientific Research Publishing. Obtenido de

http://file.scirp.org/pdf/JIS_2018040814373482.pdf

Page 26: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

26

El modelo híbrido presentado en esta propuesta para uso sobre comunicación en

bluetooth no tiene contemplado el no repudio sobre el texto cifrado, así como la

autenticidad del origen porque se generó una función hash y firmas digitales como

una de sus ventajas.

Se observa similitud con el proyecto planteado y como diferencia este proyecto usa

twofish como método adicional de cifrado en el paso de llaves de AES, desde

nuestra propuesta se hace énfasis en el paso seguro por medio de servicios que

logren proteger esa primera comunicación entre los dispositivos.

1.6.2. Marco histórico

El primer sistema criptográfico del que se tiene constancia es la Escítala, este

sistema data del siglo V a. C. y era usado en Esparta. El sistema consistía en dos

varas del mismo grosor, una en poder del emisor y la otra del receptor. Cuando el

emisor quería enviar un mensaje, este, enrollaba una cinta en su vara y escribía el

mensaje. De este modo al desenrollar la cinta el mensaje era ilegible. Al recibir el

mensaje, el receptor enrollaba la cinta en su vara, y de este modo podía leer el

mensaje. Los primeros sistemas de cifrado estuvieron ligados a campañas militares,

dada la necesidad de evitar que el enemigo obtuviese los movimientos de las tropas

al interceptar mensajes.

La criptografía siempre había estado vinculada al ámbito militar. ¿Por qué se hizo

necesaria para el resto de la gente? Aunque el uso de comunicaciones seguras ha

sido siempre una prioridad militar, la privacidad es requerida en otros sectores. Las

empresas necesitan mantener unas comunicaciones seguras para proteger su

información, por esta razón el gobierno de EEUU y la NSA se ven obligados a crear

DES.

Aparte de a las empresas, se hace necesario otorgar al ciudadano de privacidad y

seguridad. Con el nacimiento de internet y la progresiva oferta de servicios

telemáticos como acceso al banco, citas médicas y un sinfín de posibilidades se

tiene que ofrecer confidencialidad y seguridad a estos servicios (Corrales Sanchez,

Page 27: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

27

Cilleruelo Rodriguez, & Cuevas Notario)6.Por estas razones es necesaria la

criptografía, para otorgar privacidad, confidencialidad y seguridad a nuestras

transacciones telemáticas.

Los sistemas de cifrado AES y RSA cumplen a cabalidad el proceso por el cual

fueron diseñados, brindar la posibilidad de que la información que se quiere enviar

por diferentes canales sea desconocida por terceros, donde se busca que solo las

personas o actores directas involucradas tengan el acceso adecuado a la

información real, con el pasar del tiempo se han establecido diferentes sistemas

cada uno con sus ventajas y desventajas.

El sistema AES es un algoritmo de cifrado simétrico desarrollado por los estudiantes

Vincent Rijmen y Joan Daemen de la Katholieke Universiteit Leuven en Bélgica, bajo

el nombre "Rijndael" fue presentado en 1997 al concurso organizado por el Instituto

Nacional de Normas y Tecnologías (NIST) para elegir el mejor algoritmo de cifrado;

El algoritmo gano el concurso transformándose en un estándar en el año 2002, con

algunos cambios fue posteriormente renombrado AES (Advanced Encryption

Standard) y se convirtió en uno de los algoritmos más utilizados en la actualidad

(Pousa, 2011)7.

El algoritmo de clave pública RSA fue creado en 1978 por Rivest, Shamir y Adlman,

y es el sistema criptográfico asimétrico más conocido y usado.

Estos señores se basaron en el artículo de Diffie-Hellman sobre sistemas de llave

pública, crearon su algoritmo y fundaron la empresa RSA Data Security Inc., que es

actualmente una de las más prestigiosas en el entorno de la protección de datos.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar

números muy grandes. Para factorizar un número el sistema más lógico consiste en

6 Corrales Sanchez, H., Cilleruelo Rodriguez, C., & Cuevas Notario, A. (s.f.). Universidad de Alcalá. Recuperado el 29 de 09

de 2018, de Universidad de Alcalá:

http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pd

f

7 Pousa, A. (Diciembre de 2011). Universidad Nacional de la Plata. Recuperado el 29 de 09 de 2018, de Facultad de

Informatica: https://postgrado.info.unlp.edu.ar/wp-content/uploads/2014/07/Pousa_Adrian.pdf

Page 28: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

28

empezar a dividir sucesivamente éste entre 2, entre 3, entre 4…, y así

sucesivamente, buscando que el resultado de la división sea exacto, es decir, de

resto 0, con lo que ya tendremos un divisor del número (Networking and Emerging

Optimization, s.f.)8.

Cada sistema implementado que permite el envío seguro de la información aporta

grandes beneficios, pero a diario terceros o gente inescrupulosa está en la

búsqueda de acceder y romper las barreras de seguridad implementadas donde se

trata de hacer que los sistemas aplicados de cifrado no sean eficientes, actualmente

a los algoritmos descritos anteriormente se les han aplicado diferentes técnicas y

métodos, estos métodos pueden ser satisfactorios dependiendo el estado y modo

de aplicación, donde los factores computacionales y de seguridad que se le asigne

al sistema juegan un papel importante, los diferentes ataques realizados a estos

sistemas son satisfactorios a niveles teóricos y prácticos donde el recurso

computacional es adecuado, esto debido a que la realización de estos ataques a

grandes bloques de codificación suelen procesar y consumir recursos en gran

manera.

Debido a la realización de ataques sobre estos sistemas, se ha venido desarrollando

el concepto de cifrado híbrido donde su busca la combinación de dos o más

sistemas que permitan realizar un cifrado nuevo con mayor nivel de dificultad, la

mejor aportación del cifrado híbrido radica en que resuelve en gran medida el

problema de distribución de llaves para esquemas simétricos y el problema de

eficiencia para esquemas asimétricos (Barrón Vidales, 2008)9.

Durante los años 90’s surgieron algunos esquemas de cifrado que establecieron las

bases para lo que ahora conocemos como cifrado híbrido, pero fue hasta el año

2001 cuando Victor Shoup estableció formalmente los conceptos de KEM y DEM en

los que se basa esta filosofía.

8 Networking and Emerging Optimization. (s.f.). Networking and Emerging Optimization. Obtenido de

http://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/rsa.html

9 Barrón Vidales, J. (Noviembre de 2008). Departamento de Computacion del CINVESTAV. Obtenido de

http://www.cs.cinvestav.mx/TesisGraduados/2008/tesisJesusBarron.pdf

Page 29: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

29

En el área de estudio de la criptografía, el cifrado híbrido ha tenido gran atención en

los últimos años. Desde la aparición del esquema de cifrado diseñado por

T.ElGamal, donde se propone una implementación eficiente para un esquema de

cifrado de llave publica, muchos trabajos han sido realizados para buscar formas de

mejorar las características del cifrado tanto para criptografía de llave pública como

privada.

Un esquema de cifrado híbrido es un mecanismo de cifrado que puede ser

construido a partir de dos esquemas distintos: un esquema de cifrado de llave o

KEM (Key Encapsulation Mechanism) basado en un esquema de llave pública, y un

esquema de cifrado de datos o DEM (Data Encapsulation Mechanism) basado en

un esquema de llave privada.

Durante la investigación realizada en el área de la criptografía híbrida se evidencian

diferentes tipos de trabajos, pero en realidad son pocas las propuestas para nuevos

esquemas de cifrado híbrido, comparada con la cantidad de propuestas de cifrados

simétricos y asimétricos.

Aunque los esquemas de cifrado híbrido aún son pocos, y la mayoría de las

investigaciones se centran en tratar de probar la seguridad de los ya existentes o

de modificarlos de alguna manera (Barrón Vidales, 2008)10.

Dentro de las principales ventajas que se encuentran en los sistemas que utilizan la

implementación híbrida se resalta que si un atacante logra la intercepción de un

mensaje y este logra saber su contenido, la llave que obtuvo no servirá para los

nuevos mensajes que se propaguen ya que la combinación de los sistemas genera

claves diferentes para cada envío, por otro lado como una debilidad al momento de

querer implementar este tipo de sistemas, se encuentra el nivel de procesamiento

de los algoritmos, ya que al ser una doble implementación los procesos que llevan

a cabo el cifrado tienden hacer más complejos.

10 Barrón Vidales, J. (Noviembre de 2008). Departamento de Computacion del CINVESTAV. Obtenido de

http://www.cs.cinvestav.mx/TesisGraduados/2008/tesisJesusBarron.pdf

Page 30: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

30

Este tipo de métodos para generar seguridad en las comunicaciones permiten ser

acoplados en cualquier solución y sus objetivos de protección pueden ser diversos

por lo cual su aplicación en las redes grid podría ser uno de los muchos ejemplos

de implementación en los que la seguridad de paso de información es tan importante

como el sistema mismo.

1.6.3. Marco teórico

1.6.3.1. Criptografía

La criptografía es el arte de encubrir los mensajes con signos convencionales, que

sólo pueden cobrar algún sentido a través de una clave secreta que nace en

conjunto con la escritura. Lo que podemos encontrar en las tablas cuneiformes, y

en los papiros muestran que los primeros egipcios, hebreos, babilonios y asirios

conocieron y aplicaron sus recónditas técnicas para ocultar sus mensajes.

Actualmente el desarrollo de los sistemas informáticos y de las redes de

comunicación, establecen los criptogramas (Rioseco San Martín, 2016)11.

Los algoritmos criptográficos modernos se basan en el empleo de una clave, que

matemáticamente se denota por K. Esta clave suele tomar un valor de entre un

conjunto muy grande de valores posibles, el rango de todos los posibles valores que

puede tomar la clave se denomina espacio de claves (Ayuntamiento de

Fuensalida)12 .

1.6.3.2. Cifrado simétrico

Este tipo de cifrado tiene como propiedad fundamental el uso de una clave que se

genera para realizar su proceso de cifrar y descifrar la información o datos que se

transmiten, Los algoritmos criptográficos simétricos tienen dos versiones: cifrador

en bloque y cifrador en flujo. Una cifra es una palabra para describir un algoritmo

11 Rioseco San Martín, C. (2016). Repositorio Digital Sistema de Bibliotecas Universidad del Bio-Bio. Obtenido de

http://repobib.ubiobio.cl/jspui/bitstream/123456789/1800/1/Rioseco_San_Martin_Constanza.pdf

12 Ayuntamiento de Fuensalida. (s.f.). Obtenido de http://www.fuensalida.es/archivos/ligas/clasificaciones/clasif607.pdf

Page 31: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

31

descifrado. Los cifradores en bloque codifican datos en bloques pequeños de

longitud fija de 64 bits de longitud. Hay muchos cifradores en bloque que incluyen

DES, 3-DES, RC2, RC5, RC6 y Rijndael (conocido como AES) (Mendoza T)13.

Es importante que la clave sea difícil de resolver y el método de cifrado empleado

el adecuado. Con la capacidad computacional disponible hoy en día, dependiendo

del método de cifrado se puede obtener la clave en cuestión de minutos-horas

(Corrales Sanchez, Cilleruelo Rodriguez, & Cuevas Notario)14.

1.6.3.3. Cifrado asimétrico

Este tipo de cifrado es mucho más complejo que el simétrico, ambos tienen la

funcionalidad de tratar la información para que no pueda ser interceptada por

terceros, pero a diferencia estos tipos de sistemas utilizan dos claves, una privada

y una pública (siendo una la inversa de la otra). Ambas pueden ser usadas para

cifrar y descifrar información. Dichas claves están matemáticamente relacionadas

entre sí: la clave pública está disponible para todos, la clave privada es conocida

solo por el individuo, existen varios algoritmos muy utilizados por ejemplo Diffie-

Hellman, RSA, DSA (Pousa, 2011)15.

La mayor ventaja de este sistema es que la distribución de claves es más fácil y

segura que usando clave simétrica. Sin embargo, este sistema tiene varias

desventajas:

13 Mendoza T, J. (s.f.). Universidad Politecnica Salesiana de Ecuador. Obtenido de

https://dspace.ups.edu.ec/bitstream/123456789/8185/1/Demostraci%C3%B3n%20de%20cifrado%20sim%C3%A9

trico%20y%20asim%C3%A9trico.pdf

14 Corrales Sanchez, H., Cilleruelo Rodriguez, C., & Cuevas Notario, A. (s.f.). Universidad de Alcalá. Recuperado el 29 de

09 de 2018, de Universidad de Alcalá:

http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pd

f

15 Pousa, A. (Diciembre de 2011). Universidad Nacional de la Plata. Recuperado el 29 de 09 de 2018, de Facultad de

Informatica: https://postgrado.info.unlp.edu.ar/wp-content/uploads/2014/07/Pousa_Adrian.pdf

Page 32: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

32

● Mayor tiempo de proceso en mismas condiciones respecto a clave simétrica.

● Claves más grandes en sistemas simétricos.

● El mensaje cifrado es más grande que el original.

Por estas razones el principal uso del cifrado asimétrico es solventar los problemas

a la hora de intercambiar las claves del cifrado simétrico. De hecho, normalmente lo

que se hace es compartir las claves simétricas mediante cifrado asimétrico para

posteriormente pasar a un cifrado simétrico más rápido y menos costoso (Corrales

Sanchez, Cilleruelo Rodriguez, & Cuevas Notario)16.

1.6.3.4. Hibridación de sistemas de cifrado

Un esquema de cifrado híbrido es un mecanismo que puede ser construido a partir

de dos esquemas distintos: un mecanismo de encapsulado de llave (KEM) basado

en un esquema de cifrado de llave pública, y un mecanismo de encapsulado de

datos (DEM) basado en un esquema de cifrado de llave privada. La mejor aportación

del cifrado híbrido radica en que resuelve en gran medida el problema de

distribución de llaves para esquemas simétricos y el problema de eficiencia para

esquemas asimétricos (Barrón Vidales, 2008)17.

La criptografía híbrida solventa los problemas de privacidad que podría suponer el

uso del cifrado simétrico y el tiempo de procesado del uso del cifrado asimétrico, de

esta forma se combinan ambas para su uso, cuando, por ejemplo, deseamos

mandar un mensaje, este mensaje lo cifraremos con una clave simétrica, conocida

en este proceso como la clave de sesión, después, cifraremos con la clave pública

del receptor la clave de sesión. Cuando el receptor obtenga el mensaje, primero

16 Corrales Sanchez, H., Cilleruelo Rodriguez, C., & Cuevas Notario, A. (s.f.). Universidad de Alcalá. Recuperado el 29 de

09 de 2018, de Universidad de Alcalá:

http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pd

f

17 Barrón Vidales, J. (Noviembre de 2008). Departamento de Computacion del CINVESTAV. Obtenido de

http://www.cs.cinvestav.mx/TesisGraduados/2008/tesisJesusBarron.pdf

Page 33: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

33

descifrará con su clave privada la clave de sesión, una vez hecho esto podrá

acceder al contenido del mensaje (Amieva, 2015)18.

1.6.3.5. Algoritmo AES

Se trata de un algoritmo de clave simétrica y que cifra por bloques. El tamaño de

bloque es de 128 bits siempre mientras que el tamaño de la clave puede variar entre

los 128, 192 y 256 bits. Sin embargo, si aumenta el tamaño de la clave, también lo

hace el número de rondas necesarias para cifrar, AES es el cifrador de clave

simétrica más importante, la NSA (National Security Agency) permite encriptar

información clasificada como TOP SECRET usando AES con claves de 192 o 256

bits (Martinez de la Torre, 2016)19.

Cada tamaño de llave de cifrado hace que el algoritmo se comporte ligeramente

diferente, por lo que el aumento de tamaño de llave no solo ofrece un mayor número

de bits con los que se pueden cifrar los datos, sino que también aumenta la

complejidad del algoritmo de cifrado.

AES es un algoritmo de cifrado de llave simétrica lo que significa que el cifrado y

descifrado se realiza usando la misma llave (Vargas, Garcia, Martinez, Chavez, &

Muñoz)20.

1.6.3.6. Algoritmo RSA

Tanto para el proceso de cifrado como para el de descifrado, en cada una de las

rondas se utiliza una subclave generada anteriormente mediante la función

KeyExpansion a partir de la clave de cifrado.

18 Amieva, E. (13 de 12 de 2015). enekoamieva. Recuperado el 28 de 09 de 2018, de https://enekoamieva.com/criptografia-

simetrica-asimetrica-e-hibrida/

19 Martinez de la Torre, J. (03 de Octubre de 2016). Repositori Universitat Jaume I. Recuperado el 29 de 09 de 2018, de

http://repositori.uji.es/xmlui/bitstream/handle/10234/164666/TFG_Marti%CC%81nez%20De%20La%20Torre%2C

%20Javier.pdf?sequence=1&isAllowed=y

20 Vargas, J. A., Garcia, L., Martinez, S., Chavez, L., & Muñoz, D. (s.f.). Tecnologico Nacional de Mexico. Recuperado el 29

de 09 de 2018, de http://www.itvictoria.edu.mx/personal/art_investigacion/AES_paralelo_2010.pdf

Page 34: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

34

La función KeyExpansion devuelve una subclave más que el número de rondas que

tiene el algoritmo, esta subclave extra se utiliza antes de realizar todo el proceso de

cifrado o descifrado a la matriz de estado con el objetivo de imposibilitar el

criptoanálisis. En todas las rondas menos la última el algoritmo realiza una serie de

operaciones que van modificando la matriz de estado aportando confusión o difusión

al mensaje a cifrar (Bonilla Palencia, 2012)21.

1.6.3.7. Tipos de ataques informáticos conocidos

Dentro de los sistemas de cifrado hay diferentes modos de proceder a vulnerar la

información, dentro de los ataques más importantes que se realizan a los sistemas

criptográficos se pueden encontrar dos, los algoritmos de cifrado simétrico por

bloques y los algoritmos de cifrado simétrico de flujo de datos, los cuales están

compuestos por diferentes modalidades.

● Algoritmos de cifrado simétrico por bloques

● Criptoanálisis diferencial

● Criptoanálisis lineal

● Explotación de claves débiles

● Ataques algebraicos

● Algoritmos de cifrado simétrico de flujo de datos

● Complejidad lineal

● Ataques de correlación

1.6.3.8. Computación en grid

La Computación Grid ha surgido como un importante campo. Contrario a otras

arquitecturas donde el enfoque es crear computadoras de gran rendimiento medido

en número de cálculos de punto flotante por unidad de tiempo, la importancia del

Grid está definida en términos de cantidad de trabajo que puede despachar en una

21 Bonilla Palencia, E. (3 de Mayo de 2012). Universidad Carlos III de Madrid. Obtenido de

https://orff.uc3m.es/bitstream/handle/10016/15402/pfc_eduardo_bonilla_palencia_2012.pdf?sequence=2

Page 35: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

35

unidad de tiempo, la tecnología GRID no es revolucionaria, más bien se puede decir

que ha evolucionado de otras tecnologías como lo son: Sistemas Distribuidos,

Vitalización, Web Services, Internet, Criptografía (Mendoza T)22 .

Es el sistema de computación distribuido se da la facilidad de compartir los recursos

no centrados geográficamente para resolver los distintos problemas de gran

magnitud, además brinda muchas ventajas frente a otras tecnologías de esa época,

entre estas ventajas esta: una multitud de computadoras conectadas en una red,

usando grid tiene una potencia ilimitada, la conexión entre diferentes máquinas no

genera ningún problema ya brinda una perfecta integración de sistemas y

dispositivos heterogéneos, trata en síntesis de dar una alternativa de solución

altamente escalable, potente y flexible, para evitar problemas de falta de recursos

(cuellos de botella) y jamás queda obsoleta, ya que tiene la posibilidad de modificar

el número y características de sus elemento (Mariel, 2012)23.

1.6.3.9. Seguridad de la información

La seguridad informática es la disciplina que ocupa de diseñar normas,

procedimientos, métodos y técnicas orientados a proveer condiciones seguras y

confiables, para el procesamiento de datos en sistemas informáticos.

La decisión de aplicarlos es responsabilidad de cada usuario (Orea, 2010)24.

22 Mendoza T, J. (s.f.). Universidad Politecnica Salesiana de Ecuador. Obtenido de

https://dspace.ups.edu.ec/bitstream/123456789/8185/1/Demostraci%C3%B3n%20de%20cifrado%20sim%C3%A9

trico%20y%20asim%C3%A9trico.pdf

23 Mariel, A. M. (2012). Grid Computing vs. Cloud Computing. Obtenido de revistasbolivianas:

http://www.revistasbolivianas.org.bo/scielo.php?pid=S1997-40442012000200007&script=sci_arttext

24 Orea, S. V. (23 de 08 de 2010). Universidad Tecnológica de Izúcar de Matamoros. Obtenido de

http://www.utim.edu.mx/~svalero/docs/Antologia%20Seguridad%20de%20la%20Informacion.pdf

Page 36: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

36

Es la información el elemento principal a proteger, resguardar y recuperar dentro de

las redes empresariales, se trata de garantizar que los recursos informáticos de una

compañía estén disponibles para cumplir sus propósitos, es decir, que no estén

dañados o alterados por circunstancias o factores externos, es una definición útil

para conocer lo que implica el concepto de seguridad informática (Orea, 2010)25.

Los términos seguridad de la información, seguridad informática y seguridad en la

red a menudo se utilizan indistintamente. Estos conceptos están muy relacionados

y comparten los objetivos comunes de la protección de la confidencialidad,

integridad y disponibilidad de la información; sin embargo, hay algunas diferencias

sutiles entre ellos (Soriano)26.

1.6.3.10. Metodología para el desarrollo de software

1.6.3.10.1. Waterfall Process

Esta es una metodología que se caracteriza por el hecho de que se queda en una

fase, hasta que esta está totalmente terminada y es ahí donde pasa a la siguiente,

su principal inconveniente es que ante cualquier error se pierde tiempo muy valioso

porque toca devolverse tanto en el proceso de desarrollo como en el de la

documentación. (Camacho, 2013)27

1.6.3.10.2. Rational Unified Process

Es un proceso de software iterativo, es adaptable y entallado para satisfacer las

necesidades del equipo de desarrollo, pero es una metodología muy pesada, es

muy completo pero muy complejo para los proyectos de desarrollo ágil por lo que

pierde mucho tiempo en la documentación de los procesos.

25 Orea, S. V. (23 de 08 de 2010). Universidad Tecnológica de Izúcar de Matamoros. Obtenido de

http://www.utim.edu.mx/~svalero/docs/Antologia%20Seguridad%20de%20la%20Informacion.pdf

26 Soriano, M. (s.f.). Seguridad en redes y seguridad de la información. Recuperado el 28 de 09 de 2018, de improvet:

http://improvet.cvut.cz/project/download/C2ES/Seguridad_de_Red_e_Informacion.pdf

27 Camacho, J. D. (04 de 2013). northware.mx. Obtenido de http://www.northware.mx/wp-

content/uploads/2013/04/Desarrollo-cascada-vs-Desarrollo-Agile.pdf

Page 37: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

37

1.6.3.10.3. Essential Unified process

Esta es una mejora del Rational Unified Process, consiste en la integración de

prácticas eficaces de los 3 campos de proceso: el proceso unificado, los métodos

ágiles y el proceso de madurez, respecto a su usabilidad en el desarrollo de

videojuegos hay que decir que por su escalabilidad y la posibilidad de separar

prácticas lo hace adaptable para este fin.

1.6.3.10.4. Team Software Process

Es un conjunto de procesos estructurados que nos dice qué hacer en cada fase del

desarrollo del producto mostrando como conectar cada fase del proyecto con otra,

su objetivo es desarrollar proyectos pequeños en varios ciclos incrementales, su

fortaleza a la hora de desarrollar es que por su organización genera un balance

entre procedo, producto y equipo de trabajo. Esta metodología nos enseña

claramente cómo iniciar un proyecto, guiarlo y analizar los datos obtenidos lo que

es aplicable para cualquier tipo de desarrollo (N, 2012)28.

1.6.3.10.5. Microsoft Solution Framework

Microsoft, consiste en una serie de pequeños ciclos repetitivos que permite un

desarrollo rápido con aprendizaje y retroalimentación en cada uno de ellos, al este

aprender de cada iteración y no tener una estructura fija podría ser adaptable a el

desarrollo por módulos y las pequeñas y rápidas iteraciones serían muy útiles a la

hora de refinar detalles (ESSAMA, 2013)29.

1.6.3.10.6. Scrum Framework

Es una metodología de desarrollo de software iterativo incremental muy usada en

el desarrollo de software ágil. El trabajo está estructurado en ciclos conocidos como

Sprints. Durante cada sprint los equipos toman los requerimientos de una lista

28 N, R. P. (2012). Mathieu. IEEE. Lavallée: Software Team Process: a taxonomy. Proceedings of the International

Conference on Software and System Process.

29 ESSAMA, S. (2013). Microsoft Solution Framework (MSF) for Agile Software Development.

Page 38: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

38

ordenada por prioridades conocidas como historias de usuario. Al terminar cada

sprint, se tiene una versión potencialmente final del producto.

En el desarrollo del prototipo se usará la metodología de desarrollo

ágil Scrum porque nos permite tener funcionalidades en el proyecto a corto

plazo, así mismo nos facilita la tarea de despejar riesgos de manera anticipada con

la respectiva documentación para un desarrollo eficiente, además permite centrarse

en cada módulo muy específicamente, desplazadamente y nos permite mostrar los

resultados de cada iteración tanto al cliente como al director.

Para entender el ciclo de desarrollo de Scrum es necesario conocer las 5 fases que

definen el ciclo de desarrollo ágil:

Etapas de la metodología Scrum:

Concepto: Se define de forma general las características del producto y se asigna

el equipo que se encargará de su desarrollo.

Especulación: En esta fase se hacen disposiciones con la información obtenida y

se establecen los límites que marcarán el desarrollo del producto, tales como costes

y agendas. Se construirá el producto a partir de las ideas principales y se

comprueban las partes realizadas y su impacto en el entorno.

Esta fase se repite en cada iteración y consiste, en rasgos generales, en:

Desarrollar y revisar los requisitos generales.

Mantener la lista de las funcionalidades que se esperan.

Plan de entrega. Se establecen las fechas de las versiones, hitos e iteraciones.

Medirá el esfuerzo realizado en el proyecto.

Exploración: Se incrementa el producto en el que se añaden las funcionalidades

de la fase de especulación.

Revisión: El equipo revisa todo lo que se ha construido y se contrasta con el

objetivo deseado.

Page 39: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

39

Cierre: Se entregará en la fecha acordada una versión del producto deseado. Al

tratarse de una versión, el cierre no indica que se ha finalizado el proyecto, sino que

seguirá habiendo cambios, denominados “mantenimiento”, que hará que el producto

final se acerque al producto final deseado (Anonimo, 2019)30.

Ilustración 5. Esquema de las 5 fases de desarrollo Scrum.

Tomado de: https://es.slideshare.net/YohelTorres/mtrigas-tfc0612memoria

1.6.3.11. Planificación de proyectos de software

El objetivo de planificación del proyecto de Software es proporcionar un marco de

trabajo que permita al gestor hacer estimaciones razonables de recursos, costo y

planificación temporal (medina, 2012)31. Estas estimaciones se hacen dentro de un

marco de tiempo limitado al comienzo de un proyecto de Software, y deberían

actualizarse a medida que progresa el proyecto. Además, las estimaciones deberían

definir los escenarios del "mejor caso" y "peor caso" de forma que los resultados del

30 Anonimo. (02 de 15 de 2019). Slideshare. Obtenido de https://es.slideshare.net/YohelTorres/mtrigas-tfc0612memoria

31 medina, m. (26 de 11 de 2012). http://isittla12.blogspot.com.co/. Obtenido de

http://isittla12.blogspot.com.co/2012/11/unidad-3planificacion-del-proyecto-de.html

Page 40: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

40

proyecto puedan limitarse. El objetivo de la planificación se logra mediante un

proceso de descubrimiento de la información que lleve a estimaciones razonables.

1.6.3.12. Planificación de proyectos

El objetivo de planificación del proyecto de Software es proporcionar un marco de

trabajo que permita al gestor hacer estimaciones razonables de recursos, costo y

planificación temporal. Estas estimaciones se hacen dentro de un marco de tiempo

limitado al comienzo de un proyecto de Software, y deberían actualizarse a medida

que progresa el proyecto. Además, las estimaciones deberían definir los escenarios

del " mejor caso " y " peor caso " de forma que los resultados del proyecto puedan

limitarse. El objetivo de la planificación se logra mediante un proceso de

descubrimiento de la información que lleve a estimaciones razonables.

1.6.3.13. Proyectos de software

Es el proceso de gestión para la creación de un sistema o software, la cual encierra

un conjunto de actividades, una de las cuales es la estimación; estimación es una

actividad importante que no debe llevarse a cabo de forma descuidada. Existen

técnicas útiles para la estimación de costes de tiempo. Y dado que la estimación es

la base de todas las demás actividades de planificación del proyecto y sirve como

guía para una buena Ingeniería de Sistemas y Software.

1.6.3.13.1. Elementos de un proyecto de software

Ámbito del Software: En esta etapa se deben evaluar la función y el

rendimiento que se asignaron al software. El ámbito se define como un

prerrequisito para la estimación.

Recursos: Es la segunda tarea de la planificación del desarrollo de Software

es la estimación de los recursos requeridos para acometer el esfuerzo de

desarrollo de Software.

Cada recurso queda especificado mediante cuatro características:

o Descripción del recurso.

o Informes de disponibilidad.

Page 41: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

41

o Fecha cronológica en la que se requiere el recurso.

o Tiempo durante el que será aplicado el recurso.

1.6.3.14. Desarrollo en JPA

JPA es una abstracción que está por encima de JDBC lo que permite ser

independiente de SQL. Todas las clases y anotaciones de esta API se encuentran

en el paquete javax.persistence. Los principales componentes de JPA son:

Mapeo de base de datos relacionales (ORM). Es el mecanismo para mapear

objetos a los datos almacenados en una base de datos relacional.

Un API administrador de entidad para realizar operaciones en la

base de datos tales como crear, leer, actualizar, eliminar (CRUD).

El Java Persistence Query Language (JPQL) que permite recuperar datos

con un lenguaje de consultas orientado a objetos.

Las transacciones y mecanismos de bloqueo cuando se accedan a los datos

concurrentemente, la API Java Transaction (JTA) (Pech May, Gomez

Rodriguez, De la Cruz Diaz, & Lara Jeronimo)32.

1.6.3.15. Desarrollo en ReactJs

Refiriéndonos a la página principal (React, s.f.)33, encontramos:

React es una biblioteca de JavaScript para construir interfaces de usuario.

React hace que sea fácil crear interfaces de usuario interactivas. Diseñe

vistas simples para cada estado en su aplicación, y React actualizará y

representará de manera eficiente los componentes correctos cuando sus

datos cambien.

32 Pech May, F., Gomez Rodriguez, M., De la Cruz Diaz, L., & Lara Jeronimo, S. (s.f.). Cinvestav Tamaulipas. Obtenido de

https://www.tamps.cinvestav.mx/~fpech/sd/files/paper001.pdf

33 React. (s.f.). React. Obtenido de https://reactjs.org/

Page 42: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

42

1.6.3.16. Desarrollo en NodeJs

La página principal de Node (NodeJs, s.f.)34 nos dice:

Concebido como un entorno de ejecución de JavaScript orientado a eventos

asíncronos, Node está diseñado para construir aplicaciones en red escalables. Se

pueden manejar muchas conexiones concurrentes. Por cada conexión el callback

será ejecutado, sin embargo, si no hay trabajo que hacer Node estará durmiendo.

Node tiene un diseño similar y está influenciado por sistemas como Event Machine

de Ruby ó Twisted de Python. Node lleva el modelo de eventos un poco más allá,

este presenta un bucle de eventos como un entorno en vez de una librería. En otros

sistemas siempre existe una llamada que bloquea para iniciar el bucle de eventos.

1.6.3.17. Desarrollo en C#, .Net Core

.NET Core es una plataforma de desarrollo de código abierto y propósito general

mantenida por Microsoft y la comunidad .NET en GitHub. Es multiplataforma

(compatible con Windows, macOS y Linux) y se puede utilizar para crear

aplicaciones de dispositivos, nube e IoT (Microsoft, 2018)35.

.NET Core tiene las siguientes características:

Multiplataforma: se ejecuta en sistemas operativos Windows, macOS y

Linux

Consistente en todas las arquitecturas: ejecuta su código con el mismo

comportamiento en múltiples arquitecturas, incluidas x64, x86 y ARM.

Herramientas de línea de comandos: incluye herramientas de línea de

comandos fáciles de usar que se pueden usar para el desarrollo local y en

escenarios de integración continua.

34 NodeJs. (s.f.). NodeJs. Obtenido de https://nodejs.org/es/about/

35 Microsoft. (31 de 07 de 2018). Docs Microsoft. Obtenido de https://docs.microsoft.com/en-us/dotnet/core/about

Page 43: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

43

Implementación flexible: se puede incluir en su aplicación o se puede

instalar de lado a lado en toda la máquina.

Compatible: .NET Core es compatible con .NET Framework, Xamarin y

Mono, a través de .NET Standard.

Código abierto: la plataforma .NET Core es de código abierto, con licencias

MIT y Apache 2. .NET Core es un proyecto de la Fundación .NET.

Compatible con Microsoft: .NET Core es compatible con Microsoft, por

.NET Core Support.

1.6.3.18. Servicios Rest

REST (Representational State Transfer) es un estilo de arquitectura para desarrollar

servicios. Los servicios web que siguen este estilo deben cumplir con las siguientes

premisas.

Cliente/Servidor: Como servicios web son cliente servidor y definen una interface

de comunicación entre ambos separando completamente las responsabilidades

entre ambas partes.

Sin estado: Son servicios web que no mantienen estado asociado al cliente. Cada

petición que se realiza a ellos es completamente independiente de la siguiente.

Todas las llamadas al mismo servicio serán idénticas.

Ilustración 6.Premisa Rest sin estado.

Tomado de: https://www.arquitecturajava.com/servicios-rest/

Page 44: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

44

Arquitectura en Capas: Todos los servicios REST están orientados hacia la

escalabilidad y un cliente REST no será capaz de distinguir entre sí está realizando

una petición directamente al servidor, o se lo está devolviendo un sistema de caches

intermedio o por ejemplo existe un balanceador que se encarga de redirigirlo a otro

servidor (Alvarez Caules, 2013)36.

Ilustración 7.Arquitectura en capas.

Tomado de: https://www.arquitecturajava.com/servicios-rest/

1.6.3.19. Desarrollo MySql

MySQL es un sistema gestor de bases de datos. Pero la virtud fundamental y la

clave de su éxito es que se trata de un sistema de libre distribución y de código

abierto. Lo primero significa que se puede descargar libremente de Internet (por

ejemplo, de la dirección (www.mysql.com); lo segundo (código abierto) significa que

cualquier programador puede remodelar el código de la aplicación para mejorarlo.

Esa es también la base del funcionamiento del sistema Linux, por eso MySQL se

distribuye fundamentalmente para Linux, aunque también hay versiones para

Windows (Sanchez, 2004)37.

36 Alvarez Caules, C. (14 de Junio de 2013). arquitecturajava. Obtenido de https://www.arquitecturajava.com/servicios-rest/

37 Sanchez, J. (2004). Cartagena99. Obtenido de MySQL Guia Rapida:

http://www.cartagena99.com/recursos/programacion/apuntes/mysql.pdf

Page 45: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

45

1.6.3.20. WebSockets

Los WebSocket fueron introducidos recientemente con la llegada de HTML5 y es

sin duda una de las mejoras más esperadas. Los WebSockets nos permite trabajar

de forma bidireccional entre el navegador y el servidor, permitiendo enviar y recibir

mensajes de forma simultánea (Full Duplex) y manteniendo siempre una conexión

activa con el servidor mediante Sockets TCP (Blancarte, 2017)38.

Ilustración 8.Funcionamiento WebSocket.

Tomado de: https://www.oscarblancarteblog.com/2017/02/20/introduccion-a-lo-websocket/

1.6.3.21. Modelo vista controlador

El modelo vista controlador (MVC) es un patrón de arquitectura de software que

separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y

el módulo encargado de gestionar los eventos y las comunicaciones. Para ellos

MVC propone a construcción de tres componentes distintos que son el modelo, la

vista y el controlador, es decir, por un lado, define componentes para la

representación de la información, y por otro lado para la interacción del usuario.

Este patrón de arquitectura de software se basa en la idea de reutilización de código

y la separación de conceptos, características que buscan facilitar la tarea de

desarrollo de aplicaciones y su posterior mantenimiento (Gallego, 2016)39.

38 Blancarte, O. (20 de Febreo de 2017). OscarBlancarteBlog. Obtenido de Introduccion a los WebSocket:

https://www.oscarblancarteblog.com/2017/02/20/introduccion-a-lo-websocket/

39 Gallego, A. J. (01 de 2016). gitbook.com. Obtenido de https://www.gitbook.com/book/ajgallego/laravel-5/details

Page 46: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

46

Ilustración 9.Arquitectura MVC.

Tomado de: https://symfony.com/legacy/doc/jobeet/1_3/es/04?orm=Propel

1.6.4. Marco conceptual

Cifrado: Cifrar es transformar información con el fin de protegerla de miradas ajenas.

Al aplicar cifrado, un mensaje se altera hasta volverse irreconocible o

incomprensible, pero la información no se pierde, sino que puede recuperarse más

adelante (Ferri-Benedetti, 2013)40.

Existen muchas técnicas de cifrado. La mayoría de ellas puede clasificarse en tres

grandes familias:

● Cifrado clásico

● Cifrado simétrico o de clave secreta

● Cifrado asimétrico o de clave pública

40 Ferri-Benedetti, F. (23 de 07 de 2013). softonic. Obtenido de https://www.softonic.com/articulos/que-es-el-cifrado-

encriptar

Page 47: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

47

Descifrado: Declarar lo que está escrito en cifra o en caracteres desconocidos, sirviéndose de

clave dispuesta para ello, o sin clave, por conjeturas y reglas críticas (Española,

s.f.)41.

Algoritmo hibrido: Es un algoritmo que combina dos o más algoritmos que resuelven el mismo

problema, ya sea eligiendo uno (según los datos) o cambiando entre ellos a lo largo

del algoritmo.

Esto generalmente se hace para combinar las características deseadas de cada

uno, de modo que el algoritmo general sea mejor que los componentes individuales

(IGI-global, n.d.)42.

Grid Computing: La importancia del Grid está definida en términos de Cantidad de trabajo que puede

despachar en una unidad de tiempo.

La Grid Computing toma importantes características de estas tecnologías para

desarrollar un sistema que pueda proveer recursos computacionales para tareas

específicas (Barrera, Peñafiel, Serrano, & Gaibor M.)43.

C#: Leído en inglés “C Sharp” y en español “C Almohadilla”, es el nuevo lenguaje de

propósito general diseñado por Microsoft para su plataforma .NET. Aunque es

posible escribir código para la plataforma .NET en muchos otros lenguajes, C# es

el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que

programarla usando C# es mucho más sencillo e intuitivo que hacerlo con

cualquiera de los otros lenguajes ya que C# carece de elementos heredados

41 Española, R. A. (s.f.). REA. Recuperado el 27 de 09 de 2018, de http://dle.rae.es/?id=Ceu04o5

42 IGI-global. (s.f.). IGI-global. Recuperado el 27 de 09 de 2018, de https://www.igi-global.com/dictionary/particle-swarm-

optimization-algorithm-its/13449

43 Barrera, R., Peñafiel, H., Serrano, M. V., & Gaibor M., J. (s.f.). Repositorio de Escuela Superior Politecnica del Litoral.

Recuperado el 29 de 09 de 2018, de

https://www.dspace.espol.edu.ec/bitstream/123456789/7236/3/GRID%20COMPUTING.pdf

Page 48: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

48

innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo

de .NET (Gonzalez Seco) 44.

NodeJs: Está diseñado para funcionar en la capa del servidor, pero puede utilizarse del lado

del cliente de código abierto basado en JavaScript, que permite generar servicios

escalables, que utiliza modelos asíncronos y dirigidos por eventos.

JPA: Acrónimo referente a java persistent api, es un framework que permite manejar la

persistencia que se implementa en Java EE, compuesto por clases y métodos que

permiten almacenar información con base a la persistencia orientada a objetos.

Rest: Interfaz que conecta sistemas que utilizan el protocolo http, el cual permite generar

respuestas y operaciones en formatos de tipo JSON, XML, utilizando los verbos de

petición como lo son GET, POST, PUT, DELETE.

ReactJs: Es una librería de JavaScript de código abierto lanzada por Facebook, la cual

permite crear interfaces de usuario basado en la creación de componentes y

renderizado de DOM propio.

MySql: Es un gestor de base de datos, el cual permite almacenar datos, consultar y realizar

operaciones para generar información, basada en el esquema relacional.

BOINC: BOINC es una plataforma para computación de alto rendimiento a gran escala

(miles o millones de computadoras). Se puede usar para computación voluntaria

(usando dispositivos de consumo) o computación en grilla (usando recursos de la

44 Gonzalez Seco, J. A. (s.f.). Universidad de Murcia. Obtenido de El lenguaje de programacion C#:

http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf

Page 49: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

49

organización). Admite aplicaciones virtualizadas, paralelas y basadas en GPU

(BOINC, s.f.)45.

VMWARE: VMware Workstation Player se instala como una aplicación de entorno de escritorio

estándar. Una vez instalado, VMware Workstation Player le permite instalar

sistemas operativos nuevos y ejecutarlos como máquinas virtuales en una ventana

por separado. En VMware Workstation Player, se incluyen funciones que permiten

que los usuarios creen y configuren sus propias máquinas virtuales para un

rendimiento óptimo y accedan a cualquier dispositivo que esté conectado a la PC

(vmware, s.f.) 46.

45 BOINC. (s.f.). Obtenido de Computar para la Ciencia: https://boinc.berkeley.edu/

46 vmware. (s.f.). vmware. Obtenido de https://www.vmware.com/co/products/player/faqs.html

Page 50: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

50

1.7. Metodología de desarrollo.

Para el desarrollo del proyecto se selecciona la metodología Scrum, dadas sus

técnicas de desarrollo ágil y el modo en el que se encuentra compuesto el proyecto

permite que sea un método preciso para despejar riesgos durante todo el proceso

de evolución de forma anticipada gracias a cada iteración y salidas en su desarrollo,

permitiendo el cumplimiento de los objetivos en los tiempos estipulados de manera

exitosa.

Las fases o procesos de la metodología scrum están enmarcados en cajas de

tiempo lo que nos permite manejar de manera eficaz las diferentes etapas del

proyecto.

1.7.1. Inicio del ciclo.

El ciclo inicia con la reunión de interesados (stakeholders) en la que se crea la

descripción de la visión del proyecto. Luego el product owner crea la lista priorizada

del producto (prioritized product backlog) que contiene la lista de los requerimientos

en orden de prioridad para el negocio y el proyecto en forma de historias de usuario

(Lizeth, 2017)47.

Para el proyecto la definición de historias de usuario está dada por lo objetivos del

proyecto y cada una de las diferentes funcionalidades contempladas en el, logrando

generar la planificación de tareas de manera priorizada de acuerdo con las

dependencias entre los diferentes sistemas (Scrum Manager, 2016)48.

47 Lizeth, Y. (2017). platzi. Recuperado el 28 de 09 de 2018, de https://platzi.com/blog/que-es-scrum-y-los-roles-en-scrum/

48 Scrum Manager. (2016). Retrieved from http://scrummanager.net/files/scrum_manager.pdf

Page 51: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

51

1.7.2. Sprint

Un Sprint es una de las cajas de tiempo de Scrum, donde el equipo de Scrum trabaja

en la creación de los entregables, el Sprint inicia con la reunión de planeación del

sprint (Sprint planning meeting) donde se analizan las historias de usuario y de

acuerdo al orden establecido en el backlog ya priorizado, se define la salida del ciclo

(Lizeth, 2017)49.

En el proyecto se han definido ciclos de sprint donde previa planificación del

backlog, se realizan las tareas definidas por iteración con el fin de dar cumplimiento

a salidas definidas que permiten el correcto desarrollo del proyecto en las siguientes

etapas (Scrum Manager, 2016)50.

1.7.3. Entregables

Si los entregables cumplen con los criterios de aceptación definidos el product

owner los acepta y reinicia el ciclo, una de las ventajas de usar Scrum es que

siempre se está pensando en mejorar por eso es importante siempre al final de cada

sprint realizar una reunión de retrospectiva del sprint en la que se analizan los

problemas presentados y las lecciones aprendidas (Lizeth, 2017)49.

Una vez finalizado cada sprint se tiene contemplado realizar una revisión del

entregable por parte del director de proyecto con el fin de obtener un feedback o

retroalimentación de lo ocurrido durante la ejecución de la iteración en cuestión

permitiendo identificar puntos que por alguna razón pudieron no haberse tenido en

cuenta respecto al producto y proyecto, analizar riesgos, ver puntos débiles y fuertes

en la ejecución de actividades, etc. dando paso a la planificación de la nueva etapa

de acuerdo al backlog especificado en un inicio (Proyectos Agiles, n.d.)51.

49 Lizeth, Y. (2017). platzi. Recuperado el 28 de 09 de 2018, de https://platzi.com/blog/que-es-scrum-y-los-roles-en-scrum/

50 Scrum Manager. (2016). Retrieved from http://scrummanager.net/files/scrum_manager.pdf

51 Proyectos Agiles. (s.f.). Obtenido de https://proyectosagiles.org/que-es-scrum/

Page 52: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

52

Finalmente, para el cierre del proyecto se establece la presentación del producto

con las respectivas integraciones de cada sprint ejecutado con las salidas de la

metodología, documentación y pruebas realizadas.

1.8. Factibilidad.

1.8.1. Técnica.

Para la adecuada realización del prototipo mencionado y todo lo que este conlleva

es requerido verificar si se cuenta con los recursos técnicos necesarios, donde se

tienen que tener en cuenta los lenguajes de programación requeridos, para nuestro

caso, Java con el uso de JPA, C# y .Net Core, NojeJs y ReactJs, manejar y

comprender el gestor de base de datos que para este caso es Mysql además de

contar con el sistema operativo que permite montar los servicios y el prototipo a

desarrollar.

para realizar los servicios utilizaremos JPA acompañado de Mysql, C# y .Net Core,

los cuales nos brindan las herramientas necesarias para la creación de cada método

y funcionalidad que requiere el prototipo, por otro lado, se utilizara NodeJs para la

creación de un socket que se encargará de comunicar a los usuarios que ingresaran

a la aplicación de escritorio la cual estará diseñada mediante la librería ReactJs.

1.8.2. Operativa.

Para el desarrollo y culminación de este proyecto, se contará con el siguiente equipo

operativo.

La realización del proyecto estará a cargo de los ESTUDIANTES DE INGENIERIA

EN TELEMATICA: ANDRES MAURICIO CLAVIJO MEJIA y JHON ALEXANDER

CHACON TORRES, bajo la supervisión y revisión del docente e ingeniero

GERARDO CASTANG MONTIEL quien tendrá la función de guiar a los estudiantes

en el proceso de desarrollo del prototipo propuesto.

Page 53: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

53

1.8.3. Legal.

El desarrollo del proyecto mencionado anteriormente se realiza bajo una licencia

publica para este caso nosotros hemos seleccionado la licencia GNU GPL “General

Public Licence”, la cual no conlleva ningún trámite legal, así, esto quiere decir que

es libre para todos los usuarios que deseen disponer de ella (GNU Operating

System, s.f.)52.

Cualquier software para la realización de un programa o aplicación está ligada a un

estándar de formalidad y derechos de autor, lo cual hace que estén ligadas a unas

normas de comercialización ya sea en su defecto de libre adquisición o compra del

mismo

Para la realización de este proyecto no es necesario realizar la compra de ninguna

licencia de software, ya que las herramientas mencionadas anteriormente son de

código libre y en cuenta las de C# y .Net Core existen licencias de uso para

estudiantes, del mismo modo la base de datos con la que se cuenta en este caso

Mysql se encuentra disponible de manera gratuita para el desarrollo de cualquier

aplicación.

Por otro lado, tampoco es necesario adquirir una licencia paga o privada para la

adquisición del sistema operativo pues esta cuenta con una versión gratuita o de

prueba que ofrece Microsoft ideal para la realización y montaje de los entornos de

virtualización deseados

1.8.4. Económica.

1.8.4.1. Recurso humano.

En la siguiente tabla se hace la inclusión de los costos requeridos por uso de

recursos humanos para generar una aproximación real del valor del proyecto.

52 GNU Operating System. (n.d.). Licenses. Retrieved from gnu: https://www.gnu.org/licenses/licenses.html#GPL

Page 54: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

54

Los recursos humanos son considerados uno de los más importantes y costosos al

momento de realizar cualquier tipo de proyecto, para realizar el total de cada

persona involucrada se ha decidido utilizar el equivalente a los precios que se

pueden obtener en diferentes paginas o personas relacionadas con este fin.

Nombre Función Horas diarias dedicadas al mes

Valor hora día

Meses dedicados

Valor mensual

Valor total

Ing. Gerardo Castang

Tutor 20 $ 35.000

6 meses $ 700.000 $ 4.200.000

Andres Mauricio Clavijo Mejía

Ejecutor del proyecto

90 $ 20.000

6 meses $ 1.800.000

$ 10.800.000

Jhon Alexander Chacón Torres

Ejecutor de proyecto

90 $ 20.000

6 meses $ 1.800.000

$ 10.800.000

Total $ 25.800.000

Tabla 1.Recurso humano.

1.8.4.2. Recursos tecnológicos.

En la siguiente tabla se hace la inclusión del software y hardware requerido.

Nombre Cantidad Costos ($) Total ($)

Computador 2 $ 1.600.000 $ 3.200.000

Entorno de desarrollo Java-JPA

2 0.0 0.0

Entorno de desarrollo NodeJs

1 0.0 0.0

Page 55: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

55

Gestor base de datos Mysql

1 0.0 0.0

Entorno de desarrollo ReactJs

1 0.0 0.0

Entorno de desarrollo C# y .Net Core

1 0.0 0.0

Entorno de desarrollo del servicio

2 0.0 0.0

Entorno de virtualización de servidores

1 0.0 0.0

Sistema operativo computadores “Windows”

2 “versiones de prueba”

0.0 0.0

Software para análisis de tráfico “herramientas libres”

n- puede ser sujeto a varias que se encuentren con licencia gratuita

0.0 0.0

Referencias sobre criptoanálisis

n- documentos o información digital

0.0 0.0

Total $ 3.200.000

Tabla 2.Recursos tecnológicos.

Page 56: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

56

1.8.4.3. Recurso transporte.

Viajes relacionados a reuniones de los ejecutores para realizar comprobación y

realización de pruebas del sistema.

Recurso Cantidad de viajes

Valor unitario Valor total

Tutor 6 $ 12.000 $ 72.000

Ejecutores 10 $ 12.000 $ 120.000

Total $ 192.000

Tabla 3.Recurso transporte.

1.8.4.4. Otros gastos

Nombre Valor total ($)

Gastos papelería $ 50.000

Internet $ 180.000

Gastos administrativos $ 100.000

Total $ 330.000

Tabla 4.Otros gastos.

1.8.4.5. Costo total.

Nombre del recurso Valor ($)

Total, recurso humano $ 25.800.000

Total, recurso tecnológico $ 3.200.000

Total, recurso de transporte $ 192.000

Otros gastos $ 330.000

costos imprevistos (10%) $ 2.952.200

Tabla 5.Costo total

Page 57: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

57

1.9. Resultados esperados

Se espera como resultados del proyecto:

Plantear mecanismos para el cifrado de información a partir de sistemas

robustos actuales, donde sea posible evidenciar mejoras en eficiencia y/o

seguridad.

El desarrollo de un algoritmo de cifrado, usando operaciones matemáticas

del modelo de AES y RSA entablando nuevas formas del paso de llaves entre

los sistemas de comunicación asociados.

La configuración de una de una red de comunicación en forma de grid en la

cual se exponga el modelo planteado analizando la información que se

transmite.

Un sistema de mensajería implementado sobre la red en grid que haga uso

del método de cifrado desarrollado, permitiendo demostrar su modo de

trabajo y usabilidad.

Page 58: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

58

1.10. Impactos

Con la realización de este proyecto se esperan impactos en varios ámbitos:

Tecnológico, al lograr proponer un método de cifrado donde se realiza una

demostración de factibilidad mediante su implementación, logrando un

avance en el campo de investigación en seguridad tecnológica.

Académico, al permitir el desarrollo de mejoras a tal nivel de aplicar ingeniería

por medio de la utilización de modelos de servicios que permitan darles

fortaleza a los algoritmos ya conocidos.

Social, en el cual se muestra cómo es posible concebir otros modelos en los

que se busca principalmente la integridad y protección de la información en

los procesos de transmisión de los datos.

Investigativo, el proyecto por una parte pretende dar continuación a modelos

de encriptación híbrida ya planteados por diferentes autores de modo que

permita establecer otros puntos de vista a los problemas contemplados para

sus desarrollos.

Page 59: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

59

1.11. Cronograma de actividades

Page 60: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

60

Page 61: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

61

2. Fase de inicio.

2.1. Incertidumbre.

En la definición del proyecto y reunión del equipo de trabajo se reúnen los

principales requerimientos, que posteriormente permitieron la conceptualización y

adecuación de cada sprint con el cual debería realizarse el desarrollo, esto con el

fin de tener una visión del producto y entrar a priorizar sobre algunos temas.

2.1.1. Requerimientos informales.

Se requiere de una aplicación de escritorio que permita realizar la comunicación de

usuarios con el fin de aplicar el prototipo de cifrado y brindar una comunicación y

paso de mensajes de manera cifrada.

Desarrollar la aplicación de escritorio que permita probar el prototipo de

cifrado

Desarrollar los servicios que permitan la comunicación de todo el proyecto

Desarrollar el servicio que permita el cifrado de la información

Desarrollar el servicio que permita pasar la información de un usuario a otro

Implementar herramientas que permitan probar la comunicación y cifrado

2.2. Descripción de las funcionalidades.

Según los requerimientos que se pudieron obtener en las reuniones iniciales y en

busca de darle profundización a cada aspecto del proyecto, se obtienen una mejor

descripción de las funcionalidades con el fin de permitirnos generar las Historias

de usuario.

3. Historias de usuario.

En esta parte del proyecto se decidió usar un solo formato para realizar las historias

de usuario, que tuvieron en cuenta los requerimientos del grupo de trabajo.

Page 62: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

62

Ilustración 10. Historias de Usuario.

Page 63: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

63

Ilustración 11.Historias de Usuario

Page 64: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

64

4. Definición y priorización de Product Backlog.

4.1. Creación del product backlog.

En esta parte del proyecto lo que se hizo fue, tomar cada historia de usuario y darle

un alias e ingresarlas en el Product Backlog para el cual se usó el siguiente formato:

Ilustración 12.Formato Product BackLog.

4.2. Priorización del product backlog.

Como se puede apreciar en esta parte solo se ingresaron las historias de usuario al

Product Backlog, pero estas se deben priorizar, según:

Su funcionalidad.

Que sean independientes de otras historias.

Que sean necesarias para la creación de un entregable.

4.3. Pila del producto.

Tabla 6.Priorización del Product Backlog.

Page 65: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

65

5. Sprint planning.

En esta parte se busca organizar y estimar cuántas historias deben ir por sprint,

cuanto se demoran y su prioridad. Según la reunión del Sprint Planning se acordó

que serían 4 Sprint para desarrollar el producto y que historias irían en cada uno.

Además, a cada historia se le dio una prioridad y un tiempo estimado de desarrollo,

con el cual podemos calcular el tiempo estimado de cada sprint. Se da por

“terminada” una tarea cuando esta se encuentre completamente funcional y no

dependa de otros pendientes para que trabaje 100%.

Ilustración 13.Scrum Taskboard del Proyecto.

Page 66: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

66

5.1. Sprint 0.

Historias asignadas: Identificación de Origen-Destino, definición Cifrado

y Descifrado AES, definición Cifrado y Descifrado RSA, firmado de

Información con RSA, validación de información firmada

Tiempo estimado: 14 días, horario hábil.

5.2. Sprint 1.

Historias asignadas: Sección de registro, obtener información usuaria,

modelo BD, arquitectura Rest, aplicación de escritorio, servicio de chat,

usuarios conectados, chat de usuarios, métodos de distribución de llaves,

validación de llaves existentes, método de almacenamiento seguro llaves

privadas, arquitectura SOAP.

Tiempo estimado: 27 días, horario hábil.

5.3. Sprint 2.

Historias asignadas: Servidores virtuales, aplicación servidor, gestor

BD, Implementación BOINC y creación proyecto.

Tiempo estimado: 13 días, horario hábil.

5.4. Sprint 3.

Historias asignadas: Análisis trafico sin protección, análisis trafico

protegido, criptoanálisis.

Tiempo estimado: 13 días, horario hábil.

6. Sprint 0.

En la reunión inicial se estableció atender las historias de usuario 4 y 5 dado que

son necesarias para el desarrollo de los siguientes sprints y así eliminar la

dependencia entre ellos. Se decidió priorizar de la forma descrita en la tabla 7 dado

que para el proceso de autenticación o firma digital es necesario establecer

inicialmente la forma y métodos de cifrado a usar en el proceso de protección de la

información, con esto se definió la pila del sprint que se incluirá en la entrega al final

de la iteración.

Page 67: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

67

Tabla 7.Sprint 0 Backlog.

6.1. Objetivos.

Los objetivos que se deben cumplir para este sprint son:

● Diseñar el algoritmo de cifrado híbrido

● Definir tamaño de llaves para AES y RSA

● Estudiar librería AES a usar en el cifrado híbrido

● Estudiar librería RSA a usar en el cifrado híbrido

Durante las reuniones diarias se aclaran dudas respecto a arquitectura y

accesibilidad del algoritmo desde aplicaciones externas.

6.1.1. Diseñar el algoritmo de cifrado hibrido.

Como se estableció desde el planteamiento del proyecto el uso de los algoritmos

AES y RSA para generar un método de cifrado híbrido capaz de proveer alta

seguridad en comunicación a través de internet, la ilustración 14 presenta el diseño

planteado para su implementación.

Ilustración 14.Modelo de cifrado hibrido.

Page 68: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

68

El proceso de cifrado híbrido en términos generales consiste en proteger la llave

privada de AES, tal como argumenta (Al Hasib, 2008)53, se trata de aprovechar la

ventaja de AES en la velocidad de cifrado de grandes cadenas de datos y las

ventajas del cifrado asimétrico en la distribución de llaves.

Computacionalmente la complejidad en estos métodos de cifrado híbrido se

presenta en el proceso de generación de llaves dado que requiere ejecutar métodos

matemáticos que cumplan las condiciones del cifrado simétrico y asimétrico para

este caso.

AES al trabajar con el byte como elemento básico y así mismo tomarlo como

elemento del campo de Galois, todas sus operaciones de rotación y sumas de

módulo 2 al basarse en este campo finito a los bytes se les puede representar como

polinomios en una indeterminada de grado a los más 7 con coeficientes binarios

dado que si GF(2)[x] es el anillo de polinomios en una indeterminada con

coeficientes en GF(2) y 〈x8−1〉es el ideal de este anillo generado por el polinomio

x8-1, el anillo cociente R8=GF(2)[x]/〈x8−1〉 es también un GF(2) espacio vectorial

de dimensión 8. Existe un isomorfismo(natural) de GF(2)-espacios vectoriales entre

GF(2)8 y R8, llamado la representación polinomial del primero.

El modo de operación del sistema AES es por medio de estados. Un estado se

representa como un arreglo rectangular 4 × N donde cada entrada es un byte y N

depende de la longitud del bloque a cifrar, por ejemplo, si N = 4 se tiene un arreglo

de 16 bytes. Así, un estado se puede representar como un elemento del espacio

vectorial [GF(2)8 ]4N (Tapia-Recillas, 2011)54.

53 Al Hasib, A. &. (2008). A Comparative Study of the Performance and Security Issues of AES and RSA Cryptography.

Convergence Information Technology, International Conference, (págs. 505-510). Finlandia.

54 Tapia-Recillas, H. (2011). miscelaneamatematica. Retrieved 03 15, 2019, from

http://www.miscelaneamatematica.org/Misc53/5306.pdf

Page 69: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

69

Por otro lado RSA, basa su proceso de generación de llaves en la selección de dos

números enteros (p y q), primos y de misma longitud, estos pueden encontrados

eficientemente usando el test de primalidad, posteriormente hace uso de

matemáticos complejos tales como la función indicatriz de Euler, aritmética modular,

el algoritmo de Euclides, entre otros, manteniendo datos en secreto que garantizan

una distribución de clave pública que no permita conocer la privada, a continuación

se relacionan un resumen de los pasos descritos (Ritin Behl, 2015)55.

Toma n = pq el cual es usado como el módulo para las claves públicas y

privadas.

Hace uso de φ(n) = (p − 1) (q − 1) = n - (p + q -1) la cual corresponde a la

función indicatriz de euler con el fin de proporcionar a RSA el grupo

multiplicativo de enteros módulo n.

Selecciona un valor entero e tal que 1 <e< φ(n)y gcd (e, φ(n)) = 1confirmando

que e y φ(n)son coprimos, entonces, e es tomado como el exponente de la

llave pública, esté al tener un peso de Hamming corto y pequeño resulta más

eficiente para cifrar.

Encontrar d≡e−1(mod φ(n)), tal que d es el inverso multiplicativo modular de

e y será tomado como el exponente de la llave privada. Este se puede hallar

frecuentemente usando el algoritmo extendido de Euclides.

Los procesos usados por AES y RSA garantizan que por métodos de fuerza bruta

los datos sean casi imposibles de encontrar, ya sea para tratar de romperlos o

encontrar las llaves de descifrado.

6.1.2. Definir tamaño de llaves para AES y RSA.

Dado que se plantea la implementación de una aplicación de escritorio, de un

entorno real, que hará uso del algoritmo con el fin de ver su funcionalidad se plantea

el uso de llaves de alta longitud para AES y RSA.

55 Ritin Behl, G. S. (2015). semanticscholar. Retrieved 03 15, 2019, from

https://pdfs.semanticscholar.org/2b01/4f9a45f7534733402f4c32aedf11b4d682fe.pdf

Page 70: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

70

Para AES se establece una longitud de llave privada de 256 bits, 14 rondas, de

acuerdo con la NIST (Seagate)56, esta longitud provee una adecuada protección

hasta más allá del año 2031.

Tabla 8.Niveles de Seguridad para cifrados en bloque comunes.

Tomado de: https://infoscience.epfl.ch/record/164539/files/NPDF-32.pdf

Para RSA se establece una longitud de llaves de 2048 bits, cuya longitud está

determinada para brindar una adecuada protección al menos hasta el año 2030, e

incluso hasta el 2040 (Lenstra)57.

Tabla 9.Niveles de Seguridad para cifrados en bloque comunes.

Tomado de: https://infoscience.epfl.ch/record/164539/files/NPDF-32.pdf

Así mismo, para los procesos de firmado y verificación de la información se plantea

el uso de las llaves generadas para cifrado de RSA con el fin de aprovechar los

recursos usados en el proceso de generación de claves y cifrado, a pesar de no ser

el algoritmo de firmas más rápido y sencillo (Faget, 2018)58, adicionalmente

usaremos el algoritmo hash SHA512 para lograr un mensaje suficientemente corto

56 Seagate. (s.f.). Seagate. Obtenido de 128-Bit Versus 256-Bit AES Encryption:

http://www.axantum.com/AxCrypt/etc/seagate128vs256.pdf

57 Lenstra, A. (s.f.). Key Lengths. Obtenido de InfoScience: https://infoscience.epfl.ch/record/164539/files/NPDF-32.pdf

58 Faget, A. (14 de Noviembre de 2018). What are Cryptographic Signatures? | Introduction to the Most Common Schemes.

Obtenido de coindoo: https://coindoo.com/what-are-cryptographic-signatures-introduction-to-the-most-common-

schemes/

Page 71: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

71

y fácil de procesar por el emisor y receptor sin dejar a un lado la seguridad que este

provee.

Tabla 10.Niveles de Seguridad para funciones hash comunes.

Tomado de: https://infoscience.epfl.ch/record/164539/files/NPDF-32.pdf

Ilustración 15. Proceso de firmado digital.

Tomado de: https://coindoo.com/what-are-cryptographic-signatures-introduction-to-the-most-common-schemes/

6.1.3. Estudiar librería AES a usar en el cifrado hibrido.

Después de analizar las diferentes librerías expuestas para el desarrollo en lenguaje

.Net, hemos seleccionado la versión core y más potente del framework de .Net en

su version 4.7.2, AesCryptoServiceProvider, capaz de realizar el uso del algoritmo

AES de manera óptima, generación de IV rápido, seguro y permitiendo setear

parámetros seguros para el proceso de cifrado de la siguiente forma:

Tamaño llave privada: 256 bits.

Padding: PKCS7.

Modo de cifrado en bloque: CBC.

Page 72: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

72

Vector de Inicialización aleatorio.

6.1.4. Estudiar librería RSA a usar en el cifrado hibrido.

De la misma forma que se ha seleccionado el analizado el uso del Framework .Net

4.7.2 para AES, hemos seleccionado RSACryptoServiceProvider el cual para una

complejidad de bits dada genera un par de llaves de este tamaño para hacer uso

posteriormente en los procesos de cifrado, descifrado y firmado.

6.2. Reunión revisión del sprint.

El presente sprint contempló el estudio y análisis de los modelos, librerías y

conceptos necesarios para la implementacion del metodo de cifrado híbrido con el

fin de enfocar el proyecto a los objetivos planteados teniendo en cuenta que este

debe poseer una forma segura de uso a fin de limitar los posibles fallos o problemas

de seguridad que puedan presentarse en la implementación.

Se presenta el análisis realizado de acuerdo el sprint backlog inicial donde se

aceptan los métodos y modelos de implementación generados para la solución.

6.3. Scrum taskboard.

A continuación, se muestra cada historia o tarea que se realizaron, se muestra en

la aplicación para tareas Taiga y como se realiza el desplazamiento de estos

mediante su proceso de desarrollo.

Ilustración 16.Scrum taskboard 1 sprint 0.

Ilustración 17.Scrum taskboard 2 sprint 0.

Page 73: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

73

Ilustración 18.Scrum taskboard 3 sprint 0.

Ilustración 19. Scrum taskboard 4 sprint 0.

6.4. Cierre y entrega.

Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta

satisfactoria del equipo del proyecto y se da por finalizado el sprint 0 para dar paso

al siguiente incremento.

7. Sprint 1.

En la reunión inicial se estableció atender las historias de usuario 1,2 y 3, dado que

en estas se plasman los modelos o estudios expuestos en el sprint 0, los cuales dan

una base sólida para trabajar todos los componentes del servicio de cifrado en su

parte lógica.

En este sprint se realizará el desarrollo de la aplicación de mensajería, los servicios

de cifrado, descifrado, distribución de llaves y su integración general liberando un

entregable sumamente avanzado y bien especificado, se definió la prioridad a partir

de requerimientos en cada historia ya que para desarrollar la historia 2 se hace

necesario contar con el servidor para registro y su respectiva base de datos, así

mismo sucede con la historia 3 la cual requiere la aplicación de mensajería para

obtener información real del servicio definido en la historia 1, con esto se definió la

pila del sprint que se incluirá en la entrega al final de la iteración.

Page 74: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

74

Tabla 11.Sprint 1 Backlog.

7.1. Objetivos.

Para el cumplimiento de este sprint se cuentan con los siguientes objetivos, los

cuales facilitaran tanto la identificación como el desarrollo de las actividades

seleccionadas.

● Método de generación de llaves.

● Desarrollo del algoritmo de cifrado.

● Desarrollo del algoritmo de descifrado.

● Estudiar el concepto de aplicaciones de escritorio con React y Electrón.

● Servicio Rest de registro de usuarios.

● Socket de comunicación de clientes activos.

● Integración de los servicios de información de usuario y cifrado.

● Integración de la aplicación con los servicios desarrollados.

Durante las reuniones se aclaran los requerimientos internos o necesarios que se

necesitaban para la realización o culminación satisfactoria de cada una de las

historias seleccionadas que fueron propuestas y planteadas buscando resolver el

objetivo propuesto.

7.1.1. Método generación de llaves.

Como se mencionaba en el sprint anterior, se diseña un algoritmo de codificación a

partir de la utilización de dos sistemas que permiten tanto cifrado como el descifrado

de la información, para ambos casos es necesario contar con diferentes

mecanismos, cuando dos usuarios intentan realizar una comunicación y estos no

han tenido un enlace previo se procede a realizar un intercambio de llaves secretas

Page 75: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

75

en las cuales se generan la llave AES de cada usuario y luego de esto se le aplica

el algoritmo de RSA con el fin de generar dos llaves más, esto permite que la llave

de AES con la cual se cifrara la información sea compartida mediante RSA

aumentando la seguridad y confidencialidad de los datos.

En este proceso se cuentan con tres diferentes llaves, una de ellas del algoritmo

AES y dos de RSA, la pública de RSA es la que se le envía al otro usuario con el

cual se entabla una comunicación y se almacena de forma local, la privada de este

se almacena en los contenedores de llaves de windows, la de AES es generada en

cada mensaje al igual que su vector de inicialización.

A continuación, se muestra solo la función que permite y llama los métodos para

hacer el proceso de generación de llaves:

Función que genera las llaves

private RSAModel GenerateOwnkeyEncrypts(string partnerKeys)

{

int keySize = FileWriter.parameters.Value.KeyRSASize;

CspParameters cp = new CspParameters();

RSAModel rsaModel = new RSAModel();

try

{

cp.KeyContainerName = "OwnkeyEncrypts"+partnerKeys;

RSACryptoServiceProvider cryptoServiceProvider = new RSACryptoServiceProvider(keySize,cp);

FileWriter.WriteOnEvents(EventLevel.Info,"Inicio proceso de creacion de llaves.");

RSAParameters publicKey = cryptoServiceProvider.ExportParameters(false);

RSAParameters privateKey = cryptoServiceProvider.ExportParameters(true);

FileWriter.WriteOnEvents(EventLevel.Info,"Proceso de creacion de llaves RSA exitoso.");

string publicKeyString = GetStringFromKey(publicKey);|

string privateKeyString = GetStringFromKey(privateKey);

rsaModel.PublicKey = publicKeyString;

}

catch (System.Exception ex)

{

FileWriter.WriteOnEvents(EventLevel.Exception,"Error generando llaves RSA. "+ex.Message);

}

return rsaModel;

}

7.1.2. Desarrollo del algoritmo de cifrado.

Este algoritmo permite que la comunicación que realizan dos usuarios sea de

manera segura, los mensajes que se envían de un extremo a otro siempre están

cifrados, para realizar este procedimiento es necesario contar con la llave de AES

propia y la llave pública RSA del otro usuario, para este caso la llave AES del usuario

que envía el mensaje es quien cifra y mediante la pública del otro usuario se protege

Page 76: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

76

la llave de AES para ser enviada, así, cuando el otro usuario la recibe tiene toda la

información necesaria para leer el mensaje.

A continuación, se muestra solo la función que realiza el proceso de cifrado y como

este genera la respuesta.

Función que cifra el mensaje con AES

internal ResponseEncryptAES EncryptMessage(string mensaje)

{

ResponseEncryptAES response = new ResponseEncryptAES{

result = false

};

byte[] encryptedMessage;

//Inicia proceso para cifrado

FileWriter.WriteOnEvents(EventLevel.Info,"Iniciando proceso de cifrado.");

try

{

if(aes.Key == null || aes.IV == null || mensaje == ""){

FileWriter.WriteOnEvents(EventLevel.Error,"Uno o mas de los argumentos para cifrado aes invalidos.");

}

ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key,aes.IV);

using(MemoryStream msEncrypt = new MemoryStream()){

using(CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)){

using(StreamWriter swEncrypt = new StreamWriter(csEncrypt)){

//write the message to the stream

FileWriter.WriteOnEvents(EventLevel.Info,"Escribiendo mensaje en el bloque de flujo.");

swEncrypt.Write(mensaje);

}

encryptedMessage = msEncrypt.ToArray();

response.encryptedData = encryptedMessage;

response.result = true;

response.privateKey = aes.Key;

response.InitVector = aes.IV;

}

}

}

catch (System.Exception ex)

{

FileWriter.WriteOnEvents(EventLevel.Exception,"Excepcion en intento de cifrado. "+ex.Message);

}

return response;

}

Función que cifra la llave de AES

internal ResponseEncryptAESKey EncryptAESKey(byte[] privateKey, string publicKey)

{

ResponseEncryptAESKey response = new ResponseEncryptAESKey();

FileWriter.WriteOnEvents(EventLevel.Info,"Buscando llave publica en: "+publicKey);

if(File.Exists(publicKey)){

FileWriter.WriteOnEvents(EventLevel.Info,"Llave publica encontrada!!!.");

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

try

{

FileWriter.WriteOnEvents(EventLevel.Info,"Leyendo contenido llave publica.");

string xmlKey = File.ReadAllText(publicKey);

FileWriter.WriteOnEvents(EventLevel.Info,"Importando llave para proceso de cifrado");

RSA.FromXmlString(xmlKey);

response.encryptedKey = RSA.Encrypt(privateKey,true);

Page 77: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

77

FileWriter.WriteOnEvents(EventLevel.Info,"Llave simetrica cifrada de manera exitosa.!!");

response.resul = true;

}

catch (System.Exception ex)

{

FileWriter.WriteOnEvents(EventLevel.Exception,"Error en el proceso de cifrado de llave AES. "+ex.Message);

response.resul = false;

}

}else{

FileWriter.WriteOnEvents(EventLevel.Info,"No se encontro la llave publica para cifrado.");

response.resul = false;

}

return response;

}

7.1.3. Desarrollo del algoritmo de descifrado.

Como se mostró anteriormente el proceso de cifrado necesita de los dos métodos

los cuales generan un algoritmo híbrido entre AES y RSA, para este caso, el

descifrado de la información, recibe un paquete de datos el cual trae diferentes

atributos del mensaje y la llave con la cual se puede obtener la información real que

se está transmitiendo, como se hablaba anteriormente, el mensaje está cifrado con

AES, pero la llave de AES está cifrada con la llave pública RSA, en este caso el

usuario que recibe el paquete obtiene el mensaje esperado descifrando primero con

su privada y luego con la de AES.

A continuación, se muestra solo la función que realiza el llamado de los métodos

necesarios para el proceso de descifrado y como este genera la respuesta.

Función que descifra la llave de AES

internal ResponseRSADecryption DecryptAESKey(byte[] encryptedKey, string containerName)

{

ResponseRSADecryption response = new ResponseRSADecryption{

result = false

};

byte[] decryptedKey;

CspParameters cspParameters = new CspParameters{

Flags = CspProviderFlags.UseExistingKey,

KeyContainerName = "OwnkeyEncrypts"+containerName

};

try

{

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParameters);

FileWriter.WriteOnEvents(EventLevel.Info,"Inicio proceso de descifrado de llave AES.");

decryptedKey = rsa.Decrypt(encryptedKey,true);

response.decryptedKey = decryptedKey;

FileWriter.WriteOnEvents(EventLevel.Info,"Proceso de descifrado de llave AES finalizada correctamente");

}

catch (System.Exception ex)

{

FileWriter.WriteOnEvents(EventLevel.Exception,"Error intentando eliminar las llaves de "+containerName+".

"+ex.Message);

Page 78: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

78

}

return response;

}

Función que descifra el mensaje

internal ResponseAESDecryption DecryptMessage(SendMessageModel messageModel, byte[] decryptedKey)

{

ResponseAESDecryption response = new ResponseAESDecryption{

result = false

};

// Create an AesCryptoServiceProvider object with the specified key and IV.

using(AesCryptoServiceProvider aesDecrypt = new AesCryptoServiceProvider()){

FileWriter.WriteOnEvents(EventLevel.Info,"Inicio proceso de descifrado de mensaje.");

aesDecrypt.Key = decryptedKey;

aesDecrypt.IV = messageModel.initVector;

// Create a decryptor to perform the stream transform.

ICryptoTransform decryptor = aesDecrypt.CreateDecryptor(aesDecrypt.Key,aesDecrypt.IV);

// Create the streams used for decryption.

using (MemoryStream msDecrypt = new MemoryStream(messageModel.encryptedMessage))

{

using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))

{

using (StreamReader srDecrypt = new StreamReader(csDecrypt))

{

// Read the decrypted bytes from the decrypting stream and place them in a string.

response.decryptedMessage = srDecrypt.ReadToEnd();

response.result = true;

FileWriter.WriteOnEvents(EventLevel.Info,"Proceso de descifrado de mensaje finalizado correctamente");

}

}

}

}

return response;

}

7.1.4. Estudiar el concepto de aplicaciones de escritorio con React y Electrón.

Antes de iniciar la construcción de la aplicación de mensajería es necesario conocer

estas dos herramientas las cuales facilitaran el desarrollo, esto nos permitirá diseñar

una aplicación de escritorio más amigable a base de componentes.

7.1.5. Servicio Rest de registro de usuarios.

El desarrollo de este servicio es fundamental, se realiza mediante JPA (Java

Persistent Aplication), el cual nos permite generar servicios y exponerlos mediante

la arquitectura Rest, en este caso el servicio construido guarda la ip de los usuarios

y su respectivo nombre, además, permite que la ip sea consultada mediante el

nombre de usuario, lo que nos permite saber cuáles máquinas compartirán las llaves

generadas.

A continuación, se muestran solo las funciones correspondientes que permiten lo

explicado anteriormente y las respuestas que generan.

Page 79: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

79

● Función que permite agregar nuevos usuarios.

@POST

public Response createAutKeyService(AutKeyService autKeyService){

try {

AutKeyService response =

autKeyServiceService.createAutKeyService(autKeyService);

builder = Response.status(Response.Status.CREATED).entity(response);

return makeCORS(builder, "");

}catch (EJBException e){

builder = responses.getResponse(Response.Status.BAD_REQUEST, DB_ERROR ,new

String[]{}, new String[]{});

return makeCORS(builder, "");

}

● Función que permite obtener información de los usuarios.

@GET

@Path("/autKeyServiceById")

public Response getAutKeyServiceById(@QueryParam("userName") String userName){

AutKeyService autKeyService = autKeyServiceService.getKeyServiceId(userName);

if (autKeyService == null){

builder = responses.getResponse(

Response.Status.NOT_FOUND, "userName",

new String[]{"userName"},

new String[]{userName});

return makeCORS(builder, "");

}else{

builder = Response.ok(autKeyService);

return makeCORS(builder, "");

}

}

7.1.6. Socket de comunicación de usuarios activos.

Para la realización e implementación de este socket se utiliza la librería socket.io

disponible en NodeJs, este nos permitirá manejar los usuarios que acceden al

sistema y crear las conexiones y envió de mensajes de un usuario a otro, está

encargado de manejar la comunicación entre los usuarios.

A continuación, se muestra el código principal que expone el socket y llama las

funciones necesarias.

import {serverOn} from "./example";

const express = require('express');

const app = express();

const server = require('http').createServer(app);

export const io = require('socket.io')(server);

app.use(function(req, res, next) {

var oneof = false;

if(req.headers.origin) {

res.header('Access-Control-Allow-Origin', req.headers.origin);

oneof = true;

}

if(req.headers['access-control-request-method']) {

res.header('Access-Control-Allow-Methods', req.headers['access-control-

request-method']);

oneof = true;

}

if(req.headers['access-control-request-headers']) {

Page 80: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

80

res.header('Access-Control-Allow-Headers', req.headers['access-control-

request-headers']);

oneof = true;

}

if(oneof) {

res.header('Access-Control-Max-Age', 60 * 60 * 24 * 365);

}

// intercept OPTIONS method

if (oneof && req.method == 'OPTIONS') {

res.send(200);

}

else {

next();

}

});

io.on('connection', (socket) => serverOn(socket));

server.listen(5001, () => {

console.log("Backend Server is running on http://localhost:5001");

});

7.1.7. Integración de los servicios de información de usuario y cifrado.

Este servicio también se encuentra con la estructura de servicio Rest, se encarga

de conectar los diferentes servicios creados anteriormente, llamando los métodos

de distribución de llaves, así mismo realizar la solicitud para obtener la información

de los usuarios y posteriormente envía los resultados a la aplicación de mensajería.

A continuación, se muestra solo la función que realiza el llamado de los métodos

necesarios para el proceso y como este genera la respuesta.

public void connectionOk(KeyService keyService){

String ipOrigin = obtainIpUserName(keyService.getUserNameOrigin());

String ipDestination = obtainIpUserName(keyService.getUserNameDestination());

KeyService responseDestination = obtainKeyEncryptDestination(keyService,

ipDestination);

confirmOrigin(responseDestination, ipOrigin);

}

Como se observa se obtienen las ip de las máquinas que se van a comunicar y

luego se obtiene la llave pública del servicio que genera las llaves de RSA.

public KeyService obtainKeyEncryptDestination(KeyService keyService, String ipDestination){

HttpClient httpClient = HttpClientBuilder.create().build();

String url = "http://"+ ipDestination

+":5000/CommunicationManager/Encryption/RequestStoreKeys";

System.out.println("Confirmacion destino" + url);

HttpPost request = new HttpPost(url);

Gson gson = new Gson();

String send = gson.toJson(keyService);

StringEntity entity = new StringEntity(send, ContentType.APPLICATION_JSON);

request.setEntity(entity);

Boolean successFull = true;

Page 81: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

81

BufferedReader rd;

KeyService ksa = new KeyService();

do{

try {

HttpResponse response = httpClient.execute(request);

if (response.getStatusLine().getStatusCode() == 200){

rd = new BufferedReader(new

InputStreamReader(response.getEntity().getContent()));

String line = rd.readLine();

if (line != null) {

ksa = gson.fromJson(line, KeyService.class);

}else{

ksa.setKeyEncrypt("NoData");

}

}else{

ksa.setKeyEncrypt("NoFound");

}

successFull = false;

} catch (IOException ex) {

ex.printStackTrace();

}

}while(successFull);

return ksa;

}

7.1.8. Integración de la aplicación con los servicios desarrollados.

Este objetivo consiste en la creación de la aplicación de escritorio para mensajería,

como se habló anteriormente para esto se hará uso de las herramientas de React y

Electrón. React en este caso nos permitió desarrollar la interfaz y crear los enlaces

necesarios para la comunicación con los servicios de manera óptima, luego se

realiza la aplicación de la herramienta de Electrón la cual convierte nuestra

aplicación web en React en una aplicación de escritorio, como fue planteada.

Este proyecto se diseña bajo una arquitectura planteada en las ilustraciones 20,21

y 22 con el fin de manejar y utilizar componentes de diferentes proveedores pero

que a su vez admite la interoperabilidad de los mismos. El prototipo se basa en la

utilización de servicios Rest, por el lado del servidor realizando llamados a los

usuarios que se quieren comunicar y obtener información registrada de estos y por

el lado de los clientes un servicio que se expone para ser escuchado por el servidor

y por la aplicación de mensajería con el fin de enviar información, realizar el proceso

de cifrado y descifrado

Además de la utilización de herramientas para diseño de interfaz y comunicación

como lo son, React que permiten la creación del servicio de mensajería de una

manera agradable para los usuarios finales y la utilización de Socket.io permitiendo

Page 82: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

82

crear un ambiente de comunicación activo-activo y por lo tanto en tiempo real entre

los usuarios y el servidor.

Complementando la arquitectura propuesta, encontramos la implementación de una

red en grid virtualizada la cual contendrá los servicios Rest hablados anteriormente

y el socket de comunicación, la cual tiene como alcance darle al proyecto un mejor

rendimiento y distribución de recursos para la cantidad de procesos que pueda

tener.

La ilustración 20, nos muestra el diagrama de secuencia del prototipo, en el cual

existen dos usuarios, cliente y receptor quienes en este caso iniciaran una

comunicación, y un servidor el cual se encarga de realizar los respectivos procesos

de direccionamiento y paso de información, como se puede evidenciar, el emisor es

quien realiza una petición al servidor para iniciar una conversación con el receptor,

cuando esta primera llamada ocurre el servidor comienza a realizar las peticiones

entre ambos usuarios para realizar los proceso de generación e intercambio de

llaves lo cual permite que posteriormente estos dos usuarios puedan enviar

mensajes de un punto al otro de manera segura.

Page 83: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

83

Ilustración 20. Diagrama de secuencia del prototipo.

Page 84: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

84

Ilustración 21. Diagrama de flujo del mensaje.

Page 85: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

85

Ilustración 22.Arquitectura del prototipo.

Page 86: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

86

7.2. Reunión revisión del sprint.

El presente sprint contempló la implementación de los servicios para mensajería,

comunicación, cifrado, descifrado y firma de información necesarios para que el

prototipo cumpliera con los objetivos planteados en términos de seguridad y

funcionamiento, garantizando que la integración total de la solución sea viable y

funcional en condiciones normales, es decir, sin entrar a hacer uso de los recursos

de la red en grid.

Se realizaron las respectivas tareas y se presenta la aplicación desarrollada y los

servicios funcionales que permiten su correcto funcionamiento, en el cual se

establece que:

● La aplicación debe tener la opción para finalizar la sesión

● Si un nombre de usuario está registrado informar al usuario que esté ya no

se puede usar.

● Validar y mostrar las diferentes advertencias que el sistema pueda generar,

como usuario repetido, fallas de conexión.

Las sugerencias encontradas y marcadas anteriormente son tomadas en cuenta y

se procede a realizar su respectiva implementación.

7.3. Scrum taskboard.

A continuación, se muestra cada historia o tarea que se realizaron, se muestra en

la aplicación para tareas Taiga.

Ilustración 23.Scrum taskboard 1 sprint 1.

Page 87: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

87

Ilustración 24.Scrum taskboard 2 sprint 1.

Ilustración 25.Scrum taskboard 3 sprint 1.

Ilustración 26.Scrum taskboard 4 sprint 1.

7.4. Cierre y entrega.

La construcción de este sprint fue un factor importante, ya que nos permitirá realizar

la comunicación de dos o más usuarios y de esta manera probar el objetivo principal

del proyecto, para este sprint se cumplen con los objetivos que se plantean y se

culminan los diferentes comentarios que se dieron durante la revisión del sprint, tras

su culminación el sprint actual se da por completado y de esta manera se da paso

para la realización del siguiente.

Page 88: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

88

8. Sprint 2.

En la reunión inicial se estableció atender únicamente la historia de usuario 6, dado

que esta posee una complejidad mayor y requiere la dedicación de todos los

recursos disponibles del proyecto, esta da un inicio a la implementación del proyecto

en una red virtual simulando entornos reales, dado que comprende el uso de

distintos servidores dedicados a las tareas de proyecto grid y servicios de

comunicación, con esto se definió la pila del sprint que se incluirá en la entrega al

final de la iteración.

Tabla 12.Sprint 2 Backlog.

8.1. Objetivos.

Para el cumplimiento de este sprint se cuentan con los siguientes objetivos, los

cuales facilitaran tanto la identificación como el desarrollo de las actividades

seleccionadas.

Montaje ambiente de virtualización

Creación servidores virtuales

Configuración ambiente en Grid

Implementación servicio mensajería sobre el ambiente virtual

Integración servicios general

Durante las reuniones se aclaran los requerimientos internos o necesarios que se

necesitaban para la realización o culminación satisfactoria de cada una de las

historias seleccionadas que fueron propuestas y planteadas buscando resolver el

objetivo propuesto.

8.1.1. Montar ambiente de virtualización.

Se plantea para el desarrollo del proyecto el uso del software de virtualización

Vmware Player Workstation

Page 89: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

89

8.1.2. Crear servidores virtuales.

Se realiza la creación de 3 servidores virtuales (2 servidores de aplicaciones y 1

servidor BOINC), con el fin de simular el ambiente en grid entre dos pcs que harán

las veces de host, se crea una VM de servidor de aplicaciones en cada uno de ellos.

Ilustración 27.VMs Creadas en host1

Se realiza la creación y configuración de la red sobre la VMNet0, la cual usará el

modo de comunicación entre red virtual y host físico de bridge, saliendo por la tarjeta

que brinda la comunicación con la red externa con el fin de simular un equipo

completamente independiente y capaz de interactuar con los demás equipos.

Ilustración 28.Configuración red virtual.

Seguido de realizar la configuración sobre el ambiente de virtualización, se procede

a configurar la tarjeta de red de cada máquina para que haga uso de red virtual

previamente creada, y adicionalmente la configuración de un direccionamiento IP

estático de cada servidor.

Page 90: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

90

Ilustración 29.Configuración tarjeta de red vm.

8.1.3. Configurar ambiente en grid.

Inicialmente se valida conectividad de la red contra el servidor de BOINC ya creado.

Ilustración 30.Conectividad red contra BOINC.

Para la creación del proyecto de red en grid se hace uso del software con licencia

código abierto BOINC, desarrollado por la universidad de California Berkeley el cual

nos permite crear y unirnos a entornos de red en Grid con el fin de hacer uso de los

recursos de cada máquina unida al proyecto para determinadas tareas.

Page 91: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

91

Ilustración 31.Proyecto Cifrado Híbrido en BOINC.

Después de crear el servidor de BOINC y el proyecto para la red en grid, ver paso

a paso de configuración y creación de proyecto en anexo 1, se realiza la creación

de la cuenta y unión de los clientes al proyecto de Cifrado Híbrido.

Ilustración 32. Creación usuario Cliente1.

Una vez se une un cliente al proyecto inicia una tarea de verificación de procesos

contra el servidor a fin de estar disponible para cuando se requiera hacer uso de

sus recursos.

Page 92: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

92

Ilustración 33.Estado conexión cliente y proyecto BOINC.

Es importante resaltar que el ambiente virtual presentado es una simulación de un

posible caso de implementación en la vida real, donde la red en grid está compuesta

por n cantidad de equipos con el fin de prestar sus recursos computacionales a

determinada tarea, el proyecto de cifrado híbrido contempla el uso de los recursos

de dos clientes en estado de reposo y listos para ejecutar las tareas que el proyecto

indique de acuerdo a los jobs creados.

En esta simulación las tareas que lanzará el servidor de cifrado híbrido estarán

directamente relacionadas con la capacidad de carga requerida para el proceso de

distribución de llaves, ejecutándose cada que sea necesario más procesamiento.

Pasando nuevamente a un proyecto empresarial o de la vida real, podemos tomar

como ejemplo las tareas de análisis de datos de la bolsa de valores, estudios de

mercado o minería de criptomonedas, estos escenarios tienen algo en común y es

análisis y procesamiento de millones datos en tiempo real, donde en condiciones

normales un servidor de altas capacidades no lograra un avance significativo, pero

con la colaboración de muchas unidades computacionales conectadas entre sí, sin

importar su ubicación geográfica, es posible distribuir las tareas de procesamiento

y lograr el objetivo que en un principio llevaría más tiempo.

Page 93: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

93

8.1.4. Implementar servicios de mensajería, usuario y comunicación sobre la grid.

En este objetivo se realiza el despliegue y ejecución de los diferentes servicios que

ya se mencionaron anteriormente, los cuales permitirán que la implementación de

la aplicación de mensajería sea funcional y esta permite probar el prototipo de

cifrado propuesto, el ambiente virtual que compone la grid implementara los

servicios necesarios para permitir realizar la comunicación entre los diferentes

clientes que se conecten en la red, cabe resaltar que asi mismo el cliente necesita

de la ejecución de un servicio local el cual es el que realizar el cifrado, haciendo

posible la confidencialidad de extremo a extremo.

A continuación, se muestran las imágenes de referencia a los diferentes servicios

desplegados y ejecutados para permitir el funcionamiento de la aplicación.

Despliegue de servicios en Apache Tomcat.

En este servidor de apache tomcat se desplegaran dos de los servicios

necesarios para realizar la comunicación entre los diferentes clientes, el

primero de ellos es el aut_key_service_ms el cual se encargará de guardar

los nombres de usuarios registrados y sus direcciones ip para realizar el

proceso de identificación de cada cliente, por otro lado encontramos el

servicio de key_service_ms, el cual permite que dos cliente pueda efectuar

la primera comunicación la cual les permitirá realizar l distribución de sus

llaves públicas.

Ilustración 34.Ejecución servidor Apache Tomcat.

Page 94: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

94

Ilustración 35. Servicios desplegados.

Ejecución de Socket sobre NodeJs.

La ejecución de este servicio de socket permite que el envío de mensajes

que se realiza mediante la aplicación de mensajería pueda ser enviada de un

cliente a otro de manera rápida y que además sea en tiempo real, haciendo

que estos cambios se vean reflejados en las aplicaciones tanto del cliente

origen como del cliente destino.

Ilustración 36. Ejecución de socket de comunicación.

Page 95: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

95

MySql

Este es el gestor que se utiliza para almacenar la información de los clientes

que ingresan a la aplicación de mensajería la cual guarda el nombre y su

dirección ip, esto con el fin de poder realizar las respectivas validaciones más

adelante.

Ilustración 37.Base de datos de aut_key_service.

Servicio de cifrado CHAT.

Este servicio ya no hace parte de la implementación en el servidor, como se

mencionaba para garantizar que la información que se envía de un cliente a

otro sea de la manera más segura, cada cliente final al momento de realizar

la instalación de la aplicación contará con un servicio el cual se instalará junto

a la aplicación de escritorio permitiendo.

Page 96: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

96

Ilustración 38. Propiedades Servicio de Cifrado CHAT.

8.1.5. Pruebas integrales.

A Continuación, se podrá ver cómo funcionan e interactúan los servicios y la

aplicación de mensajería, en la cual ya se establece una comunicación, los clientes

acceden a la aplicación y logran comunicarse por medio de la grid que se ha

implementado.

Ilustración 39. Instalación final de la aplicación de mensajería.

Page 97: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

97

Ilustración 40. Funcionamiento servicio de mensajería entre dos clientes.

8.2. Reunión revisión del sprint.

El presente sprint contempló la implementación del entorno virtual para la creación

de servidores de proyecto grid y servicios de comunicación con el fin de integrar

toda la solución de mensajería que permite dar aplicación al prototipo de cifrado

híbrido y así mismo mostrar su efectividad computacional con el uso de la grid dado

que aporta mejoras en rendimiento y por consiguiente una comunicación óptima.

Se presenta el análisis realizado de acuerdo el sprint backlog 2 donde se validan y

aceptan las diferentes implementaciones de los servicios y la aplicación de

mensajería dando paso así al desarrollo culminado de este sprint.

8.3. Scrum taskboard.

A continuación, se muestra cada historia o tarea que se realizaron, se muestra en

la aplicación para tareas Taiga.

Ilustración 41. Scrum taskboard 1 sprint 2.

Page 98: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

98

Ilustración 42. Scrum taskboard 2 sprint 2.

Ilustración 43. Scrum taskboard 3 sprint 2.

8.4. Cierre y entrega.

La culminación de este sprint se realizó de la mejor manera permitiéndonos la

generación, implementación y ejecución de los servicios que darán paso a probar el

prototipo de cifrado propuesto, donde se culminaron los objetivos propuestos y se

realizan las sugerencias y comentarios que se encontraron durante el proceso por

parte del equipo de trabajo.

Page 99: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

99

9. Sprint 3.

En la reunión que se estableció atender la historia de usuario 7, en este se realiza

un análisis sobre la implementación del prototipo desarrollado, se inicia con una

interceptación de la comunicación establecida entre dos usuarios con la cual

simulamos un ataque de hombre en el medio, establecer posibles puntos de falla

teóricos y la complejidad que podría abarcar el intentar corromper la información.

En términos generales se busca confirmar la efectividad en seguridad y niveles de

protección que posee el algoritmo y la implementación en general.

Ilustración 44.Sprint 3 Backlog

9.1. Objetivos.

Para el cumplimiento de este sprint se cuentan con los siguientes objetivos, los

cuales facilitaran tanto la identificación como el desarrollo de las actividades

seleccionadas.

Criptoanálisis del algoritmo hibrido implementado

Interceptar comunicación de usuarios para intentar descifrar mensajes

Identificar niveles de seguridad del algoritmo, eficiencia y confidencialidad

Análisis de resultados

Durante las reuniones se aclaran los requerimientos internos o necesarios que se

necesitaban para la realización o culminación satisfactoria de cada una de las

historias seleccionadas que fueron propuestas y planteadas buscando resolver el

objetivo propuesto.

Page 100: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

100

9.1.1. Criptoanálisis del algoritmo hibrido implementado.

“Mientras que la criptografía es la ciencia relacionada con el diseño de cifrados, el

criptoanálisis es el estudio relacionado de los cifrados de ruptura. La criptografía y

el criptoanálisis son, de alguna manera, ciencias complementarias: el desarrollo en

una suele ir seguido del desarrollo en la otra. En particular, el criptoanálisis es una

herramienta importante para la evaluación de la vulnerabilidad de los

criptosistemas” (Cid, 2019)59.

Dada que esta implementación híbrida toma AES y RSA como forma de cifrado para

la diferente información sensible para el proceso de comunicación debemos analizar

los diferentes componentes.

Por un lado, AES, uno de los más potentes métodos de cifrado simétrico por su

complejidad algorítmica y seguridad que brinda a la protección de la información es

posible determinar que llegar a vulnerar de forma rápida no es posible. En el

proyecto usamos una llave de 256 bits de complejidad, esto representa 2256 cantidad

de llaves disponibles aprox. ahora asumamos que en el mejor de los casos

contamos con los siguientes recursos:

Cada persona en el mundo cuenta con 10 computadores propios.

7.53 billones de personas en el planeta (Banco mundial, 2017)60.

Cada computador tiene un promedio de cálculo de 5 billones de llaves por

segundo

En promedio, después de analizar el 50% de posibilidades hallaremos la

clave de AES.

59 Cid, C. F. (2019). sans. Retrieved 02 23, 2019, from https://www.sans.org/reading-room/whitepapers/vpns/cryptanalysis-

rsa-survey-1006

60 Banco mundial. (2017). banco mundial. Retrieved 03 10, 2019, from https://datos.bancomundial.org/indicador/sp.pop.totl

Page 101: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

101

x = 5,70E+76

y = 70.530.000.000

z = 5.000.000.000

w = 3,1536E+7

j = 3,5265E+20

k = 1,1122581E+31

Donde, x es el 50% de las llaves de AES-256, y es la cantidad de computadores

disponibles dada la población en el mundo, z es la capacidad de ciclos por segundo

en promedio para un computador, w es la cantidad de segundos que tiene un año,

j es la cantidad total de ciclos procesados por segundo en el mundo y k es la

cantidad de ciclos procesados por año con la cantidad de computadores dada. Por

consiguiente, la población de la tierra puede hallar una llave de cifrado para AES-

256, una a la vez, en aprox. 5,13E+45 años (Seagate)61.

Adicionalmente, al contar con el factor de integridad por el modo de cifrado en

bloque CBC el cual hace uso del vector de inicialización brinda la capacidad de

validar un posible cambio de información en un ataque exitoso, este es aleatorio y

no se repite (European Network of Excellence in Cryptology, 2008)62.

Por otro lado, contamos con el algoritmo de cifrado RSA, que implementa cifrado

asimétrico, los cryptoanalisis que se realizan y aplican a este algoritmo permiten la

evaluación de vulnerabilidades, para cualquier sistema criptográfico como principal

objetivo de una persona externa a una comunicación es la recuperación del texto

simple o plano, si estos tienen éxito el sistema de cifrado ha sido vulnerado, en el

caso de RSA existen diferentes métodos para realizar la recuperación o forjar la

61 Seagate. (n.d.). Seagate. Retrieved from 128-Bit Versus 256-Bit AES Encryption:

http://www.axantum.com/AxCrypt/etc/seagate128vs256.pdf

62 European Network of Excellence in Cryptology. (2008, 07 31). Retrieved 03 10, 2019, from

http://www.ecrypt.eu.org/ecrypt1/documents/D.SPA.28-1.1.pdf

Page 102: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

102

vulneración de su algoritmo, a continuación se presentan diferentes métodos que

permitan la exploración y explotación de detalles y fallas del sistema.

RSA es uno de los algoritmos que cuenta con más aplicabilidad hoy en día y tratar

de vulnerar su cifrado se convierte en un atractivo para las personas interesadas en

obtener información a cualquier modo, debido a fines comerciales y educacionales

este método criptográfico tiene diversos estudios de cryptoanalisis en los cuales se

exponen maneras teóricas de tratar de encontrar las llaves que permitan el

descifrado de la información que se transmite, tales como, ataque cíclico, ataque

por módulo común, ataque de mensajes estereotipados, ataque de fuerza bruta y

ataque de factorización sobre el cual se realiza un análisis de aplicación en este

proyecto.

El ataque de factorización se basa en la dificultad de todos los enfoques

matemáticos es virtualmente equivalente a la factorización del módulo N en sus dos

factores primos P y Q (1). Una vez que se conocen los factores de módulo, la función

de Euler podría construirse fácilmente y el valor de la clave

privada deducido. Actualmente, Tamiz de campo de número

generalizado (GNFS, Criba o tamiz general del cuerpo de números) (Statica)63.

El mejor algoritmo conocido a la fecha, el de la criba numérica o General Number

Field Sieve GNFS, tiene asociada una complejidad representada en la siguiente

expresión para un número de b bits:

El ataque de factorización considera buscar un número N que satisfaga el producto

de los primos empleados al momento de cifrar datos, la factorización del producto

de dos números primos grandes es un problema para las máquinas actualmente.

63 Statica, R. (n.d.). home. Retrieved 03 11, 2019, from http://home.etf.rs/~vm/cd1/papers/30.pdf

Page 103: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

103

Para nuestro prototipo se utilizó el cifrado RSA 2048 tomando como ejemplo el

siguiente N (Barnes, 2004)64.

N=25195908475657893494027183240048398571429282126204

03202777713783604366202070759555626401852588078440

69182906412495150821892985591491761845028084891200

72844992687392807287776735971418347270261896375014

97182469116507761337985909570009733045974880842840

17974291006424586918171951187461215151726546322822

16869987549182422433637259085141865462043576798423

38718477444792073993423658482382428119816381501067

48104516603773060562016196762561338441436038339044

14952634432190114657544454178424020924616515723350

77870774981712577246796292638635637328991215483143

81678998850404453640235273819513786365643912120103 97122822120720357.

Cabe resaltar que como se mencionó, el GNFS es el algoritmo más rápido de

factorización, aplicándolo al método de cifrado RSA 2048 le tomaría un tiempo

extremadamente largo para lograr encontrar las llaves correspondientes.

Teniendo en cuenta el registro de ataque histórico y exitoso sobre RSA-768, el cual

se compone de 232 dígitos decimales, y fue factorizado el 12 de diciembre de 2009,

luego de 2 años de procesamiento. Es importante tener el proceso involucrado para

esa tarea: Se tomó medio año de trabajo continuo de 80 procesadores en selección

polinomial representando el 3% de la tarea principal, respecto al proceso de GNFS

o tamizado, realizado en gran cantidad de máquinas tardó casi dos años. Tomando

como referencia un procesador AMD Opteron de 2,2 GHz de un solo núcleo con 2

GB de RAM, el tamizado habría tomado cerca de mil quinientos años (Thorsten

Kleinjung, 2010)65.

Esto quiere decir que para romper este cifrado puede demorarse mil quinientos años con una sola computadora mediante el método de GNFC.

64 Barnes, C. (2004, 11 07). citeseerx. Retrieved 03 11, 2019, from

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.117.1230&rep=rep1&type=pdf

65 Thorsten Kleinjung, K. A. (2010, 02 28). eprint. Retrieved 03 11, 2019, from https://eprint.iacr.org/2010/006.pdf

Page 104: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

104

Usar claves de 2048 bits en certificados SSL seguros, que es enormemente más

fuerte a cualquier intento de ataque por Lenstra y otros, de hecho, requeriría

factorizar un número de 617 dígitos. Las claves de 2048 bits son 232 más difíciles

de romper con NFS, que las claves de 1024 bits. 232 es equivalente a 4,294,967,296

o casi 4,3 mil millones, lo que significaría que romper un certificado SSL de 2048

bits aproximadamente tomaría 4,3 mil millones de veces más tiempo (usando el

mismo procesamiento de escritorio estándar) que hacerlo con una clave de 1024

bits. Por lo tanto, se estima que la capacidad de computación de escritorio estándar

demoraría 4,294,967,296 x 1.5 millones de años en romper un certificado SSL que

utiliza RSA de 2048 bits O, en otras palabras, un poco más de 6,4 billones de años

(digicert, s.f.)66.

9.1.2. Interceptar comunicación de usuarios para intentar descifrar mensajes.

Como se evidencio en el sprint anterior, la instalación de los servicios y la aplicación

fueron desarrollados de manera satisfactoria, En este ítem, se muestra la

funcionalidad de la aplicación y como está evidentemente hace uso del prototipo de

cifrado implementado, en el cual se mostrará una interceptación en texto plano sin

la utilización del prototipo y otra interceptación con el prototipo.

66 digicert. (n.d.). digicert. Retrieved 03 11, 2019, from https://www.digicert.com/TimeTravel/math.htm

Page 105: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

105

Ilustración 45. Inicio de la aplicación de mensajería.

La ilustración anterior muestra el inicio de la aplicación de mensajería cuando esta

se abre para iniciar el proceso.

La siguiente ilustración muestra el momento en el que se realiza la distribución de

las llaves cuando dos usuarios comienzan a entablar la primera comunicación.

Ilustración 46. Distribución de llaves.

Page 106: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

106

Una vez realizada la distribución de manera satisfactoria, la aplicación muestra el

componente para comenzar a realizar el envío de mensajes de un usuario a otro

como lo muestra la siguiente ilustración.

Ilustración 47. Componente de mensajería.

La siguiente ilustración muestra la comunicación que se realiza con dos usuarios

desde dos máquinas conectadas a la misma red en grid, para hacer practico el

ejemplo, se realiza una video llamada y se comparte la pantalla de una de las

computadoras para que se pueda ver el funcionamiento de manera más directa.

Ilustración 48. Uso de aplicación de mensajería con envió de mensajes sin cifrado.

Page 107: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

107

Una vez realizado este primer envío de mensajes entre los clientes por medio de la

aplicación sin la implementación del cifrado se procede a utilizar la herramienta

WiresShark para capturar los paquetes que se transmiten y así poder leer la

información que se comparte.

Ilustración 49. Captura de mensajes sin prototipo de cifrado.

Como se evidencio, el servicio de mensajería fue puesto en marcha sin el prototipo

de cifrado sobre el ambiente en grid, haciendo posible la comunicación de los

clientes, pero una vez se realiza la interceptación de los paquetes mediante la

herramienta seleccionada se puede evidenciar que la información es muy fácil de

interpretar y leer debido a que esta viaja en texto claro, lo cual es considerado

potencialmente una vulneración para la seguridad de la información.

Las siguientes ilustraciones se muestran las capturas que se realizan por medio de

la misma herramienta sobre el servicio de mensajería implementando el prototipo

de cifrado propuesto.

Page 108: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

108

Ilustración 50. Comunicación de los usuarios mediante la aplicación de mensajería.

Ilustración 51. Escaneo de paquetes por protocolo.

Page 109: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

109

Ilustración 52. Captura de mensajes con implementación del prototipo de cifrado.

Como se evidencia en la ilustración anterior, no es posible leer en claro el mensaje

que se está transmitiendo en la comunicación, gracias al método de cifrado híbrido

implementado.

9.1.3. Identificar niveles de seguridad del algoritmo, eficiencia y confidencialidad.

Partiendo de la cantidad de caracteres que puedan ser enviados por medio del

servicio de mensajería, se debe emplear la forma de acortar estos mensajes

enmarcados en un diccionario hash que permita su identificación integra para cada

uno de los participantes de la comunicación, por esta razón se decidió hacer uso

del algoritmo hash SHA-512.

Como se planteó en Sprints anteriores el prototipo de algoritmo híbrido desarrollado

usa el método de cifrado AES para proteger el mensaje, dado que este es uno de

los más potentes sistemas criptográficos simétricos, por otro lado, RSA se encarga

de proteger la llave usada por AES, la cual es generada desde el inicio y por cada

una de las interacciones de los usuarios.

Se han evaluado diferentes escenarios de ataques “exitosos” sobre el prototipo

desarrollado, identificando diferentes formas de protección en las comunicaciones

que se establecen. Inicialmente sobre RSA una vulneración mostraría la llave de

AES en claro, permitiendo descifrar la información enviada, pero contemplar que

este proceso sea exitoso una vez no garantiza que las próximas comunicaciones

puedan ser descifradas con la misma clave encontrada, dado que estas se generan

nuevamente cada vez que se envíe información. Ahora, partiendo de que en efecto

Page 110: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

110

la información fue descifrada y el atacante altera los datos e intenta hacer llegar al

receptor paquetes corruptos, el doble sistema de integridad proporcionado por un

lado con RSA por medio de firmas digitales y el Vector de Inicialización de AES con

CBC permitiría identificar que la información fue alterada por un tercero y por lo tanto

no se presentaría en la UI (Interfaz de usuario), registrándose internamente como

un origen de información no válido.

9.2. Reunión revisión del sprint.

En este sprint final, se presenta la implementación del prototipo de cifrado propuesto

aplicado a un servicio de mensajería el cual está montado sobre un ambiente

virtualizado en grid, el cual corresponde al sprint backlog 3 donde se realiza la

validación y aceptación del sistema y todos los componentes y servicios que

influyeron en su desarrollo y posterior simulación, con la cual se procede a realizar

el criptoanálisis correspondiente en el cual se toman dos ejercicios de comunicación

de información, uno en texto claro y el otro con el cifrado implementado. Una de las

características del prototipo propuesto es la forma en la cual se asegura que la

comunicación de un punto al otro puede protegerse debido a las maneras en las

cuales se realiza una verificación de firma digital RSA e implementación de un vector

de inicialización VI por el lado de AES, posteriormente se habla de que tan complejo

y cuánto tiempo llevaría realizar un ataque de criptoanálisis a los métodos de cifrado

implementados.

9.3. Scrum taskboard.

A continuación, se muestra cada historia o tarea que se realizaron, se muestra en

la aplicación para tareas Taiga.

Page 111: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

111

Ilustración 53. Scrum taskboard 1 sprint 3.

Ilustración 54. Scrum taskboard 2 sprint 3.

Ilustración 55. Scrum taskboard 3 sprint 3.

Page 112: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

112

9.4. Cierre y entrega.

El desarrollo y terminación de este sprint se realiza cumpliendo cada uno de los

objetivos propuestos, en el cual se abarcan todos los aspectos de los sprint

anteriores que permitieron que el prototipo de cifrado fuese implementado y

probado, en este sprint se permite la verificación de comunicación entre las

máquinas que componen el ambiente en grid, la funcionalidad y consumo de los

diferentes servicios a través del servicio de mensajería como herramienta de prueba

de comunicación, contemplando los escenarios posibles de ataque a la solución

planteada resaltando las formas de que en caso de que alguno de ellos fuese

exitoso el algoritmo se protegería.

10. Cierre del proyecto.

Luego de finalizar cada uno de los Sprints propuestos se da cierre al proyecto con

una solución que permite la integración de todos los servicios desarrollados

referentes al algoritmo de cifrado y a los servicios de mensajería implementados

sobre una red en grid, emulada por medio de un ambiente virtualizado, potenciando

sus capacidades computacionales dando rendimiento en cálculos de llaves

complejas para los procesos de cifrado.

Pasando por diferentes estudios de análisis a los sistemas criptográficos usados

para el modelo híbrido, se ha determinado un nivel teórico de eficiencia y seguridad

a partir de estudios previos realizados por diferentes referentes de investigación en

el mundo.

Por último, se ha generado un prototipo capaz de ser integrado a cualquier

implementación de comunicación que requiera seguridad en el envío de los datos

por medio de servicios sin la necesidad de certificados de seguridad.

Page 113: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

113

11. Conclusiones.

El cifrado de la información cada día toma un papel más importante para las

organizaciones y sistemas que permiten la comunicación entre diferentes puntos,

debido a que el flujo de información y paquetes que se transmiten a diario llevan

datos muy sensibles que podrían ocasionar quiebres financieros, suplantación de

identidades o permitir ser analizada para posteriormente ser vendidos y en el peor

de los casos ser utilizados con fines terroristas o de este tipo.

Este proyecto de alguna forma permite brindar otras posibilidades para la protección

de información a nivel de proyectos personales y corporativos, al igual que existen

librerías para la implementación de los algoritmos de cifrado clásico, es importante

aportar para que las nuevas tecnologías sean fáciles de integrar en soluciones

actuales.

A pesar que cada avance en materia de seguridad de la información es importante,

al mismo tiempo se amplían las formas de ataque a estos, por tal razón el estudio

constante de métodos que permitan la mejora de seguridad en información es vital

para el desarrollo tecnológico y de la misma forma ir potenciando el estudio en

materia de criptografía cuántica la cual se consolida como la principal amenaza para

RSA en un futuro.

La realización del proyecto muestra el desarrollo e implementación de un prototipo

de cifrado y su aplicación a un sistema de mensajería, el proceso de transmisión de

datos capturado con el fin de establecer si la información que se está enviando

realmente viaja de manera segura y poco entendible para cualquier persona que

quisiera intentar vulnerar el sistema, y por último se brinda información sobre

posibles ataques y cuánto tiempo aproximado tomaría realizarlos con base a un

promedio de procesamiento actual.

Finalmente, los diferentes estudios y pruebas realizadas han permitido guiar el

proyecto a un fin satisfactorio, partiendo del cumplimiento de los objetivos

Page 114: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

114

planteados, pero más allá de esto, es lograr generar un prototipo capaz de ser usado

en cualquier aplicación o servicio que sea generado por algún tercero.

Page 115: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

115

12. Recomendaciones.

El uso de la aplicación de cifrado está configurado para trabajar con llaves de 2048

bits para RSA y 512 para AES, sin embargo, existe la forma de ser modificada con

longitud de llaves más complejas de acuerdo a lo que el framework de .Net Core lo

permita.

Al usar el framework .Net Core, estos servicios pueden ser desplegados sobre

sistemas operativos Linux, Mac, Android y Windows de acuerdo a lo que se

requiera, para generar los respectivos paquetes se recomienda referirse a la

documentación para publicaciones de Microsoft.

El prototipo planteado es una utilidad basada en pruebas teóricas y puede verse

afectado por análisis profundos realizados con herramientas más potentes de

criptoanálisis las cuales no fueron tenidas en cuenta dada la limitación en recursos

al momento del desarrollo del proyecto.

Page 116: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

116

Referencias

Al Hasib, A. &. (2008). A Comparative Study of the Performance and Security Issues of AES and RSA

Cryptography. Convergence Information Technology, International Conference, (pp. 505-

510). Finlandia.

Albahar, M. A., Olawumi, O., Haataja, K., & Toivanen, P. (2018). Scientific Research Publishing.

Retrieved from http://file.scirp.org/pdf/JIS_2018040814373482.pdf

Alvarez Caules, C. (2013, Junio 14). arquitecturajava. Retrieved from

https://www.arquitecturajava.com/servicios-rest/

Amaya, C. g. (2014, 06 24). welivesecurity. Retrieved 09 28, 2018, from

https://www.welivesecurity.com/la-es/2014/06/24/pki-paradigma-criptografia-

asimetrica/

Amieva, E. (2015, 12 13). enekoamieva. Retrieved 09 28, 2018, from

https://enekoamieva.com/criptografia-simetrica-asimetrica-e-hibrida/

Anane, M., & Nadjia, A. (2015, Marzo). IEEE Xplore Digital Library. Retrieved from

https://ieeexplore-ieee-org.bdigital.udistrital.edu.co/document/7348109

Anonimo. (2019, 15 02). Slideshare. Retrieved from https://es.slideshare.net/YohelTorres/mtrigas-

tfc0612memoria

Avinash , R., Potnis, A., Kumar, S., Dwivedy, P., & Soofi, S. (2017, Agosto). Internation Journal Of

Engineering Research and Applications. Retrieved from

http://www.ijera.com/papers/Vol7_issue8/Part-1/O0708019094.pdf

Ayuntamiento de Fuensalida. (n.d.). Retrieved from

http://www.fuensalida.es/archivos/ligas/clasificaciones/clasif607.pdf

Banco mundial. (2017). banco mundial. Retrieved 03 10, 2019, from

https://datos.bancomundial.org/indicador/sp.pop.totl

Barnes, C. (2004, 11 07). citeseerx. Retrieved 03 11, 2019, from

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.117.1230&rep=rep1&type=pd

f

Barrera, R., Peñafiel, H., Serrano, M. V., & Gaibor M., J. (n.d.). Repositorio de Escuela Superior

Politecnica del Litoral. Retrieved 09 29, 2018, from

https://www.dspace.espol.edu.ec/bitstream/123456789/7236/3/GRID%20COMPUTING.p

df

Barrón Vidales, J. (2008, Noviembre). Departamento de Computacion del CINVESTAV. Retrieved

from http://www.cs.cinvestav.mx/TesisGraduados/2008/tesisJesusBarron.pdf

Blancarte, O. (2017, Febreo 20). OscarBlancarteBlog. Retrieved from Introduccion a los

WebSocket: https://www.oscarblancarteblog.com/2017/02/20/introduccion-a-lo-

websocket/

BOINC. (n.d.). Retrieved from Computar para la Ciencia: https://boinc.berkeley.edu/

Page 117: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

117

Bonilla Palencia, E. (2012, Mayo 3). Universidad Carlos III de Madrid. Retrieved from

https://orff.uc3m.es/bitstream/handle/10016/15402/pfc_eduardo_bonilla_palencia_2012

.pdf?sequence=2

boxcryptor. (n.d.). boxcryptor. Retrieved 09 27, 2018, from

https://www.boxcryptor.com/es/encryption/

Camacho, J. D. (2013, 04). northware.mx. Retrieved from http://www.northware.mx/wp-

content/uploads/2013/04/Desarrollo-cascada-vs-Desarrollo-Agile.pdf

Cid, C. F. (2019). sans. Retrieved 02 23, 2019, from https://www.sans.org/reading-

room/whitepapers/vpns/cryptanalysis-rsa-survey-1006

Corrales Sanchez, H., Cilleruelo Rodriguez, C., & Cuevas Notario, A. (n.d.). Universidad de Alcalá.

Retrieved 09 29, 2018, from Universidad de Alcalá:

http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Met

odos%20de%20Cifrado.pdf

digicert. (n.d.). digicert. Retrieved 03 11, 2019, from

https://www.digicert.com/TimeTravel/math.htm

Española, R. A. (n.d.). REA. Retrieved 09 27, 2018, from http://dle.rae.es/?id=Ceu04o5

ESSAMA, S. (2013). Microsoft Solution Framework (MSF) for Agile Software Development. .

European Network of Excellence in Cryptology. (2008, 07 31). Retrieved 03 10, 2019, from

http://www.ecrypt.eu.org/ecrypt1/documents/D.SPA.28-1.1.pdf

Faget, A. (2018, Noviembre 14). What are Cryptographic Signatures? | Introduction to the Most

Common Schemes. Retrieved from coindoo: https://coindoo.com/what-are-cryptographic-

signatures-introduction-to-the-most-common-schemes/

Ferri-Benedetti, F. (2013, 07 23). softonic. Retrieved from

https://www.softonic.com/articulos/que-es-el-cifrado-encriptar

Gallego, A. J. (2016, 01). gitbook.com. Retrieved from

https://www.gitbook.com/book/ajgallego/laravel-5/details

GNU Operating System. (n.d.). Licenses. Retrieved from gnu:

https://www.gnu.org/licenses/licenses.html#GPL

Gonzalez Seco, J. A. (n.d.). Universidad de Murcia. Retrieved from El lenguaje de programacion C#:

http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf

Ibrahim Harba, E. S. (2017). Engineering, Technology & Applied Science Research. Retrieved from

https://etasr.com/index.php/ETASR/article/viewFile/1272/536

IGI-global. (n.d.). IGI-global. Retrieved 09 27, 2018, from https://www.igi-

global.com/dictionary/particle-swarm-optimization-algorithm-its/13449

Lenstra, A. (n.d.). Key Lengths. Retrieved from InfoScience:

https://infoscience.epfl.ch/record/164539/files/NPDF-32.pdf

Page 118: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

118

Lizeth, Y. (2017). platzi. Retrieved 09 28, 2018, from https://platzi.com/blog/que-es-scrum-y-los-

roles-en-scrum/

Mariel, A. M. (2012). Grid Computing vs. Cloud Computing. Retrieved from revistasbolivianas:

http://www.revistasbolivianas.org.bo/scielo.php?pid=S1997-

40442012000200007&script=sci_arttext

Martinez de la Torre, J. (2016, Octubre 03). Repositori Universitat Jaume I. Retrieved 09 29, 2018,

from

http://repositori.uji.es/xmlui/bitstream/handle/10234/164666/TFG_Marti%CC%81nez%2

0De%20La%20Torre%2C%20Javier.pdf?sequence=1&isAllowed=y

medina, m. (2012, 11 26). http://isittla12.blogspot.com.co/. Retrieved from

http://isittla12.blogspot.com.co/2012/11/unidad-3planificacion-del-proyecto-de.html

Mendoza T, J. (n.d.). Universidad Politecnica Salesiana de Ecuador. Retrieved from

https://dspace.ups.edu.ec/bitstream/123456789/8185/1/Demostraci%C3%B3n%20de%20

cifrado%20sim%C3%A9trico%20y%20asim%C3%A9trico.pdf

Microsoft. (2018, 07 31). Docs Microsoft. Retrieved from https://docs.microsoft.com/en-

us/dotnet/core/about

N, R. P. (2012). Mathieu. IEEE. Lavallée: Software Team Process: a taxonomy. Proceedings of the

International Conference on Software and System Process. .

Networking and Emerging Optimization. (n.d.). Networking and Emerging Optimization. Retrieved

from http://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/rsa.html

NodeJs. (n.d.). NodeJs. Retrieved from https://nodejs.org/es/about/

obs-edu. (n.d.). obs-edu. Retrieved 09 27, 2018, from https://www.obs-edu.com/int/blog-

investigacion/sistemas/seguridad-de-la-informacion-un-conocimiento-imprescindible

Orea, S. V. (2010, 08 23). Universidad Tecnológica de Izúcar de Matamoros. Retrieved from

http://www.utim.edu.mx/~svalero/docs/Antologia%20Seguridad%20de%20la%20Informa

cion.pdf

Pech May, F., Gomez Rodriguez, M., De la Cruz Diaz, L., & Lara Jeronimo, S. (n.d.). Cinvestav

Tamaulipas. Retrieved from

https://www.tamps.cinvestav.mx/~fpech/sd/files/paper001.pdf

Pousa, A. (2011, Diciembre). Universidad Nacional de la Plata. Retrieved 09 29, 2018, from

Facultad de Informatica: https://postgrado.info.unlp.edu.ar/wp-

content/uploads/2014/07/Pousa_Adrian.pdf

Proyectos Agiles. (n.d.). Retrieved from https://proyectosagiles.org/que-es-scrum/

React. (n.d.). React. Retrieved from https://reactjs.org/

Rioseco San Martín, C. (2016). Repositorio Digital Sistema de Bibliotecas Universidad del Bio-Bio.

Retrieved from

Page 119: PROTOTIPO DE CIFRADO HÍBRIDO COMBINANDO LOS MÉTODOS DE …repository.udistrital.edu.co/bitstream/11349/22405/1... · 2019-11-29 · 1 prototipo de cifrado hÍbrido combinando los

119

http://repobib.ubiobio.cl/jspui/bitstream/123456789/1800/1/Rioseco_San_Martin_Const

anza.pdf

Ritin Behl, G. S. (2015). semanticscholar. Retrieved 03 15, 2019, from

https://pdfs.semanticscholar.org/2b01/4f9a45f7534733402f4c32aedf11b4d682fe.pdf

Rivera Lopez, A. (2008, Enero 16). Universidad de las Americas Puebla. Retrieved from

http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/rivera_l_a/capitulo2.pdf

Sanchez, J. (2004). Cartagena99. Retrieved from MySQL Guia Rapida:

http://www.cartagena99.com/recursos/programacion/apuntes/mysql.pdf

Scrum Manager. (2016). Retrieved from http://scrummanager.net/files/scrum_manager.pdf

Seagate. (n.d.). Seagate. Retrieved from 128-Bit Versus 256-Bit AES Encryption:

http://www.axantum.com/AxCrypt/etc/seagate128vs256.pdf

Soriano, M. (n.d.). Seguridad en redes y seguridad de la información. Retrieved 09 28, 2018, from

improvet:

http://improvet.cvut.cz/project/download/C2ES/Seguridad_de_Red_e_Informacion.pdf

Statica, R. (n.d.). home. Retrieved 03 11, 2019, from http://home.etf.rs/~vm/cd1/papers/30.pdf

Tapia-Recillas, H. (2011). miscelaneamatematica. Retrieved 03 15, 2019, from

http://www.miscelaneamatematica.org/Misc53/5306.pdf

Thorsten Kleinjung, K. A. (2010, 02 28). eprint. Retrieved 03 11, 2019, from

https://eprint.iacr.org/2010/006.pdf

Vargas, J. A., Garcia, L., Martinez, S., Chavez, L., & Muñoz, D. (n.d.). Tecnologico Nacional de

Mexico. Retrieved 09 29, 2018, from

http://www.itvictoria.edu.mx/personal/art_investigacion/AES_paralelo_2010.pdf

vmware. (n.d.). vmware. Retrieved from https://www.vmware.com/co/products/player/faqs.html

Zlatko Knezevic, P. C. (2016, Abril). msdn Microsoft. Retrieved from .NET se convierte en

multiplataforma con .NET Core: https://msdn.microsoft.com/es-

es/magazine/mt694084.aspx