tfg carlos pliego garcia

Upload: jasar-sarav

Post on 28-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 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: