7/25/2019 TFG Carlos Pliego Garcia
1/206
UNIVERSIDAD CARLOS III DE MADRID
DEPARTAMENTO DE INFORMTICA
GRADO EN INGENIERA INFORMTICA
TRABAJO DE FIN DE GRADO
Desarrollo de una aplicacingeneradora y lectora de cdigos QR
seguros en Android
Autor: Carlos Pliego Garca
Tutor: Antonio Berlanga de Jess
Colmenarejo, 20 de Junio de 2013
7/25/2019 TFG Carlos Pliego Garcia
2/206
Trabajo de Fin de Grado Carlos Pliego Garca
2
Agradecimientos
Antes de nada, he de agradecer a mis padres su paciencia conmigo durante toda mi
vida. Mencin especial a mi madre, que me ha ayudado a transformar mis ideas dediseo en interfaces para la aplicacin y quien, a voz de "que te pilla el toro", haconseguido que desarrolle el proyecto a tiempo.
A mi hermana Marta, por todos los chistes que nunca logr entender a tiempo.
A mi hermana Piru, por las competiciones por ver quin poda poner la msica msalta.
A mi hermano Javi, por sus infatigables conversaciones sobre ftbol.
A mi hermano Salva, por acompaarme al piano cuando tena el cerebro exhausto.
A mi tutor Antonio, por nuestras discusiones a la hora de elegir el proyecto y por susconsejos y soporte, los cules, han sido clave para realizar algo que me parece "unmuy buen trabajo".
A mis perras Nana y Pecas, por sus incansables carreras por los pasillos y lametonesen la mano.
A Gumpus, por ayudarme a convertir mis composiciones en msica.
A los frikis Sergio, Quique, Iaki y Nico. Sin ellos, las clases habran sido msproductivas pero mucho menos divertidas. A Sergio por su infinitos detalles y suinestimable ayuda en aquellos momentos en los que le necesitaba. A Quique por sussesiones de msica japonesa que an resuenan en mi cabeza, por todos esos gustosextraos que me ha pegado, y por su muy larga barba. A Iaki por sus adjetivosinventados como "mej" y "crui", y por esa msica "podrida" que tanto nos gusta. ANico por su cabeza y por esas prcticas que entregbamos a un minuto del lmite.
A mi profesora Inmaculada Puebla, por sus elogios hacia mi manera de presentar lostrabajos.
Y, por ltimo, a mi abuelo Carlos por haber credo en m y haberme enseado a DonMcLean, cuya msica me ha acompaado de la mano durante todo el desarrollo delproyecto.
7/25/2019 TFG Carlos Pliego Garcia
3/206
Trabajo de Fin de Grado Carlos Pliego Garca
3
Resumen
En este proyecto se propone el desarrollo de una aplicacin para dispositivos mviles
Android que permita generar y leer cdigos de barras bidimensionales QR cuyainformacin est cifrada de forma que slo pueda acceder a ella aquella persona aquin va dirigida. Adems estos cdigos podrn enviarse a otras aplicacionesinstaladas en el dispositivo mvil.
La gran mayora de aplicaciones de mensajera no cuentan con las medidas deseguridad y privacidad necesarias que posibiliten a los usuarios intercambiarinformacin de carcter sensible sin sufrir un cierto riesgo.
El sistema que se plantea est cualificado para generar y leer cdigos QR simples quecualquier usuario con cualquier otra aplicacin destinada a ello puede leer. Adems,
tambin puede generar cdigos a partir de un mensaje que se ha cifrado previamente.De esta forma, la informacin incluida en ellos slo podr ser leda si se descifraantes.
Cuando se decide cifrar la informacin, la aplicacin utiliza los algoritmoscriptogrficos ms seguros. Esta decisin hace de la aplicacin una de las mejoresopciones cuando se quiere tratar con informacin muy sensible.
Este sistema puede suponer un gran empujn en el uso de los cdigos QR; ya que, apesar de ser muy utilizados, otorgarles seguridad puede ser algo muy revolucionario.
Con esta aplicacin se pueden generar cdigos que estn dirigidos nicamente aciertas personas.
Adems, una carencia de la gran mayora de los programas que tratan cdigos QRpara dispositivos mviles es que slo permiten leerlos y no generarlos. Incluso, slopermiten leerlos a travs de la cmara, mientras que esta aplicacin permite leer loscdigos que se encuentren en imgenes almacenadas en la memoria del dispositivomvil.
Como el sistema permite, adems, enviar los cdigos generados a ms aplicacionesinstaladas en el terminal, es muy fcil distribuirlos utilizando aplicaciones de
naturaleza de red social como Twitter o Facebook, o aplicaciones de mensajerainstantnea como Whatsapp o Line. Incluso permite utilizar servicios dealmacenamiento en la nube como Google Drive o Dropbox para guardar los cdigos.
Palabras clave: Cdigo de barras, QR, almacenamiento en la nube, mensajerainstantnea, Android, seguridad, criptografa.
7/25/2019 TFG Carlos Pliego Garcia
4/206
Trabajo de Fin de Grado Carlos Pliego Garca
4
Abstract
This project proposes the development of an application for Android mobile devices
that allows to generate and to read bidimensional QR barcodes whose information isciphered so it only could be readed by the intended person. Furthermore, these codescould be sent to other applications installed on the mobile device.
Mostly of the messaging applications don't have the necessary security and privacymeasures to enable users to exchange sensitive information without suffering somerisk.
The system that arises is qualified to generate and read simple QR codes that anyuser with any other application intended for that purpose may read. Additionally, youcan generate codes from a message that was previously ciphered. In this way, the
information included in them can only be read if it's decrypted before.
When you choose to encrypt the information, the application uses the most securedcryptographic algorithms. This decision makes the application one of the best optionswhen you want to deal with highly sensitive information.
This system can be a big breakthrough in the use of QR codes; because, despite beingwidely used, security grant can be very revolutionary. With this application you cangenerate codes that are intended only for certain people.
Additionally, a lack of the majority of programs form mobile devices that deal with QRcodes is that they only allow reading and don't generating them. Even, they just allowto read the codes through the built-in camera while this application allow to read thecodes that are in images stored on the memory of the mobile device.
As the system also allows sending the generated codes to more applications installedon the terminal, you can easily distribute them using social network applications likeTwitter or Facebook, or instant messaging applications such as Whatsapp or Line.Even allows you to use storage services in the cloud like Google Drive or Dropbox tostore the codes.
Keywords: Barcode, QR, cloud storage, instant messaging, Android, security,cryptography.
7/25/2019 TFG Carlos Pliego Garcia
5/206
Trabajo de Fin de Grado Carlos Pliego Garca
5
NDICENDICE DE ILUSTRACIONES ............................................................................................. 9
NDICE DE TABLAS ......................................................................................................... 12
1 INTRODUCCIN ...................................................................................................... 16
1.1 CONTEXTO ACTUAL Y OBJETIVO ................................................................... 16
2 ESTADO DEL ARTE .................................................................................................. 17
2.1 SMARTPHONE ................................................................................................. 17
2.2 ANDROID .......................................................................................................... 17
2.3 CDIGO QR ...................................................................................................... 19
2.4 SEGURIDAD ...................................................................................................... 20
2.4.1 CONCEPTO GENERAL ............................................................................... 20
2.4.2 CONCEPTOS IMPORTANTES ................................................................... 21
3 MARCO REGULADOR .............................................................................................. 24
3.1 LEY GENERAL DE LAS TELECOMUNICACIONES ............................................. 24
3.2 LEY ORGNICA DE PROTECCIN DE DATOS .................................................. 25
4 ANLISIS ................................................................................................................. 26
4.1 DEFINICIN DEL SISTEMA .............................................................................. 26
4.1.1 ALCANCE DEL SISTEMA ........................................................................... 26
4.1.2 RESTRICCIONES GENERALES .................................................................. 274.1.3 ENTORNO OPERACIONAL ........................................................................ 27
4.2 ENTORNO DE DESARROLLO ............................................................................ 28
4.2.1 EQUIPOS ................................................................................................... 28
4.2.2 LENGUAJE DE PROGRAMACIN .............................................................. 28
4.2.3 ENTORNO DE DESARROLLO .................................................................... 28
4.3 REQUISITOS DE USUARIO ............................................................................... 30
4.3.1 REQUISITOS DE CAPACIDAD ................................................................... 31
4.3.2 REQUISITOS DE RESTRICCIN ................................................................ 38
4.4 CASOS DE USO ................................................................................................ 41
4.4.1 CASO DE USO GENERAL........................................................................... 42
4.4.2 CASOS DE USO DEL MDULO GENERAR ................................................ 45
4.4.3 CASOS DE USO DEL MDULO LEER ........................................................ 49
4.5 REQUISITOS DE SOFTWARE ............................................................................ 54
4.5.1 REQUISITOS FUNCIONALES .................................................................... 55
4.5.2 REQUISITOS DE OPERACIN ................................................................... 614.5.3 REQUISITOS DE INTERFAZ ...................................................................... 64
7/25/2019 TFG Carlos Pliego Garcia
6/206
Trabajo de Fin de Grado Carlos Pliego Garca
6
4.5.4 REQUISITOS DE RENDIMIENTO ............................................................... 65
4.5.5 REQUISITOS DE RECURSOS ..................................................................... 66
4.5.6 REQUISITOS DE SEGURIDAD ................................................................... 66
4.5.7 REQUISITOS DE VERIFICACIN ............................................................... 67
4.6 ANLISIS DE CLASES ...................................................................................... 70
4.6.1 IDENTIFICACIN DE LAS CLASES ............................................................ 70
4.6.2 ESPECIFICACIN DE LAS FUNCIONES DE CADA CLASE ......................... 70
4.6.3 DIAGRAMA DE CLASES ............................................................................ 72
5 DISEO .................................................................................................................... 74
5.1 ARQUITECTURA DEL SISTEMA ....................................................................... 74
5.2 SUBSISTEMAS ................................................................................................. 77
5.3 SUBSISTEMA DE GENERACIN ....................................................................... 78
5.3.1 GENERACIN DE CDIGOS QR ................................................................ 78
5.3.2 GENERACIN DE CDIGOS QRYPT ......................................................... 81
5.4 SUBSISTEMA DE LECTURA ............................................................................. 86
5.4.1 LECTURA POR CMARA ........................................................................... 86
5.4.2 LECTURA POR FICHERO ........................................................................... 89
5.4.3 MDULO DE ACTUALIZACIN ................................................................. 90
5.4.4 MDULO DE CAMBIO DE AJUSTES ......................................................... 905.5 INTERFACES DE USUARIO ............................................................................... 92
5.5.1 ESTUDIO DE DISEO ................................................................................ 92
5.5.2 PANTALLA PRINCIPAL ............................................................................. 96
5.5.3 PANTALLA DE GENERACIN DE CDIGO QR .......................................... 98
5.5.4 PANTALLA DE GENERACIN DE CDIGOS QRYPT ............................... 100
5.5.5 PANTALLA DE LECTURA DE CDIGOS POR CMARA .......................... 107
5.5.6 PANTALLA DE LECTURA DE CDIGOS POR FICHERO .......................... 109
5.5.7 MEN DESPLEGABLE ............................................................................. 110
6 IMPLEMENTACIN................................................................................................ 115
6.1 MDULO DE GENERACIN DE CDIGOS QR A PARTIR DE UN MENSAJE ... 115
6.1.1 ZXING ...................................................................................................... 115
6.1.2 DRAWQR ................................................................................................. 116
6.2 MDULO DE CIFRADO DE MENSAJES .......................................................... 117
6.2.1 CIFRAR .................................................................................................... 117
6.2.2 DESORDEN ............................................................................................. 118
6.2.3 CODIFICACIN ........................................................................................ 120
7/25/2019 TFG Carlos Pliego Garcia
7/206
Trabajo de Fin de Grado Carlos Pliego Garca
7
6.2.4 TOKENS DE CONTROL............................................................................ 120
6.3 MDULO DE EXTRACCIN DEL MENSAJE INCLUIDO EN EL CDIGO QR ... 121
6.3.1 CMARA ................................................................................................. 121
6.3.2 FICHERO ................................................................................................. 122
6.4 MDULO DE DESCIFRADO DE MENSAJES ................................................... 124
6.4.1 TOKENS DE CONTROL............................................................................ 124
6.4.2 DESCODIFICACIN ................................................................................. 125
6.4.3 REORDENACIN ..................................................................................... 125
6.4.4 GENERACIN DE CONTRASEA Y DESCIFRADO DEL MENSAJE .......... 127
6.5 RESTO DE MDULOS .................................................................................... 128
6.5.1 AJUSTES DEL SISTEMA ......................................................................... 128
6.5.2 MOSTRAR NOVEDADES DE LA VERSIN ............................................... 130
7 EVALUACIN Y RESULTADOS .............................................................................. 132
7.1 FUNCIONALIDAD ........................................................................................... 132
7.1.1 GENERACIN DE CDIGOS QR .............................................................. 132
7.1.2 COMPARTICIN DEL CDIGO CON APLICACIONES DE TERCEROS ..... 135
7.1.3 GENERACIN DE CDIGO QRYPT .......................................................... 142
7.1.4 LECTURA DE CDIGO POR CMARA ..................................................... 146
7.1.5 LECTURA DE CDIGO DESDE UN FICHERO ........................................... 1547.1.6 CAMBIO DE AJUSTES ............................................................................. 160
7.1.7 MOSTRAR LAS NOVEDADES DE LA VERSIN ....................................... 166
7.1.8 CONCLUSIN .......................................................................................... 167
7.2 RENDIMIENTO................................................................................................ 168
7.2.1 GENERACIN DE UN CDIGO QR........................................................... 168
7.2.2 GENERACIN DE UN CDIGO QRYPT .................................................... 169
7.3 INTEGRIDAD................................................................................................... 171
7.3.1 RECUPERAR EL MENSAJE CON SLO UNA PARTE DE CDIGO ........... 171
7.3.2 RECUPERAR UN MENSAJE DE 2000 CARACTERES DE UN CDIGO ..... 174
7.4 SEGURIDAD .................................................................................................... 177
8 CONCLUSIN ........................................................................................................ 178
8.1 OBJETIVOS ALCANZADOS ............................................................................ 178
8.2 TRABAJOS FUTUROS .................................................................................... 179
9 BIBLIOGRAFA ....................................................................................................... 181
10 ANEXOS ............................................................................................................. 183
10.1 ANEXO A: GLOSARIO DE ACRNIMOS Y TRMINOS .................................... 183
7/25/2019 TFG Carlos Pliego Garcia
8/206
Trabajo de Fin de Grado Carlos Pliego Garca
8
10.2 ANEXO B: MANUAL DE USUARIO .................................................................. 185
10.2.1 GENERAR UN CDIGO QR ...................................................................... 185
10.2.2 GENERAR UN CDIGO QRYPT ............................................................... 187
10.2.3 ENVIAR UN CDIGO GENERADO A OTRA APLICACIN ........................ 190
10.2.4 LEER UN CDIGO UTILIZANDO LA CMARA DEL DISPOSITIVO ........... 191
10.2.5 LEER UN CDIGO DESDE UN ARCHIVO ................................................. 194
10.2.6 CAMBIAR LA RUTA DE LA CARPETA DE SALIDA ................................... 196
10.2.7 CAMBIAR EL IDIOMA DE LA APLICACIN.............................................. 198
10.2.8 VISUALIZAR LAS NOVEDADES DE LA VERSIN .................................... 199
10.3 ANEXO C: SITUACIONES TILES PARA EL USO DE LA APLICACIN ........... 201
10.3.1 HACER PUBLICIDAD ............................................................................... 201
10.3.2 COMUNICACIONES SECRETAS .............................................................. 201
10.3.3 GUARDAR CONTRASEAS ..................................................................... 201
10.3.4 PROMOCIONES ....................................................................................... 201
10.3.5 PROMOCIONES 2 .................................................................................... 201
11 ANEXO D: PLANIFICACIN Y PRESUPUESTO .................................................. 202
11.1 PLANIFICACIN ............................................................................................. 202
11.1.1 PLANIFICACIN INICIAL ........................................................................ 202
11.1.2 PLANIFICACIN FINAL ........................................................................... 20211.1.3 CONCLUSIONES ..................................................................................... 204
11.2 PRESUPUESTO .............................................................................................. 205
7/25/2019 TFG Carlos Pliego Garcia
9/206
Trabajo de Fin de Grado Carlos Pliego Garca
9
NDICE DE ILUSTRACIONESIlustracin 1: Estructura del SO Android ....................................................................... 18Ilustracin 2: Ejemplo de Cdigo QR ............................................................................. 19Ilustracin 3: Diagrama del algoritmo de cifrado AES .................................................. 22
Ilustracin 4: Alfabeto utilizado en el algoritmo Base64 .............................................. 23Ilustracin 5: Caso de uso principal .............................................................................. 42Ilustracin 6: Casos de uso para el mdulo de generacin .......................................... 45Ilustracin 7: Casos de uso para el mdulo de lectura ................................................. 50Ilustracin 8: Diagrama de clases ................................................................................. 72Ilustracin 9: Diagrama de la arquitectura del sistema ................................................ 74Ilustracin 10: Diagrama de la estructura del mdulo de generacin QR .................... 78Ilustracin 11: Etapas de transformacin de un mensaje para generar un cdigo QR 79Ilustracin 12: Diagrama de la estructura del mdulo de generacin QRypt ............... 82Ilustracin 13: Diagrama general de las etapas del cifrado de un mensaje ................. 83
Ilustracin 14: Diagrama general de la derivacin de la contrasea y del cifrado delmensaje .......................................................................................................................... 84Ilustracin 15: Diagrama de la estructura del mdulo de lectura por cmara ............. 86Ilustracin 16: Diagrama general de las etapas del descifrado de un mensaje ........... 87Ilustracin 17: Diagrama general de la derivacin de la contrasea y del descifrado delmensaje .......................................................................................................................... 88Ilustracin 18: Diagrama de la estructura del mdulo de lectura por fichero .............. 89Ilustracin 19: Paleta de colores oficial del equipo de Android .................................... 92Ilustracin 20: Ejemplo de daltonismo 1 ....................................................................... 94Ilustracin 21: Ejemplo de daltonismo 2 ....................................................................... 95
Ilustracin 22: Interfaz de usuario de la pantalla principal 1 ........................................ 96Ilustracin 23: Interfaz de usuario de la pantalla principal 2 ........................................ 97Ilustracin 24: Interfaz de usuario de la pantalla de escritura del mensaje ................. 98Ilustracin 25: Interfaz de usuario de la pantalla "Mostrar y compartir el cdigo" ...... 99Ilustracin 26: Interfaz de la pantalla de seleccin del tipo de cifrado ...................... 100Ilustracin 27: Interfaz de la pantalla de seleccin del tipo de cifrado 2 ................... 101Ilustracin 28: Interfaz de la pantalla de escritura de contrasea ............................. 102 Ilustracin 29: Interfaz de la pantalla de seleccin de fecha ...................................... 103Ilustracin 30: Interfaz de la pantalla de seleccin de patrn 1 ................................. 104Ilustracin 31: Interfaz de la pantalla de seleccin de patrn 2 ................................. 105
Ilustracin 32: Interfaz de la pantalla de seleccin de color 1 .................................... 106Ilustracin 33: Interfaz de la pantalla de seleccin de color 2 .................................... 107Ilustracin 34: Interfaz de la pantalla de cmara ........................................................ 108Ilustracin 35: Interfaz de la pantalla de "Mostrar el mensaje descifrado" ................ 109Ilustracin 36: Interfaz del men desplegable "Compartir con" de aplicaciones deterceros ......................................................................................................................... 110Ilustracin 37: Interfaz del men desplegable ............................................................ 111Ilustracin 38: Interfaz de la pantalla de modificacin de la ruta de la carpeta de salida...................................................................................................................................... 112Ilustracin 39: Interfaz de la pantalla de modificacin del idioma ............................. 113Ilustracin 40: Interfaz de la pantalla de novedades de la versin ............................. 114
7/25/2019 TFG Carlos Pliego Garcia
10/206
Trabajo de Fin de Grado Carlos Pliego Garca
10
Ilustracin 41: Captura del mtodo desorden............................................................. 119Ilustracin 42: Captura del mtodo orden................................................................... 126Ilustracin 43: Prueba de generacin de QR 1 ............................................................ 133Ilustracin 44: Prueba de generacin de QR 2 ............................................................ 134Ilustracin 45: Prueba de generacin de QR 3 ............................................................ 135
Ilustracin 46: Prueba de comparticin 1 ................................................................... 136Ilustracin 47: Prueba de comparticin 2 (GMail)....................................................... 137Ilustracin 48: Prueba de comparticin 3 (Dropbox) .................................................. 138Ilustracin 49: Prueba de comparticin 4 (Twitter)..................................................... 139Ilustracin 50: Prueba de comparticin 5 (Whatsapp)................................................ 140Ilustracin 51: Prueba de comparticin 6 (Whatsapp)................................................ 141Ilustracin 52: Prueba de comparticin 7 (Whatsapp)................................................ 142Ilustracin 53: Prueba de generacin de QRypt 1 ....................................................... 143Ilustracin 54: Prueba de generacin de QRypt 2 ....................................................... 144Ilustracin 55: Prueba de generacin de QRypt 3 ....................................................... 145Ilustracin 56: Prueba de generacin de QRypt 4 ....................................................... 146Ilustracin 57: Prueba de lectura por cmara 1 .......................................................... 147Ilustracin 58: Prueba de lectura por cmara 2 .......................................................... 148Ilustracin 59: Prueba de lectura por cmara 3 .......................................................... 149Ilustracin 60: Prueba de lectura por cmara 4 .......................................................... 150Ilustracin 61: Prueba de lectura por cmara 5 .......................................................... 151Ilustracin 62: Prueba de lectura por cmara 6 .......................................................... 152Ilustracin 63: Prueba de lectura por cmara 7 .......................................................... 153Ilustracin 64: Prueba de lectura por cmara 8 .......................................................... 154
Ilustracin 65: Prueba de lectura por fichero 1 ........................................................... 155Ilustracin 66: Prueba de lectura por fichero 2 ........................................................... 156Ilustracin 67: Prueba de lectura por fichero 3 ........................................................... 157Ilustracin 68: Prueba de lectura por fichero 4 ........................................................... 158Ilustracin 69: Prueba de lectura por fichero 5 ........................................................... 159Ilustracin 70: Prueba de lectura por fichero 6 ........................................................... 160Ilustracin 71: Prueba de carpeta de salida 1 ............................................................ 161Ilustracin 72: Prueba de carpeta de salida 2 ............................................................. 162Ilustracin 73: Prueba de carpeta de salida 3 ............................................................. 163Ilustracin 74: Prueba de carpeta de salida 4 ............................................................. 164
Ilustracin 75: Prueba de cambio de idioma 1 ............................................................ 165Ilustracin 76: Prueba de cambio de idioma 2 ............................................................ 166Ilustracin 77: Prueba de novedades de la versin..................................................... 167Ilustracin 78: Grfica de tiempo de generacin QR ................................................... 168Ilustracin 79: Grfica de tiempo de generacin QRypt .............................................. 170Ilustracin 80: Prueba de cdigo tapado 1 .................................................................. 171Ilustracin 81: Prueba de cdigo tapado 2 .................................................................. 172Ilustracin 82: Prueba de cdigo tapado 3 .................................................................. 172Ilustracin 83: Prueba de cdigo tapado 4 .................................................................. 173Ilustracin 84: Prueba de cdigo tapado 5 .................................................................. 173
Ilustracin 85: Cdigo QR con un mensaje de 2000 caracteres ................................. 175Ilustracin 86: Cdigo QRypt con un mensaje de 2000 caracteres ............................ 176
7/25/2019 TFG Carlos Pliego Garcia
11/206
Trabajo de Fin de Grado Carlos Pliego Garca
11
Ilustracin 87: Pantalla principal de la aplicacin (Seccin Generar) ........................ 185Ilustracin 88: Pantalla de introduccin de mensaje .................................................. 186Ilustracin 89: Pantalla de muestra del cdigo generado 1 ....................................... 187 Ilustracin 90: Ventana de seleccin de tipo de cifrado ............................................ 188Ilustracin 91: Ventana de seleccin de color ............................................................. 189
Ilustracin 92: Pantalla de muestra del cdigo generado 2 ....................................... 190 Ilustracin 93: Men desplegable de "Compartir" ....................................................... 191Ilustracin 94: Pantalla principal de la aplicacin (Seccin Leer) .............................. 192Ilustracin 95: Pantalla de lectura por cmara ........................................................... 193Ilustracin 96: Pantalla de muestra del mensaje ........................................................ 194Ilustracin 97: Men de seleccin de explorador de archivos .................................... 195Ilustracin 98: Men de seleccin de aplicacin a la que compartir el archivo ......... 196Ilustracin 99: Panel de ajustes deslizable ................................................................. 197Ilustracin 100: Ventana de seleccin de carpeta de salida ....................................... 198Ilustracin 101: Ventana de seleccin de idioma........................................................ 199Ilustracin 102: Ventana de visualizacin de las novedades de la versin ............... 200Ilustracin 103: Diagrama de Gantt de la planificacin inicial simplificado .............. 202Ilustracin 104: Diagrama de Gantt de la planificacin final simplificado ................. 202Ilustracin 105: Diagrama de Gantt de la planificacin final extendido ..................... 203
7/25/2019 TFG Carlos Pliego Garcia
12/206
Trabajo de Fin de Grado Carlos Pliego Garca
12
NDICE DE TABLASTabla 1: Plantilla de requisito de usuario ...................................................................... 31Tabla 2: RUC-01 ............................................................................................................. 31Tabla 3: RUC-02 ............................................................................................................. 32
Tabla 4: RUC-03 ............................................................................................................. 32Tabla 5: RUC-04 ............................................................................................................. 32Tabla 6: RUC-05 ............................................................................................................. 32Tabla 7: RUC-06 ............................................................................................................. 33Tabla 8: RUC-07 ............................................................................................................. 33Tabla 9: RUC-08 ............................................................................................................. 33Tabla 10: RUC-09 ........................................................................................................... 33Tabla 11: RUC-10 ........................................................................................................... 34Tabla 12: RUC-11 ........................................................................................................... 34Tabla 13: RUC-12 ........................................................................................................... 34
Tabla 14: RUC-13 ........................................................................................................... 34Tabla 15: RUC-14 ........................................................................................................... 35Tabla 16: RUC-15 ........................................................................................................... 35Tabla 17: RUC-16 ........................................................................................................... 35Tabla 18: RUC-17 ........................................................................................................... 35Tabla 19: RUC-18 ........................................................................................................... 36Tabla 20: RUC-19 ........................................................................................................... 36Tabla 21: RUC-20 ........................................................................................................... 36Tabla 22: RUC-21 ........................................................................................................... 36Tabla 23: RUC-22 ........................................................................................................... 37
Tabla 24: RUC-23 ........................................................................................................... 37Tabla 25: RUC-24 ........................................................................................................... 37Tabla 26: RUC:25 ............................................................................................................ 37Tabla 27: RUC-26 ........................................................................................................... 38Tabla 28: RUR-01 ........................................................................................................... 38Tabla 29: RUR-02 ........................................................................................................... 38Tabla 30: RUR-03 ........................................................................................................... 38Tabla 31: RUR-04 ........................................................................................................... 39Tabla 32: RUR-05 ........................................................................................................... 39Tabla 33: RUR-06 ........................................................................................................... 39
Tabla 34: RUR-07 ........................................................................................................... 39Tabla 35: RUR-08 ........................................................................................................... 40Tabla 36: RUR-09 ........................................................................................................... 40Tabla 37: RUR-10 ........................................................................................................... 40Tabla 38: Plantilla de caso de uso ................................................................................. 42Tabla 39: CU-01 ............................................................................................................. 43Tabla 40: CU-02 ............................................................................................................. 44Tabla 41: CU-03 ............................................................................................................. 44Tabla 42: CU-04 ............................................................................................................. 45Tabla 43: CU-05 ............................................................................................................. 46Tabla 44: CU-06 ............................................................................................................. 46
7/25/2019 TFG Carlos Pliego Garcia
13/206
Trabajo de Fin de Grado Carlos Pliego Garca
13
Tabla 45: CU-07 ............................................................................................................. 47Tabla 46: CU-08 ............................................................................................................. 47Tabla 47: CU-09 ............................................................................................................. 48Tabla 48: CU-10 ............................................................................................................. 49Tabla 49: CU-11 ............................................................................................................. 51
Tabla 50: CU-12 ............................................................................................................. 51Tabla 51: CU-13 ............................................................................................................. 51Tabla 52: CU-14 ............................................................................................................. 52Tabla 53: CU-15 ............................................................................................................. 53Tabla 54: Plantilla de requisito de software .................................................................. 55Tabla 55: RS-01 .............................................................................................................. 55Tabla 56: RS-02 .............................................................................................................. 56Tabla 57: RS-03 .............................................................................................................. 56Tabla 58: RS-04 .............................................................................................................. 56Tabla 59: RS-05 .............................................................................................................. 56Tabla 60: RS-06 .............................................................................................................. 56Tabla 61: RS-07 .............................................................................................................. 57Tabla 62: RS-08 .............................................................................................................. 57Tabla 63: RS-09 .............................................................................................................. 57Tabla 64: RS-10 .............................................................................................................. 57Tabla 65: RS-11 .............................................................................................................. 57Tabla 66: RS-12 .............................................................................................................. 58Tabla 67: RS-13 .............................................................................................................. 58Tabla 68: RS-14 .............................................................................................................. 58
Tabla 69: RS-15 .............................................................................................................. 58Tabla 70: RS-16 .............................................................................................................. 58Tabla 71: RS-17 .............................................................................................................. 59Tabla 72: RS-18 .............................................................................................................. 59Tabla 73: RS-19 .............................................................................................................. 59Tabla 74: RS-20 .............................................................................................................. 59Tabla 75: RS-21 .............................................................................................................. 59Tabla 76: RS-22 .............................................................................................................. 60Tabla 77: RS-23 .............................................................................................................. 60Tabla 78: RS-24 .............................................................................................................. 60
Tabla 79: RS-25 .............................................................................................................. 60Tabla 80: RS-26 .............................................................................................................. 61Tabla 81: RS-27 .............................................................................................................. 61Tabla 82: RS-28 .............................................................................................................. 61Tabla 83: RS-29 .............................................................................................................. 61Tabla 84: RS-30 .............................................................................................................. 62Tabla 85: RS-31 .............................................................................................................. 62Tabla 86: RS-32 .............................................................................................................. 62Tabla 87: RS-33 .............................................................................................................. 62Tabla 88: RS-34 .............................................................................................................. 63
Tabla 89: RS-35 .............................................................................................................. 63Tabla 90: RS-36 .............................................................................................................. 63
7/25/2019 TFG Carlos Pliego Garcia
14/206
Trabajo de Fin de Grado Carlos Pliego Garca
14
Tabla 91: RS-37 .............................................................................................................. 63Tabla 92: RS-38 .............................................................................................................. 64Tabla 93: RS-39 .............................................................................................................. 64Tabla 94: RS-40 .............................................................................................................. 64Tabla 95: RS-41 .............................................................................................................. 64
Tabla 96: RS-42 .............................................................................................................. 65Tabla 97: RS-43 .............................................................................................................. 65Tabla 98: RS-44 .............................................................................................................. 65Tabla 99: RS-45 .............................................................................................................. 65Tabla 100: RS-46 ............................................................................................................ 66Tabla 101: RS-47 ............................................................................................................ 66Tabla 102: RS-48 ............................................................................................................ 66Tabla 103: RS-49 ............................................................................................................ 66Tabla 104: RS-50 ............................................................................................................ 66Tabla 105: RS-51 ............................................................................................................ 67Tabla 106: RS-52 ............................................................................................................ 67Tabla 107: RS-53 ............................................................................................................ 67Tabla 108: RS-54 ............................................................................................................ 67Tabla 109: RS-55 ............................................................................................................ 67Tabla 110: RS-56 ............................................................................................................ 68Tabla 111: RS-57 ............................................................................................................ 68Tabla 112: RS-58 ............................................................................................................ 68Tabla 113: RS-59 ............................................................................................................ 68Tabla 114: RS-60 ............................................................................................................ 68
Tabla 115: RS-61 ............................................................................................................ 69Tabla 116: Parmetros del mdulo de generacin QR.................................................. 79Tabla 117: Parmetros del mdulo de generacin QRypt ............................................ 83Tabla 118: Tokens de control ........................................................................................ 85Tabla 119: Algoritmo del mtodo drawQR................................................................... 116Tabla 120: Algoritmo del mtodo cifrar....................................................................... 117Tabla 121: Algoritmo del mtodo desorden................................................................ 119Tabla 122: Algoritmo del mtodo pasarABlancoYNegro............................................ 122Tabla 123: Algoritmo del mtodo leerFichero............................................................. 123Tabla 124: Algoritmo del mtodo tokensDeControl.................................................... 125
Tabla 125. Algoritmo del mtodo orden...................................................................... 126Tabla 126: Algoritmo del mtodo descifrar................................................................. 127Tabla 127: Algoritmo del mtodo carpetaDeSalida..................................................... 129Tabla 128: Algoritmo del mtodo establecerIdioma................................................... 130Tabla 129: Algoritmo del mtodo actualizarIdioma.................................................... 130Tabla 130: Algoritmo del mtodo mostrarLog............................................................ 131Tabla 131: Tiempo de generacin QR .......................................................................... 168Tabla 132: Nmero de caracteres utilizados en los tipos de cifrado ......................... 169Tabla 133: Tiempo de generacin QRypt de 500 caracteres ...................................... 169Tabla 134: Tiempo de generacin QRypt de 2000 caracteres .................................... 170
Tabla 135: Tabla relacional entre tamaos de clave y posibles combinaciones ....... 177Tabla 136: Coste del personal ..................................................................................... 205
7/25/2019 TFG Carlos Pliego Garcia
15/206
Trabajo de Fin de Grado Carlos Pliego Garca
15
Tabla 137: Coste de los equipos .................................................................................. 205Tabla 138: Coste del software ..................................................................................... 206Tabla 139: Otros costes ............................................................................................... 206Tabla 140: Resumen de costes .................................................................................... 206
7/25/2019 TFG Carlos Pliego Garcia
16/206
Trabajo de Fin de Grado Carlos Pliego Garca
16
1
INTRODUCCIN
1.1
CONTEXTO ACTUAL Y OBJETIVODesde que el hombre tiene uso de razn, se han utilizado los smbolos paraexteriorizar pensamientos o ideas e, incluso, como medio de comunicacin conculturas prealfabetizadas. La principal ventaja de los smbolos es que transmiten unmensaje o un concepto al receptor de forma rpida debido a su simplicidadestructural que, nicamente, est definida por elemento visuales.
La ciencia, la tecnologa y, sobretodo, el paso de los aos, han permitido que sedesarrollen sistemas que pueden interpretar estos smbolos y clasificar el objeto alque representan de forma automtica. Debido a que estos sistemas no precisan deatencin humana, los smbolos que interpretan, en la mayora de los casos, norepresentan exactamente el objeto al que identifican. Un claro ejemplo son loscdigos de barras, que almacenan informacin del producto sin representar su figura.
Existen muchos tipos de cdigos de barras pero el ms famoso es el EAN-128 ya quees el usado para la logstica y paquetera y es capaz de representar los 128 caracteresde la tabla ASCII. Aun as, el EAN-128 tiene limitacin de espacio y, por eso, hoy en dase est usando cada vez ms el cdigo QR ya que, al ser un tipo de cdigo de barrasmatricial (de dos dimensiones), puede contener mucha ms informacin sobre elproducto al que representa. [25]
A da de hoy, existen multitud de aplicaciones de terminales mviles que son capacesde escanear y descifrar estos cdigos para brindar al usuario la informacin que
contienen, ya sea un mensaje o un enlace a Internet pero, a pesar de estar cifrados,todos los dispositivos son capaces de descifrarlos y obtener la informacin sinningn tipo de privacidad.
Es aqu donde surge la pregunta que se han intentado solventar en el presenteproyecto: Sera posible generar un cdigo QR que slo pueda ser descifrado por laspersonas o los terminales a quien va dirigida la informacin que contiene?
7/25/2019 TFG Carlos Pliego Garcia
17/206
Trabajo de Fin de Grado Carlos Pliego Garca
17
2 ESTADO DEL ARTEPara comprender el porqu de las decisiones tomadas en el desarrollo del presenteTrabajo de Fin de Grado es esencial conocer y entender los conceptos base que sehan tenido en cuenta antes de comenzar con el diseo del proyecto.
2.1
SMARTPHONELos smartphones o telfonos inteligentes son telfonos mviles con caractersticasms avanzadas, similares a las de un ordenador. La gran mayora son tctiles ypueden conectarse a Internet. Para ello utilizan tecnologas como 3G, Wi-Fi, WAP,GPRS, EDGE, HSD, HSDPA, etc.
El desarrollo de estas tecnologas para smartphones ha permitido que las personasse comuniquen unos con otros de forma completamente diferente a como se hacaantes y, en la mayora de los casos, de forma gratuita. Esto es gracias a las redessociales y a las aplicaciones de mensajera instantnea. Esta comunicacin se
produce en tiempo real, lo cual permite que los usuarios se interconecten a travs desus smartphones independientemente del sistema operativo o del desarrollador.
2.2 ANDROIDAndroid es un sistema operativo basado en Linux que ha sido diseadoespecialmente para terminales mviles con pantalla tctil. Comprado por Google en2005, es el principal producto de la Open Handset Alliance. En el ao 2011 pas a ser,con un 50,9% de cuota de mercado, el sistema operativo para terminales mviles msvendido mundialmente y, aun a da de hoy, mantiene su liderazgo.
Debido a la filosofa Open-Source que comparten Linux y Google, el sistema operativoAndroid tiene una gran comunidad de desarrolladores que extienden la funcionalidadde sus dispositivos escribiendo aplicaciones. Estas aplicaciones, dos tercios de lascuales son gratuitas, se almacenan en el repositorio oficial de Google llamado GooglePlay. Google realiza varias comprobaciones de seguridad a la aplicacin para revisarque no pertenece a la categora de software malicioso y, una vez la verifica, la hacevisible para todos los dispositivos soportados y permite su descarga. [26]
La estructura de este sistema operativo est compuesta por varias aplicaciones quese ejecutan en un framework Java sobre el ncleo de las bibliotecas de Java en una
mquina virtual Dalvik con compilacin en tiempo de ejecucin. Las bibliotecas estnescritas en lenguaje C e incluyen:
Surface Manager: Administrador de interfaz grfica.
Media Framework: Framewrok OpenCore.
SQLite: Base de datos relacional basada en SQLite.
OpenGL ES: Interfaz de programacin de API grfica.
FreeType: Fuentes en Bitmap y renderizado vectorial.
WebKit: Motor de renderizado web.
SGL: Motor de grficos 2D.
SSL: Servicios de encriptacin Secure Socket Layer.
7/25/2019 TFG Carlos Pliego Garcia
18/206
Trabajo de Fin de Grado Carlos Pliego Garca
18
libc: Una derivacin de las libreras BSD de C estndar, adaptados paradispositivos embebidos basaos en Linux.
Ilustracin 1: Estructura del SO Android
El ncleo del sistema operativo est programado en lenguaje C (ms de 2.8 millonesde lneas de cdigo), mientras que las libreras estn en C y C++ (1.7 millones delneas). Sin embargo, la interfaz principal y las aplicaciones son programadas enlenguaje Java (2.1 millones de lneas). Es por esto ltimo por lo que existen tantosdesarrolladores programando para esta plataforma, ya que el lenguaje Java esverstil, flexible, y fcil. [1]
Android siempre ha apostado por la compatibilidad con muchos y diferentes tipos desmartphones. Esto ha sido una de las razones principales de su gran cantidad deventas. Adems, cada poco tiempo, Google publica nuevas versiones de su sistema
operativo que arreglan fallos y aaden nuevas funcionalidades que ayudan aldesarrollador a programar aplicaciones ms profesionales con ms facilidad.
Las versiones de Android hasta la fecha han sido: Apple Pie (v.1.0), Banana Bread(v.1.1), Cupcake (v.1.5), Donut (v.1.6), clair (v.2.0), Froyo (v.2.2), Gingerbread (v.2.3),Honeycomb (v.3.0), Ice Cream Sandwich (v.4.0), Jelly Bean (v.4.1). [3]
La versin ms utilizada es la Gingerbread (v.2.3) pero las libreras de Android decdigos QR son muy limitadas para esta versin, por lo que se ha decidido utilizar laslibreras de la versin Honeycomb (v.3.0) ya que, la siguiente versin ms utilizada esla ltima (la Jelly Bean) pero, como las libreras son escalables (las libreras de la
versin 4.0 ya contienen las de la versin 3.0 pero no al revs), se utiliza las de estaversin para obtener una compatibilidad mayor.
7/25/2019 TFG Carlos Pliego Garcia
19/206
Trabajo de Fin de Grado Carlos Pliego Garca
19
A pesar de las ventajas para el usuario y para la empresa que vende el smartphonecon este sistema operativo, existe un gran problema para el desarrollador. Esteproblema consiste en que, al existir tanta variedad de smartphones que utilizanAndroid, las aplicaciones que se desarrollan tienen que ser muy verstiles paraconseguir una mxima compatibilidad y, con las diferencias de resolucin de las
pantallas, las potencias de procesador tan dispares y las versiones tan distintas deAndroid, es una tarea verdaderamente ardua es muy difcil conseguir estacompatibilidad.
2.3 CDIGO QRLos cdigos QR (Quick Response en ingls y respuesta rpida en espaol) soncdigos de barras bidimensionales con la capacidad de almacenar gran cantidad deinformacin codificada dentro de un cuadrado. Son fcilmente reconocibles debido asus tres cuadrados ubicados en las esquinas (uno en cada esquina superior y otro enesquina inferior izquierda) del cuadrado principal, que permiten detectar la posicindel cdigo que se va a leer.
Estos cdigos fueron creados por la compaa Denso Wave, subsidiaria de Toyota, en1994. Lo que se pretenda era que el cdigo permitiera que su contenido se pudieraleer a alta velocidad, ya que su primer uso fue registrar repuestos en el rea defabricacin de vehculos. Estos cdigos empezaron siendo muy comunes en Japn y,a da de hoy, son muy frecuentes en el mundo entero. [2]
Ilustracin 2: Ejemplo de Cdigo QR
Actualmente, con la popularizacin de los smartphones, la lectura de estos cdigosbidimensionales QR se ha vuelto muy sencilla, ya que slo consiste en enfocar el
7/25/2019 TFG Carlos Pliego Garcia
20/206
Trabajo de Fin de Grado Carlos Pliego Garca
20
cdigo con la cmara, por lo que el uso de este cdigo se ha incrementadodrsticamente y est siendo utilizado por las empresas con fines publicitarios.
Los principales usos que se les da a los cdigos QR son:
Publicidad: El mensaje puede ser una URL de una empresa o informacinsobre un producto suyo. Papelera corporativa:Puede contener la informacin de una tarjeta de visita
sin la necesidad de imprimirla.
Gestin de stocks y almacenes:Puede contener toda la informacin necesariade un artculo ordenado en una estantera, indicando si ste se est agotandopara realizar un nuevo pedido o si, por el contrario, existen demasiados y esrecomendable promocionarlos por medio de ofertas.
Concursos: Se puede hacer intervenir al instante a un consumidor en unacompeticin, llevndole, incluso, a una pgina web donde puede inscribirse
para ganar premios. Asesoramiento al consumidor:Puede proporcionar una informacin adicional
del producto con el que viene acompaado.
Para descifrar un cdigo QR solamente se necesita un dispositivo con cmara defotos y un lector compatible. Pero ahora, gracias a los smartphones, gran parte de lapoblacin cumple con estos requisitos. De ah que su popularidad haya crecido tantoltimamente.
En la web, existen varias aplicaciones que permiten generar los cdigos QR con elmensaje que se desee pero en el repositorio de aplicaciones de Google existen muypocas. Por otro lado, en este repositorio hay muchas aplicaciones que escaneancdigos QR y los descifran desde la cmara pero no existen las que los escaneen ydescifren directamente desde un archivo de imagen.
Estas dos carencias se van a intentar subsanar con la aplicacin que se va adesarrollar.
2.4
SEGURIDAD
2.4.1
CONCEPTO GENERAL
Del latn securitas. Se puede referir a la ausencia de riesgo o a la confianza en algo oalguien. [27] Relativo a la informtica, la seguridad est concebida para proteger lainfraestructura computacional y a los usuarios. En el entorno que nos interesa, laseguridad se anticipa y protege al usuario de que alguien sepa informacin suya atravs de los cdigos QR.
Algunos tipos de amenazas que pueden darse por una mala seguridad son losprogramas maliciosos, los intrusos o la manipulacin malintencionada del terminal(como un overclock exagerado por parte de alguien que no es propietario delsmartphone).
7/25/2019 TFG Carlos Pliego Garcia
21/206
Trabajo de Fin de Grado Carlos Pliego Garca
21
Existen varias formas de evitar que alguna de estas amenazas se den en un terminal;como, por ejemplo, la codificacin de la informacin, los escudos de red y deaplicaciones, los antivirus o los sistemas de respaldo remotos.
La seguridad que se va a intentar incluir en la aplicacin no consiste en la inmunidad
del smartphone, sino en la proteccin de los datos que contiene un cdigo QR. Comose ha dicho anteriormente, los cdigos QR no ofrecen ningn tipo de proteccin frentea una persona que no debera leerlo ya que la informacin que contiene no estcifrada. Por eso, se ha decidido utilizar la tcnica de la codificacin para cifrar elmensaje. De esta forma, una persona que no est autorizada a conocer la informacinque ste contiene slo obtendra, al escanearlo, una cadena alfanumrica sin ningnsentido.
2.4.2 CONCEPTOS IMPORTANTES
Para entender ms adelante los trminos referentes a la seguridad sin ningn
problema, se van a explicar los conceptos con los que se va a estar tratando durantetodo el desarrollo del proyecto.
Encriptacin:La encriptacin es el proceso de cambiar los datos de forma queslo puedan ser ledos por el receptor al que va destinado. [28]
Algoritmo de cifrado AES:La informacin que se incluya en el cdigo QR tieneque ser cifrada para que una persona ajena no pueda conocerla. Para ello, seutilizar el algoritmo de cifrado AES que comprender la seccin principal delproceso de cifrado del texto del cdigo. AES es un algoritmo de cifrado que noest roto (es decir, es seguro) y que est considerado suficientemente seguro
como para proteger la informacin altamente secreta. Este algoritmo utilizauna clave de cifrado de tamao variable desde 128 bits hasta 256, pasandopor 192 bits. Cuanto ms grande sea el tamao de la clave, ms complejidadtendr el algoritmo de cifrado. La descripcin de AES consiste en dos partes, laprimera es el proceso de cifrado y la segunda es el proceso de generacin delas subclaves, una aproximacin muy simple se muestra en la siguiente figura:[29]
7/25/2019 TFG Carlos Pliego Garcia
22/206
Trabajo de Fin de Grado Carlos Pliego Garca
22
Ilustracin 3: Diagrama del algoritmo de cifrado AES
Salt:En el contexto de seguridad, un saltes un conjunto de bits aleatorios quese concatenan a la contrasea para generar una nueva clave y evitar losataques de diccionario.
Vector de inicializacin:Cuando se va a realizar un cifrado por bloques comoel que se va a realizar en esta aplicacin, es aconsejable utilizar un bloque debits aleatorio llamado vector de inicializacin que permite generar resultadosdistintos del cifrado utilizndose la misma clave y el mismo texto.
Algoritmo de codificacin Base64: Este algoritmo permite representar datos
binarios en formato ASCII. Para ello se utiliza un alfabeto compuesto por 65caracteres pertenecientes al US-ASCII. La siguiente ilustracin muestra elalfabeto del algoritmo Base64: [30]
7/25/2019 TFG Carlos Pliego Garcia
23/206
Trabajo de Fin de Grado Carlos Pliego Garca
23
Ilustracin 4: Alfabeto utilizado en el algoritmo Base64
7/25/2019 TFG Carlos Pliego Garcia
24/206
Trabajo de Fin de Grado Carlos Pliego Garca
24
3
MARCO REGULADORAntes de comenzar a analizar la aplicacin, se han estudiado las leyes vigentes y lasnormativas tcnicas que ataen al proyecto. Seguidamente, se proceder a definircada una de estas leyes.
3.1
LEY GENERAL DE LAS TELECOMUNICACIONESLa ley general de las telecomunicaciones fund un rgimen plenamente liberalizadoen la asistencia de servicios y el establecimiento y explotacin de redes detelecomunicaciones, descubriendo el sector a la libre competencia entre operadores.[18]
Su objetivo no es otro que el de asegurar y avalar el secreto de las comunicaciones.
El artculo que interesa de esta ley es el 36 de la Ley General de Telecomunicacionessobre el "Cifrado en las redes y servicios de comunicaciones electrnicas". Este
artculo pertenece a la ley datada del 3 de Noviembre de 2003 y dice as: [18]
1. "Cualquier tipo de informacinque se transmita por redes de comunicacioneselectrnicas podr ser protegida mediante procedimientos de cifrado."
2. "El cifrado es un instrumento de seguridad de la informacin. Entre suscondiciones de uso, cuando se utilice para proteger la confidencialidad de lainformacin, se podr imponer la obligacin de facilitar a un rgano de laAdministracin General del Estado o a un organismo pblico, los algoritmos ocualquier procedimiento de cifrado utilizado, as como la obligacin de facilitarsin coste alguno los aparatos de cifra a efectos de su control de acuerdo con
la normativa vigente."
El primero de los puntos seala que no se incumple ninguna norma y est permitido elcifrar todo tipo de informacin que se vaya a transmitir por redes de comunicacioneselectrnicas. La aplicacin que se va a desarrollar va a emplear tcnicas de cifradosobre los datos que, ms tarde, pueden enviarse mediante aplicaciones de tercerospor redes de comunicaciones electrnicas. De esta forma, se puede concluir que laaplicacin asegura el secreto de las comunicaciones.
El segundo punto informa de que la Administracin General del Estado o unorganismo pblico pueden requerir los algoritmos o procedimientos empleados y losaparatos de cifra. Como se tiene pensado publicar la aplicacin en el repositoriooficial de Google (Google Play), cualquier organismo puede descargar el softwaredesde all y ponerse en contacto con su creador mediante la direccin de correoelectrnico que es obligatorio definir cuando se publica algn software.
7/25/2019 TFG Carlos Pliego Garcia
25/206
Trabajo de Fin de Grado Carlos Pliego Garca
25
3.2
LEY ORGNICA DE PROTECCIN DE DATOSLa ley orgnica de proteccin de datos tiene por objeto garantizar y proteger, en loque concierne al tratamiento de los datos personales, las libertades pblicas y losderechos fundamentales de las personas fsicas, y especialmente de su honor eintimidad personal y familiar. [19]
Esta Ley Orgnica, datada del 13 de Diciembre, manifiesta en el artculo 9 llamado"Seguridad de los datos" que:
"El responsable del fichero, y, en su caso, el encargado del tratamiento debernadoptar las medidas de ndole tcnica y organizativas necesarias que garanticen laseguridad de los datos de carcter personal y eviten su alteracin, prdida,tratamiento o acceso no autorizado, habida cuenta del estado de la tecnologa, lanaturaleza de los datos almacenados y los riesgos a que estn expuestos, yaprovengan de la accin humana o del medio fsico o natural." [19]
Este punto seala que, tanto el usuario de la aplicacin como el desarrollador de ella,deben tomar medidas de seguridad para que no se vea afectada la privacidad de losdatos. Para respetar y cumplir con esta ley, se tomarn las siguientes decisiones:
Los algoritmos de cifrado que se empleen debern ser muy seguros, de modoque ningn ataque contra la privacidad de los datos sea viable.
La informacin secreta contenida en un cdigo QRypt slo ser accesible porel autor del mensaje y por los participantes que ste considere con talderecho.
Ningn sistema externo al dispositivo mvil desde donde se realice el cifradoalmacenar datos sobre el usuario. La aplicacin se disear de tal forma quelos cdigos que se generen a partir de ella, se enven desde aplicaciones deterceros. De esta forma, la seguridad de los datos contenidos en el cdigo a lahora de enviarlo no recaer sobre la aplicacin que se va a desarrollar; sino,sobre el usuario y la aplicacin que escoja para enviar los datos.
7/25/2019 TFG Carlos Pliego Garcia
26/206
Trabajo de Fin de Grado Carlos Pliego Garca
26
4
ANLISISEl objetivo de esta seccin no es otro que el de obtener una especificacin detalladadel sistema de informacin que se va a desarrollar. Tras esta especificacin, queestablecer la base del sistema, se detallar el diseo de ste. El anlisis tratar de
comprender las necesidades de las que se precisa una resolucin y conformar elproblema.
4.1
DEFINICIN DEL SISTEMAAntes de profundizar en la captacin y el anlisis de requisitos es necesario detallarsu funcionamiento, especificar los problemas que debe resolver, determinar lasrestricciones con las que tendr que enfrentarse y definir el entrono operacional queva a requerir.
4.1.1 ALCANCE DEL SISTEMA
El sistema de informacin que se pretende desarrollar consiste en una aplicacin que
va a posibilitar a los usuarios de smartphones que utilicen el sistema operativoAndroid la generacin y el futuro escaneo de cdigos QR cifrados. Adems, laaplicacin permitir compartir estos cdigos con cualquier persona mediante elprograma de mensajera mvil que se desee.
La aplicacin debe ser capaz de generar y leer cdigos QR. Adems, deber podercifrar un mensaje de forma rpida pero robusta y, posteriormente, transcribirlo a uncdigo QR. Este cdigo se denominar QRypt. Despus, debe adaptar este cdigo auna imagen para que pueda ser compartida mediante una aplicacin externa demensajera mvil o, en su defecto, guardada en la memoria SD del telfono.
Finalmente, debe ser capaz de escanear una imagen que contenga un cdigo QR,aislarlo de los dems elementos que compongan la imagen, y descifrar el mensajeoriginal con ayuda de una contrasea. El sistema debe implementar algoritmoscriptogrficos para el cifrado del mensaje original.
En el caso de generar un cdigo QRypt, el sistema dar la opcin de cifrar el mensajemediante los siguientes mtodos:
Contrasea:El mensaje se cifrar con una contrasea que se haya acordadoentre el emisor y el receptor como clave.
Imei:El mensaje se cifrar con el imei del terminal que genera el cdigo comoclave. De esta forma, el mensaje slo podr recuperarlo el terminal que generel cdigo.
Modelo:El mensaje se cifrar con el modelo del terminal que genera el cdigocomo clave. De esta forma, el mensaje slo podr recuperarlo un terminal quecomparta el modelo del terminal que gener el cdigo.
Fecha: El mensaje se cifrar con una fecha que introducir el emisor comoclave. Si la fecha es futura, el mensaje no se podr leer. Las comprobacionesse harn con la fecha de Internet.
Patrn:El mensaje se cifrar con un patrn semejante al que utiliza Android en
el desbloqueo de sus terminales como clave.
7/25/2019 TFG Carlos Pliego Garcia
27/206
Trabajo de Fin de Grado Carlos Pliego Garca
27
Ms adelante se definir la funcionalidad completa de la aplicacin.
4.1.2 RESTRICCIONES GENERALES
El equipo de desarrollo y la normativa legal especificada en el marco reguladorhanimpuesto las siguiente restricciones para el presente proyecto:
La interfaz de la aplicacin debe ser sencilla, usable, accesible y amigable.
Es necesario que la aplicacin est programada en lenguaje de programacinJava.
La aplicacin debe ser compatible con el mayor nmero posible de versionesdel sistema operativo Android.
La aplicacin debe ser capaz de cumplir a la perfeccin con todas lasfuncionalidades que se hallan en los requisitos de usuario.
Los requisitos de usuario coincidirn con los que se especificaron en lasreuniones que se han mantenido con el tutor y se complementarn con las
decisiones que el alumno haya considerado pertinentes. Los algoritmos criptogrficos que se utilicen en el sistema deben ser seguros.
La informacin personal de los usuarios de la aplicacin y los datos que segeneren o traten quedarn nicamente en posesin del usuario. La aplicacinno enviar datos annimamente a ningn servidor, bien en posesin deldesarrollador, bien en posesin de cualquier otra entidad.
4.1.3 ENTORNO OPERACIONAL
La aplicacin que se va a desarrollar necesita que el terminal en el que se va aejecutar cuente con unos requisitos mnimos para asegurar que el sistema funciona
correctamente. Estos requisitos son:
Una versin del sistema operativo Android igual o superior a la Honeycomb(v.3.0). Esta versin se beneficia de una API con la que no cuentan lasanteriores versiones y es esencial para soportar un diseo estndar de Googlellamado Holo que mejora notablemente la interaccin usuario-aplicacin.
Una cantidad de memoria RAM no menor a 700MB, ya que el terminal debe sercapaz de tratar con rapidez los datos y las herramientas que utiliza laaplicacin. Adems, al ser necesaria tambin una versin del sistemaoperativo Android que utiliza la memoria RAM con mucha asiduidad, se
necesita una cantidad de memoria que, a pesar de ser la normal endispositivos que soportan este sistema operativo, no es baja.
7/25/2019 TFG Carlos Pliego Garcia
28/206
Trabajo de Fin de Grado Carlos Pliego Garca
28
4.2
ENTORNO DE DESARROLLOEn esta seccin se van a exponer todos los datos y la informacin pertinente sobrelos elementos hardware y software que componen el entorno de desarrollo con el quese le dar vida a la aplicacin.
4.2.1
EQUIPOSSe utilizarn los siguientes dispositivos fsicos para disear, desarrollar y probar laaplicacin:
Dispositivo mvil Samsung Galaxy SIIo Modelo: GT-I9100.o Versin del sistema operativo: 4.1.2 Jelly Bean (API 16). [3]o Procesador: Dual-Core 1.2 GHz Cortex-A9. [4]o RAM: 1GB.o Versin de banda base: I9100XXMS2o
Versin del Kernel: 3.0.31 - 1069234 dpi@DELL237 #3 SMP PREEMPTo Nmero de compilacin: JZO54K.I9100XWLSN
Ordenador de sobremesa hecho a piezaso Procesador: Intel Core i7-2600K 3.4GHz.o Sistema operativo: Windows 8 Professional 64 bits.o Memoria RAM: 8GB DDR3.o Capacidad del disco duro: 1TB.
Ordenador porttil Asuso Modelo: A55A-SX465H.o Procesador: Intel Core i7-3630QM 2.4GHz.o
Sistema operativo: Windows 8 Professional 64 bits.o Memoria RAM: 8GB DDR3.o Capacidad del disco duro: 500GB.
4.2.2 LENGUAJE DE PROGRAMACIN
Debido a que no hay que realizar ninguna tarea en la consola de comandos deWindows, el nico lenguaje que se utilizar durante el desarrollo de la aplicacin serel lenguaje de programacin Java ya que ste es el lenguaje que se emplea en laprogramacin de las aplicaciones para el sistema operativo Android. En este caso, seutilizar la API de Android 11 ya que es la mnima que proporciona las libreras
bsicas necesarias para un diseo Holo.
4.2.3 ENTORNO DE DESARROLLO
El entorno de desarrollo que se emplear para llevar a cabo el proyecto ser elprograma Eclipse. Este entorno est programado en Java y cuenta con un grannmero de complementos para el desarrollo y diseo de aplicaciones para el sistemaoperativo Android.
Se ha decidido escoger este entorno de desarrollo ya que es uno de los ms usadopara programar aplicaciones para el sistema operativo Android, cuenta con un
emulador virtual de dispositivo Android en el que se puede comprobar lafuncionalidad de la aplicacin en diferentes tamaos de pantalla y versiones del
7/25/2019 TFG Carlos Pliego Garcia
29/206
Trabajo de Fin de Grado Carlos Pliego Garca
29
sistema operativo, y es el entorno de programacin que ms se ha utilizado durante lacarrera.
La versin de Eclipse, el nombre de los complementos y el nmero de versin delentorno de desarrollo software para Android (llamado SDK, "Software Development
Kit") sern los siguientes:
Versin de Eclipse: 3.4.
Complementos: Android Development Tools (ADT).
Android SDK: 3.0 (API 11).
7/25/2019 TFG Carlos Pliego Garcia
30/206
Trabajo de Fin de Grado Carlos Pliego Garca
30
4.3
REQUISITOS DE USUARIOEn circunstancias normales, la funcin de los requisitos de usuario no sera otra quela de recoger la informacin explcita sobre qu es lo que quiere el cliente y qu es loque necesita. Como este caso vara de la regla general ya que se trata de un proyectode fin de grado, estos requisitos se obtendrn en sesiones de trabajo entre el tutor delproyecto y el alumno encargado de realizarlo. El fin de estas reuniones es numerar ydefinir los procesos y tareas que el sistema de informacin (en este caso, laaplicacin) debera poder llevar a cabo sin ningn problema, y, por otro lado, laslimitaciones que ste debera tener.
Debido a la naturaleza de los requisitos de usuario, se ha decidido dividir suespecificacin en requisitos de capacidad del sistema y requisitos de restriccinsobre el sistema.
Cada requisito deber estar definido en una tabla. Las tablas se compondrn de los
siguientes atributos:
Identificador: Es preciso que cada requisito de usuario est vinculado a unidentificador exclusivo y unvoco para que su seguimiento futuro puedarealizarse de forma ms simple. El identificador estar formado por doselementos clave:
o Siglas: Se referirn al tipo de requisito de usuario que sea. Si es unrequisito de usuario de capacidad, sern RUC; mientras que, si es unrequisito de usuario de restriccin, sern RUR.
o Nmero:El nmero de requisito que sea. Se representar siempre con 2
cifras.
De esta forma, un ejemplo de identificador de requisito de usuario decapacidad podra ser el "RUC-08", que equivaldra al requisito de usuario decapacidad nmero 8.
Nombre: El nombre que se le da al requisito. Debe ser un poco descriptivo y, nonecesariamente, unvoco.
Descripcin: La descripcin de lo que debera poder hacer el sistema o, por elcontrario, lo que no debera. Esta especificacin no debera ser extensa ydebera explicar de forma correcta en qu consiste en requisito.
Prioridad: La prioridad de un requisito frente a otros. Los requisitos de msprioridad debern implementarse antes que los de menor prioridad en elproceso de diseo o implementacin. Los valores que puede tomar esteatributo son:Alta, Media y Baja.
Necesidad: La importancia de que un requisito se implemente o no. Losvalores que puede recibir este campo son:
o Primario: Es un requisito de usuario obligatorio que debe serimplementado.
o Secundario:Es un requisito de usuario que debera ser implementado
pero, al contrario que el anterior, no es obligatorio.
7/25/2019 TFG Carlos Pliego Garcia
31/206
Trabajo de Fin de Grado Carlos Pliego Garca
31
o Opcional: Es un requisito de usuario que se puede dejar deimplementar.
Estabilidad:Mide lo estable que ser un requisito de usuario en relacin a loscambios que se puedan producir en el sistema. Los requisitos podrn ser deuno de estos dos tipos:
o
Alta: El requisito no se modificar durante la vida del sistema deinformacin.
o Baja:El requisito puede modificarse puntualmente. Fuente: Especifica cul es el origen del requisito de usuario. Puede tomar dos
valores:o Alumno: Si ha sido el alumno el que ha propuesto el requisito de
usuario.o Tutor:Si, por el contrario, el tutor ha sido quien lo ha propuesto.
En la Tabla 1 se expone una plantilla que representa a un requisito de usuario general.
IDENTIFICADOR: RU@-XXNombre:Descripcin:Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 1: Plantilla de requisito de usuario
4.3.1 REQUISITOS DE CAPACIDAD
Los requisitos de usuario de capacidad especifican las tareas y funciones que debecumplir el sistema de informacin para resolver un problema o, en su defecto,alcanzar un objetivo. Los requisitos de usuario de capacidad recogidos en lassesiones de trabajo con el tutor son:
IDENTIFICADOR: RUC-01Nombre: Modo generar QRDescripcin: El usuario ser capaz de acceder al modo
generar QR desde la pantalla principal dela aplicacin.
Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 2: RUC-01
7/25/2019 TFG Carlos Pliego Garcia
32/206
Trabajo de Fin de Grado Carlos Pliego Garca
32
IDENTIFICADOR: RUC-02Nombre: Modo generar QRyptDescripcin: El usuario ser capaz de acceder al modo
generar QRypt desde la pantalla principalde la aplicacin.
Prioridad:
Alta
Media
BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 3: RUC-02
IDENTIFICADOR: RUC-03Nombre: Modo leer por cmaraDescripcin: El usuario ser capaz de acceder al modo
leer por cmara desde la pantallaprincipal de la aplicacin.
Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 4: RUC-03
IDENTIFICADOR: RUC-04Nombre: Modo leer desde ficheroDescripcin: El usuario ser capaz de acceder al modo
leer desde fichero desde la pantallaprincipal de la aplicacin.
Prioridad: Alta Media Baja
Necesidad:
Primario
Secundario
OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 5: RUC-04
IDENTIFICADOR: RUC-05Nombre: Escoger imagen para leerDescripcin: El usuario ser capaz de escoger una
imagen de la galera para descifrar elcdigo QR o QRypt que contenga, si esque contiene alguno de los dos.
Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 6: RUC-05
7/25/2019 TFG Carlos Pliego Garcia
33/206
Trabajo de Fin de Grado Carlos Pliego Garca
33
IDENTIFICADOR: RUC-06Nombre: Escribir mensaje para cifrarDescripcin: El usuario ser capaz de escribir un
mensaje para poder cifrarlo o para podergenerar un cdigo QR simple.
Prioridad:
Alta
Media
BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 7: RUC-06
IDENTIFICADOR: RUC-07Nombre: Escribir contrasea para cifrarDescripcin: El usuario ser capaz de escribir una
contrasea con la que cifrar el mensajepara generar un cdigo QRypt.
Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 8: RUC-07
IDENTIFICADOR: RUC-08Nombre: Permitir cifrar con imeiDescripcin: El usuario ser capaz de cifrar un
mensaje usando el imei del terminalcomo contrasea para generar un cdigoQRypt.
Prioridad:
Alta
Media
BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 9: RUC-08
IDENTIFICADOR: RUC-09Nombre: Permitir cifrar con modeloDescripcin: El usuario ser capaz de cifrar un
mensaje usando el modelo del terminalcomo contrasea para generar un cdigoQRypt.
Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 10: RUC-09
7/25/2019 TFG Carlos Pliego Garcia
34/206
Trabajo de Fin de Grado Carlos Pliego Garca
34
IDENTIFICADOR: RUC-10Nombre: Permitir cifrar con la fechaDescripcin: El usuario ser capaz de cifrar un
mensaje usando una fecha comocontrasea para generar un cdigo
QRypt.Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 11: RUC-10
IDENTIFICADOR: RUC-11Nombre: Permitir cifrar con un patrnDescripcin: El usuario ser capaz de cifrar un
mensaje usando patrn semejante a losde desbloqueo como contrasea para
generar un cdigo QRypt.Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 12: RUC-11
IDENTIFICADOR: RUC-12Nombre: Contador de caracteresDescripcin: El usuario ser capaz de ver el nmero de
caracteres del mensaje que est
escribiendo en tiempo realPrioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 13: RUC-12
IDENTIFICADOR: RUC-13Nombre: Escoger color del cdigoDescripcin: El usuario ser capaz de escoger el color
que quiera para el cdigo QRypt.Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 14: RUC-13
7/25/2019 TFG Carlos Pliego Garcia
35/206
Trabajo de Fin de Grado Carlos Pliego Garca
35
IDENTIFICADOR: RUC-14Nombre: Escoger modo de transmisinDescripcin: El usuario ser capaz de escoger la
aplicacin a la que quiere enviar elcdigo para compartirlo.
Prioridad:
Alta
Media
BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 15: RUC-14
IDENTIFICADOR: RUC-15Nombre: Carpeta de salidaDescripcin: El usuario ser capaz de elegir la carpeta
en la que se guardarn las imgenes quecontengan los cdigos QR y QRyptgenerados.
Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 16: RUC-15
IDENTIFICADOR: RUC-16Nombre: Panel de ajustesDescripcin: El usuario ser capaz de cambiar los
ajustes por defecto del cifrado.Prioridad: Alta Media Baja
Necesidad:
Primario
Secundario
OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 17: RUC-16
IDENTIFICADOR: RUC-17Nombre: Novedades de la versinDescripcin: El usuario ser capaz de comprobar las
novedades que se han producido de unaversin a otra.
Prioridad: Alta Media BajaNecesidad: Primario Secundario Opcional
Estabilidad: Alta BajaFuente: Alumno Tutor
Tabla 18: RUC-17
7/25/2019 TFG Carlos Pliego Garcia
36/206
Trabajo de Fin de Grado Carlos Pliego Garca
36
IDENTIFICADOR: RUC-18Nombre: Escribir contrasea para descifrarDescripcin: El usuario ser capaz de escribir una
contrasea para descifrar un cdigoQRypt si ste ha sido cifrado con este
mtodo.Prioridad: Alta Media BajaNecesidad: Primario SecundarioOpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 19: RUC-18
IDENTIFICADOR: RUC-19Nombre: Mostrar mensaje descifradoDescripcin: El usuario ser capaz de ver el mensaje
descifrado.Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 20: RUC-19
IDENTIFICADOR: RUC-20Nombre: Abrir URLsDescripcin: El usuario ser capaz de decidir si quiere
ser redirigido cuando el mensajedescifrado sea una URL.
Prioridad: Alta Media Baja
Necesidad:
Primario
Secundario
OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 21: RUC-20
IDENTIFICADOR: RUC-21Nombre: Navegacin sencillaDescripcin: La interfaz deber ser sencilla e intuitiva.
Se obligar al usuario a seguir los pasosque se propongan como si fuera unasistente.
Prioridad: Alta Media Baja
Necesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 22: RUC-21
7/25/2019 TFG Carlos Pliego Garcia
37/206
Trabajo de Fin de Grado Carlos Pliego Garca
37
IDENTIFICADOR: RUC-22Nombre: Diseo para daltnicosDescripcin: El diseo de la interfaz deber ser
perfectamente accesible para gente conproblemas de daltonismo. Se evitar el
uso de tonos verdes y rojos.Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 23: RUC-22
IDENTIFICADOR: RUC-23Nombre: Men compartirDescripcin: El usuario ser capaz de elegir la
aplicacin desde el men "compartir"para imgenes de Android.
Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente: Alumno Tutor
Tabla 24: RUC-23
IDENTIFICADOR: RUC-24Nombre: Escoger modo de cifradoDescripcin: El usuario ser capaz elegir el modo de
cifrado que quiere para su mensaje si esque ha elegido generar un cdigo QRypt.
Podr elegir entre contrasea, imei,modelo, fecha y patrn. Adems, sepodr elegir ms de una opcin.
Prioridad: Alta Media BajaNecesidad: Primario Secundario OpcionalEstabilidad: Alta BajaFuente:
Top Related