Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Emulacion de Tarjetas NFC en Android

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 218

ESCUELA POLITÉCNICA SUPERIOR

INGENIERÍA INFORMÁTICA

PROYECTO FIN DE CARRERA

Emulación de Tarjetas NFC en Android

Autor: Francisco Fernández Díaz

Tutor: Pedro Peris López

Cotutor: Pablo Picazo Sánchez

Leganés, Mayo de 2015


Proyecto Fin de Carrera

Francisco Fernández Díaz ii | P á g i n a


Proyecto Fin de Carrera

Título: Emulación de Tarjetas NFC en Android


Autor: Francisco Fernández Díaz
Tutor: Pedro Peris López
Cotutor: Pablo Picazo Sánchez

EL TRIBUNAL

Presidente:

Vocal:

Secretario:

Realizado el acto de defensa y lectura del Proyecto Fin de Carrera el día __ de


_______ de 20__ en Leganés, en la Escuela Politécnica Superior de la Universidad
Carlos III de Madrid, acuerda otorgarle la CALIFICACIÓN de

VOCAL

SECRETARIO PRESIDENTE

Francisco Fernández Díaz iii | P á g i n a


Proyecto Fin de Carrera

Francisco Fernández Díaz iv | P á g i n a


Agradecimientos Proyecto Fin de Carrera

AGRADECIMIENTOS

Dedicar el final de esta etapa de mi vida a mi familia, siempre han estado a mi lado
animándome, permitiendo que me creara un futuro a mi gusto del que no me arrepintiera y
ayudándome a conseguirlo. A mis padres, Alfonso y Francisca, por haberme proporcionado todo
lo necesario para que pudiera realizar unos estudios de estas magnitudes y sin presionarme para
que así disfrutara y aprendiera todo lo posible de ello, a mi hermana Noelia que siempre sabe
cómo hacerme reír en los momentos complicados, y a mis abuelos que desde el primer momento
nunca duraron en que podía conseguirlo y siempre se han sentido orgullosos.

Dedicar también todo este trabajo a mis amigos, Rafael, Israel y Pepe, que llevamos
muchos años de amistad y nunca me han abandonado a pesar del poco tiempo pasado con ellos
durante el tiempo que ha durado esta carrera. A los compañeros de la universidad, Coral, Adrián,
Roberto, Laura, Luis, Verónica, Daniel, Christian y Jose, por aguantarme y haber pasado tan
buenos momentos juntos, riéndonos por lo bueno y lo malo y pasándolo bien tanto en el ámbito
de los estudios como fuera de él.

También se lo agradezco a mis tutores de este proyecto, por la paciencia que han tenido
durante el periodo de su desarrollo y toda la ayuda que me han ofrecido, así como al resto de
profesores que a lo largo de la carrera me han hecho crecer personal y profesionalmente.

Por último quiero dedicar este proyecto de fin de carrera a Ángel, mi abuelo materno, el
cual falleció durante el desarrollo de las etapas finales de este proyecto.

¡¡¡Muchas gracias a todos!!!

Francisco Fernández Díaz v|Página


Resumen Proyecto Fin de Carrera

RESUMEN

Hoy en día las personas cada vez tienen la necesidad de llevar consigo muchas tarjetas,
ya sean de crédito, para acceder al trabajo, hoteles o al transporte, y eso puede ocasionar
problemas, ya sea por olvidar alguna entre tantas, robo, pérdida o simplemente que el usuario
no quiera llevar todas consigo.

Además los smartphones/teléfonos móviles son utilizados para ver noticias, llamar a
otras personas, jugar, etc. Son pequeños ordenadores que llevamos en el bolsillo y que forman
parte de nuestra vida diaria.

Entonces, ¿cómo podríamos utilizarlos en lugar de las tarjetas físicas? La solución es la


tecnología Near Field Communication (NFC). Esta permite interactuar con las tarjetas y así un
usuario podría usarlo para realizar pagos, accesos de control y acceso a transportes, es decir, lo
mismo que si llevara la tarjeta física con él.

El propósito de este proyecto es desarrollar una aplicación Android para almacenar,


administrar y transmitir tarjetas RFID desde el smartphone o teléfono móvil en lugar de llevar
todas las tarjetas originales en el bolsillo del propietario. Asimismo, todas las claves usadas
deben ser almacenadas en un servidor de la nube, Google App Engine, para obtener datos
estadísticos de las más usadas para posteriormente hacer una investigación sobre ello.

Francisco Fernández Díaz vii | P á g i n a


Resumen Proyecto Fin de Carrera

ABSTRACT

Nowadays people the need to carry a lot of physical cards, either credit, to grant access
to the office, hotels, public transport… This can cause a lot of issues, either by forgetting one
among many, theft, loss or just the user does not want to carry them all.

Besides, the smartphones / mobile phones are used to watch news, call other people,
play, etc. They are also small computers that we carry in our pocket and are part of our daily
life.

So, how could we use them instead of physical cards? The solution is the Near Field
Communication (NFC) technology. This technology can interact with cards so user could make
payments with it, access control and access to transport, with the same behavior as if user had
the physical card with him.

The purpose of this project is to develop an Android application to store, manage and
transmit RFID cards from the smartphone or mobile phone instead of taking all the original
cards in the owner's pocket. Furthermore, all the keys used must be stored on a server in the
cloud, Google App Engine, to obtain statistical data of the most used so there can be do some
research on it afterwards.

Francisco Fernández Díaz viii | P á g i n a


Índice Proyecto Fin de Carrera

Índice de contenido

AGRADECIMIENTOS............................................................................................................. v

RESUMEN ......................................................................................................................vii

ABSTRACT .....................................................................................................................viii

Índice de contenido ............................................................................................................... ix

Índice de figuras .................................................................................................................. xiv

Índice de tablas .................................................................................................................. xviii

CAPÍTULO 1: INTRODUCCIÓN Y OBJETIVOS .................................................................... 1

1. Introducción .............................................................................................................2

2. Objetivos ................................................................................................................. 4

3. Fases del desarrollo ..................................................................................................5

4. Motivación............................................................................................................... 6

5. Estructura del documento ...................................................................................... 6

CAPÍTULO 2: ESTADO DEL ARTE........................................................................................8

1. NFC .......................................................................................................................... 9

1.1. Introducción ...................................................................................................... 9

1.1.1. ¿Qué aplicaciones tiene? .............................................................................. 10

1.2. Características NFC .......................................................................................... 10

1.3. Estandarización ................................................................................................. 11

1.3.1. Arquitectura NFC ......................................................................................... 13

1.4. Etiquetas NFC .................................................................................................. 16

1.4.1. Mifare ........................................................................................................... 17

1.4.1.1. Tipos etiquetas Mifare ........................................................................... 17

1.5. Lectores NFC .................................................................................................... 21

1.5.1. Conectividad ................................................................................................ 22

1.5.2. Compatible con modo lectura/escritura .................................................... 22

1.5.3. Compatible con modo emulación de tarjeta .............................................. 22

Francisco Fernández Díaz ix | P á g i n a


Índice Proyecto Fin de Carrera

1.6. Flujo de comunicación Mifare Classic ............................................................. 22

1.6.1. Solicitud estándar/Solicitud todos..............................................................24

1.6.2. Bucle anticolisión ........................................................................................24

1.6.3. Seleccionar tarjeta .......................................................................................24

1.6.4. Autenticación a tres fases ........................................................................... 25

1.6.5. Halt .............................................................................................................. 25

1.7. Crypto1 ..............................................................................................................26

1.7.1. Cifrado de flujo ............................................................................................26

1.7.1.1. Generador de clave ................................................................................26

1.7.2. Generador de números pseudoaleatorios .................................................. 27

1.7.3. Flujo interno del algoritmo Crypto1 ...........................................................28

1.7.3.1. Inicialización .........................................................................................28

1.7.3.2. Encriptación ..........................................................................................28

1.8. Herramientas de ataque NFC ..........................................................................29

1.8.1. Proxmark3 ....................................................................................................29

1.8.2. LibNFC......................................................................................................... 30

1.8.3. Crapto1 ......................................................................................................... 30

2. Android................................................................................................................... 31

2.1. Introducción ..................................................................................................... 31

2.1.1. ¿Qué es Android? ......................................................................................... 31

2.2. Arquitectura ..................................................................................................... 32

2.3. NFC en Android ............................................................................................... 34

3. SQLite ..................................................................................................................... 34

4. Android CyanogenMod ......................................................................................... 35

5. Google App Engine ................................................................................................ 36

CAPÍTULO 3: DESARROLLO TÉCNICO DEL PFC ............................................................. 37

1. Análisis ................................................................................................................... 38

1.1. Requisitos de usuario ....................................................................................... 38

Francisco Fernández Díaz x|Página


Índice Proyecto Fin de Carrera

1.1.1. Requisitos de capacidad ...............................................................................39

1.1.2. Requisitos de restricción ............................................................................. 41

1.1. Casos de uso .................................................................................................... 48

1.1.1. Diagrama de casos de uso ........................................................................... 49

1.1.2. Especificación detallada de los casos de uso ..............................................50

1.2. Requisitos software ......................................................................................... 60

1.2.1. Requisitos funcionales .................................................................................62

1.2.2. Requisitos no funcionales ........................................................................... 73

1.2.2.1. Requisitos software no funcionales de operación ................................ 73

1.2.2.2. Requisitos software no funcionales de interfaz ................................... 81

1.2.2.3. Requisitos software no funcionales de recursos ................................. 90

1.2.2.4. Requisitos software no funcionales de rendimiento ........................... 91

1.3. Matrices de trazabilidad ..................................................................................93

1.3.1. Matriz de trazabilidad entre requisitos de usuario y requisitos software


funcionales ......................................................................................................................93

1.3.2. Matriz de trazabilidad entre requisitos de usuario y requisitos software


no funcionales de operación ...............................................................................................95

1.3.3. Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de interfaz ........................................................................................................97

1.3.4. Matriz de trazabilidad entre requisitos de usuario y requisitos software


no funcionales de recursos ................................................................................................ 98

1.3.5. Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de rendimiento ............................................................................................... 98

2. Diseño.................................................................................................................... 99

2.1. Arquitectura .................................................................................................... 99

2.1.1. Alternativas de diseño ................................................................................ 99

2.1.2. Diagrama de componentes ....................................................................... 100

2.2. Diagrama de clases ......................................................................................... 102

2.3. Diseño de base de datos................................................................................. 103

Francisco Fernández Díaz xi | P á g i n a


Índice Proyecto Fin de Carrera

CAPÍTULO 4: PRUEBAS......................................................................................................105

1. Pruebas del sistema.............................................................................................. 106

1.1. Especificación de pruebas del sistema .......................................................... 107

1.2. Trazabilidad entre requisitos software funcionales y pruebas del sistema ..122

2. Resultados ............................................................................................................ 124

2.1. Prueba 1 – Lectura tarjeta Mifare Ultralight.................................................. 124

2.2. Prueba 2 – Lectura tarjeta Mifare Classic 1K ..................................................125

2.3. Prueba 3 – Lectura tarjeta Mifare Classic 1K ................................................. 126

2.4. Prueba 4 – Lectura tarjeta Mifare Classic 4K (tarjeta de transporte)........... 126

2.5. Prueba 5 – Escritura en tarjeta Mifare Classic 1K .......................................... 130

CAPÍTULO 5: CONCLUSIONES Y FUTURAS LÍNEAS DE TRABAJO .............................. 133

1. Conclusiones ........................................................................................................ 134

2. Futuras líneas de trabajo...................................................................................... 136

REFERENCIAS ..................................................................................................................... 137

ANEXOS .....................................................................................................................142

ANEXO I: Acrónimos y Definiciones........................................................................... 143

1. Acrónimos ............................................................................................................ 144

2. Definiciones ......................................................................................................... 145

ANEXO II: Gestión del Proyecto .................................................................................. 149

1. Planificación del Proyecto ................................................................................... 150

2. Presupuesto del Proyecto .....................................................................................152

2.1. Coste del personal ...........................................................................................152

2.2. Coste de equipos .............................................................................................152

2.3. Coste de software ............................................................................................ 153

2.4. Material fungible ............................................................................................. 153

2.5. Costes directos totales .................................................................................... 153

2.6. Costes indirectos ............................................................................................ 154

2.7. Beneficio ......................................................................................................... 154

Francisco Fernández Díaz xii | P á g i n a


Índice Proyecto Fin de Carrera

2.8. Margen de riesgo ............................................................................................ 154

2.9. Presupuesto total ........................................................................................... 154

ANEXO III: Manual de Usuario ...................................................................................... 155

1. Acceso Inicial ....................................................................................................... 156

2. Pantalla Principal ................................................................................................. 156

3. Leer ........................................................................................................................157

3.1. Ver como transporte ...................................................................................... 162

3.2. Ver como ASCII .............................................................................................. 164

3.3. Ver condiciones de acceso ............................................................................. 166

4. Escribir.................................................................................................................. 167

5. Ver tarjetas escaneadas ........................................................................................ 170

5.1. Crear tarjeta ..................................................................................................... 171

5.2. Editar tarjeta .................................................................................................... 173

5.3. Borrar tarjeta ................................................................................................... 173

5.4. Importar tarjetas ............................................................................................ 174

6. Claves .....................................................................................................................175

6.1. Crear clave .......................................................................................................177

6.2. Editar clave ..................................................................................................... 178

6.3. Borrar clave .................................................................................................... 178

6.4. Importar claves............................................................................................... 179

6.5. Grupos de claves ............................................................................................ 180

2.3.1. Crear grupo de claves ................................................................................ 180

2.3.2. Editar grupo de claves .............................................................................. 182

2.3.3. Borrar grupo de claves .............................................................................. 184

7. Ver estadísticas de uso ......................................................................................... 184

8. Activar tecnología NFC ........................................................................................ 186

ANEXO IV: Scripts y Modificaciones de Aplicaciones ..................................................187

Francisco Fernández Díaz xiii | P á g i n a


Índice Proyecto Fin de Carrera

Índice de figuras

Ilustración 1: NFC vs. otras tecnologías [33]........................................................................ 3

Ilustración 2: Aplicaciones NFC ......................................................................................... 10

Ilustración 3: Estructura protocolo NFC [39] .....................................................................12

Ilustración 4: Arquitectura NFC .......................................................................................... 13

Ilustración 5: Estructura mensaje NDEF [38] .................................................................... 14

Ilustración 6: Formato registro NDEF [38] .........................................................................15

Ilustración 7: Estructura memoria Mifare Classic 4K ....................................................... 18

Ilustración 8: Estructura memoria Mifare Ultralight ........................................................ 20

Ilustración 9: Comandos Mifare Classic ............................................................................ 23

Ilustración 10: Flujo de comunicación Mifare Classic......................................................... 23

Ilustración 11: Crypto1 – Estructura cifrado de flujo........................................................... 26

Ilustración 12: Crypto1 – Estructura del generador de números pseudoaleatorios ........... 27

Ilustración 13: Crypto1 – Estructura completa .................................................................... 29

Ilustración 14: Versiones de Android .................................................................................. 32

Ilustración 15: Casos de uso ................................................................................................ 49

Ilustración 16: Diagrama de componentes ........................................................................ 100

Ilustración 17: Diagrama de clases......................................................................................103

Ilustración 18: Modelo de datos del sistema ..................................................................... 104

Ilustración 19: Prueba 1 – Resultado de dispositivo móvil (arriba) y del lector con LibNFC
(abajo)..........................................................................................................124

Ilustración 20: Prueba 2 – Claves obtenidas a través de la Proxmark3 (arriba), resultado de


dispositivo móvil (izquierda) y del lector con Mfoc (derecha) ................. 125

Ilustración 21: Prueba 3 – Resultado de dispositivo móvil (izquierda) y del lector con Mfoc
(derecha) .................................................................................................... 126

Ilustración 22: Prueba 4 – Resultado lectura de dispositivo móvil (izquierda) y del lector con
Mfoc (derecha) ............................................................................................ 127

Francisco Fernández Díaz xiv | P á g i n a


Índice Proyecto Fin de Carrera

Ilustración 23: Prueba 4 – Decodificación información general de transporte con el dispositivo


móvil ............................................................................................................ 127

Ilustración 24: Prueba 4 – Decodificación información general de transporte con el lector y


Mfoc GUI .....................................................................................................128

Ilustración 25: Prueba 4 – Decodificación historial de viajes de transporte con el dispositivo


móvil ............................................................................................................128

Ilustración 26: Prueba 4 – Decodificación historial de viajes de transporte con el lector y Mfoc
GUI ............................................................................................................. 129

Ilustración 27: Prueba 4 – Decodificación subscripciones de transporte con el dispositivo móvil


.................................................................................................................... 129

Ilustración 28: Prueba 4 – Decodificación subscripciones de transporte con el lector y Mfoc


GUI ..............................................................................................................130

Ilustración 29: Prueba 5 – Resultado modificación de tarjeta almacenada en el dispositivo


móvil: hexadecimal (izquierda), ASCII (derecha) ..................................... 131

Ilustración 30: Prueba 5 – Resultado lectura de dispositivo móvil de tarjeta modificada:


hexadecimal (izquierda), ASCII (derecha) ................................................. 131

Ilustración 31: Prueba 5 – Resultado lectura con el lector y Mfoc de una tarjeta escrita . 132

Ilustración 32: Diagrama de Gantt ...................................................................................... 151

Ilustración 33: Manual de usuario – Acceso inicial ............................................................156

Ilustración 34: Manual de usuario – Pantalla inicial .......................................................... 157

Ilustración 35: Manual de usuario – Acceder a leer ........................................................... 157

Ilustración 36: Manual de usuario – Selección de claves en lectura ..................................158

Ilustración 37: Manual de usuario – Leer tarjeta ................................................................159

Ilustración 38: Manual de usuario – Limpiar lectura .........................................................159

Ilustración 39: Manual de usuario – Contenido tarjeta a guardar .................................... 160

Ilustración 40: Manual de usuario – Nuevo tipo de tarjeta ................................................ 161

Ilustración 41: Manual de usuario – Guardar tarjeta ......................................................... 161

Ilustración 42: Manual de usuario – Tarjeta repetida ....................................................... 162

Ilustración 43: Manual de usuario – Ver como transporte – Opción menú ......................163

Francisco Fernández Díaz xv | P á g i n a


Índice Proyecto Fin de Carrera

Ilustración 44: Manual de usuario – Ver como transporte - General ................................163

Ilustración 45: Manual de usuario – Ver como transporte - Historial.............................. 164

Ilustración 46: Manual de usuario – Ver como transporte - Subscripciones ................... 164

Ilustración 47: Manual de usuario – Ver como ASCII – Opción menú .............................165

Ilustración 48: Manual de usuario – Ver como ASCII – Contenido en ASCII ...................165

Ilustración 49: Manual de usuario – Ver como ASCII – Contenido en ASCII .................. 166

Ilustración 50: Manual de usuario – Ver condiciones de acceso – Opción menú............ 166

Ilustración 51: Manual de usuario – Ver condiciones de acceso ...................................... 167

Ilustración 52: Manual de usuario – Acceder a escribir .................................................... 167

Ilustración 53: Manual de usuario – Seleccionar tarjeta a escribir ................................... 168

Ilustración 54: Manual de usuario – Selección de claves en escritura .............................. 168

Ilustración 55: Manual de usuario – Confirmación escritura ........................................... 169

Ilustración 56: Manual de usuario – Escribir todos los bloques posibles ..........................170

Ilustración 57: Manual de usuario – Acceder a escaneados ...............................................170

Ilustración 58: Manual de usuario – Lista de tarjetas......................................................... 171

Ilustración 59: Manual de usuario – Crear tarjeta .............................................................. 171

Ilustración 60: Manual de usuario – Seleccionar tipo de tarjeta a crear ........................... 172

Ilustración 61: Manual de usuario – Tarjeta Mifare Ultralight creada (izquierda); Tarjeta Mifare
Classic Mini, 1K y 4K creada (derecha) ...................................................... 172

Ilustración 62: Manual de usuario – Editar tarjeta ............................................................. 173

Ilustración 63: Manual de usuario – Eliminar tarjeta .........................................................174

Ilustración 64: Manual de usuario – Importar tarjetas.......................................................174

Ilustración 65: Manual de usuario – Importar tarjetas – Configuración ........................... 175

Ilustración 66: Manual de usuario – Acceder a claves....................................................... 176

Ilustración 67: Manual de usuario – Lista de claves (izquierda) y grupos de claves (derecha)
.............................................................................................................. 176

Ilustración 68: Manual de usuario – Crear clave ................................................................ 177

Ilustración 69: Manual de usuario – Crear una clave (izquierda); varias claves (derecha)177

Francisco Fernández Díaz xvi | P á g i n a


Índice Proyecto Fin de Carrera

Ilustración 70: Manual de usuario – Editar clave ...............................................................178

Ilustración 71: Manual de usuario – Eliminar clave .......................................................... 179

Ilustración 72: Manual de usuario – Importar claves ........................................................ 179

Ilustración 73: Manual de usuario – Importar claves – Configuración ............................ 180

Ilustración 74: Manual de usuario – Crear grupo de claves ............................................... 181

Ilustración 75: Manual de usuario – Crear grupo de claves ............................................... 181

Ilustración 76: Manual de usuario – Claves de grupo de claves ........................................182

Ilustración 77: Manual de usuario – Editar grupo de claves – Opción menú ...................183

Ilustración 78: Manual de usuario – Editar grupo de claves ..............................................183

Ilustración 79: Manual de usuario – Eliminar grupo de claves ......................................... 184

Ilustración 80: Manual de usuario – Acceder a escribir .....................................................185

Ilustración 81: Manual de usuario – Seleccionar tarjeta a escribir ....................................185

Ilustración 82: Manual de usuario – Activar tecnología NFC ........................................... 186

Francisco Fernández Díaz xvii | P á g i n a


Índice Proyecto Fin de Carrera

Índice de tablas

Tabla 1: Valores de TNF ............................................................................................. 16

Tabla 2: Resumen etiquetas NFC............................................................................... 16

Tabla 3: Formato bits de acceso [45] ......................................................................... 18

Tabla 4: Operaciones de memoria [45] ..................................................................... 18

Tabla 5: Condiciones de acceso para bloque de datos [45] ...................................... 19

Tabla 6: Condiciones de acceso para bloque cola [45] ............................................. 19

Tabla 7: Resumen lectores NFC ..................................................................................21

Tabla 8: Conectividad lectores NFC .......................................................................... 22

Tabla 9: Lectores NFC compatibles con modo lectura/escritura ............................. 22

Tabla 10: Lectores NFC compatibles con modo emulación de tarjeta ...................... 22

Tabla 11: Valores SAK de tarjetas RFID ...................................................................... 25

Tabla 12: Ejemplo flujo de comunicación Mifare Classic ........................................... 26

Tabla 13: Formato tabla de requisito de usuario ........................................................ 38

Tabla 14: Requisito RUC-01 – Lectura de tarjetas RFID ............................................. 39

Tabla 15: Requisito RUC-02 – Selección de claves en lectura .................................... 39

Tabla 16: Requisito RUC-03 – Escritura de tarjetas RFID ..........................................40

Tabla 17: Requisito RUC-04 – Selección de claves en escritura .................................40

Tabla 18: Requisito RUC-05 – Gestión de tarjetas RFID ............................................40

Tabla 19: Requisito RUC-06 – Visualización de tarjetas RFID ...................................40

Tabla 20: Requisito RUC-07 – Visualización de condiciones de acceso ....................40

Tabla 21: Requisito RUC-08 – Importación de tarjetas RFID ....................................40

Tabla 22: Requisito RUC-09 – Estadísticas ................................................................. 41

Tabla 23: Requisito RUC-10 – Gestión de claves ......................................................... 41

Tabla 24: Requisito RUC-11 – Gestión de grupos de claves......................................... 41

Tabla 25: Requisito RUC-12 – Importación de claves ................................................. 41

Tabla 26: Requisito RUC-13 – Activar tecnología NFC ............................................... 41

Francisco Fernández Díaz xviii | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 27: Requisito RUR-01 – Lectura completa ......................................................... 42

Tabla 28: Requisito RUR-02 – Claves para lectura ...................................................... 42

Tabla 29: Requisito RUR-03 – Escritura completa ...................................................... 42

Tabla 30: Requisito RUR-04 – Claves para escritura .................................................. 42

Tabla 31: Requisito RUR-05 – Cancelación de escritura ............................................ 42

Tabla 32: Requisito RUR-06 – Tipo de tarjeta en escritura ........................................ 42

Tabla 33: Requisito RUR-07 – Nombre de tarjeta único ............................................ 43

Tabla 34: Requisito RUR-08 – Clave única.................................................................. 43

Tabla 35: Requisito RUR-09 – Nombre de grupo de claves único ............................. 43

Tabla 36: Requisito RUR-10 – Nombre del tipo de tarjeta único ............................... 43

Tabla 37: Requisito RUR-11 – Formato tarjeta Mifare Ultralight ................................ 43

Tabla 38: Requisito RUR-12 – Formato tarjeta Mifare Classic Mini ........................... 43

Tabla 39: Requisito RUR-13 – Formato tarjeta Mifare Classic 1K ...............................44

Tabla 40: Requisito RUR-14 – Formato tarjeta Mifare Classic 4K ..............................44

Tabla 41: Requisito RUR-15 – Formato clave ..............................................................44

Tabla 42: Requisito RUR-16 – Longitud clave .............................................................44

Tabla 43: Requisito RUR-17 – Tarjeta por tipo ............................................................44

Tabla 44: Requisito RUR-18 – Clave por tarjeta ..........................................................44

Tabla 45: Requisito RUR-19 – Clave por grupo de clave ............................................. 45

Tabla 46: Requisito RUR-20 – Claves por defecto ...................................................... 45

Tabla 47: Requisito RUR-21 – Tipos de tarjeta por defecto ........................................ 45

Tabla 48: Requisito RUR-22 – Ruta inicial en importe de tarjetas ............................. 45

Tabla 49: Requisito RUR-23 – Ruta incial en importe de claves ................................ 45

Tabla 50: Requisito RUR-24 – Base de datos............................................................... 45

Tabla 51: Requisito RUR-25 – Backend .......................................................................46

Tabla 52: Requisito RUR-26 – Lenguaje Android .......................................................46

Tabla 53: Requisito RUR-27 – Lenguaje Java ..............................................................46

Tabla 54: Requisito RUR-28 – Lenguaje SQLite..........................................................46

Francisco Fernández Díaz xix | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 55: Requisito RUR-29 – Compatibilidad Android ............................................46

Tabla 56: Requisito RUR-30 – Acceso concurrente al backend..................................46

Tabla 57: Requisito RUR-31 – Permisos de la aplicación ............................................ 47

Tabla 58: Requisito RUR-32 – Idioma ......................................................................... 47

Tabla 59: Requisito RUR-33 – Conexión a backend .................................................... 47

Tabla 60: Requisito RUR-34 – Tecnología NFC .......................................................... 47

Tabla 61: Requisito RUR-35 – Aplicación eficiente..................................................... 47

Tabla 62: Requisito RUR-36 – Aplicación escalable.................................................... 47

Tabla 63: Requisito RUR-37 – Gestión de fallos ..........................................................48

Tabla 64: Formato tabla de caso de uso ......................................................................48

Tabla 65: Caso de Uso CU-01 – Leer tarjeta RFID ....................................................... 50

Tabla 66: Caso de Uso CU-02 – Escribir Tarjeta RFID .................................................51

Tabla 67: Caso de Uso CU-03 – Editar tarjeta RFID ................................................... 52

Tabla 68: Caso de Uso CU-04 – Crear tarjeta RFID .................................................... 53

Tabla 69: Caso de Uso CU-05 – Eliminar tarjeta RFID ............................................... 54

Tabla 70: Caso de Uso CU-06 – Importar tarjetas RFID ............................................. 54

Tabla 71: Caso de Uso CU-07 – Ver tarjeta en formato ASCII ................................... 55

Tabla 72: Caso de Uso CU-08 – Ver tarjeta en formato hexadecimal ........................ 55

Tabla 73: Caso de Uso CU-09 – Ver como tarjeta de transporte................................ 55

Tabla 74: Caso de Uso CU-10 – Ver condiciones de acceso ........................................ 56

Tabla 75: Caso de Uso CU-11 – Ver estadísticas .......................................................... 56

Tabla 76: Caso de Uso CU-12 – Crear clave ................................................................. 57

Tabla 77: Caso de Uso CU-13 – Editar clave ................................................................ 57

Tabla 78: Caso de Uso CU-14 – Eliminar clave ............................................................ 58

Tabla 79: Caso de Uso CU-15 – Crear grupo de claves ................................................ 58

Tabla 80: Caso de Uso CU-16 – Editar grupo de claves............................................... 59

Tabla 81: Caso de Uso CU-17 – Eliminar grupo de claves........................................... 59

Tabla 82: Caso de Uso CU-18 – Importar claves ........................................................ 60

Francisco Fernández Díaz xx | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 83: Formato tabla de requisito software .......................................................... 60

Tabla 84: Requisito RSF-01 – Lectura tarjetas Mifare Ultralight ................................ 62

Tabla 85: Requisito RSF-02 – Lectura tarjetas Mifare Classic Mini............................ 62

Tabla 86: Requisito RSF-03 – Lectura tarjetas Mifare Classic 1K ................................ 63

Tabla 87: Requisito RSF-04 – Lectura tarjetas Mifare Classic 4K ............................... 63

Tabla 88: Requisito RSF-05 – Creación de tipos de tarjetas ....................................... 63

Tabla 89: Requisito RSF-06 – Renombrar tarjeta RFID .............................................. 63

Tabla 90: Requisito RSF-07 – Reemplazar tarjeta RFID ............................................. 63

Tabla 91: Requisito RSF-08 – Valor por defecto de bloque ........................................64

Tabla 92: Requisito RSF-09 – Todas las claves para leer tarjetas RFID......................64

Tabla 93: Requisito RSF-10 – Grupos de claves para leer tarjetas RFID .....................64

Tabla 94: Requisito RSF-11 – Ninguna clave para leer tarjetas RFID ..........................64

Tabla 95: Requisito RSF-12 – Escritura tarjetas Mifare Ultralight ..............................64

Tabla 96: Requisito RSF-13 – Escritura tarjetas Mifare Classic Mini .......................... 65

Tabla 97: Requisito RSF-14 – Escritura tarjetas Mifare Classic 1K .............................. 65

Tabla 98: Requisito RSF-15 – Escritura tarjetas Mifare Classic 4K ............................. 65

Tabla 99: Requisito RSF-16 – Todas las claves para escribir tarjetas RFID ................ 65

Tabla 100: Requisito RSF-17 – Grupos de claves para escribir tarjetas RFID ............... 65

Tabla 101: Requisito RSF-18 – Ninguna clave para escribir tarjetas RFID ................... 65

Tabla 102: Requisito RSF-19 – Claves en backend ....................................................... 66

Tabla 103: Requisito RSF-20 – Modificación de tarjetas RFID .................................... 66

Tabla 104: Requisito RSF-21 – Borrado de tarjetas RFID ............................................. 66

Tabla 105: Requisito RSF-22 – Creación de tarjetas Mifare Ultralight ....................... 66

Tabla 106: Requisito RSF-23 – Creación de tarjetas Mifare Classic Mini ..................... 67

Tabla 107: Requisito RSF-24 – Creación de tarjetas Mifare Classic 1K ........................ 67

Tabla 108: Requisito RSF-25 – Creación de tarjetas Mifare Classic 4K ........................ 67

Tabla 109: Requisito RSF-26 – Valores por defecto en nuevas tarjetas ....................... 67

Tabla 110: Requisito RSF-27 – Visualización en formato ASCII ................................. 68

Francisco Fernández Díaz xxi | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 111: Requisito RSF-28 – Visualización en formato hexadecimal ...................... 68

Tabla 112: Requisito RSF-29 – Visualización como tarjeta de transporte .................. 68

Tabla 113: Requisito RSF-30 – Visualización de condiciones de acceso ..................... 69

Tabla 114: Requisito RSF-31 – Importación de una tarjeta RFID ................................ 69

Tabla 115: Requisito RSF-32 – Importación de varias tarjetas RFID........................... 69

Tabla 116: Requisito RSF-33 – Almacenamiento de claves en tarjetas importadas.... 69

Tabla 117: Requisito RSF-34 – Ruta importación de tarjetas RFID ............................. 70

Tabla 118: Requisito RSF-35 – Estadísticas de uso ....................................................... 70

Tabla 119: Requisito RSF-36 – Creación de claves ........................................................ 70

Tabla 120: Requisito RSF-37 – Creación de varias claves ............................................. 70

Tabla 121: Requisito RSF-38 – Modificación de claves ................................................. 70

Tabla 122: Requisito RSF-39 – Eliminación de claves ...................................................71

Tabla 123: Requisito RSF-40 – Creación de grupo de claves .........................................71

Tabla 124: Requisito RSF-41 – Modificación de grupo de claves...................................71

Tabla 125: Requisito RSF-42 – Eliminación de grupo de claves ....................................71

Tabla 126: Requisito RSF-43 – Importación de un fichero de claves ............................71

Tabla 127: Requisito RSF-44 – Importación de varios ficheros de claves .................... 72

Tabla 128: Requisito RSF-45 – Ruta importación de claves ......................................... 72

Tabla 129: Requisito RSF-46 – Activación tecnología NFC .......................................... 72

Tabla 130: Requisito RSF-47 – Prevenir errores............................................................ 72

Tabla 131: Requisito RSF-48 – Informar de errores...................................................... 72

Tabla 132: Requisito RSF-49 – Responder ante errores ............................................... 73

Tabla 133: Requisito RSNF-OP-01 – Tipos de claves .................................................... 73

Tabla 134: Requisito RSNF-OP-02 – Comprobación al guardar tarjeta ....................... 73

Tabla 135: Requisito RSNF-OP-03 – Formato de tarjeta Mifare Ultralight ................. 73

Tabla 136: Requisito RSNF-OP-04 – Formato de tarjeta Mifare Classic Mini ............. 74

Tabla 137: Requisito RSNF-OP-05 – Formato de tarjeta Mifare Classic 1K ................. 74

Tabla 138: Requisito RSNF-OP-06 – Formato de tarjeta Mifare Classic 4K ................ 74

Francisco Fernández Díaz xxii | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 139: Requisito RSNF-OP-07 – Comprobación de tipo de tarjeta ....................... 74

Tabla 140: Requisito RSNF-OP-08 – Comprobación al guardar clave ......................... 75

Tabla 141: Requisito RSNF-OP-09 – Comprobación al guardar grupo de claves ....... 75

Tabla 142: Requisito RSNF-OP-10 – Comprobación al guardar tipo de tarjeta ........... 75

Tabla 143: Requisito RSNF-OP-11 – Activación de tecnología NFC ............................. 75

Tabla 144: Requisito RSNF-OP-12 – Ignorar claves en lectura o escritura .................. 75

Tabla 145: Requisito RSNF-OP-13 – Escritura en tarjetas Mifare Ultralight................ 76

Tabla 146: Requisito RSNF-OP-14 – Lectura y escritura de tarjetas Mifare Classic .... 76

Tabla 147: Requisito RSNF-OP-15 – Autenticación en tarjetas Mifare Classic ............ 76

Tabla 148: Requisito RSNF-OP-16 – Escritura en tarjetas Mifare Classic .................... 76

Tabla 149: Requisito RSNF-OP-17 – Conexión con tarjeta RFID ................................. 77

Tabla 150: Requisito RSNF-OP-18 – Comprobar tipo de tarjeta en operaciones ........ 77

Tabla 151: Requisito RSNF-OP-19 – Claves almacenadas para lectura y escritura ..... 77

Tabla 152: Requisito RSNF-OP-20 – Claves almacenadas para grupos de claves ....... 77

Tabla 153: Requisito RSNF-OP-21 – Grupos de claves almacenados para lectura y escritura
...................................................................................................................... 77

Tabla 154: Requisito RSNF-OP-22 – Nombre de ficheros de claves ............................ 78

Tabla 155: Requisito RSNF-OP-23 – Nombre de ficheros de tarjetas .......................... 78

Tabla 156: Requisito RSNF-OP-24 – Formato de ficheros de claves ............................ 78

Tabla 157: Requisito RSNF-OP-25 – Formato de ficheros de tarjetas.......................... 78

Tabla 158: Requisito RSNF-OP-26 – Cálculo de estadísticas de uso............................ 79

Tabla 159: Requisito RSNF-OP-27 – Comprobación backend ..................................... 79

Tabla 160: Requisito RSNF-OP-28 – Búsqueda de tarjetas RFID ................................. 79

Tabla 161: Requisito RSNF-OP-29 – Búsqueda de claves ............................................. 79

Tabla 162: Requisito RSNF-OP-30 – Búsqueda de grupos de claves........................... 80

Tabla 163: Requisito RSNF-OP-31 – Listado de tarjetas .............................................. 80

Tabla 164: Requisito RSNF-OP-32 – Listado de claves ................................................ 80

Tabla 165: Requisito RSNF-OP-33 – Notificación de errores ...................................... 80

Francisco Fernández Díaz xxiii | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 166: Requisito RSNF-INT-01 – Pantalla principal ............................................... 81

Tabla 167: Requisito RSNF-INT-02 – Pantalla de selección de claves ......................... 81

Tabla 168: Requisito RSNF-INT-03 – Pantalla de espera.............................................. 81

Tabla 169: Requisito RSNF-INT-04 – Pantalla de lectura/modificación/ver como


hexadecimal/nueva tarjeta .......................................................................... 82

Tabla 170: Requisito RSNF-INT-05 – Pantalla de ver como ASCII .............................. 82

Tabla 171: Requisito RSNF-INT-06 – Pantalla de tarjeta de transporte ...................... 83

Tabla 172: Requisito RSNF-INT-07 – Pantalla de condiciones de acceso....................84

Tabla 173: Requisito RSNF-INT-08 – Pantalla de tarjetas para escribir ......................84

Tabla 174: Requisito RSNF-INT-09 – Pantalla de tarjetas RFID .................................. 85

Tabla 175: Requisito RSNF-INT-10 – Pantalla de claves y grupos de claves ................ 85

Tabla 176: Requisito RSNF-INT-11 – Pantalla de estadísticas...................................... 86

Tabla 177: Requisito RSNF-INT-12 – Diálogo de espera .............................................. 86

Tabla 178: Requisito RSNF-INT-13 – Diálogo de tarjeta repetida ............................... 86

Tabla 179: Requisito RSNF-INT-14 – Diálogo para renombrar tarjeta......................... 87

Tabla 180: Requisito RSNF-INT-15 – Diálogo para eliminar tarjeta ............................. 87

Tabla 181: Requisito RSNF-INT-16 – Diálogo para crear tarjeta .................................. 87

Tabla 182: Requisito RSNF-INT-17 – Diálogo para crear clave.....................................88

Tabla 183: Requisito RSNF-INT-18 – Diálogo para modificar clave .............................88

Tabla 184: Requisito RSNF-INT-19 – Diálogo para eliminar clave ...............................88

Tabla 185: Requisito RSNF-INT-20 – Diálogo para crear grupo de claves ................. 89

Tabla 186: Requisito RSNF-INT-21 – Diálogo para modificar grupo de claves ........... 89

Tabla 187: Requisito RSNF-INT-22 – Diálogo para eliminar grupo de claves ............ 89

Tabla 188: Requisito RSNF-INT-23 – Diálogo para importar tarjetas ......................... 90

Tabla 189: Requisito RSNF-INT-24 – Diálogo para importar claves ........................... 90

Tabla 190: Requisito RSNF-REC-01 – Espacio de almacenamiento ............................ 90

Tabla 191: Requisito RSNF-REC-02 – Memoria principal ........................................... 90

Tabla 192: Requisito RSNF-REC-03 – Velocidad del procesador ................................. 91

Francisco Fernández Díaz xxiv | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 193: Requisito RSNF-REC-04 – Tecnología NFC ................................................ 91

Tabla 194: Requisito RSNF-REC-05 – Tecnología de red ............................................. 91

Tabla 195: Requisito RSNF-REN-01 – Tiempos de respuesta ....................................... 91

Tabla 196: Requisito RSNF-REN-02 – Tiempo de respuesta en primera operación.... 91

Tabla 197: Requisito RSNF-REN-03 – Tiempos de respuesta en Mifare Ultralight..... 92

Tabla 198: Requisito RSNF-REN-04 – Tiempos de respuesta en Mifare Classic ......... 92

Tabla 199: Matriz de trazabilidad entre requisitos de usuario y requisitos software


funcionales ................................................................................................... 95

Tabla 200: Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de operación ............................................................................ 96

Tabla 201: Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de interfaz................................................................................. 97

Tabla 202: Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de recursos............................................................................... 98

Tabla 203: Matriz de trazabilidad entre requisitos de usuario y requisitos software no


funcionales de rendimiento ........................................................................ 98

Tabla 204: Formato tabla de prueba del sistema ........................................................ 106

Tabla 205: Prueba PSF-01 – Leer tarjeta Mifare Classic Mini ......................................107

Tabla 206: Prueba PSF-02 – Leer tarjeta Mifare Classic 1K ..........................................107

Tabla 207: Prueba PSF-03 – Leer tarjeta Mifare Classic 4K ........................................ 108

Tabla 208: Prueba PSF-04 – Leer tarjeta Mifare Ultralight ........................................ 108

Tabla 209: Prueba PSF-05 – Escribir tarjeta Mifare Classic Mini ............................... 109

Tabla 210: Prueba PSF-06 – Escribir tarjeta Mifare Classic 1K ................................... 109

Tabla 211: Prueba PSF-07 – Escribir tarjeta Mifare Classic 4K ................................... 110

Tabla 212: Prueba PSF-08 – Escribir tarjeta Mifare Ultralight .................................... 110

Tabla 213: Prueba PSF-09 – Crear tarjeta Mifare Classic Mini .................................... 111

Tabla 214: Prueba PSF-10 – Crear tarjeta Mifare Classic 1K.......................................... 111

Tabla 215: Prueba PSF-11 – Crear tarjeta Mifare Classic 4K......................................... 112

Tabla 216: Prueba PSF-12 – Crear tarjeta Mifare Ultralight......................................... 112

Francisco Fernández Díaz xxv | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 217: Prueba PSF-13 – Modificar tarjeta RFID ..................................................... 113

Tabla 218: Prueba PSF-14 – Borrar tarjeta RFID .......................................................... 113

Tabla 219: Prueba PSF-15 – Importar tarjeta Mifare Classic Mini ............................... 113

Tabla 220: Prueba PSF-16 – Importar tarjeta Mifare Classic 1K ................................... 114

Tabla 221: Prueba PSF-17 – Importar tarjeta Mifare Classic 4K .................................. 114

Tabla 222: Prueba PSF-18 – Importar tarjeta Mifare Ultralight .................................. 115

Tabla 223: Prueba PSF-19 – Importar varias tarjetas Mifare ....................................... 115

Tabla 224: Prueba PSF-20 – Crear clave ....................................................................... 116

Tabla 225: Prueba PSF-21 – Crear varias claves ............................................................ 116

Tabla 226: Prueba PSF-22 – Modificar clave ................................................................ 116

Tabla 227: Prueba PSF-23 – Eliminar clave .................................................................. 117

Tabla 228: Prueba PSF-24 – Crear grupo de claves ...................................................... 117

Tabla 229: Prueba PSF-25 – Modificar grupo de claves ............................................... 117

Tabla 230: Prueba PSF-26 – Eliminar grupo de claves ................................................ 118

Tabla 231: Prueba PSF-27 – Importar un fichero de claves ......................................... 118

Tabla 232: Prueba PSF-28 – Importar varios ficheros de claves .................................. 119

Tabla 233: Prueba PSF-29 – Crear tipo de tarjeta ........................................................ 119

Tabla 234: Prueba PSF-30 – Renombrar tarjeta RFID ................................................. 119

Tabla 235: Prueba PSF-31 – Reemplazar tarjeta RFID .................................................120

Tabla 236: Prueba PSF-32 – Ver tarjeta RFID en formato ASCII .................................120

Tabla 237: Prueba PSF-33 – Ver tarjeta RFID en formato hexadecimal ......................120

Tabla 238: Prueba PSF-34 – Ver tarjeta RFID como tarjeta de transporte .................120

Tabla 239: Prueba PSF-35 – Ver condiciones de acceso de una tarjeta RFID ............. 121

Tabla 240: Prueba PSF-36 – Ver estadísticas de uso de las claves ............................... 121

Tabla 241: Prueba PSF-37 – Activación tecnología NFC.............................................. 121

Tabla 242: Matriz de trazabilidad entre requisitos software funcionales y pruebas del
sistema ......................................................................................................... 123

Tabla 243: Acrónimos ...................................................................................................145

Francisco Fernández Díaz xxvi | P á g i n a


Índice Proyecto Fin de Carrera

Tabla 244: Coste del personal ....................................................................................... 152

Tabla 245: Coste del equipo.......................................................................................... 152

Tabla 246: Coste del software ....................................................................................... 153

Tabla 247: Coste del material fungible ......................................................................... 153

Tabla 248: Costes totales ..............................................................................................154

Tabla 249: Coste indirectos ..........................................................................................154

Tabla 250: Coste del margen de riesgo.........................................................................154

Tabla 251: Resumen del presupuesto del proyecto .....................................................154

Francisco Fernández Díaz xxvii | P á g i n a


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

CAPÍTULO 1:
INTRODUCCIÓN Y OBJETIVOS

Francisco Fernández Díaz 1|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

1. Introducción

Todo lo relacionado con la tecnología, la informática, el internet o saber cómo se utiliza


un ordenador, son cuestiones que cada día va cogiendo mayor auge dentro de nuestras vidas,
por lo que hay que saber convivir con ello.

Hace unos años, estas áreas no estaban muy desarrolladas pero hoy en día están dentro
de nuestras vidas, tan dentro que incluso una cosa tan cotidiana, como es ir a hacer la compra,
hoy en día se puede hacer a través de Internet mediante un Smartphone, un ordenador, una
tablet o incluso una televisión.

Los dispositivos móviles forman parte de nuestro día a día, de tal forma que tendemos a
olvidarnos de que, no hace mucho tiempo, esto no era así. En 1983, con la venta del primer
teléfono móvil, nadie se hubiese imaginado que pocos años más tarde existirían más de esos
dispositivos. Por aquella época, los teléfonos móviles solo eran poseídos por personas que
requerían estar en constante contacto. Años más tarde, con las reducciones de precio y
tamaño, estos dispositivos se extendieron rápidamente por todo el mundo.

En el 2007, con la aparición del iPhone, en 2010 la aparición del iPad y finalmente la
aparición de smartphones y tables basadas en Android y con un coste menor supuso la
popularización de este tipo de dispositivos hasta el punto que en nuestros días la gente suele
disponer de al menos uno de estos dos tipos de dispositivos móviles.

Android es un sistema operativo móvil basado en Linux y desarrollado principalmente


para dispositivos móviles con pantalla táctil como smartphones y tablets. Fue presentado
oficialmente en 2007 y en octubre de 2008 se vendió el primer terminal con sistema operativo
Android, HTC Dream. La fundación Open Handset Alliance, liderada por Google, es la
encargada de desarrollar Android. [16] [17]

Hoy en día las tecnologías inalámbricas han cobrado gran importancia. Las personas
están en constante movimiento y quieren tener la posibilidad de acceder a las redes en todo
momento, ya sea para consultar información en internet, para el uso de las redes sociales o
para transferencias de archivos e información entre distintos dispositivos sin necesidad de
cables que nos limitan la movilidad.

Los dispositivos más utilizados son los teléfonos móviles o Smartphones, los cuales han
cambiado tanto su funcionalidad que hoy en día son como un ordenador con tamaño reducido
que permiten hacer fotos, vídeos, videollamadas, usarlos como GPS, comunicarse con otros

Francisco Fernández Díaz 2|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

dispositivos para compartir información mediante tecnologías como Near Field


Communication (NFC), WIFI, etc.

NFC es una tecnología basada en identificación por radiofrecuencia que permite la


comunicación inalámbrica entre dispositivos que se encuentran a una distancia de hasta 10 cm,
intercambiando información a gran velocidad, lo que abre un amplio abanico de aplicaciones
atractivas para el usuario, (plataforma de pago, control de acceso, etiquetado de productos,
transportes públicos, puntos de información, etc.). [39]

La poca distancia requerida para la conexión entre los dispositivos invita a pensar que
existe una intencionalidad consciente por los usuarios cuando ésta se produce. Además, el
corto alcance también asegura un nivel de seguridad muy aceptable, ya que es muy difícil que
se produzca la comunicación sin intencionalidad o que existan intrusos que intercepten los
datos de la comunicación entre dispositivos.

Es por ello que hoy en día se trabaja en desarrollar herramientas que a través de esta
tecnología permitan tareas sensibles e importantes como el pago, la identificación personal, el
acceso a zonas restringidas, canjeo de descuentos, transferencia de archivos, etc.

Al contrario que otras tecnologías inalámbricas como Wifi o Bluetooth, NFC no está
orientada a la transmisión de datos de forma continua y fluida, sino al intercambio rápido de
una información puntual, como puede ser la identificación y validación de un usuario o el
manejo de datos concretos.

Ilustración 1: NFC vs. otras tecnologías [35]

Francisco Fernández Díaz 3|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

Google hizo su apuesta por NFC en Android con su versión Gingerbread en el Samsung
Nexus S. En un principio fue utilizada para casos de uso sencillo, como son el intercambio de
tarjetas personales, pero actualmente ya existen aplicaciones de pago a través de la plataforma
de pago Google Wallet [2] .

Cualquier persona, al salir de casa, lleva consigo su teléfono, sus llaves y,


probablemente, una cartera. ¿Qué sucedería si se pudiera reemplazar dinero, tarjetas e incluso
las llaves gracias al teléfono móvil? En el caso concreto de este proyecto se pretende utilizar la
tecnología NFC para que un usuario de Android con tecnología NFC no tenga la necesidad de
llevar varias tarjetas RFID consigo, sino que mediante la aplicación Android se pueda
identificar, clasificar y almacenar, para posteriormente retransmitirla a través del teléfono sin
tener la necesidad de llevar consigo la tarjeta original. Además, se deberán obtener estadísticas
de uso sobre las claves y mandarlas a un backend ubicado en Google App Engine.

2. Objetivos

El objetivo principal de este proyecto es la creación de una aplicación Android que


permita a las personas con dispositivos móviles con tecnología NFC identificar, clasificar,
almacenar y retransmitir un número ilimitado de tarjetas RFID.

Para ello antes se necesita comprender bien el problema y plantearse pequeños


objetivos que serán necesarios para el buen funcionamiento de la aplicación. Dichos sub-
objetivos son:

 Entender y comprender a fondo los conceptos que se van a utilizar,


documentándose por medio de Internet en tutoriales, foros, transparencias, etc.
Todos los conceptos a dominar son:
o Tecnología NFC
o Librerías NFC (LibNFC)
o Proxmark3
o Programación SDK Android
o Google App Engine
 Utilizar las librerías NFC para conocer sus capacidades y limitaciones.
 Uso de Proxmark3 para aprender su funcionamiento.
 Diseñar una aplicación en Android compatible con la mayoría de los teléfonos con
tecnología NFC que hay en el mercado.

Francisco Fernández Díaz 4|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

 Utilizar el servicio NFC que ofrece Android en sus terminales móviles para el
escaneo, almacenamiento y retransmisión de las tarjetas RFID.
 Diseñar una base de datos que gestione las operaciones sobre las tarjetas RFID
almacenadas.
 Desarrollar la aplicación que cumpla con los anteriores criterios.

3. Fases del desarrollo

En el presente trabajo existen ocho fases del desarrollo:

1. Documentación e investigación sobre el tema a tratar. Este bloque ha consistido


meramente en el asentamiento de las bases del conocimiento para,
posteriormente, poder realizar las siguientes fases. La documentación se ha basado
en adquirir información global sobre la tecnología NFC, así como ahondar en el
uso y la programación del sistema operativo Android. Por otro lado, se ha buscado
información sobre otros métodos para el uso de la tecnología NFC, como son los
lectores RFID y la Proxmark3.
2. Análisis, donde se ha realizado un estudio del trabajo a realizar, definiendo qué
había que hacer y cómo se tenía que hacer en función de los objetivos que hay que
cumplir.
3. Configuración del entorno de trabajo, donde se instala y configura todo el
hardware y software necesario para la investigación, desarrollo e implementación
del proyecto.
4. Desarrollo e implementación de la base de datos, detallando todos aquellos
elementos necesarios.
5. Implementación de la aplicación NFC, donde se realiza el desarrollo de las
funcionalidades de escritura y lectura NFC para móvil.
6. Integración de la base de datos con las aplicaciones de lectura y escritura NFC, y
así completar la funcionalidad del proyecto.
7. Fase de pruebas, donde se ha corroborado que la aplicación realiza todas sus
funciones correctamente. Para ello se han contrastado los resultados obtenidos al
leer tarjetas RFID en la aplicación desarrollada con los resultados obtenidos al leer
las mismas tarjetas con un lector NFC o la Proxmark3.
8. Creación de la presente memoria, que incluye la recopilación de toda la
documentación obtenida.

Francisco Fernández Díaz 5|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

4. Motivación

Las principales motivaciones para desarrollar este proyecto son:

 Ayudar a cualquier usuario con dispositivo móvil a usarlo como identificación en


puntos de control, transportes, etc., mediante el uso de la tecnología NFC.
 Estudio de los mecanismos de seguridad existentes en la tecnología NFC y cómo
pueden ser burlados comprometiendo la información de sus usuarios.
 La tecnología NFC ha tenido su auge en su reciente integración en dispositivos
móviles, por lo que aún posee una gran posibilidad de usos que han de ser
investigados y aprovechados.

En la actualidad los teléfonos inteligentes forman parte de la rutina diaria, por lo que el
desarrollo de una aplicación Android con esta tecnología y para dispositivos móviles encaja
con la situación a solucionar mejor que una aplicación para PC.

5. Estructura del documento

En este apartado se detallará una descripción de la estructura del documento,


detallando cada capítulo que se encuentra en el mismo.

En el primer capítulo se ha introducido una visión global de este documento, sus


objetivos a cumplir, las fases de desarrollo que se han seguido a lo largo del trabajo realizado,
los medios empleados para llevar a cabo este trabajo, y por último, cómo ha sido estructurado
este documento para una completa comprensión por parte del lector.

En el segundo capítulo se va a definir el estado del arte, en el cual se comentará el


estado actual de la tecnología NFC, en qué consiste su funcionamiento, los tipos de tarjetas
RFID que existen, los tipos de lectores RFID que hay para leer dichas tarjetas y los protocolos
de encriptación que hay para esta tecnología. Por último, se explicará la situación del sistema
operativo Android. Con toda esta información se construirá la base teórica establecida para la
creación de este PFC.

En el tercer capítulo se describirá el desarrollo técnico de este trabajo, el cual está


dividido en dos partes: análisis y diseño. En el análisis se especifican los requisitos, tanto de
usuario como software, y los casos de uso. En la parte de diseño se indica el diagrama de clases
junto con la explicación detallada del funcionamiento de cada clase, el diseño de la base de
datos utilizado y las interfaces creadas.

Francisco Fernández Díaz 6|Página


Capítulo 1: Introducción y Objetivos Proyecto Fin de Carrera

En el cuarto capítulo se detallan los experimentos realizados tanto en el dispositivo


Samsung Galaxy Nexus como en el PC, comentando al final la comparativa entre las dos
pruebas y los resultados aportados.

En el quinto y último apartado se aportarán las conclusiones y futuras líneas de trabajo


añadidas por el presente PFC.

Francisco Fernández Díaz 7|Página


Capítulo 2: Estado del arte Proyecto Fin de Carrera

CAPÍTULO 2:
ESTADO DEL ARTE

Francisco Fernández Díaz 8|Página


Capítulo 2: Estado del arte Proyecto Fin de Carrera

En este capítulo se tratará la situación actual de la tecnología empleada para el


desarrollo del proyecto, estudios realizados al respecto, y detalles a tener en cuenta para su
desarrollo.

1. NFC

1.1. Introducción
La tecnología NFC trabaja dentro de la banda de radiofrecuencia de los 13,56 MHz, lo
que implica que no esté sujeta a ninguna restricción, ni sea necesario disponer de una licencia
para su uso por tratarse de una banda libre.

Por tanto, la forma de trabajo de NFC implica que un dispositivo genere una onda de
radio de alta frecuencia para que en otro dispositivo NFC, lo suficientemente cercano, se
genere un “acoplamiento magnético inductivo”, por medio del cual se puede realizar una
transferencia de datos entre dichos dispositivos. El acoplamiento funciona sólo en distancias
cortas y es la principal diferencia entre NFC y otras tecnologías inalámbricas como Bluetooth y
Wifi, que trabajan a una distancia máxima aproximada de 10m y 100m, respectivamente.

Otra característica significativa de NFC es su compatibilidad con las tecnologías


inalámbricas ya existentes como Bluetooth y RFID, lo que hace aún más interesante su uso e
incrementa el interés de las empresas en su inversión y desarrollo.

La idea de desarrollar esta tecnología fue crear un nuevo protocolo que preste
compatibilidad con las tecnologías sin contacto de corto alcance. Su desarrollo empieza en el
año 2002 y sus promotores fueron Philips y Sony principalmente para conseguir
compatibilidad con sus tecnologías, Mifare y FeliCa respectivamente, pero fue a finales del año
2003 cuando se aprueba como el estándar ISO 18092.

Francisco Fernández Díaz 9|Página


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1.1.1. ¿Qué aplicaciones tiene?

Ilustración 2: Aplicaciones NFC

Algunas de las posibles aplicaciones que se pueden desarrollar con esta tecnología son:
identificación y control de acceso a espacios controlados, recogida/intercambio de datos, pagos
con el teléfono móvil, guía turística, recibir noticias en tiempo real desde un servidor de
contenidos, organización de juegos de la búsqueda del tesoro, compra en máquinas
expendedoras y control de stocks en comercios.

1.2. Características NFC


NFC es un subconjunto de la tecnología RFID y de plataforma abierta que opera sobre
la frecuencia 13.56 MHz con un rango de alcance máximo de aproximadamente unos 10 cm.

NFC define tres modos de operación dependiendo del tipo de tag utilizado: activo,
semipasivo y pasivo [44] .

 Activo: los tags poseen una fuente de alimentación (por lo general una batería)
que se utiliza para energizar los circuitos del microchip y transmitir una señal al
lector. Como tienen su propia fuente de energía soportan grandes capacidades de
memoria y de procesamiento. Son los más costosos.
 Semipasivo: los tags utilizan una batería para funcionar los circuitos del
microchip pero se comunican mediante el suministro eléctrico proporcionado por
el lector. También son costosos.

Francisco Fernández Díaz 10 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 Pasivo: no poseen fuente de alimentación interna ni para energizar el microchip


ni comunicar con el lector, por lo que las capacidades de cálculo y de
comunicación son muy limitadas. Sin embargo, en general son capaces de realizar
operaciones criptográficas básicas tales como la generación de números
pseudoaleatorios y evaluación de funciones pseudoaleatorias.

También define tres modos de configuración entre los dispositivos que desean
establecer una comunicación: lectura/escritura, P2P y emulación de tarjeta.

 Modo Lectura/Escritura: se da cuando un dispositivo NFC se utiliza en modo


activo para emular el comportamiento de un lector de tarjetas de proximidad. La
transacción se realiza frente a un objeto pasivo, por ejemplo, una etiqueta o tag,
que se comporta como una tarjeta de proximidad.
 Modo P2P: hay dos modos:
o Activo-Pasivo: uno de los dos dispositivos, el iniciador, está generado un
campo magnético, y el otro dispositivo, el destino o target, lo está
recibiendo.
o Activo-Activo: ambos dispositivos, están generando un campo magnético
y enviando datos.

Este modo no es recomendado por NFC Forum, es más lento, más complejo
y consume más tiempo y batería.

 Modo emulación de tarjeta: se da cuando un dispositivo NFC se utiliza en el


modo pasivo para emular el comportamiento de una tarjeta de proximidad. La
transacción se realiza frente a un dispositivo activo, que emula a un lector de
tarjetas de proximidad.

1.3. Estandarización
El estándar NFC fue definido por NFC Forum y aprobado como estándar ISO/IEC en
diciembre de 2003 y posteriormente como un estándar ECMA. Dicho estándar también está
reconocido a nivel Europeo por la ETSI.

Estos estándares especifican:

 Esquemas de modulación, codificación, velocidad de transferencia y formato de la


trama de la interfaz de radiofrecuencia de los dispositivos NFC.

Francisco Fernández Díaz 11 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 Esquemas de inicialización y condiciones requeridas para el control de colisiones


de datos y protocolos de transporte, incluyendo protocolos de activación y
métodos de intercambio de datos.

NFC se encuentra estandarizada bajo ISO/IEC 18092/ECMA-340 e ISO/IEC


21481/ECMA-352, e incorpora los estándares ISO/IEC 14443 e ISO/IEC 15693 ya existentes.

Ilustración 3: Estructura protocolo NFC [41]

 ISO/IEC 18092/ECMA-340/ETSI TS 102 190 - NFC Interface and Protocol-1


(NFCIP-1): define el enlace de radio frecuencia con el que NFC opera (13,56 MHz)
y los modos de operación activo y pasivo con sus rangos de velocidad desde 106
kbits/s hasta 424 kbits/s.
 ISO/IEC 21481/ECMA-352/ETSI TS 102 312 - NFC Interface and Protocol-2
(NFCIP-2): este protocolo especifica los modos de comunicación NFC, PCD
(Proximity Coupling Devices) especificado en ISO/IEC 14443, y VCD (Vicinity
Coupling Devices) especificado en ISO/IEC 15693.
 ISO/IEC 14443 Identification cards - Contactless integrated circuit cards –
Proximity cards: define el funcionamiento de las tarjetas de proximidad
empleadas para la identificación y los protocolos de transmisión. Este estándar
está compuesto de 4 partes: 14443-1 (Características físicas), 14443-2 (Potencia RF
Señalización), 14443-3 (Inicialización y Anticolisión) y 14443-4 (Protocolo de
transmisión).

Francisco Fernández Díaz 12 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 ISO/IEC 15693 Vicinity Cards: extiende lo definido en ISO 14443 y aumenta el


rango de comunicación.

1.3.1. Arquitectura NFC


NFC Forum ha establecido un estándar en el que se define un formato común para
poder compartir datos entre dos dispositivos NFC o entre un dispositivo NFC y una etiqueta
NFC.

Ilustración 4: Arquitectura NFC

 NFC Data Exchange Format (NDEF): especifica un formato común y compacto


para el intercambio de datos. NDEF es un formato binario ligero que puede
encapsular uno o más payloads (carga útil, es decir, la información útil para el
usuario del flujo de información transferido), de diferente tipo y tamaño dentro de
la estructura de un solo mensaje. El payload está identificado por un tipo, una
longitud y un identificador opcional.
El formato de datos de NDEF es el mismo tanto para un dispositivo NFC como
para una etiqueta NFC, por lo que la información de NDEF es independiente del
tipo de dispositivos que se estén comunicando.
 NFC Record Type Definition (RTD): especifica tipos de registros estándar que
pueden ser enviados en los mensajes intercambiados entre los dispositivos NFC.
Son los que define NFC Forum y que pueden ser incluidos en los mensajes NDEF.
o Text RTD: para registros que sólo contienen texto.

Francisco Fernández Díaz 13 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

o Uniform Resource Identifier (URI) RTD: para registros que se refieren a


un recurso de Internet.
o Smart Poster RTD: para posters que incorporen etiquetas con datos
(URLs, SMSs o números de teléfono).

Un mensaje NDEF contiene uno o varios registros:

Ilustración 5: Estructura mensaje NDEF [40]

La información de los registros NDEF se presenta en nivel de octetos. El orden de


transmisión es de izquierda a derecha y de arriba hacia abajo, por lo que el bit más
significativo, al igual que para una cadena de octetos, es el del extremo izquierdo.

Los registros son de longitud variable pero todos tienen el siguiente formato en común:

Francisco Fernández Díaz 14 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Ilustración 6: Formato registro NDEF [40]

Los campos que lo componen son:

 MB (Message Begin): indica que es el primer NDEF Record del mensaje.


 ME (Message End): indica que es el último NDEF Record del mensaje.
 CF (Chunk Flag): indica que la información se encapsula en varios NDEF Records.
Todos los records menos el último deben llevar este flag activado.
 SR (Short Record): se utiliza para indicar que la longitud del payload es un octeto
(tamaño de payload menor de 255 bytes). Implica la ausencia de
PAYLOAD_LENGTH 3, 2, 1. .
 IL (ID_LENGTH): si el flag está activo, indica que el campo ID_LENGTH está
presente en la cabecera del registro como un octeto, pero si el campo IL es cero
entonces éste es omitido de la cabecera y el campo ID también es omitido del
registro.
 TNF (TYPE NAME FORMAT): es un campo de 3 bits que indica la estructura del
valor del campo TYPE. Los valores que puede tener son:

Francisco Fernández Díaz 15 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Type Name Format Valor


Vacio 0x00
Tipo NFC Forum (NFC RTD) 0x01
Tipo de Medios 0x02
URI Absoluto 0x03
Tipo NFC Forum externo 0x04
Tipo Desconocido 0x05
Sin cambio (Unchanged) 0x06
Reservado 0x07

Tabla 1: Valores de TNF

 ID: identificador en forma de URI. Sólo el primer registro lleva ID.


 PAYLOAD: la estructura interna del payload es transparente para NDEF.

1.4. Etiquetas NFC


Cada etiqueta NFC tiene un código de identificación (ID) único en un rango de 4 a 10
bytes, dependiendo del fabricante de la etiqueta. Todas estas etiquetas se pueden leer/escribir
utilizando el formato NDEF.

Resumen de los tipos de etiquetas NFC según NFC Forum y NXP:

Plataforma NFC Forum Plataforma NXP


Tag tipo 1 Tag tipo 2 Tag tipo 3 Tag tipo 4 Tipo Mifare Classic
NXP Mifare NXP DESFire / NXP Mifare Classic 1k /
Productos Ultralight / NXP SmartMX- NXP Mifare Classic 4k /
Innovision Topaz Sony FeliCa
compatibles NXP Mifare JCOP/ NXP Mifare Classic
Ultralight C ISO-14443-A/B Mini
Tamaño
96 B – 2 KB 48 B – 2 KB 1 KB – 1 MB 4 KB / 32 KB 752 B / 3440 B / 224 B
memoria
Velocidad de
106 Kb/s 106 Kb/s 212 Kb/s ó 424 Kb/s 424 Kb/s 106 Kb/s
comunicación
Precio unitario Bajo Bajo Alto Medio / Alto Bajo
Lectura/Escritura Lectura/Escritura Lectura/Escritura o Lectura/Escritura Lectura/Escritura o
Acceso a datos
o solo lectura o solo lectura solo lectura o solo lectura solo lectura
Contenido
No No/No No No/Si No/No/No
activo
Especificaciones
Type 1 Tag Type 2 Tag Type 3 Tag Type 4 Tag NXP MFTT
de operación
Documentación
NXP T2T NXP T4T NXP MFNFC
de soporte NXP
Fichas de NXP UL, NXP NXP 1K, NXP 4K, NXP
NXP DES
producto NXP ULC MINI, NXP MAD
Tabla 2: Resumen etiquetas NFC

Francisco Fernández Díaz 16 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1.4.1. Mifare
Es una tecnología de tarjetas inteligentes sin contacto (TISC). Es equivalente a las 3
primeras partes de la norma ISO-14443-A de 13,56 MHz con protocolo de alto nivel.

Las tarjetas MIFARE son tarjetas de memoria protegida. Están divididas en sectores y
bloques y mecanismos simples de seguridad para el control de acceso.

1.4.1.1. Tipos etiquetas Mifare


Fundamentalmente sólo es un dispositivo de almacenamiento de memoria. Hay seis
diferentes tipos de tarjetas: Classic, Ultralight, Ultralight C, DESFire, DESFire EV1 y Plus.

 Mifare Classic: su memoria se divide en segmentos y bloques con mecanismos de


seguridad simples para el control de acceso. Existen tres diferentes tamaños para
esta tarjeta: 1K, 4K y Mini. Mifare Classic 1K ofrece 1024 bytes de almacenamiento
de datos, divididos en 16 sectores con 4 bloques cada uno. Mifare Classic 4K ofrece
4096 bytes divididos en 40 sectores, de los cuales los 32 primeros tienen el mismo
tamaño que los de la tarjeta 1K y los 8 últimos cuatro veces su tamaño. Mifare
Classic Mini posee 320 bytes divididos en 5 sectores. Cada sector está protegido
por dos claves diferentes llamadas A y B. Estas claves están escritas en 16 bytes
reservados en cada sector junto con sus condiciones de acceso. Además, los
primeros 16 bytes de la tarjeta son solo de lectura y contiene su identificador, Block
Check Character (BCC) e información sobre el fabricante. Según esto la capacidad
total disponible que queda para cada tarjeta es 752, 3440 y 224 bytes para Mifare
Classic 1K, 4K y Mini, respectivamente. El protocolo de seguridad utilizado es
Crypto1.

Francisco Fernández Díaz 17 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Ilustración 7: Estructura memoria Mifare Classic 4K

Las condiciones de acceso son escritas con el siguiente formato:

Bloque cola
Número byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Clave A Bytes de acceso Clave B

Bit
Byte
7 6 5 4 3 2 1 0
6 C23 C22 C21 C20 C13 C12 C11 C10
7 C13 C12 C11 C10 C33 C32 C31 C30
8 C33 C32 C31 C30 C23 C22 C21 C20
9 User Data
Tabla 3: Formato bits de acceso [47]

El chip de este tipo de tarjetas define las siguientes seis operaciones de memoria
que pueden ser usadas para acceder a los bloques de datos:

Operación Descripción
Lectura Lee un bloque de datos
Escritura Escribe un bloque de datos
Incremento Incrementa el valor y almacena el resultado en el registro de datos interno
Decremento Decrementa el valor y almacena el resultado en el registro de datos interno
Transferencia Transfiere el contenido del registro de datos interno a un bloque
Restaurar Lee el contenido de un bloque del registro de datos interno
Tabla 4: Operaciones de memoria [47]

Los permisos para el uso de estas operaciones están indicados en las condiciones
de acceso, así como la clave necesaria para ello.

Francisco Fernández Díaz 18 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Las condiciones de acceso están escritas en el bloque cola de cada sector. Existen
dos tipos: condiciones de acceso a los bloques de datos y condiciones de acceso al
bloque cola, que realizan operaciones sobre los bloques de datos y bloques cola,
respectivamente.
o Condiciones de acceso para bloque de datos:

Bits de Acceso Condición de acceso para


C1 C2 C3 Lectura Escritura Incremento Decremento, transferencia, restaurar
0 0 0 Clave A|B Clave A|B Clave A|B Clave A|B
0 1 0 Clave A|B Nunca Nunca Nunca
1 0 0 Clave A|B Clave B Nunca Nunca
1 1 0 Clave A|B Clave B Clave B Clave A|B
0 0 1 Clave A|B Nunca Nunca Clave A|B
0 1 1 Clave B Clave B Nunca Nunca
1 0 1 Clave B Nunca Nunca Nunca
1 1 1 Nunca Nunca Nunca Nunca
Tabla 5: Condiciones de acceso para bloque de datos [47]

o Condiciones de acceso para bloque cola:


Condición de acceso para
Bits de acceso
Clave A Bits de acceso Clave B
C1 C2 C3 Lectura Escritura Lectura Escritura Lectura Escritura
0 0 0 Nunca Clave A Clave A Nunca Clave A Clave A
0 1 0 Nunca Nunca Clave A Nunca Clave A Nunca
1 0 0 Nunca Clave B Clave A|B Nunca Nunca Clave B
1 1 0 Nunca Nunca Clave A|B Nunca Nunca Nunca
0 0 1 Nunca Clave A Clave A Clave A Clave A Clave A
0 1 1 Nunca Clave B Clave A|B Clave B Nunca Clave B
1 0 1 Nunca Nunca Clave A|B Clave B Nunca Nunca
1 1 1 Nunca Nunca Clave A|B Nunca Nunca Nunca
Tabla 6: Condiciones de acceso para bloque cola [47]

 Mifare Ultralight: etiquetas con un tamaño de 64 bytes, divididos en 16 páginas


de 4 bytes cada una. No poseen ninguna seguridad criptográfica. Solamente posee
las características básicas de seguridad como el bit one-time-programmable (OTP)
y el bloqueo de escritura.

Francisco Fernández Díaz 19 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Ilustración 8: Estructura memoria Mifare Ultralight

 Mifare Ultralight C: utiliza el algoritmo de seguridad Triple Data Encryption


Standard (DES), que es una medida de seguridad contra la clonación. Posee un
estándar ampliamente adoptado, lo que permite una fácil integración en las
infraestructuras existentes. Sus caracterísitcas principales son:
o Totalemente compatible con ISO/IEC 14443 1-3 A.
o 192 bytes de memoria EEPROM.
o Estructura de memoria como Mifare Ultralight (páginas de 4 bytes).
o Compatibilidad con versiones anteriores de Mifare Ultralight.
o Identificador único (UID) de 7 bytes.
 Mifare DESFire: con mayor seguridad que Mifare Classic tanto en hardware como
en software. Viene preprogramado con un sistema operativo que ofrece una simple
estructura de directorios y archivos. Hay cuatro tipos: una con Triple DES y
4KBytes de memoria de almacenamiento, y tres con Advanced Encryption
Standard (AES) y una memoria de 2, 4 u 8 KBytes (estas 3 tienen características de
seguridad adicionales). Estas tarjetas utilizan un protocolo compatible con
ISO/IEC 14443-4.
 Mifare DESFire EV1 (DESFire8): evolución de las etiquetas Mifare DESFire. 2, 4 y
8 Kbytes de memoria NV. Alcanza la certificación Evaluation Assurance Level
(EAL) 4+, soporta ID aleatorio y cifrado AES de 128 bits.

Francisco Fernández Díaz 20 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 Mifare Plus: reemplazo para Mifare Classic. Proporciona las mismas


funcionalidades que Mifare Classic pero con una mayor seguridad. Sus
características son:
o 2 y 4 Kbytes de memoria.
o 4 o 7 bytes para UID, con soporte opcional de UID aleatorio.
o Soporta AES de 128 bits.
o Obtiene la certificación EAL 4+.

1.5. Lectores NFC


Aquí se muestra un resumen de los diferentes lectores NFC compatibles con la librería
LibNFC, sus hosts de conectividad y la compatibilidad con los modos lectura, escritura y
emulación de tarjeta en función del tipo de chip que posea el lector.

Host
Fabricante Producto Chip NFC Dependencias Driver Probado Soporte
Bus
Identive SCL3710 PN531 v4.2 USB Libusb pn53x_usb Si Si
(anteriormente
SCL3711 PN533 v2.7 USB Libusb pn53x_usb Si Si
SCM)
Sensor ID Stick ID PN533 v2.7 USB Libusb pn53x_usb Si Si
Toppan Forms TN31CUD001SW PN531 v4.2 USB Libusb pn53x_usb Si Si
Snapper Feeder PN531 v3.4 USB Libusb pn53x_usb Si Si
Sony RC-S360 PN533_Sony USB Libusb pn53x_usb Si Limitado
ASK LoGO PN533 v2.7 USB Libusb pn53x_usb Si Limitado
ACR122U101 PN532 v1.4 USB PCSC acr122_pcsc Si Limitado
ACS
ACR122U206 PN532 v1.4 USB PCSC acr122_pcsc Si Limitado
Tikitag ACR122U102 PN532 v1.4 USB PCSC acr122_pcsc Si Limitado
Touchatag ACR122U102 PN532 v1.4 USB PCSC acr122_pcsc Si Limitado
Identive ADRA-USB PN531 USB arygon Si Si
(anteriormente
ADRB-USB PN532 v1.4 USB arygon Si Si
Arygon)
Sony RC-S330 PN533_Sony USB Libusb pn53x_usb Si Limitado
Desconocido PN531 v4.2 USB Libusb pn53x_usb Si Si
DDS
Desconocido PN533 v2.7 USB Libusb pn53x_usb Si Si
PN532 NFC
microBuilder.eu PN532 v1.6 UART pn532_uart Si Si
Breakout Board
APDA1UAxx PN531 UART No N/A
APDA2UAxx PN531 UART No N/A
APDB1UA33N PN532 v1.4 UART pn532_uart Si Si
APDB2UA33 PN532 v1.4 UART arygon Si Si
Identive
APPA1UAxx PN531 UART No N/A
(anteriormente
APPA2UAxx PN531 UART No N/A
Arygon)
APPB1UAxx PN532 UART No N/A
APPB2UAxx PN532 UART No N/A
APPA2US00 PN531 USB No N/A
APPB2US00 PN532 USB No N/A
Tabla 7: Resumen lectores NFC

Francisco Fernández Díaz 21 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1.5.1. Conectividad
PN531 PN532 PN533
UART Si Si No
USB Si Si Si
SPI SI Si No
I2C Si Si No
Tabla 8: Conectividad lectores NFC

1.5.2. Compatible con modo lectura/escritura


PN531 PN532 PN533
ISO14443-A Si (106 kbps) Si (106 kbps) Si (106 kbps)
ISO14443-B No Si (106 kbps) Si (106/212/424/847 kbps)
Felica Si (212/424 kbps) Si (212/424 kbps) Si (212/424 kbps)
Jewel/Topaz No Si (106 kbps) Si (106 kbps)
D.E.P. Si Si Si
Tabla 9: Lectores NFC compatibles con modo lectura/escritura

1.5.3. Compatible con modo emulación de tarjeta


PN531 PN532 PN533
ISO14443-3 Si (UID de 4 bytes) Si (UID de 4 bytes) Si (UID de 4 bytes)
ISO14443-4 Si (software) Si (hardware) Si (software)
ISO14443-B No No No
FeliCa Si (212/424 kbps) Si (212/424 kbps) Si (212/424 kbps)
Jewel/Topaz No No No
D.E.P. Si Si Si
Tabla 10: Lectores NFC compatibles con modo emulación de tarjeta

1.6. Flujo de comunicación Mifare Classic


La comunicación realizada por las tarjetas Mifare Classic sigue la parte 3 del estándar
ISO-14443-A. Los comandos utilizados para ello son:

Francisco Fernández Díaz 22 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Ilustración 9: Comandos Mifare Classic

A continuación se muestra una imagen donde se puede observar las etapas que
componen la comunicación, y posteriormente una explicación del funcionamiento de cada
una. [49]

Ilustración 10: Flujo de comunicación Mifare Classic

Francisco Fernández Díaz 23 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1.6.1. Solicitud estándar/Solicitud todos


La tarjeta RFID se encuentra inicialmente en el estado Power On Reset (POR) debido a
que no está interactuando con ningún campo electromagnético. Con el fin de detectar las
tarjetas en dicho campo el lector RFID envía repetidamente el comando REQuest Type A
(REQA, 26) o Wake UP Type A (WUPA, 52). Este último comando despertará todas las tarjetas
en los estados POR y HALT. Cuando una tarjeta está dentro del rango del campo del lector
responde a la petición con el comando Answer To reQuest Type A (ATQA). En este momento
el lector reconoce que al menos hay una tarjeta en el rango de lectura y comienza con el bucle
anticolisión.

1.6.2. Bucle anticolisión


Esta etapa puede desarrollarse de dos maneras: con una o con varias tarjetas dentro del
rango del campo del lector.

 Una tarjeta: el lector obtiene el UID de la tarjeta con el comando Anticollision


Command (AC, 93 20) y el bucle termina.
 Varias tarjetas: esta situación se produce debido a una colisión cuando dos
tarjetas transmiten simultáneamente patrones de bits donde una o más posiciones
de bit poseen valores complementarios. El lector tiene en cuenta solo la
información válida hasta el bit de colisión estableciéndola como el nuevo criterio
de búsqueda. Envía otro comando AC actualizado con el nuevo criterio y la
longitud. La tarjeta cuyo UID coincida con el nuevo criterio responderá. Este
proceso se repite hasta que no haya colisiones y las tarjetas RFID no seleccionadas
entran en modo de espera hasta una nueva petición por parte del lector.

1.6.3. Seleccionar tarjeta


El lector envía el comando Select card (SEL, 93 70) a la tarjeta seleccionada para la
autenticación y posteriores accesos de memoria. La tarjeta responderá con el comando Select
AcKnowledge (SAK). El SAK y los mensajes ATQA también determinan el tipo de tarjeta y el
nombre del fabricante.

A continuación se muestra algunos valores SAK y ATQA conocidos.

Francisco Fernández Díaz 24 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1º byte SAK
Fabricante Producto ATQA
(hexadecimal)
MIFARE Mini 04 00 09
MIFARE Classic 1K 04 00 08
MIFARE Classic 4K 02 00 18
MIFARE Ultralight 44 00 00
MIFARE DESFire 44 03 20
NXP
MIFARE DESFIRE EV1 44 03 20
JCOP31 04 03 28
JCOP31 v2.4.1 48 00 20
JCOP41 v2.2 48 00 20
JCOP41 v2.3.1 04 00 28
Infineon MIFARE Classic 1K 04 00 88
Gemplus MPCOS 02 00 98
Tabla 11: Valores SAK de tarjetas RFID

1.6.4. Autenticación a tres fases


Esta etapa realiza la autenticación entre la tarjeta y el lector en tres fases de desafío-
respuesta, donde la respuesta es la salida de una función de transformación que tiene el desafío
como la entrada, y se envía encriptada con la clave secreta. Las tres fases en Mifare Classic son
las siguientes:

 Fase 1: el lector ha solicitado el acceso a algún bloque y la tarjeta envía un número


aleatorio de 4 bytes al lector (nT).
 Fase 2: el lector responde con su propio número aleatorio (nR) encriptado y una
respuesta cifrada (aR) al desafío de la fase 1. Desde este mensaje en adelante toda la
comunicación es encriptada.
 Fase 3: si la respuesta del lector es correcta la tarjeta responderá con una respuesta
cifrada (aT), sino no responderá y el flujo de comunicación habrá terminado.

Al final de esta autenticación ambas partes pueden descifrar y verificar la exactitud de


las respuestas, y están seguros de que la otra parte posee la clave correcta.

1.6.5. Halt
En cualquier momento después de que una tarjeta ha sido seleccionada por el lector
este puede cesar toda la comunicación con ella mediante la emisión del comando HALT Type
A (HLTA). La tarjeta se situará en el estado de pausa y solo puede ser despertada con el
comando WUPA.

A continuación se muestra un ejemplo de flujo de comunicación:

Francisco Fernández Díaz 25 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Etapa Secuencia Emisor Bytes (hexadecimal) Comando


Solicitud 1 Lector 26 REQA (WUPA si es 52)
estándar 2 Tarjeta 04 00 ATQA
Bucle 3 Lector 93 20 AC
anticolisión 4 Tarjeta 2A 69 8D 43 8D UID y BCC
Seleccionar 5 Lector 93 70 2A 69 8D 43 8D 52 55 SEL
tarjeta 6 Tarjeta 08 B6 DD SAK
7 Lector 60 04 D1 3D Autenticación bloque 0x04 con clave A
Autenticación 8 Tarjeta 3B AE 03 2D Aleatorio de tarjeta
a tres fases 9 Lector C4 94 A1 D2 6E 96 86 42 Aleatorio y respuesta de lector cifrados
10 Tarjeta 84 66 05 9E Respuesta de tarjeta cifrada
Halt 11 Lector 50 00 57 CD HLTA
Tabla 12: Ejemplo flujo de comunicación Mifare Classic

1.7. Crypto1
Crypto1 es un algoritmo de cifrado desarrollado por NXP Semiconductors
específicamente para su uso en tarjetas MIFARE Classic. El algoritmo se ejecuta en el hardware
del chip de estas tarjetas para las operaciones criptográficas rápidas. [42] [43] [45] [46] [50]

1.7.1. Cifrado de flujo


Crypto1 es un cifrado basado en un Linear Feedback Shift Register (LFSR) de 48 bits y
un generador de filtro no lineal de dos capas (fa, fb y fc). El polinomio generador del LFSR
(𝑔(𝑥) = 𝑥 43 + 𝑥 42 + 𝑥 41 + 𝑥 39 + 𝑥 35 + 𝑥 29 + 𝑥 27 + 𝑥 25 + 𝑥 24 + 𝑥 19 + 𝑥 17 + 𝑥 15 + 𝑥 14 + 𝑥 12 +
𝑥 10 + 𝑥 9 + 𝑥 5 + 1) es primitivo por lo que es irreducible y genera los 248 − 1 estados antes de
volver a generar el estado inicial.

Ilustración 11: Crypto1 – Estructura cifrado de flujo

1.7.1.1. Generador de clave


Durante cada ciclo de reloj el LFSR realiza el siguiente procedimiento para que el
generador de filtro no lineal recolecte veinte bits y genere un nuevo bit de clave:

Francisco Fernández Díaz 26 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

1) Genera nuevo bit utilizando la función de realimentación.


2) El LFSR se desplaza un bit a la izquierda descartando el bit más a la izquierda.
3) Inserta a la derecha el bit generado en el paso 1.

Si usamos xn para denotar el valor del bit (0 ó 1) en la posición n y es la función


exclusiva or (XOR) lógica la función de realimentación se define entonces por:

𝐿(𝑥0 𝑥1 … 𝑥47 ) ∶= 𝑥0 ⊕ 𝑥5 ⊕ 𝑥9 ⊕ 𝑥10 ⊕ 𝑥12 ⊕ 𝑥14 ⊕ 𝑥15 ⊕ 𝑥17 ⊕ 𝑥19 ⊕ 𝑥24 ⊕ 𝑥25 ⊕ 𝑥27
⊕ 𝑥29 ⊕ 𝑥35 ⊕ 𝑥39 ⊕ 𝑥41 ⊕ 𝑥42 ⊕ 𝑥43

El generador de filtro genera un bit en cada ciclo de reloj y se puede definir como una
combinación de tres subfunciones lógicas: fa, fb y fc. Utilizando la misma notación xn que el
anterior e introduciendo los operadores lógicos OR (∨) y AND (∧) se define el generador de
filtro y los tres sub-funciones así:

𝑓(𝑥0 𝑥1 … 𝑥47 ) ∶= 𝑓𝑐 (𝑓𝑎 (𝑥9 , 𝑥11 , 𝑥13 , 𝑥15 ), 𝑓𝑏 (𝑥17 , 𝑥19 , 𝑥21 , 𝑥23 ), 𝑓𝑏 (𝑥25 , 𝑥27 , 𝑥29 , 𝑥31 ),

𝑓𝑎 (𝑥33 , 𝑥35 , 𝑥37 , 𝑥39 ), 𝑓𝑏 (𝑥41 , 𝑥43 , 𝑥45 , 𝑥47 ))

Donde:

𝑓𝑎 (𝑎, 𝑏, 𝑐, 𝑑) ∶= ((𝑎 ∨ 𝑏) ⊕ (𝑎 ∧ 𝑑)) ⊕ (𝑐 ∧ ((𝑎 ⊕ 𝑏) ∨ 𝑏))

𝑓𝑏 (𝑎, 𝑏, 𝑐, 𝑑) ∶= ((𝑎 ∧ 𝑏) ∨ 𝑐) ⊕ ((𝑎 ⊕ 𝑏) ∧ (𝑐 ∨ 𝑑))

𝑓𝑐 (𝑎, 𝑏, 𝑐, 𝑑, 𝑒) ∶= (𝑎 ∨ ((𝑏 ∨ 𝑒) ∧ (𝑑 ⊕ 𝑒))) ⊕ ((𝑎 ⊕ (𝑏 ∧ 𝑑)) ∧ ((𝑐 ⊕ 𝑑) ∨ (𝑏 ∧ 𝑒)))

1.7.2. Generador de números pseudoaleatorios


Es un circuito encargado de generar números pseudoaleatorios (RNG) de 32 bits basado
en un LFSR de 16 bits con el polinomio generador 𝑔(𝑥) = 𝑥 16 + 𝑥 14 + 𝑥 13 + 𝑥 11 + 1 y separado
del LFSR de 48 bits utilizado para el cifrado.

Ilustración 12: Crypto1 – Estructura del generador de números pseudoaleatorios

Utiliza el mismo procedimiento que el LFSR del cifrado para generar un bit de salida.

Denotando la función de realimentación de la misma manera queda definida como:

Francisco Fernández Díaz 27 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

𝐿(𝑥0 𝑥1 … 𝑥15 ) ∶= 𝑥0 ⊕ 𝑥11 ⊕ 𝑥13 ⊕ 𝑥14 ⊕ 𝑥16

Por otra parte, si se define la secuencia x0x1…x31 de un LFSR de 32 bits que consiste en
este LFSR de 16 bits la siguiente secuencia de 32 bits se puede definir mediante una función
sucesor donde:

𝑠𝑢𝑐(𝑥0 𝑥1 … 𝑥31 ) ∶= 𝑥1 𝑥2 … 𝑥31 𝐿(𝑥16 𝑥17 … 𝑥31 )

𝑠𝑢𝑐 𝑛 (𝑥0 𝑥1 … 𝑥31 ) ∶= 𝑠𝑢𝑐 𝑛−1 (𝑠𝑢𝑐(𝑥0 𝑥1 … 𝑥31 ))

1.7.3. Flujo interno del algoritmo Crypto1


La ejecución interna que realiza el algoritmo Crypto1 consiste en dos etapas:
inicialización y encriptación. [42] , [43] , [45] , [46] , [50]

1.7.3.1. Inicialización
En este proceso se inician los valores del LFSR del generador de claves y el LFSR del
RNG con la clave del sector a autenticar y el número aleatorio mandado al lector en la fase 1 en
la autenticación a tres fases, respectivamente.

A continuación el contenido del LFSR del generador de claves es desplazado con el


resultado de la operación uid ⊕ 𝑛 𝑇 (operación XOR entre el identificador de la tarjeta y el
número aleatorio de la tarjeta). Por último es desplazado con el número aleatorio enviado por
el lector en la fase 2 en la autenticación a tres fases.

1.7.3.2. Encriptación
Una vez que la inicialización ha terminado comienza el encriptado. Para llevarlo a cabo
se realizan los siguientes pasos:

1. Los bits en las posiciones 9,11,13 y 15, 17,19,21 y 23, 25,27,29 y 31, 33,35,37 y 39, y
41,43,45 y 47 son extraídos del generador de claves y suministrados a las funciones
𝑓𝑎 , 𝑓𝑏 , 𝑓𝑏 , 𝑓𝑎 y 𝑓𝑏 , respectivamente.
2. 𝑓𝑎 y 𝑓𝑏 con calculadas.
3. Los resultados de estas 5 funciones son insertados en la función 𝑓𝑐 .
4. 𝑓𝑐 es calculada.
5. El LFSR de RNG es desplazado una posición a la izquierda.
6. Se realiza la operación XOR con los bits de las posiciones 0, 10, 12, 13 y 15 del RNG.
7. El resultado del paso 6 es insertado en el LFSR de RNG.
8. Operación XOR entre los valores obtenidos en los pasos 4 y 6. El resultado
obtenido es un bit perteneciente al resultado final.

Francisco Fernández Díaz 28 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

9. El LFSR del generador de claves es desplazado una posición a la izquierda.


10. Se realiza la operación XOR entre los bits de las posiciones 0, 5, 9, 10, 12, 14, 15, 17,
19, 24, 25, 27, 29, 35, 39, 41, 42 y 43 del generador de claves.
11. Operación XOR entre el valor obtenido en el paso 4 y el número aleatorio enviado
por el lector.
12. Operación XOR entre el valor obtenido en el paso 11 y el resultado de la operación
XOR entre el identificador de la tarjeta y el número aleatorio enviado al lector.
13. Operación XOR entre los valores obtenidos en los pasos 10 y 12.
14. El resultado del paso 13 es insertado en el LFSR de generador de claves.
15. Volver a ejecutar el paso 1.

Según todo lo anterior, la estructura completa del algoritmo Crypto1 es:

Ilustración 13: Crypto1 – Estructura completa

1.8. Herramientas de ataque NFC

1.8.1. Proxmark3
Proxmark3 posee un programa cliente con el que el usuario puede interactuar con el
dispositivo permitiéndole espiar, escuchar y emular tarjetas RFID tanto de baja como de alta
frecuencia. Su desarrollo ha sido en sistemas Unix pero existen versiones para sistemas
operativos como Windows [49] .

Este programa posee diferentes funciones para operar sobre las tarjetas RFID, a
continuación se especifican las utilizadas para el desarrollo de este proyecto: [21]

Francisco Fernández Díaz 29 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 hf 14a list: muestra los mensajes intercambiados previamente entre una tarjeta
RFID y la proxmark3 o desde una ejecución previa del comando hf 14a snoop.
 hf 14a reader: emplea el proceso de anticolisión sobre una tarjeta RFID y muestra
la información recolectada de sus respuestas.
 hf 14a snoop: registra todo el tráfico de información entre el lector y la tarjeta
RFID. Todo este tráfico puede ser mostrado con el comando hf 14a snoop.
 hf mf mifare: obtiene la clave del bloque 0.
 hf mf nested: obtiene las claves de uno o todos los sectores de una tarjeta RFID,
pudiendo escoger entre obtener las claves tipo A, B o ambas. Para poder ejecutarlo
es necesario conocer al menos una clave.
 hf mf sim: emula el comportamiento de una tarjeta Mifare Classic.
 hf mf eclr: limpia la memoria de la Proxmark3 y la rellena con la clave por defecto
(0xFFFFFFFFFFFF).
 hf mf ekeyprn: muestra las claves almacenadas en la memoria de la Proxmark3.

1.8.2. LibNFC
El propósito de la biblioteca libnfc es proporcionar a los desarrolladores una manera de
trabajar con hardware NFC a un nivel más alto de abstracción sin costo alguno. Algunas
funciones importantes incluyen soporte para ISO-14443-A modulación, implementación del
protocolo MIFARE Classic y la capacidad de transformar cualquier dispositivo NFC basada en
USB en un lector o tarjeta RFID. A continuación se destacan aquellos que se han utilizado
directamente: [26] , [49]

 nfc-anticol: genera una fase de anticolisión para el estándar ISO14443-A.


 nfc-emulate-tag: emula un tag.
 nfc-emulate-uid: emula un tag que posee un UID modificado.
 nfc-list: lista la primera tarjeta RFID actual de cada lector.
 nfc-mfclassic: manipulación de una tarjeta Mifare Classic.
 nfc-mfultralight: manipulación de una tarjeta Mifare Ultralight.
 nfc-scan-device: lista los dispositivos NFC disponibles.

1.8.3. Crapto1
Crapto1 es una librería escrita en lenguaje C que además de implementar el cifrado
Crypto1 ofrece algunas funciones de ataque contra él. [30] , [42] , [49]

Francisco Fernández Díaz 30 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

En este proyecto Crapto1 es utilizado para realizar ingeniería inversa sobre el algoritmo
Crypto1 y así descifrar las claves de las tarjetas RFID de tipo Mifare Classic.

Los valores utilizados para el cifrado son el uid, aleatorio y la clave del sector de la
tarjeta. Ya que todos son conocidos excepto la clave, y debido a la propiedad:

𝐶=A⊕B

Entonces:

𝐴=B⊕C

𝐵=A⊕𝐶

Es posible realizar el procedimiento inverso comenzando desde el último resultado


encriptado y así obtener la clave del sector.

Esta librería está incluida en el programa Mfoc, el cual es utilizado para descifrar las
claves de las tarjetas RFID de tipo Mifare Classic durante el desarrollo de este proyecto.

2. Android

2.1. Introducción

2.1.1. ¿Qué es Android?


Andy Rubin define Android como:

“La primera plataforma verdaderamente abierta y global para dispositivos móviles, con
todo el software para hacer funcionar un teléfono móvil pero sin los obstáculos de los
propietarios que han entorpecido la innovación en el mundo de los dispositivos móviles." [34]

Android es un software de código abierto que incluye un sistema operativo, un


middleware o capa intermedia, las principales aplicaciones móviles necesarias para cualquier
dispositivo móvil y un conjunto de librerías que permiten escribir nuevas aplicaciones que se
podrán instalar en dispositivos móviles que tengan Android instalado. Además, Android se ha
diseñado de forma que tanto las aplicaciones nativas del software como las aplicaciones
desarrolladas por terceras personas estén escritas bajo las mismas APIs y funcionen bajo el
mismo entorno de ejecución.

Francisco Fernández Díaz 31 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

Desde su aparición en 2008 han salido numerosas actualizaciones. Éstas corrigen fallos,
implementan nuevas funcionalidades, mejoran el rendimiento, etc. Las aplicaciones
desarrolladas son por regla general retrocompatibles.

Las diferentes versiones que hay son:

Ilustración 14: Versiones de Android

Para el desarrollo de este proyecto se ha utilizado la versión 4.0.4 (Ice Cream


Sandwich):

 Basado en el núcleo de Linux 3.0.1.


 Habilidad de acceder a aplicaciones directamente desde la pantalla de bloqueo.
 Mejor integración de voz y dictado de texto en tiempo real continuo.
 Desbloqueo facial, característica que permite a los usuarios desbloquear los
equipos usando software de reconocimiento facial.
 Nuevo navegador web con pestañas bajo la marca de Google Chrome, permitiendo
hasta 15 pestañas.
 Capacidad para cerrar aplicaciones que están usando datos en segundo plano.
 Editor de fotos integrado.
 Android Beam, una característica de NFC que permite el rápido intercambio de
datos a corto alcance.
 Aceleración por hardware de la interfaz de usuario.

2.2. Arquitectura
El sistema operativo Android posee una arquitectura con estructura multicapa formada
por cinco capas. Cada una de estas capas utiliza elementos de la capa inferior para realizar sus
funciones.

Las capas que lo componen son:

Francisco Fernández Díaz 32 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

 Kernel de Linux: Android se basa en la versión 2.6 del kernel de Linux para los
servicios básicos del sistema como seguridad, gestión de memoria y procesos,
conexiones de red y montaje de drivers. También actúa como una capa de
abstracción entre el hardware y el resto de las capas de la arquitectura.
 Librerías: la capa que se sitúa justo sobre el kernel la componen las librerías
nativas de Android. Estas librerías están escritas en C/C++ y compiladas para la
arquitectura hardware específica del teléfono, tarea que normalmente realiza el
fabricante y que también se encarga de instalarlas en el terminal antes de ponerlo
a la venta. Su cometido es proporcionar funcionalidad a las aplicaciones, para
tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y
garantizando que se llevan a cabo de la forma más eficiente.
Algunas de las librerías son: Surface Manager, SGL, OpenGL, Media Framework,
WebKit, SSL, FreeType, SQLite y la librería C del sistema (libc).
 Entorno de ejecución: Android incluye un conjunto de librerías básicas que
proporcionan la mayor parte de la funcionalidad disponible en las librerías de Java.
Además, Android dispone de una máquina virtual similar a la que dispone el
lenguaje Java, que ha sido rediseñada de forma que cuando un proceso es lanzado
a ejecución disponga de su propia instancia de máquina virtual. Así, un dispositivo
móvil puede tener en un momento dado múltiples instancias de máquinas
virtuales ejecutándose en paralelo, gestionándolas todas de forma eficiente y
equilibrada en términos de consumo de memoria. Dicha máquina virtual se
conoce bajo el nombre de Dalvik.
 Framework de aplicaciones: mediante este nivel, los desarrolladores tienen
acceso a los dispositivos hardware del terminal, pueden ejecutar servicios en
segundo plano, activar alarmas, y todo lo necesario para implementar aplicaciones
de gran potencia. Para ello, se les da un acceso total al mismo API que se utiliza
para el desarrollo de las aplicaciones básicas del nivel aplicaciones. De esta forma
se favorece la reutilización de los componentes, y se posibilita el hecho de poder
cambiar componentes a gusto del usuario.
 Aplicaciones: capa superior de la arquitectura. La forman las aplicaciones del
dispositivo: con interfaz de usuario o sin ella, nativas (C/C++) o administradas
(Java), instaladas de serie con el dispositivo por el fabricante o instaladas a
posteriori por el usuario.

Francisco Fernández Díaz 33 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

2.3. NFC en Android


Con la versión 2.3 comienza el soporte de NFC sobre Android. Pero la API facilitada a
los desarrolladores no permite aprovechar todas las capacidades que NFC puede ofrecer, por lo
que en poco espacio de tiempo Google lanzó una versión mejorada. Esta nueva versión mejoro
el soporte de tarjetas y añadió la posibilidad de enviar mensajes NDEF entre teléfonos.

Las posibilidades ofrece Android para trabajar con NFC son las siguientes:

 Lectura escritura de diferentes tipos de tarjeta: todas las posibles tarjetas están
representadas por la clase Tag. Las propiedades de esta permiten obtener el tipo de
tarjeta aproximada y en función de la que sea obtener la clase que la representa ese
tipo. En el paquete android.nfc.tech se encuentran las clases disponibles, que
ofrecen soporte para los siguientes tipos de tarjeta: NFC-A (ISO 14443-3A), NFC-B
(ISO 14443-3B), NFC-F (JIS 6319-4), NFC-V (ISO 15693), ISO-DEP (ISO 14443-4),
MIFARE Classic, MIFARE Ultralight y NFC Forum NDEF tags.
 Formateado de diferentes mensajes NDEF: permite trabajar alto nivel con los
diferentes tipos de mensajes NDEF (texto, URL...) tanto en la lectura como la
escritura.
 Posibilidad de intercambiar mensajes NDEF entre teléfonos móviles: a modo de
conexión peer to peer, se pueden enviar o recibir mensajes NDEF como si de una
tarjeta se tratase.
 Aviso de aproximación de un elemento NFC: cuando se aproxima una tarjeta u otro
móvil, se puede preparar para que la aplicación que este en primer plano reciba el
correspondiente aviso, con un Intent (como suele trabajarse en Android, a modo
de “Evento”) o se puede configurar para elegir que aplicación se abrirá por defecto
en caso de no estar ejecutándose ninguna aplicación relacionada.
 Android 4.4 permite realizar transacciones seguras con NFC a través de Host Card
Emulation (HCE), el cual emula la norma ISO/IEC 7816 basado en tarjetas
inteligentes que utilizan el protocolo ISO/IEC 14443-4 (ISO-DEP).

3. SQLite

SQLite es un sistema de gestión de bases de datos relacional de dominio público y


compatible con ACID (Atómica, consistente, aislada y durable), contenida en una biblioteca
relativamente pequeña (~275 Kb) y escrita en C.

Francisco Fernández Díaz 34 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

A diferencia de los sistemas de gestión de bases de datos cliente-servidor, el motor de


SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar
de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo.
El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y
funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a
funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de
datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero
estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de
datos al principio de cada transacción.

En su versión 3, SQLite permite bases de datos de hasta 2 Terabytes de tamaño, y


también permite la inclusión de campos tipo BLOB (almacenar largos arrays de bytes en un
solo campo).

4. Android CyanogenMod

CyanogenMod es un firmware no oficial disponible para más de ochenta teléfonos


móviles y tablets basados en el sistema operativo de código abierto Android. Está diseñado
para aumentar el rendimiento y la fiabilidad el producto original y de compañías como Google,
T-Mobile, HTC, etc. Ofrece características y mejoras que no se encuentran en las versiones
oficiales de Android suministradas por los fabricantes, incluyendo, entre otras mejoras:

 Soporte para Free Lossless Audio Codec (FLAC)


 Multi-touch
 Caché comprimida (compcache).
 Una larga lista de APNs.
 Menú de reinicio
 Soporte para tethering mediante Wi-Fi, Bluetooth o USB.

Poco después de la introducción del teléfono HTC Dream en septiembre de 2008, la


comunidad de desarrolladores Android encontró un método para obtener permisos de
superusuario en el subsistema Linux de Android. Este descubrimiento, combinado con la
naturaleza de código abierto de Android, permitió modificar los firmwares originales y
reinstalarlos en el teléfono a voluntad.

La última versión de CyanogenMod se basa en Android 4.4.X (Jelly Bean). Las porciones
de código modificado están escritas fundamentalmente por Cyanogen (Steve Kondik), pero

Francisco Fernández Díaz 35 | P á g i n a


Capítulo 2: Estado del arte Proyecto Fin de Carrera

incluye contribuciones procedentes de la comunidad de desarrolladores xda-developers y de


otros contribuyentes al proyecto.

En la versión 9.1 (correspondiente a Android 4.0 – Ice Cream Sandwich), fue añadida la
emulación de tags únicamente con el protocolo ISO 14443-4.

Cyanogen también mantiene la recuperación de imagen utilizada en combinación con


CyanogenMod. Proporciona un modo de arranque especial que se utiliza para crear copias de
seguridad y restaurar el software del dispositivo, o reparar y actualizar el firmware.

5. Google App Engine

Google App Engine (GAE) es un servicio de alojamiento web que presta Google de
forma gratuita hasta determinadas cuotas, el cual te permite ejecutar aplicaciones web sobre la
infraestructura de Google. Las aplicaciones App Engine son fáciles de crear, de mantener y de
ampliar al ir aumentando el tráfico y las necesidades de almacenamiento de datos. También
permite limitar el acceso a determinados usuarios.

Las aplicaciones se ejecutan en un entorno seguro, lo que permite a App Engine


distribuir peticiones a través de múltiples servidores y la ampliación de estos para satisfacer las
demandas de tráfico. Cada aplicación se ejecuta dentro de su propio entorno seguro y confiable
que es independiente del hardware, sistema operativo, o la ubicación física del servidor. [2]

Actualmente las aplicaciones GAE se implementan mediante los lenguajes de


programación Python, Java, Go y PHP.

Francisco Fernández Díaz 36 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

CAPÍTULO 3:
DESARROLLO TÉCNICO DEL PFC

Francisco Fernández Díaz 37 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Este capítulo recoge las partes concernientes al análisis, diseño y programación del
sistema representadas con la mayor claridad y simplicidad posibles.

1. Análisis

1.1. Requisitos de usuario


En este apartado se detallan los requisitos que se han identificado en la fase de análisis
del trabajo. Cada uno de los requisitos viene acompañado de ciertos datos compactados en una
tabla con el siguiente formato:

Identificador RUY-XX
Nombre Nombre de requisito
Descripción Descripción de requisito
Necesidad Necesidad de requisito Prioridad Prioridad de requisito
Estabilidad Estabilidad de requisito Verificabilidad Verificabilidad de requisito
Tabla 13: Formato tabla de requisito de usuario

Cuyos campos significan:

 Identificador: identificador de requisito con la estructura RUY-XX, siendo:


o Y:
 C: requisito de usuario de capacidad.
 R: requisito de usuario de restricción.
o XX: número que identifica al requisito.
 Nombre: identificativo del requisito, es un pequeño resumen de lo que representa
el requisito.
 Descripción: corresponde a la descripción del requisito.
 Necesidad: corresponde a lo imprescindible que resulta para el proyecto que
dicho requisito sea implementado en el sistema. Los posibles valores son:
o Esencial: es imprescindible que se implemente dicho requisito.
o Deseable: se debe implementar el requisito pero no es algo esencial.
o Opcional: se puede o no implementar el requisito ya que no es esencial
para el correcto funcionamiento del sistema.
 Prioridad: indica la importancia del requisito en el proceso de diseño e
implementación. Los posibles valores son:
o Alta: es la prioridad máxima. El requisito debe ser diseñado y añadido al
sistema en primer lugar.

Francisco Fernández Díaz 38 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

o Media: el requisito debe ser diseñado y añadido al sistema tras haber


acabado con los requisitos de prioridad alta.
o Baja: el requisito no es una gran prioridad para el proyecto, por lo que su
realización se pospondrá para cuando se hayan realizado el resto de
requisitos de mayor prioridad.
 Estabilidad: variabilidad del requisito ante posibles modificaciones en el
transcurso del proyecto. Los posibles valores son:
o Estable: el requisito tiene escasas posibilidades de que se modifique.
o No estable: el requisito tendrá una alta posibilidad de que se modifique o
incluso que se pueda eliminar del proyecto.
 Verificabilidad: nivel de complejidad para comprobar que el requisito se ha
incluido en la implementación del sistema. Los posibles valores son:
o Alta: la comprobación del requisito es complicada.
o Media: el requisito se puede comprobar en un tiempo razonable y de
manera fácil.
o Baja: el requisito se comprueba de una manera rápida y sencilla.

1.1.1. Requisitos de capacidad


Los requisitos de usuario de capacidad describen las capacidades que va a poseer la
aplicación para resolver un problema o cumplir con un objetivo. A continuación se muestran
los relativos a este proyecto:

Identificador RUC-01
Nombre Lectura de tarjetas RFID
La aplicación permitirá leer tarjetas RFID de tipo Mifare Ultralight y Mifare
Descripción
Classic.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 14: Requisito RUC-01 – Lectura de tarjetas RFID

Identificador RUC-02
Nombre Selección de claves en lectura
Descripción La aplicación permitirá seleccionar las claves deseadas para leer tarjetas RFID.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 15: Requisito RUC-02 – Selección de claves en lectura

Francisco Fernández Díaz 39 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUC-03
Nombre Escritura de tarjetas RFID
La aplicación permitirá escribir información en tarjetas RFID de tipo Mifare
Descripción
Ultralight y Mifare Classic.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 16: Requisito RUC-03 – Escritura de tarjetas RFID

Identificador RUC-04
Nombre Selección de claves en escritura
Descripción La aplicación permitirá seleccionar las claves deseadas para escribir tarjetas RFID.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 17: Requisito RUC-04 – Selección de claves en escritura

Identificador RUC-05
Nombre Gestión de tarjetas RFID
La aplicación permitirá la modificación y borrado de tarjetas RFID previamente
Descripción
leídas y almacenadas, así como la creación de nuevas tarjetas.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 18: Requisito RUC-05 – Gestión de tarjetas RFID

Identificador RUC-06
Nombre Visualización de tarjetas RFID
La aplicación permitirá ver el contenido de tarjetas RFID previamente leídas o
Descripción
almacenadas en formato ASCII, hexadecimal y como tarjeta de transporte.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 19: Requisito RUC-06 – Visualización de tarjetas RFID

Identificador RUC-07
Nombre Visualización de condiciones de acceso
La aplicación permitirá ver las condiciones de acceso de tarjetas RFID
Descripción
previamente leídas o almacenadas.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 20: Requisito RUC-07 – Visualización de condiciones de acceso

Identificador RUC-08
Nombre Importación de tarjetas RFID
La aplicación permitirá importar tarjetas RFID desde ficheros ubicados en el
Descripción
dispositivo.
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 21: Requisito RUC-08 – Importación de tarjetas RFID

Francisco Fernández Díaz 40 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUC-09
Nombre Estadísticas
La aplicación realizará unas estadísticas de uso sobre las claves utilizadas para leer
Descripción
tarjetas Mifare Classic y las mandará a un backend.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 22: Requisito RUC-09 – Estadísticas

Identificador RUC-10
Nombre Gestión de claves
Descripción La aplicación permitirá la creación, modificación y borrado de claves.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 23: Requisito RUC-10 – Gestión de claves

Identificador RUC-11
Nombre Gestión de grupos de claves
Descripción La aplicación permitirá la creación, modificación y borrado de grupos de claves.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 24: Requisito RUC-11 – Gestión de grupos de claves

Identificador RUC-12
Nombre Importación de claves
Descripción La aplicación permitirá importar claves desde ficheros ubicados en el dispositivo.
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 25: Requisito RUC-12 – Importación de claves

Identificador RUC-13
Nombre Activar tecnología NFC
Descripción La aplicación permitirá activar la tecnología NFC del dispositivo.
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Baja
Tabla 26: Requisito RUC-13 – Activar tecnología NFC

1.1.2. Requisitos de restricción


Los requisitos de usuario de restricción definen las restricciones sobre la forma con la
que se resuelve un problema o se logra un objetivo. A continuación se muestran los relativos a
este proyecto:

Francisco Fernández Díaz 41 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-01
Nombre Lectura completa
La lectura de una tarjeta RFID debe ser completa, es decir, no pueden leerse unos
Descripción
bloques específicos.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 27: Requisito RUR-01 – Lectura completa

Identificador RUR-02
Nombre Claves para lectura
Deben conocerse todas las claves para poder leer una tarjeta RFID de tipo Mifare
Descripción
Classic.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 28: Requisito RUR-02 – Claves para lectura

Identificador RUR-03
Nombre Escritura completa
La escritura de una tarjeta RFID debe ser completa, es decir, no pueden escribirse
Descripción
unos bloques específicos.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 29: Requisito RUR-03 – Escritura completa

Identificador RUR-04
Nombre Claves para escritura
Deben conocerse todas las claves para poder escribir en una tarjeta RFID de tipo
Descripción
Mifare Classic.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 30: Requisito RUR-04 – Claves para escritura

Identificador RUR-05
Nombre Cancelación de escritura
La escritura de una tarjeta RFID no puede ser cancelada una vez que haya
Descripción
comenzado por riesgo de inutilizar la tarjeta.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 31: Requisito RUR-05 – Cancelación de escritura

Identificador RUR-06
Nombre Tipo de tarjeta en escritura
El contenido de un tipo de tarjeta almacenado en el dispositivo solo puede ser
Descripción
escrito en una tarjeta del mismo tipo.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 32: Requisito RUR-06 – Tipo de tarjeta en escritura

Francisco Fernández Díaz 42 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-07
Nombre Nombre de tarjeta único
Descripción No pueden almacenarse dos tarjetas con el mismo nombre.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 33: Requisito RUR-07 – Nombre de tarjeta único

Identificador RUR-08
Nombre Clave única
Descripción No pueden almacenarse dos claves iguales.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Media
Tabla 34: Requisito RUR-08 – Clave única

Identificador RUR-09
Nombre Nombre de grupo de claves único
Descripción No pueden almacenarse dos grupos de claves con el mismo nombre.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Media
Tabla 35: Requisito RUR-09 – Nombre de grupo de claves único

Identificador RUR-10
Nombre Nombre del tipo de tarjeta único
Descripción No pueden almacenarse dos tipos de tarjetas con el mismo nombre.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Media
Tabla 36: Requisito RUR-10 – Nombre del tipo de tarjeta único

Identificador RUR-11
Nombre Formato tarjeta Mifare Ultralight
El formato de la tarjeta RFID de tipo Mifare Ultralight será de 16 páginas con 8
Descripción
caracteres hexadecimales en cada uno de ellos.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 37: Requisito RUR-11 – Formato tarjeta Mifare Ultralight

Identificador RUR-12
Nombre Formato tarjeta Mifare Classic Mini
El formato de la tarjeta RFID de tipo Mifare Classic Mini será de 5 sectores cada
Descripción
uno compuesto de 4 bloques de 32 caracteres hexadecimales.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 38: Requisito RUR-12 – Formato tarjeta Mifare Classic Mini

Francisco Fernández Díaz 43 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-13
Nombre Formato tarjeta Mifare Classic 1K
El formato de la tarjeta RFID de tipo Mifare Classic 1K será de 16 sectores cada uno
Descripción
compuesto de 4 bloques de 32 caracteres hexadecimales.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 39: Requisito RUR-13 – Formato tarjeta Mifare Classic 1K

Identificador RUR-14
Nombre Formato tarjeta Mifare Classic 4K
El formato de la tarjeta RFID de tipo Mifare Classic 4K será de 40 sectores donde
Descripción los 32 primeros estarán compuestos de 4 bloques y los 8 últimos de 16 bloques. En
ambos casos cada bloque estará formado por 32 caracteres hexadecimales.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 40: Requisito RUR-14 – Formato tarjeta Mifare Classic 4K

Identificador RUR-15
Nombre Formato clave
Descripción Las claves solo pueden contener valores hexadecimales.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Media
Tabla 41: Requisito RUR-15 – Formato clave

Identificador RUR-16
Nombre Longitud clave
Descripción Las claves deben contener 12 caracteres alfanuméricos.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Media
Tabla 42: Requisito RUR-16 – Longitud clave

Identificador RUR-17
Nombre Tarjeta por tipo
Descripción Una tarjeta solo puede relacionarse con un tipo de tarjeta.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 43: Requisito RUR-17 – Tarjeta por tipo

Identificador RUR-18
Nombre Clave por tarjeta
Descripción Una clave puede relacionarse con múltiples tarjetas.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 44: Requisito RUR-18 – Clave por tarjeta

Francisco Fernández Díaz 44 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-19
Nombre Clave por grupo de clave
Descripción Una clave puede relacionarse con múltiples grupos de claves.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 45: Requisito RUR-19 – Clave por grupo de clave

Identificador RUR-20
Nombre Claves por defecto
Por defecto la aplicación constará de unas claves que no podrán ser modificadas
Descripción
ni eliminadas.
Necesidad Esencial Prioridad Media
Estabilidad Estable Verificabilidad Baja
Tabla 46: Requisito RUR-20 – Claves por defecto

Identificador RUR-21
Nombre Tipos de tarjeta por defecto
Por defecto la aplicación constará de los tipos de tarjetas “Control de acceso”,
Descripción
“Pasaporte” y “Transporte”.
Necesidad Esencial Prioridad Media
Estabilidad Estable Verificabilidad Baja
Tabla 47: Requisito RUR-21 – Tipos de tarjeta por defecto

Identificador RUR-22
Nombre Ruta inicial en importe de tarjetas
Descripción Hasta que es modificada, la ruta para la importación de tarjetas es “/tags”.
Necesidad Esencial Prioridad Media
Estabilidad Estable Verificabilidad Baja
Tabla 48: Requisito RUR-22 – Ruta inicial en importe de tarjetas

Identificador RUR-23
Nombre Ruta inicial en importe de claves
Descripción Hasta que es modificada, la ruta para la importación de claves es “/keys”.
Necesidad Esencial Prioridad Media
Estabilidad Estable Verificabilidad Baja
Tabla 49: Requisito RUR-23 – Ruta incial en importe de claves

Identificador RUR-24
Nombre Base de datos
Descripción Se dispone de una base de datos para almacenar los datos de su aplicación.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 50: Requisito RUR-24 – Base de datos

Francisco Fernández Díaz 45 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-25
Nombre Backend
Se dispone de un backend en un servidor remoto para almacenar la información
Descripción
de las estadísticas de uso de las claves.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 51: Requisito RUR-25 – Backend

Identificador RUR-26
Nombre Lenguaje Android
Lenguaje Android (versión mínima Ice Cream Sandwich – 4.0.4) para el desarrollo
Descripción
de la aplicación.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 52: Requisito RUR-26 – Lenguaje Android

Identificador RUR-27
Nombre Lenguaje Java
Descripción Lenguaje Java (v6) para el desarrollo del backend.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 53: Requisito RUR-27 – Lenguaje Java

Identificador RUR-28
Nombre Lenguaje SQLite
Descripción Lenguaje SQLite para el desarrollo de la base de datos de la aplicación.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 54: Requisito RUR-28 – Lenguaje SQLite

Identificador RUR-29
Nombre Compatibilidad Android
La aplicación será compatible con cualquier dispositivo con la versión de Android
Descripción
Jelly Bean (v4.1) o superior.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 55: Requisito RUR-29 – Compatibilidad Android

Identificador RUR-30
Nombre Acceso concurrente al backend
Se permitirá el acceso concurrente a los datos ubicados en el backend
Descripción
permitiendo la modificación de información desde más de un dispositivo.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 56: Requisito RUR-30 – Acceso concurrente al backend

Francisco Fernández Díaz 46 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-31
Nombre Permisos de la aplicación
La aplicación tendrá los permisos necesarios para utilizar la tecnología NFC,
Descripción
lectura en tarjeta de almacenamiento externa, internet, y acceso al backend.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 57: Requisito RUR-31 – Permisos de la aplicación

Identificador RUR-32
Nombre Idioma
Descripción La aplicación estará disponible en inglés y español.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 58: Requisito RUR-32 – Idioma

Identificador RUR-33
Nombre Conexión a backend
La aplicación usará conexiones 3G o Wifi para comunicar el dispositivo con el
Descripción
backend.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 59: Requisito RUR-33 – Conexión a backend

Identificador RUR-34
Nombre Tecnología NFC
Descripción La aplicación usará la tecnología NFC para la lectura y escritura de tarjetas RFID.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 60: Requisito RUR-34 – Tecnología NFC

Identificador RUR-35
Nombre Aplicación eficiente
Descripción La aplicación debe ser rápida, eficaz e intuitiva.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 61: Requisito RUR-35 – Aplicación eficiente

Identificador RUR-36
Nombre Aplicación escalable
La aplicación debe ser escalable ya que en un futuro pueden añadirse nuevas
Descripción
funcionalidades.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 62: Requisito RUR-36 – Aplicación escalable

Francisco Fernández Díaz 47 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RUR-37
Nombre Gestión de fallos
Descripción La aplicación debe gestionar fallos.
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 63: Requisito RUR-37 – Gestión de fallos

1.1. Casos de uso


En este apartado se presenta el diagrama de casos de uso, una representación del
comportamiento real del sistema y de cómo el usuario interactúa con él.

Primero se mostrará el diagrama de casos de uso en lenguaje gráfico Unified Modeling


Language (UML) y a continuación se realizará una descripción textual de cada uno de estos
casos.

Para la descripción textual se utiliza una tabla con el siguiente formato:

Identificador CU-XX
Nombre Nombre de caso de uso
Actores Actores de caso de uso
Objetivo Objetivo de caso de uso
Precondiciones Precondiciones de caso de uso
Postcondiciones Postcondiciones de caso de uso
Escenario básico Escenario básico de caso de uso

Escenario alternativo XX
Descripción Descripción escenario alternativo
Flujo alternativo Flujo de ejecución del escenario alternativo
Tabla 64: Formato tabla de caso de uso

Cuyos campos significan:

 Identificador: identificador de caso de uso con la estructura CU-XX, siendo XX el


número que identifica al caso de uso.
 Nombre: se corresponde con el nombre asignado al caso de uso.
 Actores: es el rol o roles que encontraremos en el sistema. Es cualquier entidad
externa al sistema que está relacionada con este y que le demanda una
funcionalidad.
 Objetivo: estado que se quiere alcanzar tras finalizar el caso de uso.
 Precondiciones: estado del sistema antes de la ejecución del caso de uso.
 Postcondiciones: estado del sistema después de la ejecución del caso de uso.
 Escenario básico: secuencia de acciones de lo que tiene que hacer el caso de uso.

Francisco Fernández Díaz 48 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

 Escenario alternativo: escenario a realizar cuando se produce algún


inconveniente durante la ejecución del escenario básico. Este campo contiene el
identificador del escenario alternativo con la estructura XX, siendo XX el número
que lo identifica.
 Descripción: motivo por el que se produce el escenario alternativo.
 Flujo alternativo: secuencia de pasos detallados que se realiza en el escenario
alternativo.

1.1.1. Diagrama de casos de uso

Ilustración 15: Casos de uso

Francisco Fernández Díaz 49 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

1.1.2. Especificación detallada de los casos de uso


Identificador CU-01
Nombre Leer tarjeta RFID
Actores Usuario
Objetivo Leer el contenido de la tarjeta RFID y guardarlo en el dispositivo.
 Tener activada la tecnología NFC en el dispositivo.
Precondiciones  Tener claves almacenadas en el dispositivo.
 Tener grupos de claves almacenados en el dispositivo.
 El dispositivo mostrará por pantalla el mensaje temporal “Tag
almacenado”.
Postcondiciones
 La tarjeta RFID es mostrada por pantalla.
 La tarjeta RFID es almacenada en la base de datos de la aplicación.
1. Pulsar sobre el botón “Leer”.
2. Seleccionar las claves utilizadas para autenticar y leer la tarjeta RFID
(Ninguna, Todas o Grupos de claves).
3. Acercar tarjeta RFID al teléfono.
Escenario básico
4. Escribir el nombre que identificará a esta tarjeta.
5. Seleccionar el tipo de tarjeta.
6. Modificar el contenido de la tarjeta que se considere estimado.
7. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 01
La información a guardar es incompleta o el formato del contenido de la
tarjeta no es válido. La aplicación muestra el mensaje “Debe seleccionar el tipo
Descripción de tarjeta”, “Debe escribir el nombre de la tarjeta”, “Algún sector no tiene 4 o
16 bloques”, “Algún bloque contiene datos no hexadecimal” o “Algún bloque
no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 02
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para reemplazar la tarjeta existente.
Flujo alternativo 1. Pulsar sobre el botón “Reemplazar”.

Escenario alternativo 03
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para renombrar la nueva tarjeta.
1. Pulsar sobre el botón “Renombrar”.
Flujo alternativo 2. Escribir el nuevo nombre de la tarjeta.
3. Pulsar el botón “Aceptar”.
Tabla 65: Caso de Uso CU-01 – Leer tarjeta RFID

Francisco Fernández Díaz 50 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-02
Nombre Escribir tarjeta RFID
Actores Usuario
Escribir el contenido de una tarjeta RFID almacenada en el dispositivo en una
Objetivo
tarjeta RFID externa.
 Tener activada la tecnología NFC en el dispositivo.
 Tener claves almacenadas en el dispositivo.
Precondiciones
 Tener grupos de claves almacenados en el dispositivo.
 Tener almacenada al menos una tarjeta RFID en el dispositivo.
 La tarjeta RFID contendrá la información escrita por el dispositivo.
 El dispositivo mostrará por pantalla la lista de tarjetas RFID almacenadas
Postcondiciones
en el dispositivo.
 El dispositivo mostrará por pantalla el mensaje temporal “Tag escrito”.
1. Pulsar sobre el botón “Escribir”.
2. Seleccionar la tarjeta que se quiere escribir.
Escenario básico 3. Seleccionar las claves utilizadas para autenticar y escribir la tarjeta RFID
(Ninguna, Todas o Grupos de claves).
4. Acercar tarjeta RFID al teléfono.

Escenario alternativo 01
La tarjeta externa contiene bloques que no pueden ser escritos. La aplicación
Descripción
muestra un diálogo con los sectores imposibles de escribir.
Flujo alternativo 1. Pulsar sobre el botón “Escribir tanto como sea posible”.
Tabla 66: Caso de Uso CU-02 – Escribir Tarjeta RFID

Francisco Fernández Díaz 51 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-03
Nombre Editar tarjeta RFID
Actores Usuario
Objetivo Modificar el contenido de una tarjeta RFID almacenado en el dispositivo.
 Tener almacenada en el dispositivo aquella tarjeta RFID que va a ser
Precondiciones
modificada.
 El dispositivo tendrá almacenada la tarjeta RFID ya modificada en su
base de datos.
 El dispositivo mostrará por pantalla la lista actualizada de tarjetas RFID
Postcondiciones
almacenadas en el dispositivo.
 El dispositivo mostrará por pantalla el mensaje temportal “Tag
almacenado”.
1. Pulsar sobre el botón “Ver escaneados”.
2. Pulsar sobre la tarjeta RFID que se quiere modificar.
Escenario básico
3. Editar los datos que se consideren estimados.
4. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 01
La información a guardar es incompleta o el formato del contenido de la
tarjeta no es válido. La aplicación muestra el mensaje “Debe seleccionar el tipo
Descripción de tarjeta”, “Debe escribir el nombre de la tarjeta”, “Algún sector no tiene 4 o
16 bloques”, “Algún bloque contiene datos no hexadecimal” o “Algún bloque
no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 02
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para reemplazar la tarjeta existente.
Flujo alternativo 1. Pulsar sobre el botón “Reemplazar”.

Escenario alternativo 03
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para renombrar la nueva tarjeta.
1. Pulsar sobre el botón “Renombrar”.
Flujo alternativo 2. Escribir el nuevo nombre de la tarjeta.
3. Pulsar el botón “Aceptar”.
Tabla 67: Caso de Uso CU-03 – Editar tarjeta RFID

Francisco Fernández Díaz 52 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-04
Nombre Crear tarjeta RFID
Actores Usuario
Crear y almacenar el contenido de una tarjeta RFID en la base de datos del
Objetivo
dispositivo.
Precondiciones
 El dispositivo tendrá almacenada la nueva tarjeta RFID en su base de
datos.
Postcondiciones  El dispositivo mostrará por pantalla el mensaje “Tag almacenado”.
 El dispositivo mostrará por pantalla la lista actualizada de tarjetas RFID
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Ver escaneados”.
2. Seleccionar la opción “Crear tag” en el menú desplegable.
3. Seleccionar el tamaño de la tarjeta a crear (Mifare Ultralight, Mifare
Classic Mini, Mifare Classic 1K o Mifare Classic 4K).
Escenario básico
4. Escribir el nombre que identificará a esta tarjeta.
5. Seleccionar el tipo de tarjeta.
6. Modificar el contenido de la tarjeta que se considere estimado.
7. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 01
La información a guardar es incompleta o el formato del contenido de la
tarjeta no es válido. La aplicación muestra el mensaje “Debe seleccionar el tipo
Descripción de tarjeta”, “Debe escribir el nombre de la tarjeta”, “Algún sector no tiene 4 o
16 bloques”, “Algún bloque contiene datos no hexadecimal” o “Algún bloque
no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar en el icono “Guardar” ubicado en la barra de menú.

Escenario alternativo 02
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para reemplazar la tarjeta existente.
Flujo alternativo 1. Pulsar sobre el botón “Reemplazar”.

Escenario alternativo 03
Ya existe una tarjeta RFID con el mismo nombre. La aplicación muestra un
Descripción
diálogo para renombrar la nueva tarjeta.
1. Pulsar sobre el botón “Renombrar”.
Flujo alternativo 2. Escribir el nuevo nombre de la tarjeta.
3. Pulsar el botón “Aceptar”.
Tabla 68: Caso de Uso CU-04 – Crear tarjeta RFID

Francisco Fernández Díaz 53 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-05
Nombre Eliminar tarjeta RFID
Actores Usuario
Objetivo Eliminar una tarjeta RFID de la base de datos del dispositivo.
 Tener almacenada en el dispositivo aquella tarjeta RFID que va a ser
Precondiciones
eliminada.
 La tarjeta RFID no estará almacenada en el dispositivo.
Postcondiciones  El dispositivo mostrará por pantalla la lista actualizada de tarjetas RFID
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Ver escaneados”.
Escenario básico 2. Mantener pulsada la tarjeta RFID de la lista a eliminar.
3. Pulsar en el botón “Aceptar”.
Tabla 69: Caso de Uso CU-05 – Eliminar tarjeta RFID

Identificador CU-06
Nombre Importar tarjetas RFID
Actores Usuario
Objetivo Importar tarjetas RFID ubicadas en ficheros dentro del dispositivo.
 Poseer tarjetas RFID almacenadas en ficheros con extensión .dmp dentro
Precondiciones
del dispositivo.
 El dispositivo tendrá almacenadas las nuevas tarjetas RFID en su base de
datos.
Postcondiciones  El dispositivo mostrará por pantalla el mensaje “Tags almacenados”.
 El dispositivo mostrará por pantalla la lista actualizada de tarjetas RFID
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Ver escaneados”.
2. Seleccionar la opción “Importar tags” en el menú desplegable.
3. Escribir el directorio donde se encuentran las tarjetas RFID a importar.
Escenario básico
4. Activar/Desactivar “Importar claves de tarjeta” para almacenar las claves
de las tarjetas RFID a importar.
5. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
No se ha indicado ningún directorio del que importar tarjetas RFID. La
Descripción
aplicación muestra el mensaje “Ubicación del fichero de tags vacío”.
1. Escribir el directorio donde se encuentran las tarjetas RFID a importar.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 02
El directorio indicado no existe. La aplicación muestra el mensaje “Archivo no
Descripción
encontrado”.
1. Escribir el directorio correcto donde se encuentran las tarjetas RFID a
Flujo alternativo importar.
2. Pulsar sobre el botón “Aceptar”.
Tabla 70: Caso de Uso CU-06 – Importar tarjetas RFID

Francisco Fernández Díaz 54 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-07
Nombre Ver tarjeta en formato ASCII
Actores Usuario
Objetivo Ver el contenido de una tarjeta RFID en formato ASCII.
Precondiciones  Haber leído o tener almacenada una tarjeta RFID en el dispositivo.
 El dispositivo mostrará por pantalla el contenido de la tarjeta RFID con
Postcondiciones
formato ASCII.
1. El usuario lee [Caso de Uso CU-01 – Leer tarjeta RFID] o edita [Caso de
Escenario básico Uso CU-03 – Editar tarjeta RFID] una tarjeta RFID.
2. Seleccionar la opción “Ver como ASCII” en el menú desplegable.

Escenario alternativo 01
El formato del contenido de la tarjeta no es válido. La aplicación muestra el
Descripción mensaje “Algún sector no tiene 4 o 16 bloques”, “Algún bloque contiene datos
no hexadecimal” o “Algún bloque no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar sobre la opción “Ver como ASCII” en el menú desplegable.
Tabla 71: Caso de Uso CU-07 – Ver tarjeta en formato ASCII

Identificador CU-08
Nombre Ver tarjeta en formato hexadecimal
Actores Usuario
Objetivo Ver el contenido de una tarjeta RFID en formato hexadecimal.
 Haber leído o tener almacenada una tarjeta RFID en el dispositivo.
Precondiciones
 Estar visualizando el contenido de la tarjeta en formato ASCII.
 El dispositivo mostrará por pantalla el contenido de la tarjeta RFID con
Postcondiciones
formato hexadecimal.
1. El usuario ve la tarjeta en formato ASCII [Caso de Uso CU-07 – Ver
Escenario básico tarjeta en formato ASCII].
2. Seleccionar la opción “Ver como HEX” en el menú desplegable.
Tabla 72: Caso de Uso CU-08 – Ver tarjeta en formato hexadecimal

Identificador CU-09
Nombre Ver como tarjeta de transporte
Actores Usuario
Objetivo Ver el contenido de una tarjeta RFID como tarjeta de transporte.
Precondiciones  Haber leído o tener almacenada una tarjeta RFID en el dispositivo.
 El dispositivo mostrará por pantalla el contenido de la tarjeta RFID como
Postcondiciones
tarjeta de transporte.
1. El usuario lee [Caso de Uso CU-01 – Leer tarjeta RFID] o edita [Caso de
Uso CU-03 – Editar tarjeta RFID] una tarjeta RFID.
Escenario básico
2. Seleccionar la opción “Ver como tarjeta de transporte” en el menú
desplegable.

Escenario alternativo 01
El formato del contenido de la tarjeta no es válido. La aplicación muestra el
Descripción mensaje “Algún sector no tiene 4 o 16 bloques”, “Algún bloque contiene datos
no hexadecimal” o “Algún bloque no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo 2. Pulsar sobre la opción “Ver como tarjeta de transporte” en el menú
desplegable.
Tabla 73: Caso de Uso CU-09 – Ver como tarjeta de transporte

Francisco Fernández Díaz 55 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-10
Nombre Ver condiciones de acceso
Actores Usuario
Objetivo Ver las condiciones de acceso de una tarjeta RFID.
Precondiciones  Haber leído o tener almacenada una tarjeta RFID en el dispositivo.
 El dispositivo mostrara por pantalla las condiciones de acceso de la
Postcondiciones
tarjeta RFID.
1. El usuario lee [Caso de Uso CU-01 – Leer tarjeta RFID] o edita [Caso de
Uso CU-03 – Editar tarjeta RFID] una tarjeta RFID.
Escenario básico
2. Seleccionar la opción “Ver condiciones de acceso” en el menú
desplegable.

Escenario alternativo 01
El formato del contenido de la tarjeta no es válido. La aplicación muestra el
Descripción mensaje “Algún sector no tiene 4 o 16 bloques”, “Algún bloque contiene datos
no hexadecimal” o “Algún bloque no tiene 16 bytes (32 caracteres)”.
1. Corregir información errónea.
Flujo alternativo 2. Pulsar sobre la opción “Ver condiciones de acceso” en el menú
desplegable.
Tabla 74: Caso de Uso CU-10 – Ver condiciones de acceso

Identificador CU-11
Nombre Ver estadísticas
Actores Usuario
Ver las estadísticas de uso de las claves empleadas para la lectura y escritura de
Objetivo
tarjetas RFID.
Precondiciones  El dispositivo debe tener acceso a internet.
 El dispositivo mostrara por pantalla las estadísticas de las claves
Postcondiciones utilizadas o el mensaje “No existen claves” si no hay claves almacenadas
en el servidor remoto.
Escenario básico 1. Pulsar sobre el botón “Estadísticas”.
Tabla 75: Caso de Uso CU-11 – Ver estadísticas

Francisco Fernández Díaz 56 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-12
Nombre Crear clave
Actores Usuario
Objetivo Almacenar una o varias claves nuevas en la base de datos del dispositivo.
Precondiciones  Las claves a crear no estén almacenadas en el dispositivo.
 El dispositivo tendrá almacenadas las nuevas claves en su base de datos.
 El dispositivo mostrará por pantalla el mensaje “Claves almacenadas”.
Postcondiciones
 El dispositivo mostrará por pantalla la lista actualizada de claves
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Pulsar en el icono “Nuevas claves” ubicado en la barra de menú.
Escenario básico
3. Escribir las claves separadas por un salto de línea.
4. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
La clave escrita posee una longitud inválida. La aplicación muestra el mensaje
Descripción
“La clave debe tener 12 caracteres alfanuméricos”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.
Tabla 76: Caso de Uso CU-12 – Crear clave

Identificador CU-13
Nombre Editar clave
Actores Usuario
Objetivo Editar una clave de la base de datos del dispositivo.
 La clave a modificar ya debe estar almacenada en el dispositivo.
Precondiciones
 La clave a modificar debe haber sido creada previamente por el usuario.
 El dispositivo tendrá almacenada la nueva clave en su base de datos.
 El dispositivo mostrará por pantalla el mensaje “Clave modificada”.
Postcondiciones
 El dispositivo mostrará por pantalla la lista actualizada de claves
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Pulsar sobre la clave a modificar.
Escenario básico
3. Editar la clave.
4. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
La clave escrita posee una longitud inválida. La aplicación muestra el mensaje
Descripción
“La clave debe tener 12 caracteres alfanuméricos”.
1. Corregir información errónea.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.
Tabla 77: Caso de Uso CU-13 – Editar clave

Francisco Fernández Díaz 57 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-14
Nombre Eliminar clave
Actores Usuario
Objetivo Eliminar una clave de la base de datos del dispositivo.
 La clave a eliminar ya debe estar almacenada en el dispositivo.
Precondiciones
 La clave a eliminar debe haber sido creada por el usuario.
 La clave no estará almacenada en la base de datos del dispositivo.
Postcondiciones  El dispositivo mostrará por pantalla la lista actualizada de claves
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Claves”.
Escenario básico 2. Mantener pulsada la clave a eliminar.
3. Pulsar sobre el botón “Aceptar”.
Tabla 78: Caso de Uso CU-14 – Eliminar clave

Identificador CU-15
Nombre Crear grupo de claves
Actores Usuario
Objetivo Almacenar un grupo de claves en la base de datos del dispositivo.
 Las claves que formarán el grupo de claves deben estar previamente
Precondiciones
almacenadas en el dispositivo.
 El dispositivo tendrá almacenado el nuevo grupo de claves en su base de
datos.
 El dispositivo mostrará por pantalla el mensaje “Grupo de claves
Postcondiciones
almacenado”.
 El dispositivo mostrará por pantalla la lista actualizada de los grupos de
claves almacenados en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Seleccionar la opción “Crear grupo de claves” en el menú desplegable.
Escenario básico 3. Escribir el nombre que identificará al grupo de claves.
4. Seleccionar claves.
5. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
El nombre del grupo de claves está vacío. La aplicación muestra el mensaje “El
Descripción
nombre del grupo debe tener contenido”.
1. Escribir el nombre que identificará al grupo de claves.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 02
No se ha seleccionado ninguna clave de la lista. La aplicación muestra el
Descripción
mensaje “No hay claves seleccionadas”.
1. Seleccionar claves.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.
Tabla 79: Caso de Uso CU-15 – Crear grupo de claves

Francisco Fernández Díaz 58 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-16
Nombre Editar grupo de claves
Actores Usuario
Objetivo Modificar un grupo de claves de la base de datos del dispositivo.
 Las claves que formarán el grupo de claves deben estar previamente
almacenadas en el dispositivo.
Precondiciones
 El grupo de claves a modificar debe estar previamente almacenado en el
dispositivo.
 El dispositivo tendrá almacenado en su base de datos el grupo de claves
modificado.
 El dispositivo mostrará por pantalla el mensaje “Grupo de claves
Postcondiciones
modificado”.
 El dispositivo mostrará por pantalla la lista actualizada de los grupos de
claves almacenados en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Arrastrar la pantalla hacia la derecha para cambiar a la sección
“GRUPOS”.
Escenario básico 3. Seleccionar de la lista el grupo de claves a modificar.
4. Pulsar en el icono “Editar” ubicado en la barra de menú.
5. Modificar los datos que se deseen.
6. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
El nombre del grupo de claves está vacío. La aplicación muestra el mensaje “El
Descripción
nombre del grupo debe tener contenido”.
1. Escribir el nombre que identificará al grupo de claves.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 02
No se ha seleccionado ninguna clave de la lista. La aplicación muestra el
Descripción
mensaje “No hay claves seleccionadas”.
1. Seleccionar claves.
Flujo alternativo
2. Pulsar sobre el botón “Aceptar”.
Tabla 80: Caso de Uso CU-16 – Editar grupo de claves

Identificador CU-17
Nombre Eliminar grupo de claves
Actores Usuario
Objetivo Eliminar un grupo de claves de la base de datos del dispositivo.
Precondiciones  El grupo de claves debe estar almacenado en el dispositivo.
 El grupo de claves no estará almacenada en la base de datos del
dispositivo.
Postcondiciones
 El dispositivo mostrará por pantalla la lista actualizada de los grupos de
claves almacenados en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Arrastrar la pantalla hacia la derecha para cambiar a la sección
Escenario básico “GRUPOS”.
3. Mantener pulsado en la lista el grupo de claves a eliminar.
4. Pulsar sobre el botón “Aceptar”.
Tabla 81: Caso de Uso CU-17 – Eliminar grupo de claves

Francisco Fernández Díaz 59 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador CU-18
Nombre Importar claves
Actores Usuario
Objetivo Importar claves ubicadas en ficheros dentro del dispositivo.
 Poseer tarjetas RFID almacenadas en ficheros con extensión .dmp dentro
Precondiciones
del dispositivo.
 El dispositivo tendrá almacenadas las nuevas claves en su base de datos.
 El dispositivo mostrará por pantalla el mensaje “Claves almacenadas”.
Postcondiciones
 El dispositivo mostrará por pantalla la lista actualizada de claves
almacenadas en el dispositivo.
1. Pulsar sobre el botón “Claves”.
2. Seleccionar la opción “Importar claves” en el menú desplegable.
Escenario básico 3. Escribir el directorio donde se encuentran los ficheros de claves a
importar.
4. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 01
No se ha indicado ningún directorio del que importar claves. La aplicación
Descripción
muestra el mensaje “Ubicación del fichero de claves vacío”.
1. Seleccionar la opción “Importar claves” en el menú desplegable.
2. Escribir el directorio donde se encuentran los ficheros de claves a
Flujo alternativo
importar.
3. Pulsar sobre el botón “Aceptar”.

Escenario alternativo 02
El directorio indicado no existe. La aplicación muestra el mensaje “Archivo no
Descripción
encontrado”.
1. Seleccionar la opción “Importar claves” en el menú desplegable.
2. Escribir el directorio correcto donde se encuentran los ficheros de claves
Flujo alternativo
a importar.
3. Pulsar sobre el botón “Aceptar”.
Tabla 82: Caso de Uso CU-18 – Importar claves

1.2. Requisitos software


En este apartado se detallan los requisitos software funcionales y no funcionales. Cada
uno de los requisitos viene acompañado de ciertos datos compactados en una tabla con el
siguiente formato:

Identificador RSY-XX Tipo Tipo de requisito


Nombre Nombre de requisito
Descripción Descripción de requisito
Fuente Origen de requisito
Necesidad Necesidad de requisito Prioridad Prioridad de requisito
Estabilidad Estabilidad de requisito Verificabilidad Verificabilidad de requisito
Tabla 83: Formato tabla de requisito software

Cuyos campos significan:

 Identificador: identificador de requisito con la estructura RSY-XX, siendo:

Francisco Fernández Díaz 60 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

o Y:
 F: requisito software funcional.
 NF-OP: requisito software no funcional de operación.
 NF-INT: requisito software no funcional de operación.
 NF-REC: requisito software no funcional de recursos.
 NF-REN: requisito software no funcional de rendimiento.
o XX: número que identifica al requisito.
 Tipo: define el tipo de requerimiento. Solamente puede tomar los valores:
o Funcional: describen las funcionalidades del sistema, es decir, lo que éste
debe hacer.
o Operación: identifican a los requisitos no funcionales de operación.
o Interfaz: identifican a los requisitos no funcionales de interfaz.
o Recurso: identifican a los requisitos no funcionales de recursos.
o Rendimiento: identifican a los requisitos no funcionales de rendimiento.
 Nombre: identificativo del requisito, es un pequeño resumen de lo que representa
el requisito.
 Descripción: corresponde a la descripción del requisito.
 Fuente: indica el origen de donde proviene el requisito. En el caso de los
Requisitos Software dicha fuente hará referencia a uno o varios Requisitos de
Usuario definidos en el apartado 1.1 Requisitos de usuario.
 Necesidad: corresponde a lo imprescindible que resulta para el proyecto que
dicho requisito sea implementado en el sistema. Los posibles valores son:
o Esencial: es imprescindible que se implemente dicho requisito.
o Deseable: se debe implementar el requisito pero no es algo esencial.
o Opcional: se puede o no implementar el requisito ya que no es esencial
para el correcto funcionamiento del sistema.
 Prioridad: indica la importancia del requisito en el proceso de diseño e
implementación. Los posibles valores son:
o Alta: es la prioridad máxima. El requisito debe ser diseñado y añadido al
sistema en primer lugar.
o Media: el requisito debe ser diseñado y añadido al sistema tras haber
acabado con los requisitos de prioridad alta.

Francisco Fernández Díaz 61 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

o Baja: el requisito no es una gran prioridad para el proyecto, por lo que su


realización se pospondrá para cuando se hayan realizado el resto de
requisitos de mayor prioridad.
 Estabilidad: variabilidad del requisito ante posibles modificaciones en el
transcurso del proyecto. Los posibles valores son:
o Estable: el requisito tiene escasas posibilidades de que se modifique.
o No estable: el requisito tendrá una alta posibilidad de que se modifique o
incluso que se pueda eliminar del proyecto.
 Verificabilidad: nivel de complejidad para comprobar que el requisito se ha
incluido en la implementación del sistema. Los posibles valores son:
o Alta: la comprobación del requisito es complicada.
o Media: el requisito se puede comprobar en un tiempo razonable y de
manera fácil.
o Baja: el requisito se comprueba de una manera rápida y sencilla.

1.2.1. Requisitos funcionales


Los requisitos software funcionales especifican los servicios y funcionalidades de la
aplicación. A continuación se muestran los relativos a este proyecto:

Identificador RSF-01 Tipo Funcional


Nombre Lectura tarjetas Mifare Ultralight
La aplicación permitirá la lectura de tarjetas RFID de tipo Mifare Ultralight. Para
almacenar la tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-01, RUR-01, RUR-07, RUR-11, RUR-17, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 84: Requisito RSF-01 – Lectura tarjetas Mifare Ultralight

Identificador RSF-02 Tipo Funcional


Nombre Lectura tarjetas Mifare Classic Mini
La aplicación permitirá la lectura de tarjetas RFID de tipo Mifare Classic Mini.
Para almacenar la tarjeta el usuario deberá haber rellenado la siguiente
información:
Descripción
 Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-01, RUR-01, RUR-02, RUR-07, RUR-12, RUR-17, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 85: Requisito RSF-02 – Lectura tarjetas Mifare Classic Mini

Francisco Fernández Díaz 62 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-03 Tipo Funcional


Nombre Lectura tarjetas Mifare Classic 1K
La aplicación permitirá la lectura de tarjetas RFID de tipo Mifare Classic 1K. Para
almacenar la tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-01, RUR-01, RUR-02, RUR-07, RUR-13, RUR-17, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 86: Requisito RSF-03 – Lectura tarjetas Mifare Classic 1K

Identificador RSF-04 Tipo Funcional


Nombre Lectura tarjetas Mifare Classic 4K
La aplicación permitirá la lectura de tarjetas RFID de tipo Mifare Classic 4K. Para
almacenar la tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-01, RUR-01, RUR-02, RUR-07, RUR-14, RUR-17, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 87: Requisito RSF-04 – Lectura tarjetas Mifare Classic 4K

Identificador RSF-05 Tipo Funcional


Nombre Creación de tipos de tarjetas
La aplicación permitirá crear nuevos tipos de tarjetas RFID mientras se está
Descripción
leyendo, creando o modificando una tarjeta RFID.
Fuente RUC-01, RUR-10, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 88: Requisito RSF-05 – Creación de tipos de tarjetas

Identificador RSF-06 Tipo Funcional


Nombre Renombrar tarjeta RFID
La aplicación permitirá renombrar una tarjeta RFID al intentar almacenarla con
Descripción
un nombre ya existente en la base de datos.
Fuente RUC-01, RUC-05
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 89: Requisito RSF-06 – Renombrar tarjeta RFID

Identificador RSF-07 Tipo Funcional


Nombre Reemplazar tarjeta RFID
La aplicación permitirá reemplazar una tarjeta RFID por otra al intentar
Descripción
almacenarla con un nombre ya existente en la base de datos.
Fuente RUC-01, RUC-05
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 90: Requisito RSF-07 – Reemplazar tarjeta RFID

Francisco Fernández Díaz 63 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-08 Tipo Funcional


Nombre Valor por defecto de bloque
El contenido de un bloque es rellenado con ‘-‘ cuando no puede ser leído a pesar
Descripción
de haber autenticado su sector correctamente.
Fuente RUC-01
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 91: Requisito RSF-08 – Valor por defecto de bloque

Identificador RSF-09 Tipo Funcional


Nombre Todas las claves para leer tarjetas RFID
Descripción La aplicación permitirá utilizar todas las claves para leer tarjetas RFID.
Fuente RUC-02, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 92: Requisito RSF-09 – Todas las claves para leer tarjetas RFID

Identificador RSF-10 Tipo Funcional


Nombre Grupos de claves para leer tarjetas RFID
Descripción La aplicación permitirá seleccionar grupos de claves para leer tarjetas RFID.
Fuente RUC-02, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 93: Requisito RSF-10 – Grupos de claves para leer tarjetas RFID

Identificador RSF-11 Tipo Funcional


Nombre Ninguna clave para leer tarjetas RFID
La aplicación permitirá no utilizar ninguna clave ni grupos de claves para leer
Descripción
tarjetas RFID.
Fuente RUC-02
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 94: Requisito RSF-11 – Ninguna clave para leer tarjetas RFID

Identificador RSF-12 Tipo Funcional


Nombre Escritura tarjetas Mifare Ultralight
Descripción La aplicación permitirá la escritura de tarjetas RFID de tipo Mifare Ultralight.
Fuente RUC-03, RUR-03, RUR-05, RUR-06, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 95: Requisito RSF-12 – Escritura tarjetas Mifare Ultralight

Francisco Fernández Díaz 64 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-13 Tipo Funcional


Nombre Escritura tarjetas Mifare Classic Mini
Descripción La aplicación permitirá la escritura de tarjetas RFID de tipo Mifare Classic Mini.
Fuente RUC-03, RUR-03, RUR-04, RUR-05, RUR-06, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 96: Requisito RSF-13 – Escritura tarjetas Mifare Classic Mini

Identificador RSF-14 Tipo Funcional


Nombre Escritura tarjetas Mifare Classic 1K
Descripción La aplicación permitirá la escritura de tarjetas RFID de tipo Mifare Classic 1K.
Fuente RUC-03, RUR-03, RUR-04, RUR-05, RUR-06, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 97: Requisito RSF-14 – Escritura tarjetas Mifare Classic 1K

Identificador RSF-15 Tipo Funcional


Nombre Escritura tarjetas Mifare Classic 4K
Descripción La aplicación permitirá la escritura de tarjetas RFID de tipo Mifare Classic 4K.
Fuente RUC-03, RUR-03, RUR-04, RUR-05, RUR-06, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 98: Requisito RSF-15 – Escritura tarjetas Mifare Classic 4K

Identificador RSF-16 Tipo Funcional


Nombre Todas las claves para escribir tarjetas RFID
Descripción La aplicación permitirá seleccionar todas las claves para escribir tarjetas RFID.
Fuente RUC-04, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 99: Requisito RSF-16 – Todas las claves para escribir tarjetas RFID

Identificador RSF-17 Tipo Funcional


Nombre Grupos de claves para escribir tarjetas RFID
Descripción La aplicación permitirá seleccionar grupos de claves para escribir tarjetas RFID.
Fuente RUC-04, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 100: Requisito RSF-17 – Grupos de claves para escribir tarjetas RFID

Identificador RSF-18 Tipo Funcional


Nombre Ninguna clave para escribir tarjetas RFID
La aplicación permitirá no seleccionar ninguna clave ni grupos de claves para
Descripción
escribir tarjetas RFID.
Fuente RUC-04
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 101: Requisito RSF-18 – Ninguna clave para escribir tarjetas RFID

Francisco Fernández Díaz 65 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-19 Tipo Funcional


Nombre Claves en backend
Las claves utilizadas para la lectura y escritura de tarjetas RFID son almacenadas
Descripción en el backend junto con el número total de veces que han sido utilizadas en
ambos tipos de operaciones.
Fuente RUR-25, RUR-30, RUR-31, RUR-33
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 102: Requisito RSF-19 – Claves en backend

Identificador RSF-20 Tipo Funcional


Nombre Modificación de tarjetas RFID
La aplicación permitirá modificar tarjetas RFID previamente almacenadas. Para
modificar una tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-05, RUR-07, RUR-11, RUR-12, RUR-13, RUR-14, RUR-17, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 103: Requisito RSF-20 – Modificación de tarjetas RFID

Identificador RSF-21 Tipo Funcional


Nombre Borrado de tarjetas RFID
Descripción La aplicación permitirá borrar tarjetas RFID previamente almacenadas.
Fuente RUC-05, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 104: Requisito RSF-21 – Borrado de tarjetas RFID

Identificador RSF-22 Tipo Funcional


Nombre Creación de tarjetas Mifare Ultralight
La aplicación permitirá crear tarjetas RFID de tipo Mifare Ultralight. Para
modificar una tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-05, RUR-07, RUR-11, RUR-17, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 105: Requisito RSF-22 – Creación de tarjetas Mifare Ultralight

Francisco Fernández Díaz 66 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-23 Tipo Funcional


Nombre Creación de tarjetas Mifare Classic Mini
La aplicación permitirá crear tarjetas RFID de tipo Mifare Classic Mini. Para
modificar una tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-05, RUR-07, RUR-12, RUR-17, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 106: Requisito RSF-23 – Creación de tarjetas Mifare Classic Mini

Identificador RSF-24 Tipo Funcional


Nombre Creación de tarjetas Mifare Classic 1K
La aplicación permitirá crear tarjetas RFID de tipo Mifare Classic 1K. Para
modificar una tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-05, RUR-07, RUR-13, RUR-17, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 107: Requisito RSF-24 – Creación de tarjetas Mifare Classic 1K

Identificador RSF-25 Tipo Funcional


Nombre Creación de tarjetas Mifare Classic 4K
La aplicación permitirá crear tarjetas RFID de tipo Mifare Classic 4K. Para
modificar una tarjeta el usuario deberá haber rellenado la siguiente información:
Descripción  Nombre de tarjeta
 Tipo de tarjeta
 Contenido de tarjeta
Fuente RUC-05, RUR-07, RUR-14, RUR-17, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 108: Requisito RSF-25 – Creación de tarjetas Mifare Classic 4K

Identificador RSF-26 Tipo Funcional


Nombre Valores por defecto en nuevas tarjetas
Descripción Cuando una tarjeta es creada todo su contenido es rellenado con ceros.
Fuente RUC-05, RUR-11, RUR-12, RUR-13, RUR-14
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 109: Requisito RSF-26 – Valores por defecto en nuevas tarjetas

Francisco Fernández Díaz 67 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-27 Tipo Funcional


Nombre Visualización en formato ASCII
La aplicación permitirá ver el contenido de tarjetas RFID previamente leídas o
Descripción
almacenadas en formato ASCII.
Fuente RUC-06
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 110: Requisito RSF-27 – Visualización en formato ASCII

Identificador RSF-28 Tipo Funcional


Nombre Visualización en formato hexadecimal
La aplicación permitirá ver el contenido de tarjetas RFID previamente leídas o
Descripción
almacenadas en formato hexadecimal.
Fuente RUC-06
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 111: Requisito RSF-28 – Visualización en formato hexadecimal

Identificador RSF-29 Tipo Funcional


Nombre Visualización como tarjeta de transporte
La aplicación permitirá ver el contenido de tarjetas RFID previamente leídas o
almacenadas como una tarjeta de transporte. Se mostrarán tres pestañas cada una
con la siguiente información:
 Pestaña “General”:
o UID de la tarjeta.
o Tipo de tarjeta.
o Producto al que pertenece la tarjeta.
o Importe que posee la tarjeta.
 Pestaña “Historial de viaje”:
o Identificador de viaje.
o Fecha del viaje.
o Hora del viaje.
Descripción
o Compañía con la que se realiza el viaje.
o Tipo de transferencia. Puede ser: check-out, check-in o no-data.
o Identificador del vehículo utilizado.
o Identificador de la máquina utilizada.
o Importe empleado para realizar el viaje.
o Estación desde donde se inicial el viaje.
 Pestaña “Subscripciones”:
o Identificador de la subscripción.
o Compañía de la subscripción.
o Fecha inicio de la subscripción.
o Fecha de caducidad de la subscripción.
o Descripción de la subscripción.
Fuente RUC-06
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 112: Requisito RSF-29 – Visualización como tarjeta de transporte

Francisco Fernández Díaz 68 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-30 Tipo Funcional


Nombre Visualización de condiciones de acceso
La aplicación permitirá ver las condiciones de acceso de tarjetas RFID
previamente leídas o almacenadas. Mostrará el tipo de clave necesaria (A o B)
para realizar las operaciones de:
 Lectura
Descripción  Escritura
 Incremento
 Decremento
 Transferencia
 Restauración
Fuente RUC-07
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 113: Requisito RSF-30 – Visualización de condiciones de acceso

Identificador RSF-31 Tipo Funcional


Nombre Importación de una tarjeta RFID
La aplicación permitirá importar una tarjeta RFID desde un fichero ubicado en el
Descripción
dispositivo.
Fuente RUC-08, RUR-07, RUR-17, RUR-24, RUR-31
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 114: Requisito RSF-31 – Importación de una tarjeta RFID

Identificador RSF-32 Tipo Funcional


Nombre Importación de varias tarjetas RFID
La aplicación permitirá importar varias tarjetas RFID desde un directorio ubicado
Descripción
en el dispositivo.
Fuente RUC-08, RUR-07, RUR-17, RUR-24, RUR-31
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 115: Requisito RSF-32 – Importación de varias tarjetas RFID

Identificador RSF-33 Tipo Funcional


Nombre Almacenamiento de claves en tarjetas importadas
La aplicación permitirá almacenar las claves pertenecientes a las tarjetas RFID que
Descripción
se importen.
Fuente RUC-08, RUR-08, RUR-15, RUR-16, RUR-24, RUR-31
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Alta
Tabla 116: Requisito RSF-33 – Almacenamiento de claves en tarjetas importadas

Francisco Fernández Díaz 69 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-34 Tipo Funcional


Nombre Ruta importación de tarjetas RFID
Cada vez que se realiza una importación de tarjetas RFID la ruta del directorio es
Descripción
guardada para su siguiente ejecución.
Fuente RUC-08
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Baja
Tabla 117: Requisito RSF-34 – Ruta importación de tarjetas RFID

Identificador RSF-35 Tipo Funcional


Nombre Estadísticas de uso
La aplicación permitirá obtener unas estadísticas de uso sobre las claves utilizadas
para la lectura y escritura de tarjetas RFID. La información mostrada es:
 Clave.
Descripción
 Número de veces que la clave ha sido utilizada en lecturas.
 Número de veces que la clave ha sido utilizada en escrituras.
 Porcentaje de uso de la clave sobre el total de todas las claves.
Fuente RUC-09, RUR-15, RUR-16, RUR-30, RUR-31, RUR-33
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 118: Requisito RSF-35 – Estadísticas de uso

Identificador RSF-36 Tipo Funcional


Nombre Creación de claves
Descripción La aplicación permitirá crear nuevas claves.
Fuente RUC-10, RUR-08, RUR-15, RUR-16, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 119: Requisito RSF-36 – Creación de claves

Identificador RSF-37 Tipo Funcional


Nombre Creación de varias claves
Descripción Se podrán crear varias claves simultáneamente separándolas por saltos de línea.
Fuente RUC-10, RUR-08, RUR-15, RUR-16, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 120: Requisito RSF-37 – Creación de varias claves

Identificador RSF-38 Tipo Funcional


Nombre Modificación de claves
Descripción La aplicación permitirá modificar claves previamente creadas.
Fuente RUC-10, RUR-08, RUR-15, RUR-16, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 121: Requisito RSF-38 – Modificación de claves

Francisco Fernández Díaz 70 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-39 Tipo Funcional


Nombre Eliminación de claves
Descripción La aplicación permitirá eliminar claves previamente creadas.
Fuente RUC-10, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 122: Requisito RSF-39 – Eliminación de claves

Identificador RSF-40 Tipo Funcional


Nombre Creación de grupo de claves
La aplicación permitirá crear grupos de claves de claves almacenadas
previamente. Para almacenar un grupo de claves el usuario deberá haber
Descripción rellenado la siguiente información:
 Nombre de grupo de claves
 Incluir al menos una clave
Fuente RUC-11, RUR-09, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 123: Requisito RSF-40 – Creación de grupo de claves

Identificador RSF-41 Tipo Funcional


Nombre Modificación de grupo de claves
La aplicación permitirá modificar grupos de claves previamente creados. Para
almacenar un grupo de claves el usuario deberá haber rellenado la siguiente
Descripción información:
 Nombre de grupo de claves
 Incluir al menos una clave
Fuente RUC-11, RUR-09, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 124: Requisito RSF-41 – Modificación de grupo de claves

Identificador RSF-42 Tipo Funcional


Nombre Eliminación de grupo de claves
Descripción La aplicación permitirá eliminar grupos de claves previamente creados.
Fuente RUC-11, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 125: Requisito RSF-42 – Eliminación de grupo de claves

Identificador RSF-43 Tipo Funcional


Nombre Importación de un fichero de claves
La aplicación permitirá importar claves desde un fichero ubicado en el
Descripción
dispositivo.
Fuente RUC-12, RUR-08, RUR-15, RUR-16, RUR-24, RUR-31
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 126: Requisito RSF-43 – Importación de un fichero de claves

Francisco Fernández Díaz 71 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-44 Tipo Funcional


Nombre Importación de varios ficheros de claves
La aplicación permitirá importar varios ficheros de claves desde un directorio
Descripción
ubicado en el dispositivo.
Fuente RUC-12, RUR-08, RUR-15, RUR-16, RUR-24, RUR-31
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Media
Tabla 127: Requisito RSF-44 – Importación de varios ficheros de claves

Identificador RSF-45 Tipo Funcional


Nombre Ruta importación de claves
Cada vez que se realiza una importación de claves la ruta del directorio es
Descripción
guardada para su siguiente ejecución.
Fuente RUC-12
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Baja
Tabla 128: Requisito RSF-45 – Ruta importación de claves

Identificador RSF-46 Tipo Funcional


Nombre Activación tecnología NFC
La aplicación permitirá activar la tecnología NFC al abrir o reanudar la aplicación
Descripción
si el dispositivo posee dicha tecnología y esta se encuentra desactivada.
Fuente RUC-13
Necesidad Opcional Prioridad Baja
Estabilidad Estable Verificabilidad Baja
Tabla 129: Requisito RSF-46 – Activación tecnología NFC

Identificador RSF-47 Tipo Funcional


Nombre Prevenir errores
La aplicación debe prevenir todos los errores posibles durante cualquier tipo
Descripción
operación.
RUC-01, RUC-02, RUC-03, RUC-04, RUC-05, RUC-06, RUC-07, RUC-08, RUC-09,
Fuente
RUC-10, RUC-11, RUC-12, RUC-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 130: Requisito RSF-47 – Prevenir errores

Identificador RSF-48 Tipo Funcional


Nombre Informar de errores
La aplicación debe informar de todos los errores producidos durante cualquier
Descripción
tipo operación.
RUC-01, RUC-02, RUC-03, RUC-04, RUC-05, RUC-06, RUC-07, RUC-08, RUC-09,
Fuente
RUC-10, RUC-11, RUC-12, RUC-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 131: Requisito RSF-48 – Informar de errores

Francisco Fernández Díaz 72 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSF-49 Tipo Funcional


Nombre Responder ante errores
La aplicación debe reaccionar ante los posibles errores que puedan producirse
Descripción
durante la ejecución de cualquier tipo operación.
RUC-01, RUC-02, RUC-03, RUC-04, RUC-05, RUC-06, RUC-07, RUC-08, RUC-09,
Fuente
RUC-10, RUC-11, RUC-12, RUC-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 132: Requisito RSF-49 – Responder ante errores

1.2.2. Requisitos no funcionales


Los requisitos no funcionales se encargan de definir las restricciones que afectan a los
servicios o funciones de la aplicación. A continuación se muestran los relativos a este proyecto.

1.2.2.1. Requisitos software no funcionales de operación


Identificador RSFN-OP-01 Tipo Operación
Nombre Tipos de claves
Existen dos tipos de claves diferentes:
 Claves por defecto: son las claves que posee la aplicación y que no pueden
Descripción ser modificadas ni eliminadas.
 Claves personalizadas: son las claves que el usuario almacena en la base
de datos de la aplicación.
Fuente RUC-10, RUR-20
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 133: Requisito RSNF-OP-01 – Tipos de claves

Identificador RSFN-OP-02 Tipo Operación


Nombre Comprobación al guardar tarjeta
Para guardar una tarjeta el sistema comprueba que el identificador introducido
Descripción para ella no exista ya en la base de datos, si existe ofrece la opción de
sobrescribirla o renombrarla.
Fuente RUC-01, RUC-05, RUC-08, RUR-07, RUR-17
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 134: Requisito RSNF-OP-02 – Comprobación al guardar tarjeta

Identificador RSFN-OP-03 Tipo Operación


Nombre Formato de tarjeta Mifare Ultralight
Para guardar y ver el contenido en formato ASCII de una tarjeta RFID de tipo
Descripción Mifare Ultralight la aplicación comprueba que el formato de esta sea de 16 páginas
de 8 caracteres hexadecimales.
Fuente RUC-01, RUC-05, RUC-06, RUC-08, RUR-11
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 135: Requisito RSNF-OP-03 – Formato de tarjeta Mifare Ultralight

Francisco Fernández Díaz 73 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-04 Tipo Operación


Nombre Formato de tarjeta Mifare Classic Mini
Para guardar, ver el contenido en formato ASCII, ver como tarjeta de transporte y
ver las condiciones de acceso de una tarjeta RFID de tipo Mifare Classic Mini la
Descripción
aplicación comprueba que el formato de esta sea de 5 sectores de 4 bloques, cada
uno compuesto de 32 caracteres hexadecimales.
Fuente RUC-01, RUC-05, RUC-06, RUC-07, RUC-08, RUR-12
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 136: Requisito RSNF-OP-04 – Formato de tarjeta Mifare Classic Mini

Identificador RSFN-OP-05 Tipo Operación


Nombre Formato de tarjeta Mifare Classic 1K
Para guardar, ver el contenido en formato ASCII, ver como tarjeta de transporte y
ver las condiciones de acceso de una tarjeta RFID de tipo Mifare Classic 1K la
Descripción
aplicación comprueba que el formato de esta sea de 16 sectores de 4 bloques, cada
uno compuesto de 32 caracteres hexadecimales.
Fuente RUC-01, RUC-05, RUC-06, RUC-07, RUC-08, RUR-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 137: Requisito RSNF-OP-05 – Formato de tarjeta Mifare Classic 1K

Identificador RSFN-OP-06 Tipo Operación


Nombre Formato de tarjeta Mifare Classic 4K
Para guardar, ver el contenido en formato ASCII, ver como tarjeta de transporte y
ver las condiciones de acceso de una tarjeta RFID de tipo Mifare Classic 4K la
Descripción aplicación comprueba que el formato de esta sea de 40 sectores, los 32 primeros
compuestos de 4 bloques y los 8 últimos de 16 bloques. En ambos casos cada
bloque estará formado por 32 caracteres hexadecimales.
Fuente RUC-01, RUC-05, RUC-06, RUC-07, RUC-08, RUR-14
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 138: Requisito RSNF-OP-06 – Formato de tarjeta Mifare Classic 4K

Identificador RSFN-OP-07 Tipo Operación


Nombre Comprobación de tipo de tarjeta
Para ver el contenido en formato ASCII, ver como tarjeta de transporte y ver las
Descripción condiciones de acceso de una tarjeta RFID la aplicación comprueba que el
contenido de la tarjeta sea de tipo Mifare Classic (Mini, 1K o 4K).
Fuente RUC-06, RUC-07
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 139: Requisito RSNF-OP-07 – Comprobación de tipo de tarjeta

Francisco Fernández Díaz 74 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-08 Tipo Operación


Nombre Comprobación al guardar clave
Para guardar una clave la aplicación comprueba que el identificador introducido
Descripción no exista ya en la base de datos y que la clave tenga una longitud de 12 caracteres
únicamente hexadecimales.
Fuente RUC-10, RUC-12, RUR-08, RUR-15, RUR-16, RUR-18, RUR-19, RUR-23, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 140: Requisito RSNF-OP-08 – Comprobación al guardar clave

Identificador RSFN-OP-09 Tipo Operación


Nombre Comprobación al guardar grupo de claves
Para guardar un grupo de claves la aplicación comprueba que el identificador
Descripción introducido no exista ya en la base de datos y que se haya incluido al menos una
clave en el grupo.
Fuente RUC-11, RUR-09, RUR-19, RUR-23
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 141: Requisito RSNF-OP-09 – Comprobación al guardar grupo de claves

Identificador RSFN-OP-10 Tipo Operación


Nombre Comprobación al guardar tipo de tarjeta
Para guardar un tipo de tarjeta la aplicación antes comprueba que el valor
Descripción
introducido no exista ya en la base de datos.
Fuente RUC-01, RUC-05, RUR-10, RUR-23
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 142: Requisito RSNF-OP-10 – Comprobación al guardar tipo de tarjeta

Identificador RSFN-OP-11 Tipo Operación


Nombre Activación de tecnología NFC
Para activar la tecnología NFC la aplicación comprueba si el dispositivo posee
dicha tecnología y si se encuentra desactivada. Si se cumplen ambas condiciones
Descripción
muestra la pantalla "Conexiones inalámbricas y redes" perteneciente a la sección
"Ajustes" del teléfono.
Fuente RUC-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 143: Requisito RSNF-OP-11 – Activación de tecnología NFC

Identificador RSFN-OP-12 Tipo Operación


Nombre Ignorar claves en lectura o escritura
Cuando se lee o escribe una tarjeta RFID, y esta es de tipo Mifare Ultralight, las
Descripción
claves seleccionadas para la operación serán ignoradas.
RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04, RUR-24,
Fuente
RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 144: Requisito RSNF-OP-12 – Ignorar claves en lectura o escritura

Francisco Fernández Díaz 75 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-13 Tipo Operación


Nombre Escritura en tarjetas Mifare Ultralight
Para escribir en una tarjeta RFID de tipo Mifare Ultralight la aplicación
Descripción comprueba si esta es de solo lectura. Si es así la escritura es cancelada y se
muestra el mensaje correspondiente.
Fuente RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-03, RUR-24, RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 145: Requisito RSNF-OP-13 – Escritura en tarjetas Mifare Ultralight

Identificador RSFN-OP-14 Tipo Operación


Nombre Lectura y escritura de tarjetas Mifare Classic
Para leer o escribir en una tarjeta RFID de tipo Mifare Classic (Mini, 1K y 4K) la
Descripción aplicación comprueba si se ha seleccionado alguna clave previamente. Si no se así
la operación es cancelada y se muestra el mensaje correspondiente.
RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04, RUR-24,
Fuente
RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 146: Requisito RSNF-OP-14 – Lectura y escritura de tarjetas Mifare Classic

Identificador RSFN-OP-15 Tipo Operación


Nombre Autenticación en tarjetas Mifare Classic
Para leer o escribir en una tarjeta RFID de tipo Mifare Classic (Mini, 1K y 4K) la
aplicación comprueba que cada uno de sus sectores puede ser autenticado por
Descripción
una clave de las seleccionadas anteriormente. Si no es así la operación es
cancelada y se muestra el mensaje correspondiente.
RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04, RUR-24,
Fuente
RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 147: Requisito RSNF-OP-15 – Autenticación en tarjetas Mifare Classic

Identificador RSFN-OP-16 Tipo Operación


Nombre Escritura en tarjetas Mifare Classic
Para escribir en una tarjeta RFID de tipo Mifare Classic (Mini, 1K y 4K) la
aplicación comprueba si la tarjeta destino posee la capacidad suficiente para el
Descripción
contenido a almacenar, si no es así la operación es cancelada y se muestra el
mensaje correspondiente.
RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04, RUR-24,
Fuente
RUR-31, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 148: Requisito RSNF-OP-16 – Escritura en tarjetas Mifare Classic

Francisco Fernández Díaz 76 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-17 Tipo Operación


Nombre Conexión con tarjeta RFID
Para realizar cualquier operación sobre una tarjeta RFID la aplicación debe
Descripción conectarse previamente a ella. Si se produce algún error la operación es cancelada
y se muestra el mensaje correspondiente.
Fuente RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 149: Requisito RSNF-OP-17 – Conexión con tarjeta RFID

Identificador RSFN-OP-18 Tipo Operación


Nombre Comprobar tipo de tarjeta en operaciones
Para realizar cualquier operación sobre una tarjeta RFID la aplicación comprueba
Descripción que esta sea de tipo Mifare Ultralight o Mifare Classic (Mini, 1K o 4K). Si no es la
operación es cancelada y muestra el mensaje correspondiente.
Fuente RUC-01, RUC-02, RUC-03, RUC-04, RUR-01, RUR-02, RUR-03, RUR-04
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 150: Requisito RSNF-OP-18 – Comprobar tipo de tarjeta en operaciones

Identificador RSFN-OP-19 Tipo Operación


Nombre Claves almacenadas para lectura y escritura
Las claves utilizadas para la lectura y escritura de una tarjeta RFID de tipo Mifare
Descripción
Classic deben haber sido almacenadas previamente.
Fuente RUC-10, RUR-08, RUR-15, RUR-16, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 151: Requisito RSNF-OP-19 – Claves almacenadas para lectura y escritura

Identificador RSFN-OP-20 Tipo Operación


Nombre Claves almacenadas para grupos de claves
Las claves utilizadas para crear grupos de claves deben haber sido almacenadas
Descripción
previamente.
Fuente RUC-10, RUR-08, RUR-15, RUR-16, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 152: Requisito RSNF-OP-20 – Claves almacenadas para grupos de claves

Identificador RSFN-OP-21 Tipo Operación


Nombre Grupos de claves almacenados para lectura y escritura
Los grupos de claves utilizados para la lectura y escritura de una tarjeta RFID de
Descripción
tipo Mifare Classic deben haber sido almacenados previamente.
Fuente RUC-11, RUR-09, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 153: Requisito RSNF-OP-21 – Grupos de claves almacenados para lectura y escritura

Francisco Fernández Díaz 77 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-22 Tipo Operación


Nombre Nombre de ficheros de claves
Descripción Los ficheros de claves a importar deben tener la extensión .txt.
Fuente RUC-12, RUR-31
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 154: Requisito RSNF-OP-22 – Nombre de ficheros de claves

Identificador RSFN-OP-23 Tipo Operación


Nombre Nombre de ficheros de tarjetas
Los ficheros de tarjetas a importar deben tener la forma “nombre_tipo.dmp”,
donde:
 Nombre: hace referencia al nombre con el que se va a guardar la tarjeta
en la base de datos.
 Tipo: hace referencia al tipo de tarjeta que se va a importar. Puede ser:
Descripción
o mfu: tarjeta de tipo Mifare Ultralight.
o mfcMini: tarjeta de tipo Mifare Classic Mini.
o mfc1k: tarjeta de tipo Mifare Classic 1K.
o mfc4k: tarjeta de tipo Mifare Classic 4K.
 Dmp: extensión del archivo.
Fuente RUC-08, RUR-31
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 155: Requisito RSNF-OP-23 – Nombre de ficheros de tarjetas

Identificador RSFN-OP-24 Tipo Operación


Nombre Formato de ficheros de claves
El contenido de los ficheros de claves a importar deben cumplir las siguientes
condiciones:
Descripción
 Debe haber una única clave en cada línea.
 Cada clave debe estar compuesta de 12 caracteres hexadecimales.
Fuente RUC-12, RUR-15, RUR-16, RUR-31
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 156: Requisito RSNF-OP-24 – Formato de ficheros de claves

Identificador RSFN-OP-25 Tipo Operación


Nombre Formato de ficheros de tarjetas
Los ficheros de tarjetas RFID a importar deben tener todo su contenido en
formato binario con su contenido ordenado de la siguiente manera:
 Tarjetas Mifare Ultralight: de la página número 1 a la 16.
Descripción
 Tarjetas Mifare Classic Mini: del bloque número 1 al 20.
 Tarjetas Mifare Classic 1K: del bloque número 1 al 64.
 Tarjetas Mifare Classic 4K: del bloque número 1 al 256.
Fuente RUC-08, RUR-31
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 157: Requisito RSNF-OP-25 – Formato de ficheros de tarjetas

Francisco Fernández Díaz 78 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-26 Tipo Operación


Nombre Cálculo de estadísticas de uso
Para crear las estadísticas de uso el backend almacena cada clave junto con el
número de veces que ha sido utilizada para lecturas y escrituras. Con todo esto se
calcula el porcentaje de uso que posee cada clave con respecto al total de todas las
Descripción
claves y es mostrado en una tabla ordenada descendentemente según el valor de
dicho porcentaje. Si se produce algun error durante el proceso el mensaje
correspondiente es mostrado.
Fuente RUC-09, RUR-25, RUR-30, RUR-31, RUR-33
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 158: Requisito RSNF-OP-26 – Cálculo de estadísticas de uso

Identificador RSFN-OP-27 Tipo Operación


Nombre Comprobación backend
Para guardar una clave en el backend antes se comprueba si esta ya existe, si es así
se obtiene, se actualiza la información (incrementa el contador correspondiente si
la operación ha sido de lectura o escritura) y se vuelve a enviar al backend. Si no
Descripción
se crea una clave nueva y se envía al backend.
Una clave es almacenada en el backend cada vez que se realiza una lectura o
escritura.
Fuente RUC-09, RUR-25, RUR-30, RUR-31, RUR-33
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 159: Requisito RSNF-OP-27 – Comprobación backend

Identificador RSFN-OP-28 Tipo Operación


Nombre Búsqueda de tarjetas RFID
Para ver, modificar o eliminar una tarjeta RFID almacenada la aplicación busca su
Descripción identificador en la base de datos, si existe devuelve su contenido o la elimina,
respectivamente.
Fuente RUC-05, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 160: Requisito RSNF-OP-28 – Búsqueda de tarjetas RFID

Identificador RSFN-OP-29 Tipo Operación


Nombre Búsqueda de claves
Para ver, modificar o eliminar una clave almacenada la aplicación busca su
Descripción identificador en la base de datos, si existe devuelve su contenido o la elimina,
respectivamente.
Fuente RUC-10, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 161: Requisito RSNF-OP-29 – Búsqueda de claves

Francisco Fernández Díaz 79 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-OP-30 Tipo Operación


Nombre Búsqueda de grupos de claves
Para ver, modificar o eliminar un grupo de claves almacenado la aplicación busca
Descripción su identificador en la base de datos, si existe devuelve su contenido o lo elimina,
respectivamente.
Fuente RUC-11, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 162: Requisito RSNF-OP-30 – Búsqueda de grupos de claves

Identificador RSFN-OP-31 Tipo Operación


Nombre Listado de tarjetas
Para visualizar todas las tarjetas la aplicación obtiene todos los tipos de tarjetas
almacenados, busca las tarjetas pertenecientes a cada uno de esos tipos y se
Descripción agrupan las tarjetas de cada tipo en pestañas diferentes en la interfaz. Si no
existen tarjetas de un determinado tipo muestra su mensaje de error
correspondiente.
Fuente RUC-05, RUR-17, RUR-21, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 163: Requisito RSNF-OP-31 – Listado de tarjetas

Identificador RSFN-OP-32 Tipo Operación


Nombre Listado de claves
Para visualizar todas las claves la aplicación busca las claves por defecto y después
Descripción
las claves personalizadas.
Fuente RUC-10, RUR-24
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 164: Requisito RSNF-OP-32 – Listado de claves

Identificador RSFN-OP-33 Tipo Operación


Nombre Notificación de errores
Cuando el usuario comete un error la aplicación se lo notifica por medio de un
Descripción
mensaje emergente y le informa del error cometido.
Fuente RUR-35, RUR-37
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 165: Requisito RSNF-OP-33 – Notificación de errores

Francisco Fernández Díaz 80 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

1.2.2.2. Requisitos software no funcionales de interfaz


Identificador RSFN-INT-01 Tipo Interfaz
Nombre Pantalla principal
Existe una pantalla principal con:
 El icono principal de la aplicación en la barra de menú.
 Cinco botones con su imagen y texto correspondiente para realizar las
siguientes acciones:
Descripción o Leer tarjetas RFID.
o Escribir tarjetas RFID.
o Gestión de tarjetas RFID almacenadas.
o Gestión de claves y grupos de claves.
o Ver las estadísticas de uso de las claves.
RUC-01, RUC-02, RUC-03, RUC-04, RUC-05, RUC-06, RUC-07, RUC-08, RUC-09,
Fuente
RUC-10, RUC-11, RUC-12, RUC-13
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 166: Requisito RSNF-INT-01 – Pantalla principal

Identificador RSFN-INT-02 Tipo Interfaz


Nombre Pantalla de selección de claves
Existe una pantalla para seleccionar claves al realizar lecturas o escrituras de
tarjetas RFID. Está compuesta por:
 El icono perteneciente a esta pantalla en la barra de menú.
 Una lista con las tres opciones de claves disponibles:
o Sin claves: no utilizar ninguna clave para la operación.
Descripción o Todas las claves: todas las claves almacenadas son utilizadas para la
operación.
o Grupos de claves: contiene un listado con los grupos de claves
almacenados en el dispositivo. Se utilizan todas las claves de cada
grupo para realizar la operación.
 Botón que permite comenzar la lectura o escritura.
Fuente RUC-02, RUC-04
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 167: Requisito RSNF-INT-02 – Pantalla de selección de claves

Identificador RSFN-INT-03 Tipo Interfaz


Nombre Pantalla de espera
Existe una pantalla para esperar la detección de una tarjeta RFID cuando se
realiza una lectura o escritura. Está compuesta por:
Descripción  El icono perteneciente a esta pantalla en la barra de menú.
 Imagen de fondo indicando el método para detectar la tarjeta RFID con el
dispositivo.
Fuente RUC-01, RUC-03
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 168: Requisito RSNF-INT-03 – Pantalla de espera

Francisco Fernández Díaz 81 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-04 Tipo Interfaz


Nombre Pantalla de lectura/modificación/ver como hexadecimal/nueva tarjeta
Existe una pantalla para la lectura/modificación/ver como hexadecimal/nueva
tarjeta de una tarjeta RFID con:
 El icono perteneciente a esta pantalla en la barra de menú.
 Campo de texto para escribir el nombre de la tarjeta.
 Desplegable para seleccionar el tipo de tarjeta.
 Lista editable con el contenido de la tarjeta en formato hexadecimal. Esta
lista está compuesta por los n elementos de la tarjeta (sectores y páginas
Descripción para Mifare Classic y Mifare Ultralight, respectivamente). Todo el
contenido es mostrado en mayúsculas.
 Icono para guardar tarjeta en el dispositivo.
 Las siguientes opciones en el menú desplegable:
o Ver como tarjeta de transporte: ver el contenido de la tarjeta como
una tarjeta de transporte.
o Ver como ASCII: ver contenido de la tarjeta en formato ASCII.
o Ver condiciones de acceso: ver condiciones de acceso de la tarjeta.
Fuente RUC-01, RUC-05, RUC-06, RUC-07, RUR-01, RUR-11, RUR-12, RUR-13, RUR-14
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 169: Requisito RSNF-INT-04 – Pantalla de lectura/modificación/ver como hexadecimal/nueva
tarjeta

Identificador RSFN-INT-05 Tipo Interfaz


Nombre Pantalla de ver como ASCII
Existe una pantalla para ver el contenido de la tarjeta RFID en formato ASCII
formada por:
 El icono perteneciente a esta pantalla en la barra de menú.
 Campo de texto para escribir el nombre de la tarjeta.
 Desplegable para seleccionar el tipo de tarjeta.
Descripción
 Lista editable con el contenido de la tarjeta en formato ASCII. Esta lista
está compuesta por los n elementos de la tarjeta (sectores y páginas para
Mifare Classic y Mifare Ultralight, respectivamente).
 Icono para guardar tarjeta en el dispositivo.
 La opción Ver como hexadecimal en el menú desplegable.
Fuente RUC-06
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 170: Requisito RSNF-INT-05 – Pantalla de ver como ASCII

Francisco Fernández Díaz 82 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-06 Tipo Interfaz


Nombre Pantalla de tarjeta de transporte
Existe una pantalla para ver el contenido de una tarjeta Mifare Classic como una
tarjeta de transporte. Esta pantalla está formada por:
 El icono perteneciente a esta pantalla en la barra de menú.
 La pantalla está dividida en las siguientes tres pestañas:
o General: formado por las columnas:
 UID: identificador de la tarjeta.
 Tipo de tarjeta: puede ser Mifare Classic Mini, Mifare Classic 1K
o Mifare Classic 4K.
 Producto: hace referencia al producto al que pertenece esta
tarjeta.
 Importe: importe restante en la tarjeta.
o Historial de viajes: contiene una tabla con los campos:
 ID: identificador del viaje.
 Fecha: fecha del viaje.
Descripción  Hora: hora del viaje.
 Compañía: compañía con la que se realiza el viaje.
 Transferencia: tipo de transferencia. Puede ser: check-out,
check-in o no-data.
 Vehículo: identificador del vehículo en el que se realiza el viaje.
 Máquina: identificador de la máquina en la que se realiza el
viaje.
 Importe: gasto del viaje.
 Estación: estación en la que se utiliza la tarjeta de transporte.
o Subscripciones: contiene una tabla con los campos:
 ID: identificador de la subscripción.
 Compañía: compañía de la subscripción.
 Válido desde: fecha inicio de la subscripción.
 Válido hasta: fecha caducidad de la subscripción.
 Suscripción: descripción de la subscripción.
Fuente RUC-06
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 171: Requisito RSNF-INT-06 – Pantalla de tarjeta de transporte

Francisco Fernández Díaz 83 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-07 Tipo Interfaz


Nombre Pantalla de condiciones de acceso
Existe una pantalla para ver las condiciones de acceso de las tarjetas Mifare
Classic. Esta pantalla está formada por:
 El icono perteneciente a esta pantalla en la barra de menú.
 Se muestra una tabla con la siguiente información:
o Ubicación: hace referencia al sector, y dentro de este al bloque, a las
propias condiciones de acceso y a las claves A y B.
o Lectura: clave necesaria para realizar esta operación.
o Escritura clave necesaria para realizar esta operación.
o Incremento: clave necesaria para realizar esta operación.
Descripción o Decremento/Transferencia/Restaurar: clave necesaria para realizar
estas operaciones.
El valor de la clave puede tener uno de los siguientes valores:
 Clave A: necesario autenticar el sector con la clave A para realizar la
operación.
 Clave B: necesario autenticar el sector con la clave B para realizar la
operación.
 Clave A|B: necesario autenticar el sector con la clave A o B para realizar la
operación.
 Nunca: nunca va a poder realizarse la operación.
Fuente RUC-07
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 172: Requisito RSNF-INT-07 – Pantalla de condiciones de acceso

Identificador RSFN-INT-08 Tipo Interfaz


Nombre Pantalla de tarjetas para escribir
Existe una pantalla para ver las tarjetas RFID almacenadas formada con:
 El icono perteneciente a esta pantalla en la barra de menú.
 Tantas pestañas como tipos de tarjetas se hayan almacenado.
Descripción  En cada pestaña habrá un listado de las tarjetas RFID almacenadas y
ordenadas por el nombre en orden ascendente para ese tipo de tarjeta.
 En los listados solo se mostrará el nombre de la tarjeta con el que se ha
almacenado.
Fuente RUC-03
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 173: Requisito RSNF-INT-08 – Pantalla de tarjetas para escribir

Francisco Fernández Díaz 84 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-09 Tipo Interfaz


Nombre Pantalla de tarjetas RFID
Existe una pantalla para ver las tarjetas RFID almacenadas formada con:
 El icono perteneciente a esta pantalla en la barra de menú.
 Tantas pestañas como tipos de tarjetas se hayan almacenado junto con
una primera pestaña donde se listarán todas las tarjetas.
 En cada pestaña, excepto en la primera, habrá un listado de las tarjetas
RFID almacenadas correspondientes a ese tipo de tarjeta.
 Todos los listados estarán ordenados en orden ascendente por el nombre
Descripción
de la tarjeta.
 En los listados solo se mostrará el nombre de la tarjeta, excepto en la
primera pestaña que aparecerá junto con el tipo de tarjeta.
 Las siguientes opciones en el menú desplegable:
o Crear tag: crea y almacena una nueva tarjeta en el dispositivo.
o Importar tags: guardar en la base de datos tarjetas que actualmente
se encuentran en ficheros dentro del dispositivo.
Fuente RUC-05, RUC-08
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 174: Requisito RSNF-INT-09 – Pantalla de tarjetas RFID

Identificador RSFN-INT-10 Tipo Interfaz


Nombre Pantalla de claves y grupos de claves
Existe una pantalla para ver las tarjetas RFID almacenadas formada con:
 El icono perteneciente a esta pantalla en la barra de menú.
 Dos pestañas: claves y grupos de claves.
o Pestaña claves: contiene un listado con todas las claves almacenadas,
el cual primero está relleno con las claves por defecto y a
continuación con las personalizadas, ambas ordenadas de manera
ascendente. Todas las claves son mostradas en mayúsculas.
o Pestaña de grupos de claves: contiene un listado con todos los
Descripción
grupos de claves almacenados. Se muestra el nombre del grupo junto
con el número de claves que lo compone. La lista está ordenada por
el nombre del grupo de manera ascendente.
 Icono para crear nuevas claves en el menú.
 Las siguientes opciones en el menú desplegable:
o Crear grupo de claves: crea y almacena un nuevo grupo de claves.
o Importar claves: guardar en la base de datos claves que actualmente
se encuentran en ficheros dentro del dispositivo.
Fuente RUC-10, RUC-11, RUC-12
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 175: Requisito RSNF-INT-10 – Pantalla de claves y grupos de claves

Francisco Fernández Díaz 85 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-11 Tipo Interfaz


Nombre Pantalla de estadísticas
Existe una pantalla para ver las estadísticas de uso de las claves. Esta pantalla está
formada por:
 El icono perteneciente a esta pantalla en la barra de menú.
 Contiene una tabla con los campos:
o Clave: hace referencia a la clave del backend. Su contenido se
muestra en mayúsculas.
Descripción
o Nº lecturas: indica el número de veces con las que se ha leído alguna
información con esta clave.
o Nº escrituras: indica el número de veces con las que se ha escrito
alguna información en una tarjeta RFID con esta clave.
o Porcentaje: indica el porcentaje de uso total de esta clave con
respecto al uso de todas las claves almacenadas en el backend.
Fuente RUC-09
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 176: Requisito RSNF-INT-11 – Pantalla de estadísticas

Identificador RSFN-INT-12 Tipo Interfaz


Nombre Diálogo de espera
Existe un diálogo que se mostrará mientras se lee o escribe una tarjeta RFID y
durante la carga de las estadísticas de uso de las claves. Este diálogo está
compuesto por:
Descripción
 Icono de carga.
 Mensaje que indica al usuario que debe esperar hasta que termine la
tarea.
Fuente RUC-01, RUC-03, RUC-09, RUR-01, RUR-03
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 177: Requisito RSNF-INT-12 – Diálogo de espera

Identificador RSFN-INT-13 Tipo Interfaz


Nombre Diálogo de tarjeta repetida
Existe un diálogo que se mostrará cuando se intente almacenar una tarjeta con un
identificador ya existente en la base de datos. Este diálogo está compuesto por:
 Nombre de la tarjeta mostrado como título.
Descripción
 Mensaje indicando que la tarjeta ya existe.
 Un botón para renombrar la tarjeta.
 Un botón para reemplazar la tarjeta.
Fuente RUC-01, RUC-05, RUR-07
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 178: Requisito RSNF-INT-13 – Diálogo de tarjeta repetida

Francisco Fernández Díaz 86 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-14 Tipo Interfaz


Nombre Diálogo para renombrar tarjeta
Existe un diálogo que se mostrará para renombrar una tarjeta y almacenarla en la
base de datos. Este diálogo está compuesto por:
 Título de la acción.
Descripción
 Campo de texto para reescribir el identificador de la tarjeta.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y almacenar la tarjeta.
Fuente RUC-01, RUC-05, RUR-07
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 179: Requisito RSNF-INT-14 – Diálogo para renombrar tarjeta

Identificador RSFN-INT-15 Tipo Interfaz


Nombre Diálogo para eliminar tarjeta
Existe un diálogo que se mostrará para eliminar una tarjeta de la base de datos.
Este diálogo está compuesto por:
 Título relleno con el nombre de la tarjeta a eliminar.
Descripción
 Mensaje preguntando si de verdad se quiere eliminar la tarjeta.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y eliminar la tarjeta.
Fuente RUC-05
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 180: Requisito RSNF-INT-15 – Diálogo para eliminar tarjeta

Identificador RSFN-INT-16 Tipo Interfaz


Nombre Diálogo para crear tarjeta
Existe un diálogo para crear una nueva tarjeta. Este diálogo está compuesto por:
 Título indicando que se debe seleccionar el tipo de tarjeta a crear.
 Un listado con los siguientes cuatro tipos:
o Mifare Ultralight: tarjeta de 16 páginas.
o Mifare Classic Mini: tarjeta de 5 sectores y 4 bloques en cada uno de
Descripción
ellos.
o Mifare Classic 1K: tarjeta de 16 sectores y 4 bloques en cada uno de
ellos.
o Mifare Classic 4K: tarjeta de 40 sectores, los 32 primeros con 4
bloques y los 8 últimos con 16 bloques.
Fuente RUC-05
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 181: Requisito RSNF-INT-16 – Diálogo para crear tarjeta

Francisco Fernández Díaz 87 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-17 Tipo Interfaz


Nombre Diálogo para crear clave
Existe un diálogo para crear y almacenar una clave en la base de datos. Este
diálogo está compuesto por:
 Título de la acción.
Descripción
 Campo de texto para escribir la nueva clave.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y almacenar la clave.
Fuente RUC-10
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 182: Requisito RSNF-INT-17 – Diálogo para crear clave

Identificador RSFN-INT-18 Tipo Interfaz


Nombre Diálogo para modificar clave
Existe un diálogo para modificar una clave ya existente en la base de datos. Este
diálogo está compuesto por:
 Título de la acción.
Descripción
 Campo de texto editable rellenado con la clave que se quiere modificar.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y almacenar la clave.
Fuente RUC-10
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 183: Requisito RSNF-INT-18 – Diálogo para modificar clave

Identificador RSFN-INT-19 Tipo Interfaz


Nombre Diálogo para eliminar clave
Existe un diálogo para eliminar una clave de la base de datos. Este diálogo está
compuesto por:
 Título rellenado con la clave a eliminar.
Descripción
 Mensaje preguntando si de verdad se quiere eliminar la clave.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y eliminar la clave.
Fuente RUC-10
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 184: Requisito RSNF-INT-19 – Diálogo para eliminar clave

Francisco Fernández Díaz 88 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-20 Tipo Interfaz


Nombre Diálogo para crear grupo de claves
Existe un diálogo para crear y almacenar un grupo de claves en la base de datos.
Este diálogo está compuesto por:
 Título de la acción.
 Campo de texto para escribir el nombre del nuevo grupo de claves.
Descripción
 Listado de todas las claves almacenadas y que se pueden seleccionar para
incluirlas en el grupo.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y almacenar el grupo de claves.
Fuente RUC-11
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 185: Requisito RSNF-INT-20 – Diálogo para crear grupo de claves

Identificador RSFN-INT-21 Tipo Interfaz


Nombre Diálogo para modificar grupo de claves
Existe un diálogo para modificar una clave ya existente en la base de datos. Este
diálogo está compuesto por:
 Título de la acción.
 Campo de texto editable rellenado con el nombre del grupo de claves que
se quiere modificar.
Descripción
 Listado de todas las claves almacenadas y que se pueden seleccionar para
incluirlas en el grupo. Están seleccionadas aquellas que actualmente
pertenecen al grupo.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y almacenar el grupo de claves.
Fuente RUC-11
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 186: Requisito RSNF-INT-21 – Diálogo para modificar grupo de claves

Identificador RSFN-INT-22 Tipo Interfaz


Nombre Diálogo para eliminar grupo de claves
Existe un diálogo para eliminar una clave de la base de datos. Este diálogo está
compuesto por:
 Título rellenado con el nombre del grupo de claves.
Descripción
 Mensaje preguntando si de verdad se quiere eliminar el grupo.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación y eliminar el grupo.
Fuente RUC-11
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 187: Requisito RSNF-INT-22 – Diálogo para eliminar grupo de claves

Francisco Fernández Díaz 89 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-INT-23 Tipo Interfaz


Nombre Diálogo para importar tarjetas
Existe un diálogo para importar tarjetas. Este diálogo está compuesto por:
 Título de la acción.
 Campo de texto editable rellenado con la dirección de la última
Descripción importación, o en su defecto la dirección por defecto.
 Opción para guardar las claves de las tarjetas importadas.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación e importar las tarjetas.
Fuente RUC-08
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 188: Requisito RSNF-INT-23 – Diálogo para importar tarjetas

Identificador RSFN-INT-24 Tipo Interfaz


Nombre Diálogo para importar claves
Existe un diálogo para importar claves. Este diálogo está compuesto por:
 Título de la acción.
 Campo de texto editable rellenado con la dirección de la última
Descripción
importación, o en su defecto la dirección por defecto.
 Un botón para cancelar la operación.
 Un botón para aceptar la operación e importar las claves.
Fuente RUC-12
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 189: Requisito RSNF-INT-24 – Diálogo para importar claves

1.2.2.3. Requisitos software no funcionales de recursos


Identificador RSFN-REC-01 Tipo Recurso
Nombre Espacio de almacenamiento
Descripción El espacio mínimo en disco necesario para la aplicación será de 7 Mb.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 190: Requisito RSNF-REC-01 – Espacio de almacenamiento

Identificador RSFN-REC-02 Tipo Recurso


Nombre Memoria principal
La memoria principal mínima necesaria para el correcto funcionamiento de la
Descripción
aplicación será de 512 Mb.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 191: Requisito RSNF-REC-02 – Memoria principal

Francisco Fernández Díaz 90 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-REC-03 Tipo Recurso


Nombre Velocidad del procesador
Descripción El dispositivo debe poseer un procesador con una velocidad mínima de 800 Mhz.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 192: Requisito RSNF-REC-03 – Velocidad del procesador

Identificador RSFN-REC-04 Tipo Recurso


Nombre Tecnología NFC
El dispositivo debe poseer la tecnología NFC para realizar operaciones sobre
Descripción
tarjetas RFID.
Fuente RUC-1, RUC-03, RUC-13, RUR-01, RUR-03, RUR-34
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 193: Requisito RSNF-REC-04 – Tecnología NFC

Identificador RSFN-REC-05 Tipo Recurso


Nombre Tecnología de red
Descripción El dispositivo debe poseer conectividad Wifi o 3G para poder acceder al backend.
Fuente RUC-09, RUR-25, RUR-33
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 194: Requisito RSNF-REC-05 – Tecnología de red

1.2.2.4. Requisitos software no funcionales de rendimiento


Identificador RSFN-REN-01 Tipo Rendimiento
Nombre Tiempos de respuesta
Cualquier operación realizada en la aplicación tardará en responder un máximo
Descripción de 5 segundos, a excepción de la lectura y escritura de tarjetas RFID y la primera
operación tras su instalación.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 195: Requisito RSNF-REN-01 – Tiempos de respuesta

Identificador RSFN-REN-02 Tipo Rendimiento


Nombre Tiempo de respuesta en primera operación
La primera operación realizada tras la instalación tardará en responder un
Descripción
máximo de 10 segundos debido a que debe actualizar la base de datos.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 196: Requisito RSNF-REN-02 – Tiempo de respuesta en primera operación

Francisco Fernández Díaz 91 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Identificador RSFN-REN-03 Tipo Rendimiento


Nombre Tiempos de respuesta en Mifare Ultralight
Las operaciones de lectura y escritura en tarjetas RFID de tipo Mifare Ultralight
Descripción
tardarán en responder un máximo de 3 segundos.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 197: Requisito RSNF-REN-03 – Tiempos de respuesta en Mifare Ultralight

Identificador RSFN-REN-04 Tipo Rendimiento


Nombre Tiempos de respuesta en Mifare Classic
El tiempo necesario para realizar operaciones de lectura y escritura en tarjetas
Descripción RFID de tipo Mifare Classic (Mini, 1K y 4K) será proporcional al número de claves
seleccionadas y al tamaño de la tarjeta.
Fuente RUR-35
Necesidad Esencial Prioridad Alta
Estabilidad Estable Verificabilidad Alta
Tabla 198: Requisito RSNF-REN-04 – Tiempos de respuesta en Mifare Classic

Francisco Fernández Díaz 92 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

1.3. Matrices de trazabilidad

1.3.1. Matriz de trazabilidad entre requisitos de usuario y requisitos software funcionales

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSF-01 X X X X X X X X
RSF-02 X X X X X X X X X
RSF-03 X X X X X X X X X
RSF-04 X X X X X X X X X
RSF-05 X X X
RSF-06 X X
RSF-07 X X
RSF-08 X
RSF-09 X X
RSF-10 X X
RSF-11 X
RSF-12 X X X X X X X
RSF-13 X X X X X X X X
RSF-14 X X X X X X X X
RSF-15 X X X X X X X X
RSF-16 X X
RSF-17 X X
RSF-18 X
RSF-19 X X X X
RSF-20 X X X X X X X X
RSF-21 X X
RSF-22 X X X X X

Francisco Fernández Díaz 93 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSF-23 X X X X X
RSF-24 X X X X X
RSF-25 X X X X X
RSF-26 X X X X X
RSF-27 X
RSF-28 X
RSF-29 X
RSF-30 X
RSF-31 X X X X X
RSF-32 X X X X X
RSF-33 X X X X X X
RSF-34 X
RSF-35 X X X X X X
RSF-36 X X X X X
RSF-37 X X X X X
RSF-38 X X X X X
RSF-39 X X
RSF-40 X X X
RSF-41 X X
RSF-42 X X
RSF-43 X X X X X X
RSF-44 X X X X X X
RSF-45 X
RSF-46 X
RSF-47 X X X X X X X X X X X X X

Francisco Fernández Díaz 94 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSF-48 X X X X X X X X X X X X X
RSF-49 X X X X X X X X X X X X X
Tabla 199: Matriz de trazabilidad entre requisitos de usuario y requisitos software funcionales

1.3.2. Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de operación

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11

RSFN-OP-01 X X
RSFN-OP-02 X X X X X
RSFN-OP-03 X X X X X
RSFN-OP-04 X X X X X X
RSFN-OP-05 X X X X X X
RSFN-OP-06 X X X X X X
RSFN-OP-07 X X X
RSFN-OP-08 X X X X X X X X X
RSFN-OP-09 X X X X
RSFN-OP-10 X X X X
RSFN-OP-11 X
RSFN-OP-12 X X X X X X X X X X X
RSFN-OP-13 X X X X X X X X X
RSFN-OP-14 X X X X X X X X X X X
RSFN-OP-15 X X X X X X X X X X X
RSFN-OP-16 X X X X X X X X X X X
RSFN-OP-17 X X X X X X X X

Francisco Fernández Díaz 95 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSFN-OP-18 X X X X X X X X
RSFN-OP-19 X X X X X
RSFN-OP-20 X X X X X
RSFN-OP-21 X X X
RSFN-OP-22 X X
RSFN-OP-23 X X
RSFN-OP-24 X X X X
RSFN-OP-25 X X
RSFN-OP-26 X X X X X
RSFN-OP-27 X X X X X
RSFN-OP-28 X X
RSFN-OP-29 X X
RSFN-OP-30 X X
RSFN-OP-31 X X X X
RSFN-OP-32 X X
RSFN-OP-33 X X
Tabla 200: Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de operación

Francisco Fernández Díaz 96 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

1.3.3. Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de interfaz

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSFN-INT-01 X X X X X X X X X X X X X
RSFN-INT-02 X X
RSFN-INT-03 X X
RSFN-INT-04 X X X X X X X X X
RSFN-INT-05 X
RSFN-INT-06 X
RSFN-INT-07 X
RSFN-INT-08 X
RSFN-INT-09 X
RSFN-INT-10 X X X
RSFN-INT-11 X
RSFN-INT-12 X X X X X
RSFN-INT-13 X X X
RSFN-INT-14 X X X
RSFN-INT-15 X
RSFN-INT-16 X
RSFN-INT-17 X
RSFN-INT-18 X
RSFN-INT-19 X
RSFN-INT-20 X
RSFN-INT-21 X
RSFN-INT-22 X
RSFN-INT-23 X
RSFN-INT-24 X
Tabla 201: Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de interfaz

Francisco Fernández Díaz 97 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

1.3.4. Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de recursos

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11
RSFN-REC-01 X
RSFN-REC-02 X
RSFN-REC-03 X
RSFN-REC-04 X X X X X X
RSFN-REC-05 X X X
Tabla 202: Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de recursos

1.3.5. Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de rendimiento

RUR-06

RUR-09
RUR-08
RUR-04
RUC-06

RUC-09
RUC-08

RUR-02

RUR-20
RUC-04

RUR-07
RUR-05
RUR-03

RUR-30
RUR-26

RUR-29
RUR-28
RUC-02

RUR-24

RUR-36
RUC-07
RUC-05
RUC-03

RUR-34
RUR-22

RUR-27
RUR-25
RUR-01

RUR-32
RUR-10

RUR-23

RUR-37
RUR-35
RUR-33
RUR-16

RUR-19
RUR-18
RUC-01

RUC-10

RUR-14
RUR-12

RUR-21
RUR-17
RUR-15

RUR-31
RUR-13
RUC-12
RUC-13

RUR-11
RUC-11

RSFN-REN-01 X
RSFN-REN-02 X
RSFN-REN-03 X
RSFN-REN-04 X
Tabla 203: Matriz de trazabilidad entre requisitos de usuario y requisitos software no funcionales de rendimiento

Francisco Fernández Díaz 98 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

2. Diseño

2.1. Arquitectura
En esta sección se van a detallar las distintas alternativas de diseño estudiadas para el
desarrollo de la aplicación y posteriormente mostrar y explicar el diagrama de componentes
del diseño escogido.

2.1.1. Alternativas de diseño


El sistema abordado en este proyecto separa su contenido en tres componentes: los
datos de la aplicación, la interfaz de usuario y la lógica de control.

 Datos de la aplicación: relacionado con el manejo de la base de datos: consulta,


inserción, modificación y eliminación de información.
 Interfaz de usuario: encargado de la presentación de la aplicación y de gestionar
los eventos que puedan ocurrir en la aplicación: mensajes recibidos del usuario,
flujo de aplicación y control de navegación entre ventanas.
 Lógica de control: controla los eventos internos recibidos desde la interfaz de
usuario y las acciones relacionadas con la modificación de la información del
backend externo.

Desde el primer momento se decidió utilizar el patrón de arquitectura software


Modelo-Vista-Controlador (MVC) moderno debido a que sus componentes modelo, vista y
controlador se acoplan perfectamente a datos de la aplicación, interfaz de usuario y lógica de
control, respectivamente.

A este patrón de arquitectura se le añadió la comunicación entre el componente


Modelo y el backend externo para realizar las operaciones correspondientes sobre este.

Francisco Fernández Díaz 99 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

2.1.2. Diagrama de componentes

Ilustración 16: Diagrama de componentes

En la figura anterior se muestra el diagrama de componentes del sistema donde se


pueden distinguir tres componentes principales: Modelo, Vista y Controlador.

A continuación se va a explicar cada uno de los componentes principales describiendo


cada uno los subcomponentes que lo forman.

 Modelo: es el paquete encargado de la lógica de negocio y de la comunicación con


la base de datos interna del sistema. Se ha utilizado el lenguaje SQLite para crear
una base de datos relacional y trabajar con los datos de la aplicación. También se

Francisco Fernández Díaz 100 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

encarga de realizar las operaciones sobre el backend externo. Está compuesto por
los subcomponentes Backend y BBDD.
o Backend: contiene la funcionalidad necesaria para conectarse con el
backend, realizar las operaciones solicitadas y devolver su resultado.
o BBDD: se encarga de todas las operaciones relacionadas de la base datos
interna de la aplicación. Cuando le llega una solicitud crea su instrucción
correspondiente en lenguaje SQLite, la ejecuta y devuelve el resultado
correspondiente de esa operación.
 Vista: es el paquete encargado de la representación de la información y su lógica.
Android utiliza plantillas XML para definir toda la información relativa a las
interfaces y así poder añadir, modificar o eliminar elementos fácilmente. Controla
los eventos recibidos del usuario y responde a sus peticiones. Está formado por los
subcomponentes Plantillas y Lógica.
o Plantillas: este subcomponente alberga todas las plantillas diseñadas para
cada una de las interfaces de la aplicación.
o Lógica: este subcomponente se encarga de la lógica necesaria en la vista y
de controlar las peticiones del usuario. Está compuesto por los
subcomponentes Estadísticas, LecturaEscritura, GruposClaves, Tarjetas,
Claves y Util.
 Estadísticas: se encarga de enviar la petición adecuada para
obtener la información de estadísticas del backend externo y
mostrarla a través de la interfaz.
 LecturaEscritura: se encarga de gestionar las peticiones de lectura
y escritura y manda dichas peticiones al subpaquete
ControladorNFC (del componente Controlador), para que sean
llevadas a cabo. También se encarga de mandar la petición
adecuada para que una tarjeta ya leída sea almacenada en la BBDD.
 GruposClaves: gestiona las peticiones sobre la creación,
modificación y eliminación de grupos de claves en el sistema.
 Tarjetas: gestiona las peticiones sobre la creación, modificación y
eliminación de tarjetas en el sistema.
 Claves: gestiona las peticiones relacionadas con la creación,
modificación y eliminación de claves en el sistema.

Francisco Fernández Díaz 101 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

 Util: contiene toda la funcionalidad en común para el resto de


subcomponentes del componente Lógica.
 Controlador: este componente se ocupa de controlar los eventos recibidos desde
el componente Vista, realizar las operaciones NFC y actualizar la información del
backend. Está formado por los subcomponentes ControladorBackend y
ControladorNFC.
o ControladorBackend: encargado de gestionar las peticiones con el fin de
actualizar la información ubicada en el backend externo. Depende del
componente ControladorNFC ya que la información del backend solo es
actualizada si se realiza alguna acción correcta sobre tarjetas RFID.
o ControladorNFC: encargado de realizar las operaciones de lectura,
escritura y autenticación entre el dispositivo y las tarjetas RFID. También se
ocupa de reabrir y cerrar las conexiones con una tarjeta cuando es
necesario.

2.2. Diagrama de clases


En este apartado se muestran las relaciones existentes entre las clases que forman los
componentes de la aplicación.

Francisco Fernández Díaz 102 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Ilustración 17: Diagrama de clases

2.3. Diseño de base de datos


En esta subsección se va a ilustrar y a explicar el diseño de la base de datos utilizado
durante el desarrollo del sistema.

Francisco Fernández Díaz 103 | P á g i n a


Capítulo 3: Desarrollo técnico del PFC Proyecto Fin de Carrera

Ilustración 18: Modelo de datos del sistema

En la figura anterior se puede observar el modelo entidad-relación de la base de datos


del sistema. En él se presentan las distintas entidades de la base de datos con sus atributos y
relaciones correspondientes.

En la base de datos de la aplicación se almacena la información relevante de las tarjetas


RFID. Cada tarjeta pertenece a un determinado tipo de tecnología (Mifare Ultralight o Mifare
Classic Mini, 1K o 4K), además del tipo de tarjeta escogido por el usuario. Las tarjetas
contienen sectores cuyo identificador es una combinación del número del sector junto con el
nombre de la tarjeta, y puede ser autenticado por al menos una clave. Para cada sector se
almacena una serie de bloques identificados a través del número de bloque combinado con el
identificador del sector (nombre de la tarjeta y número de sector). Cada tarjeta (si es de
transporte) puede estar relacionada con una o varias estaciones.

Francisco Fernández Díaz 104 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

CAPÍTULO 4:
PRUEBAS

Francisco Fernández Díaz 105 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Este capítulo recoge un conjunto de pruebas necesarias para comprobar el correcto


funcionamiento del sistema, además de una serie de resultados obtenidos y a comparar con los
generados a través de otros medios.

1. Pruebas del sistema

En este apartado se describirán las pruebas para comprobar las funcionalidades del
sistema implementado. Cada una de las pruebas viene acompañada de ciertos datos
compactados en una tabla con el siguiente formato:

Identificador PSF-XX
Descripción Descripción de la prueba
Pasos Pasos de la prueba
Posibles errores Posibles errores de la prueba
Requisitos Requisitos de la prueba
Resultado esperado Resultado esperado al concluir la prueba
Tabla 204: Formato tabla de prueba del sistema

Cuyos campos significan:

 Identificador: identificador de la prueba con la estructura PSF-XX, donde XX es el


número que identifica la prueba.
 Descripción: descripción de la prueba.
 Pasos: secuencia de pasos para realizar la prueba.
 Posibles errores: posibles errores que impidan superar la prueba.
 Requisitos: requisitos relacionados con la prueba.
 Resultado esperado: resultado que se espera conseguir al concluir la prueba para
considerar que esta ha terminado adecuadamente.

Francisco Fernández Díaz 106 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

1.1. Especificación de pruebas del sistema


Identificador PSF-01
Se comprobará que un usuario puede leer y almacenar una tarjeta RFID de tipo
Descripción
Mifare Classic Mini.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Leer”.
3. Seleccionar las claves necesarias para la lectura.
4. Pulsar sobre el botón “Leer”.
Pasos 5. Acercar al dispositivo la tarjeta a leer.
6. Escribir el nombre de la tarjeta.
7. Seleccionar un tipo de tarjeta.
8. Si se desea, modificar el contenido de la tarjeta.
9. Pulsar sobre el icono “Guardar” en la barra de menú.
 Error al conectar con la tarjeta.
 Error al leer un bloque.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-02, RSF-08, RSF-09, RSF-10, RSF-11, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es leída, almacenada y mostrada por pantalla.
Resultado esperado  Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 205: Prueba PSF-01 – Leer tarjeta Mifare Classic Mini

Identificador PSF-02
Se comprobará que un usuario puede leer y almacenar una tarjeta RFID de tipo
Descripción
Mifare Classic 1K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Leer”.
3. Seleccionar las claves necesarias para la lectura.
4. Pulsar sobre el botón “Leer”.
Pasos 5. Acercar al dispositivo la tarjeta a leer.
6. Escribir el nombre de la tarjeta.
7. Seleccionar un tipo de tarjeta.
8. Si se desea, modificar el contenido de la tarjeta.
9. Pulsar sobre el icono “Guardar” en la barra de menú.
 Error al conectar con la tarjeta.
 Error al leer un bloque.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-03, RSF-08, RSF-09, RSF-10, RSF-11, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es leída, almacenada y mostrada por pantalla.
Resultado esperado  Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 206: Prueba PSF-02 – Leer tarjeta Mifare Classic 1K

Francisco Fernández Díaz 107 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-03
Se comprobará que un usuario puede leer y almacenar una tarjeta RFID de tipo
Descripción
Mifare Classic 4K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Leer”.
3. Seleccionar las claves necesarias para la lectura.
4. Pulsar sobre el botón “Leer”.
Pasos 5. Acercar al dispositivo la tarjeta a leer.
6. Escribir el nombre de la tarjeta.
7. Seleccionar un tipo de tarjeta.
8. Si se desea, modificar el contenido de la tarjeta.
9. Pulsar sobre el icono “Guardar” en la barra de menú.
 Error al conectar con la tarjeta.
 Error al leer un bloque.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-04, RSF-08, RSF-09, RSF-10, RSF-11, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es leída, almacenada y mostrada por pantalla.
Resultado esperado  Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 207: Prueba PSF-03 – Leer tarjeta Mifare Classic 4K

Identificador PSF-04
Se comprobará que un usuario puede leer y almacenar una tarjeta RFID de tipo
Descripción
Mifare Ultralight.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Leer”.
3. No seleccionar ninguna clave para la lectura.
4. Pulsar sobre el botón “Leer”.
Pasos 5. Acercar al dispositivo la tarjeta a leer.
6. Escribir el nombre de la tarjeta.
7. Seleccionar un tipo de tarjeta.
8. Si se desea, modificar el contenido de la tarjeta.
9. Pulsar sobre el icono “Guardar” en la barra de menú.
 Error al conectar con la tarjeta.
 Error al leer un bloque.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-01, RSF-08, RSF-11, RSF-47, RSF-48, RSF-49
 La tarjeta es leída, almacenada y mostrada por pantalla.
Resultado esperado  Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 208: Prueba PSF-04 – Leer tarjeta Mifare Ultralight

Francisco Fernández Díaz 108 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-05
Se comprobará que un usuario puede escribir una tarjeta RFID de tipo Mifare
Descripción
Classic Mini.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Escribir”.
3. Seleccionar la tarjeta que se quiere escribir.
Pasos
4. Seleccionar las claves necesarias para la escritura.
5. Pulsar sobre el botón “Escribir”.
6. Acercar al dispositivo la tarjeta a escribir.
 Error al conectar con la tarjeta.
 Error al escribir un bloque.
Posibles errores
 Error al leer información de la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-13, RSF-16, RSF-17, RSF-18, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es escrita.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 209: Prueba PSF-05 – Escribir tarjeta Mifare Classic Mini

Identificador PSF-06
Se comprobará que un usuario puede escribir una tarjeta RFID de tipo Mifare
Descripción
Classic 1K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Escribir”.
3. Seleccionar la tarjeta que se quiere escribir.
Pasos
4. Seleccionar las claves necesarias para la escritura.
5. Pulsar sobre el botón “Escribir”.
6. Acercar al dispositivo la tarjeta a escribir.
 Error al conectar con la tarjeta.
 Error al escribir un bloque.
Posibles errores
 Error al leer información de la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-14, RSF-16, RSF-17, RSF-18, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es escrita.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 210: Prueba PSF-06 – Escribir tarjeta Mifare Classic 1K

Francisco Fernández Díaz 109 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-07
Se comprobará que un usuario puede escribir una tarjeta RFID de tipo Mifare
Descripción
Classic 4K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Escribir”.
3. Seleccionar la tarjeta que se quiere escribir.
Pasos
4. Seleccionar las claves necesarias para la escritura.
5. Pulsar sobre el botón “Escribir”.
6. Acercar al dispositivo la tarjeta a escribir.
 Error al conectar con la tarjeta.
 Error al escribir un bloque.
Posibles errores
 Error al leer información de la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-15, RSF-16, RSF-17, RSF-18, RSF-19, RSF-47, RSF-48, RSF-49
 La tarjeta es escrita.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 211: Prueba PSF-07 – Escribir tarjeta Mifare Classic 4K

Identificador PSF-08
Se comprobará que un usuario puede escribir una tarjeta RFID de tipo Mifare
Descripción
Ultralight.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Escribir”.
3. Seleccionar la tarjeta que se quiere escribir.
Pasos
4. No seleccionar ninguna clave para la escritura.
5. Pulsar sobre el botón “Escribir”.
6. Acercar al dispositivo la tarjeta a escribir.
 Error al conectar con la tarjeta.
 Error al escribir un bloque.
Posibles errores
 Error al leer información de la base de datos.
 No hay acceso a internet y no se guardan las claves en el backend.
Requisitos RSF-12, RSF-18, RSF-47, RSF-48, RSF-49
 La tarjeta es escrita.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 212: Prueba PSF-08 – Escribir tarjeta Mifare Ultralight

Francisco Fernández Díaz 110 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-09
Se comprobará que un usuario puede crear una tarjeta RFID de tipo Mifare Classic
Descripción
Mini.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
3. Pulsar sobre la opción “Crear Tag” en el menú desplegable.
4. Pulsar sobre el tipo de Tarjeta “Mifare Classic Mini”.
Pasos
5. Escribir el nombre de la tarjeta.
6. Seleccionar un tipo de tarjeta.
7. Modificar el contenido de la tarjeta.
8. Pulsar sobre el icono “Guardar” en la barra de menú.
 Dispositivo sin memoria y no se almacena la tarjeta.
Posibles errores
 Error al insertar información en la base de datos.
Requisitos RSF-23, RSF-26, RSF-47, RSF-48, RSF-49
 La tarjeta es creada y almacenada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 213: Prueba PSF-09 – Crear tarjeta Mifare Classic Mini

Identificador PSF-10
Se comprobará que un usuario puede crear una tarjeta RFID de tipo Mifare Classic
Descripción
1K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
3. Pulsar sobre la opción “Crear Tag” en el menú desplegable.
4. Pulsar sobre el tipo de Tarjeta “Mifare Classic 1K”.
Pasos
5. Escribir el nombre de la tarjeta.
6. Seleccionar un tipo de tarjeta.
7. Modificar el contenido de la tarjeta.
8. Pulsar sobre el icono “Guardar” en la barra de menú.
 Dispositivo sin memoria y no se almacena la tarjeta.
Posibles errores
 Error al insertar información en la base de datos.
Requisitos RSF-24, RSF-26, RSF-47, RSF-48, RSF-49
 La tarjeta es creada y almacenada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 214: Prueba PSF-10 – Crear tarjeta Mifare Classic 1K

Francisco Fernández Díaz 111 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-11
Se comprobará que un usuario puede crear una tarjeta RFID de tipo Mifare Classic
Descripción
4K.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
3. Pulsar sobre la opción “Crear Tag” en el menú desplegable.
4. Pulsar sobre el tipo de Tarjeta “Mifare Classic 4K”.
Pasos
5. Escribir el nombre de la tarjeta.
6. Seleccionar un tipo de tarjeta.
7. Modificar el contenido de la tarjeta.
8. Pulsar sobre el icono “Guardar” en la barra de menú.
 Dispositivo sin memoria y no se almacena la tarjeta.
Posibles errores
 Error al insertar información en la base de datos.
Requisitos RSF-25, RSF-26, RSF-47, RSF-48, RSF-49
 La tarjeta es creada y almacenada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 215: Prueba PSF-11 – Crear tarjeta Mifare Classic 4K

Identificador PSF-12
Se comprobará que un usuario puede crear una tarjeta RFID de tipo Mifare
Descripción
Ultralight.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
3. Pulsar sobre la opción “Crear Tag” en el menú desplegable.
4. Pulsar sobre el tipo de Tarjeta “Mifare Ultralight”.
Pasos
5. Escribir el nombre de la tarjeta.
6. Seleccionar un tipo de tarjeta.
7. Modificar el contenido de la tarjeta.
8. Pulsar sobre el icono “Guardar” en la barra de menú.
 Dispositivo sin memoria y no se almacena la tarjeta.
Posibles errores
 Error al insertar información en la base de datos.
Requisitos RSF-22, RSF-26, RSF-47, RSF-48, RSF-49
 La tarjeta es creada y almacenada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 216: Prueba PSF-12 – Crear tarjeta Mifare Ultralight

Francisco Fernández Díaz 112 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-13
Descripción Se comprobará que un usuario puede modificar una tarjeta RFID.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
Pasos 3. Seleccionar la tarjeta a modificar.
4. Modificar la información deseada (nombre, tipo o contenido).
5. Pulsar sobre el icono “Guardar” en la barra de menú.
 Dispositivo sin memoria y no se almacena la tarjeta.
Posibles errores  Error al leer información de la base de datos.
 Error al modificar información en la base de datos.
Requisitos RSF-20, RSF-47, RSF-48, RSF-49
 La tarjeta es modificada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 217: Prueba PSF-13 – Modificar tarjeta RFID

Identificador PSF-14
Descripción Se comprobará que un usuario puede borrar una tarjeta RFID.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Ver escaneados”.
Pasos
3. Mantener pulsada la tarjeta que se desea eliminar.
4. Pulsar sobre el botón “Aceptar”.
 Error al leer información de la base de datos.
Posibles errores
 Error al eliminar información de la base de datos.
Requisitos RSF-21, RSF-47, RSF-48, RSF-49
 La tarjeta es eliminada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 218: Prueba PSF-14 – Borrar tarjeta RFID

Identificador PSF-15
Se comprobará que un usuario puede importar una tarjeta RFID de tipo Mifare
Descripción
Classic Mini.
1. Guardar en el dispositivo un fichero con el contenido de una tarjeta Mifare
Classic Mini y con el nombre “tarjetaMini_mfcMini.dmp”.
2. Iniciar la aplicación.
3. Pulsar sobre el botón “Ver escaneados”.
Pasos
4. Pulsar sobre la opción “Importar tags” en el menú desplegable.
5. Introducir la dirección donde se encuentra el fichero indicado en el paso1.
6. Seleccionar la opción “Importar claves de tarjeta”.
7. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
Requisitos RSF-31, RSF-33, RSF-34, RSF-47, RSF-48, RSF-49
 La tarjeta es importada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 219: Prueba PSF-15 – Importar tarjeta Mifare Classic Mini

Francisco Fernández Díaz 113 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-16
Se comprobará que un usuario puede importar una tarjeta RFID de tipo Mifare
Descripción
Classic 1K.
1. Guardar en el dispositivo un fichero con el contenido de una tarjeta Mifare
Classic 1K y con el nombre “tarjeta1K_mfc1k.dmp”.
2. Iniciar la aplicación.
3. Pulsar sobre el botón “Ver escaneados”.
Pasos
4. Pulsar sobre la opción “Importar tags” en el menú desplegable.
5. Introducir la dirección donde se encuentra el fichero indicado en el paso1.
6. Seleccionar la opción “Importar claves de tarjeta”.
7. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
Requisitos RSF-31, RSF-33, RSF-34, RSF-47, RSF-48, RSF-49
 La tarjeta es importada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 220: Prueba PSF-16 – Importar tarjeta Mifare Classic 1K

Identificador PSF-17
Se comprobará que un usuario puede importar una tarjeta RFID de tipo Mifare
Descripción
Classic 4K.
1. Guardar en el dispositivo un fichero con el contenido de una tarjeta Mifare
Classic 4K y con el nombre “tarjeta4K_mfc4k.dmp”.
2. Iniciar la aplicación.
3. Pulsar sobre el botón “Ver escaneados”.
Pasos
4. Pulsar sobre la opción “Importar tags” en el menú desplegable.
5. Introducir la dirección donde se encuentra el fichero indicado en el paso1.
6. Seleccionar la opción “Importar claves de tarjeta”.
7. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
Requisitos RSF-31, RSF-33, RSF-34, RSF-47, RSF-48, RSF-49
 La tarjeta es importada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 221: Prueba PSF-17 – Importar tarjeta Mifare Classic 4K

Francisco Fernández Díaz 114 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-18
Se comprobará que un usuario puede importar una tarjeta RFID de tipo Mifare
Descripción
Ultralight.
1. Guardar en el dispositivo un fichero con el contenido de una tarjeta Mifare
Ultralight y con el nombre “tarjeta_mfu.dmp”.
2. Iniciar la aplicación.
3. Pulsar sobre el botón “Ver escaneados”.
Pasos
4. Pulsar sobre la opción “Importar tags” en el menú desplegable.
5. Introducir la dirección donde se encuentra el fichero indicado en el paso1.
6. No seleccionar la opción “Importar claves de tarjeta”.
7. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacena la tarjeta.
 Error al insertar información en la base de datos.
Requisitos RSF-31, RSF-34, RSF-47, RSF-48, RSF-49
 La tarjeta es importada.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 222: Prueba PSF-18 – Importar tarjeta Mifare Ultralight

Identificador PSF-19
Se comprobará que un usuario puede importar varias tarjetas RFID de tipo Mifare
Descripción
(Classic o Ultralight).
1. Guardar en el dispositivo un fichero con el contenido de una tarjeta Mifare
Ultralight y con el nombre “tarjeta_mfu.dmp”.
2. Guardar en el mismo directorio que en el paso1 un fichero con el contenido
de una tarjeta Mifare Classic 1K y con el nombre “tarjeta1K_mfc1k.dmp”.
3. Iniciar la aplicación.
Pasos
4. Pulsar sobre el botón “Ver escaneados”.
5. Pulsar sobre la opción “Importar tags” en el menú desplegable.
6. Introducir el directorio que contiene los ficheros indicados en el paso1.
7. Seleccionar la opción “Importar claves de tarjeta”.
8. Pulsar sobre el botón “Aceptar”.
 Error al leer los ficheros a importar.
Posibles errores  Dispositivo sin memoria y no se almacenan las tarjetas.
 Error al insertar información en la base de datos.
Requisitos RSF-32, RSF-33, RSF-34, RSF-47, RSF-48, RSF-49
 Las tarjetas son importadas.
 En pantalla se muestra la lista con las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 223: Prueba PSF-19 – Importar varias tarjetas Mifare

Francisco Fernández Díaz 115 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-20
Descripción Se comprobará que un usuario puede crear una clave.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
Pasos 3. Pulsar sobre el icono “Nuevas claves” en la barra de menú.
4. Escribir una clave hexadecimal de 12 dígitos.
5. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacena la clave.
Posibles errores  Error al leer información de la base de datos.
 Error al insertar información en la base de datos.
Requisitos RSF-36, RSF-47, RSF-48, RSF-49
 La clave es guardada.
 En pantalla se muestra la lista con las claves almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 224: Prueba PSF-20 – Crear clave

Identificador PSF-21
Descripción Se comprobará que un usuario puede crear varias claves.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
Pasos 3. Pulsar sobre el icono “Nuevas claves” en la barra de menú.
4. Escribir varias claves hexadecimales de 12 dígitos cada una en una línea.
5. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacenan las claves.
Posibles errores  Error al leer información de la base de datos.
 Error al insertar información en la base de datos.
Requisitos RSF-37, RSF-47, RSF-48, RSF-49
 Las claves son guardadas.
 En pantalla se muestra la lista con las claves almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 225: Prueba PSF-21 – Crear varias claves

Identificador PSF-22
Descripción Se comprobará que un usuario puede modificar una clave.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
Pasos 3. Pulsar sobre la clave a modificar.
4. Modificar la clave.
5. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacena la clave.
Posibles errores  Error al leer información de la base de datos.
 Error al modificar información en la base de datos.
Requisitos RSF-38, RSF-47, RSF-48, RSF-49
 La clave es modificada.
 En pantalla se muestra la lista con las claves almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 226: Prueba PSF-22 – Modificar clave

Francisco Fernández Díaz 116 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-23
Descripción Se comprobará que un usuario puede eliminar una clave.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
Pasos
3. Mantener pulsada la clave a eliminar.
4. Pulsar sobre el botón “Aceptar”.
 Error al leer información de la base de datos.
Posibles errores
 Error al eliminar información en la base de datos.
Requisitos RSF-39, RSF-47, RSF-48, RSF-49
 La clave es eliminada.
 En pantalla se muestra la lista con las claves almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 227: Prueba PSF-23 – Eliminar clave

Identificador PSF-24
Descripción Se comprobará que un usuario puede crear un grupo de claves.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
3. Pulsar sobre la opción “Crear grupo de claves” en el menú desplegable.
Pasos
4. Escribir el nombre del grupo de claves.
5. Seleccionar las claves que componen el grupo de claves.
6. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacena el grupo de claves.
Posibles errores  Error al leer información de la base de datos.
 Error al insertar información en la base de datos.
Requisitos RSF-40, RSF-47, RSF-48, RSF-49
 El grupo de claves es almacenado.
 En pantalla se muestra la lista de grupos de claves almacenados.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 228: Prueba PSF-24 – Crear grupo de claves

Identificador PSF-25
Descripción Se comprobará que un usuario puede modificar un grupo de claves.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
3. Cambiar a la ventana de los grupos de claves.
Pasos 4. Pulsar sobre el grupo de claves a modificar.
5. Pulsar sobre icono “Editar” en la barra superior.
6. Modificar la información deseada (Nombre del grupo o claves).
7. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacena el grupo de claves.
Posibles errores  Error al leer información de la base de datos.
 Error al modificar información en la base de datos.
Requisitos RSF-41, RSF-47, RSF-48, RSF-49
 El grupo de claves es modificado.
 En pantalla se muestra la lista de grupos de claves almacenados.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 229: Prueba PSF-25 – Modificar grupo de claves

Francisco Fernández Díaz 117 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-26
Descripción Se comprobará que un usuario puede eliminar un grupo de claves.
1. Iniciar la aplicación.
2. Pulsar sobre el botón “Claves”.
Pasos 3. Cambiar a la ventana de los grupos de claves.
4. Mantener pulsado el grupo de claves a eliminar.
5. Pulsar sobre el botón “Aceptar”.
 Error al leer información de la base de datos.
Posibles errores
 Error al eliminar información de la base de datos.
Requisitos RSF-42, RSF-47, RSF-48, RSF-49
 El grupo de claves es eliminado.
 En pantalla se muestra la lista de grupos de claves almacenados.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 230: Prueba PSF-26 – Eliminar grupo de claves

Identificador PSF-27
Descripción Se comprobará que un usuario puede importar un fichero de claves.
1. Guardar en el dispositivo un fichero con las claves a importar (una clave por
línea) y cuya extensión sea “.txt”.
2. Iniciar la aplicación.
Pasos 3. Pulsar sobre el botón “Claves”.
4. Pulsar sobre la opción “Importar claves” en el menú desplegable.
5. Introducir la dirección donde se encuentra el fichero indicado en el paso1.
6. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacenan las claves.
 Error al insertar información en la base de datos.
Requisitos RSF-43, RSF-45, RSF-47, RSF-48, RSF-49
 Las claves son importadas.
 En pantalla se muestra la lista de claves almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 231: Prueba PSF-27 – Importar un fichero de claves

Francisco Fernández Díaz 118 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-28
Descripción Se comprobará que un usuario puede importar varios ficheros de claves.
1. Guardar en el dispositivo un fichero con las claves a importar (una clave por
línea) y cuya extensión sea “.txt”.
2. Guardar otro fichero con otras claves a importar (una clave por línea) y cuya
extensión sea “.txt”.
Pasos 3. Iniciar la aplicación.
4. Pulsar sobre el botón “Claves”.
5. Pulsar sobre la opción “Importar claves” en el menú desplegable.
6. Introducir el directorio que contiene los ficheros indicados en el paso1.
7. Pulsar sobre el botón “Aceptar”.
 Error al leer el fichero a importar.
Posibles errores  Dispositivo sin memoria y no se almacenan las claves.
 Error al insertar información en la base de datos.
Requisitos RSF-44, RSF-45, RSF-47, RSF-48, RSF-49
 Las claves son importadas.
Resultado
 En pantalla se muestra la lista de claves almacenadas.
esperado
 Aparece un mensaje indicando que la operación ha terminado correctamente.
Tabla 232: Prueba PSF-28 – Importar varios ficheros de claves

Identificador PSF-29
Descripción Se comprobará que un usuario puede crear nuevos tipos de tarjetas RFID.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
2. Escoger la opción “--Nuevo tipo--” en el tipo de tarjeta.
Pasos
3. Escribir el nuevo tipo.
4. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacenan las claves.
Posibles errores
 Error al insertar información en la base de datos.
Requisitos RSF-05, RSF-47, RSF-48, RSF-49
 El tipo de tarjeta es almacenado.
 En la lista de tipos de tarjetas se puede seleccionar el nuevo tipo.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 233: Prueba PSF-29 – Crear tipo de tarjeta

Identificador PSF-30
Descripción Se comprobará que un usuario puede renombrar una tarjeta RFID.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
2. Escribir el nombre de una tarjeta que ya exista en la base de datos.
3. Pulsar sobre el icono “Guardar” en la barra de menú.
Pasos
4. Pulsar sobre el botón “Renombrar”.
5. Introducir el nuevo nombre de la tarjeta.
6. Pulsar sobre el botón “Aceptar”.
 Dispositivo sin memoria y no se almacenan las claves.
Posibles errores  Error al leer información de la base de datos.
 Error al insertar información en la base de datos.
Requisitos RSF-06, RSF-47, RSF-48, RSF-49
 La tarjeta es almacenada con el nuevo nombre.
 En pantalla se muestra la lista de las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 234: Prueba PSF-30 – Renombrar tarjeta RFID

Francisco Fernández Díaz 119 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-31
Descripción Se comprobará que un usuario puede reemplazar una tarjeta RFID.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
2. Escribir el nombre de una tarjeta que ya exista en la base de datos.
Pasos
3. Pulsar sobre el icono “Guardar” en la barra de menú.
4. Pulsar sobre el botón “Reemplazar”.
 Dispositivo sin memoria y no se almacenan las claves.
Posibles errores  Error al leer información de la base de datos.
 Error al insertar información en la base de datos.
Requisitos RSF-07, RSF-47, RSF-48, RSF-49
 La tarjeta es almacenada sustituyendo a la anterior.
 En pantalla se muestra la lista de las tarjetas almacenadas.
Resultado esperado
 Aparece un mensaje temporal indicando que la operación se ha llevado a
cabo correctamente.
Tabla 235: Prueba PSF-31 – Reemplazar tarjeta RFID

Identificador PSF-32
Descripción Se comprobará que un usuario puede ver una tarjeta RFID en formato ASCII.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
Pasos
2. Pulsar sobre la opción “Ver como ASCII” en el menú desplegable.
Posibles errores  Error al leer información de la base de datos.
Requisitos RSF-27, RSF-47, RSF-48, RSF-49
Resultado esperado  El contenido de la tarjeta será mostrado en formato ASCII.
Tabla 236: Prueba PSF-32 – Ver tarjeta RFID en formato ASCII

Identificador PSF-33
Se comprobará que un usuario puede ver una tarjeta RFID en formato
Descripción
hexadecimal.
Pasos 1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
Posibles errores  Error al leer información de la base de datos.
Requisitos RSF-28, RSF-47, RSF-48, RSF-49
Resultado esperado  El contenido de la tarjeta será mostrado en formato hexadecimal.
Tabla 237: Prueba PSF-33 – Ver tarjeta RFID en formato hexadecimal

Identificador PSF-34
Se comprobará que un usuario puede ver una tarjeta RFID como tarjeta de
Descripción
transporte.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
Pasos 2. Pulsar sobre la opción “Ver como tarjeta de transporte” en el menú
desplegable.
 Error al leer información de la base de datos.
Posibles errores
 Información de tarjeta errónea al convertirla en tarjeta de transporte.
Requisitos RSF-29, RSF-47, RSF-48, RSF-49
Resultado esperado  El contenido de la tarjeta será mostrado como tarjeta de transporte.
Tabla 238: Prueba PSF-34 – Ver tarjeta RFID como tarjeta de transporte

Francisco Fernández Díaz 120 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Identificador PSF-35
Se comprobará que un usuario puede ver las condiciones de acceso de una tarjeta
Descripción
RFID.
1. Leer (PSF-01/02/03/04) o modificar (PSF-13) tarjeta RFID.
Pasos
2. Pulsar sobre la opción “Ver condiciones de acceso” en el menú desplegable.
 Error al leer información de la base de datos.
Posibles errores
 Error al decodificar las condiciones de acceso de la tarjeta.
Requisitos RSF-30, RSF-47, RSF-48, RSF-49
Resultado esperado  Las condiciones de acceso serán mostradas.
Tabla 239: Prueba PSF-35 – Ver condiciones de acceso de una tarjeta RFID

Identificador PSF-36
Descripción Se comprobará que un usuario puede ver las estadísticas de uso de las claves.
1. Iniciar la aplicación.
Pasos
2. Pulsar sobre el botón “Estadísticas”.
Posibles errores  No hay acceso a internet y no se obtienen las claves del backend.
Requisitos RSF-35, RSF-47, RSF-48, RSF-49
 Tabla con el número de lecturas, escrituras y el porcentaje de ambos valores
Resultado esperado
de una clave sobre el total de todas las claves.
Tabla 240: Prueba PSF-36 – Ver estadísticas de uso de las claves

Identificador PSF-37
Se comprobará que un usuario puede activar la tecnología NFC a través de la
Descripción
aplicación.
1. Desactivar tecnología NFC.
2. Iniciar la aplicación.
Pasos
3. Pulsar sobre el botón “Ajustes” en el diálogo “NFC desactivado”.
4. Activar la tecnología NFC.
Posibles errores
Requisitos RSF-46, RSF-47, RSF-48, RSF-49
Resultado esperado  Activada tecnología NFC del dispositivo.
Tabla 241: Prueba PSF-37 – Activación tecnología NFC

Francisco Fernández Díaz 121 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

1.2. Trazabilidad entre requisitos software funcionales y pruebas del sistema


En esta sección se va a mostrar la relación existente entre cada requisito software funcional y las pruebas del sistema.

RSF-06

RSF-09
RSF-08
RSF-04

RSF-40

RSF-46
RSF-02

RSF-49
RSF-20

RSF-48
RSF-07
RSF-05

RSF-44
RSF-03

RSF-30
RSF-26

RSF-29
RSF-28
RSF-24

RSF-36

RSF-39

RSF-42
RSF-38

RSF-47
RSF-45
RSF-34

RSF-43
RSF-22

RSF-27
RSF-25
RSF-01

RSF-32
RSF-10

RSF-23

RSF-37
RSF-35
RSF-33
RSF-16

RSF-19
RSF-18
RSF-14

RSF-41
RSF-12

RSF-21
RSF-17
RSF-15

RSF-31
RSF-13
RSF-11
PSF-01 X X X X X X X X X
PSF-02 X X X X X X X X X
PSF-03 X X X X X X X X X
PSF-04 X X X X X X
PSF-05 X X X X X X X X
PSF-06 X X X X X X X X
PSF-07 X X X X X X X X
PSF-08 X X X X X
PSF-09 X X X X X
PSF-10 X X X X X
PSF-11 X X X X X
PSF-12 X X X X X
PSF-13 X X X X
PSF-14 X X X X
PSF-15 X X X X X X
PSF-16 X X X X X X
PSF-17 X X X X X X
PSF-18 X X X X X
PSF-19 X X X X X X
PSF-20 X X X X
PSF-21 X X X X
PSF-22 X X X X

Francisco Fernández Díaz 122 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

RSF-06

RSF-09
RSF-08
RSF-04

RSF-40

RSF-46
RSF-02

RSF-49
RSF-20

RSF-48
RSF-07
RSF-05

RSF-44
RSF-03

RSF-30
RSF-26

RSF-29
RSF-28
RSF-24

RSF-36

RSF-39

RSF-42
RSF-38

RSF-47
RSF-45
RSF-34

RSF-43
RSF-22

RSF-27
RSF-25
RSF-01

RSF-32
RSF-10

RSF-23

RSF-37
RSF-35
RSF-33
RSF-16

RSF-19
RSF-18
RSF-14

RSF-41
RSF-12

RSF-21
RSF-17
RSF-15

RSF-31
RSF-13
RSF-11
PSF-23 X X X X
PSF-24 X X X X
PSF-25 X X X X
PSF-26 X X X X
PSF-27 X X X X X
PSF-28 X X X X X
PSF-29 X X X X
PSF-30 X X X X
PSF-31 X X X X
PSF-32 X X X X
PSF-33 X X X X
PSF-34 X X X X
PSF-35 X X X X
PSF-36 X X X X
PSF-37 X X X X
Tabla 242: Matriz de trazabilidad entre requisitos software funcionales y pruebas del sistema

Francisco Fernández Díaz 123 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

2. Resultados

Además de las pruebas del sistema se han realizado una serie de comparaciones para
comprobar que los resultados obtenidos con la aplicación son correctos. Para ello se utiliza un
lector de tarjetas RFID junto con las librerías LibNFC o el programa Mfoc. El resultado de esta
operación es almacenado en un fichero en formato hexadecimal y cargado en una página web
para decodificarlo a formato legible [56] . En las tarjetas de transporte también se utiliza el
programa Mfoc GUI para decodificar la información de transporte leída.

Para poder leer las tarjetas RFID de tipo Mifare Classic a través del dispositivo móvil es
necesario conocer sus claves de autenticación, las cuales son obtenidas a través de la
Proxmark3. Debido a que el proceso de obtención de claves requiere mucho tiempo y que es
idéntico para el resto de pruebas solamente se mostrará este resultado para la primera tarjeta
Mifare Classic 1K.

2.1. Prueba 1 – Lectura tarjeta Mifare Ultralight


En esta prueba se lee una tarjeta RFID de tipo Mifare Ultralight a través del dispositivo
móvil y utilizando un lector de tarjetas en conjunto con las librerías LibNFC.

Ilustración 19: Prueba 1 – Resultado de dispositivo móvil (arriba) y del lector con LibNFC (abajo)

Francisco Fernández Díaz 124 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

En esta primera prueba se puede observar que la información leída por el dispositivo es
idéntica a la obtenida por el lector, por lo tanto la lectura de tarjetas RFID de tipo Mifare
Ultralight es correcta.

2.2. Prueba 2 – Lectura tarjeta Mifare Classic 1K


En esta prueba se lee una tarjeta RFID de tipo Mifare Classic 1K a través del dispositivo
móvil y el lector de tarjetas junto con el programa Mfoc. En esta prueba la tarjeta posee
diferentes claves de autenticación en los sectores.

Ilustración 20: Prueba 2 – Claves obtenidas a través de la Proxmark3 (arriba), resultado de dispositivo móvil
(izquierda) y del lector con Mfoc (derecha)

Francisco Fernández Díaz 125 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

En ambos resultados se puede observar que la información leída es idéntica y por lo


tanto la lectura de tarjetas Mifare Classic 1K y la obtención de claves de autenticación es válida.

2.3. Prueba 3 – Lectura tarjeta Mifare Classic 1K


En esta prueba se lee una tarjeta RFID de tipo Mifare Classic 1K a través de dos medios:
el dispositivo móvil y el lector de tarjetas con el programa Mfoc. La tarjeta a leer posee la clave
de autenticación FFFFFFFFFFFF en todos los sectores.

Ilustración 21: Prueba 3 – Resultado de dispositivo móvil (izquierda) y del lector con Mfoc (derecha)

Al igual que en la prueba anterior ambos resultados son idénticos.

2.4. Prueba 4 – Lectura tarjeta Mifare Classic 4K (tarjeta de transporte)


En esta prueba se lee una tarjeta RFID de tipo Mifare Classic 4K a través del dispositivo
móvil y el lector de tarjetas junto con el programa Mfoc. Esta tarjeta es de transporte por lo
que se comprobará que la lectura y la decodificación de la información de transporte son
correctamente procesadas.

Francisco Fernández Díaz 126 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 22: Prueba 4 – Resultado lectura de dispositivo móvil (izquierda) y del lector con Mfoc (derecha)

En ambos resultados la información leída es idéntica. A continuación se comprobará si


la decodificación de la información de transporte es correcta.

Información general

Ilustración 23: Prueba 4 – Decodificación información general de transporte con el dispositivo móvil

Francisco Fernández Díaz 127 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 24: Prueba 4 – Decodificación información general de transporte con el lector y Mfoc GUI

Se puede observar que la información decodificada en la Ilustración 23: coincide con la


mostrada en la sección superior de la Ilustración 24: .

Historial de viajes

Ilustración 25: Prueba 4 – Decodificación historial de viajes de transporte con el dispositivo móvil

Francisco Fernández Díaz 128 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 26: Prueba 4 – Decodificación historial de viajes de transporte con el lector y Mfoc GUI

Cada campo del historial de viajes es decodificado correctamente pudiendo observar la


información de cada estación en la que el usuario ha utilizado esta tarjeta.

Subscripciones

Ilustración 27: Prueba 4 – Decodificación subscripciones de transporte con el dispositivo móvil

Francisco Fernández Díaz 129 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 28: Prueba 4 – Decodificación subscripciones de transporte con el lector y Mfoc GUI

Al igual que en la decodificación anterior cada campo de las subscripciones es


decodificado correctamente pudiendo observar todas las subscripciones a las que el usuario ha
estado inscrito con esta tarjeta.

2.5. Prueba 5 – Escritura en tarjeta Mifare Classic 1K


En esta prueba se escribe información en una tarjeta RFID de tipo Mifare Classic 1K a
través del dispositivo móvil y posteriormente la lectura de esa misma tarjeta para comprobar
que la escritura se ha llevado a cabo correctamente.

La tarjeta sobre la que se va a realizar la escritura posee la misma clave de autenticación


(FFFFFFFFFFFF) en todos los sectores.

La información a escribir es “PROYECTO DE” en el primer bloque del sector 2, y


“FRANCISCO FDEZ” en el primer bloque del sector 3, que en formato hexadecimal
corresponde a “50524F594543544F204445” y “4652414E434953434F204644455A”
respectivamente.

Francisco Fernández Díaz 130 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 29: Prueba 5 – Resultado modificación de tarjeta almacenada en el dispositivo móvil: hexadecimal
(izquierda), ASCII (derecha)

Ilustración 30: Prueba 5 – Resultado lectura de dispositivo móvil de tarjeta modificada: hexadecimal (izquierda),
ASCII (derecha)

Una vez modificada la información, escrita y leída de nuevo de la tarjeta se puede


observar que la operación se ha llevado correctamente. A continuación se comprobará si el
resultado es correcto a través del lector y el programa Mfoc.

Francisco Fernández Díaz 131 | P á g i n a


Capítulo 4: Pruebas Proyecto Fin de Carrera

Ilustración 31: Prueba 5 – Resultado lectura con el lector y Mfoc de una tarjeta escrita

Con esta comprobación se observa que la lectura a través del dispositivo y del lector
son equivalentes, por lo que esta prueba es correcta.

Francisco Fernández Díaz 132 | P á g i n a


Capítulo 5: Conclusiones y futuras líneas de trabajo Proyecto Fin de Carrera

CAPÍTULO 5:
CONCLUSIONES Y FUTURAS LÍNEAS DE
TRABAJO

Francisco Fernández Díaz 133 | P á g i n a


Capítulo 5: Conclusiones y futuras líneas de trabajo Proyecto Fin de Carrera

En este capítulo se incluyen las conclusiones obtenidas sobre el desarrollo de este


proyecto y las posibles futuras líneas de trabajo que es posible aplicar sobre la aplicación para
su mejora.

1. Conclusiones

Este proyecto ha permitido adquirir gran cantidad de conocimientos sobre el desarrollo


de aplicaciones para dispositivos Android y la tecnología NFC, completamente desconocidos
como desarrollador de aplicaciones para otros usuarios.

En el apartado Objetivos del primer capítulo se especificaron una serie de subobjetivos


necesarios para poder alcanzar el objetivo principal de este proyecto, una aplicación Android
encargada de leer, escribir, almacenar y retransmitir tarjetas RFID.

El primer objetivo planteado consistía en entender y comprender a fondo los conceptos


que se van a utilizar (NFC y librerías, Proxmark3, Android y GAE). Debido a que inicialmente
no se poseía ningún tipo de conocimiento ha sido necesario dedicarle un gran esfuerzo
visitando foros, transparencias, artículos de investigación y webs oficiales sobre estas
tecnologías para asimilar correctamente toda la información y utilizarla en posteriores tareas.

El segundo objetivo consistía en descubrir las capacidades y limitaciones de las librerías


NFC. Las librerías fueron LibNFC [26] y RFIDIOt [27] , ambas probadas en una máquina
virtual con sistema operativo Linux. Esta conclusión no fue fácil ya que para ello fue necesario
instalar dichas librerías y comprobar las capacidades de cada una de ellas, lo que conllevó las
dificultades explicadas a continuación.

Inicialmente se probó la librería RFIDIOt, la cual requiere instalar una gran cantidad de
paquetes para poder utilizarla, y algunos de ellos están obsoletos o no son compatibles con
otros programas. Además esta librería no está documentada por lo que fue necesario analizar y
comprender su código, el cual está desarrollado en Python, lenguaje que ha sido necesario
aprender ya que no se tenían conocimientos previos. Esta librería fue descartada debido a que
no era compatible con el lector de tarjetas Touchatag.

La librería LibNFC ocasionó algún problema para su instalación debido a que necesita
unos paquetes con unas versiones muy concretas pero aun así fue mucho más fácil de probar
que la librería RFIDIOt. Esta librería tampoco está documentada por lo que fue necesario el
análisis de su código fuente, más sencillo que RFIDIOt ya que está escrito en lenguaje C.

Francisco Fernández Díaz 134 | P á g i n a


Capítulo 5: Conclusiones y futuras líneas de trabajo Proyecto Fin de Carrera

El tercer objetivo trataba en aprender el funcionamiento de la Proxmark3, el cual ha


sido sencillo debido a que es muy intuitivo y posee documentación sobre su funcionamiento.
Este dispositivo posee la capacidad de leer, escribir, emular y atacar la seguridad de tarjetas
RFID por lo que su aprendizaje ha supuesto un paso muy importante para comprender
completamente la funcionalidad que debe poseer la aplicación desarrollada.

El cuarto objetivo consistía en desarrollar una aplicación compatible con la mayoría de


teléfonos con tecnología NFC existentes. Este objetivo no ha sido posible cumplirlo debido a
que las tarjetas RFID de tipo Mifare Classic (Mini, 1K o 4K) solo son compatibles si el
microchip NFC del teléfono ha sido fabricado por NXP. Para corroborar este punto la
aplicación ha sido probada en los teléfonos LG L5 E610, Samsung Galaxy Nexus, Samsung
Galaxy S4 y LG Nexus 4, funcionando en los dos primeros pero no en los dos últimos. [55]

El quinto objetivo consistía en leer, escribir, almacenar y emular tarjetas RFID a través
del teléfono. Todas estas operaciones han sido desarrolladas a excepción de la emulación
debido a que Android restringe el envío libre de comandos NFC del protocolo 14443-3, la
autenticación, lectura y escritura ya vienen implementadas a través de unos métodos
específicos que deben ser utilizados para interactuar con las tarjetas RFID. Esto también ha
influido en el algoritmo Crapto1 ya que la idea inicial era atacar la seguridad de las tarjetas
Mifare Classic directamente desde la tecnología NFC del dispositivo móvil. Para solucionar este
problema se decidió utilizar la Proxmark3 desde el teléfono conectándola a través del cable
USB OTG.

El sexto objetivo hace referencia al desarrollo de una base de datos que gestione toda la
información de la aplicación. Ya se poseían conocimientos de SQL, lenguaje parecido al
utilizado para la base de datos interna (MySQL). En el backend ha sido utilizado Google App
Engine, el cual ofrece almacenar la información en varios lenguajes de programación, que es
una gran ventaja para el programador.

Respecto a errores de tipo hardware solamente se produjo uno debido a que para
conectar el teléfono Samsung Galaxy Nexus al PC e instalar la aplicación era necesario
descargar un driver específico desde la página oficial de Samsung. [19] Esto ocurrió
únicamente con ese teléfono.

Finalmente este proyecto ha permitido, desde un punto de vista personal, conocer en


profundidad un campo de gran interés, ligado al mundo de la informática y que aún puede
expandirse mucho más ya que la tecnología NFC y Android están en pleno auge.

Francisco Fernández Díaz 135 | P á g i n a


Capítulo 5: Conclusiones y futuras líneas de trabajo Proyecto Fin de Carrera

2. Futuras líneas de trabajo

A continuación se van a explicar una serie de posibles mejoras sobre la aplicación


desarrollada:

Crear un servidor centralizado para el almacenamiento de todas las tarjetas RFID, de tal
forma que los usuarios las almacenen en dicho servidor y las consulten cuando lo deseen. El
teléfono tendría un registro de un número de tarjetas utilizadas frecuentemente que serían
almacenadas en el teléfono para su acceso más rápido, mientras que para acceder al resto
habría que recogerlas del servidor centralizado. Esto puede prevenir la pérdida de tarjetas
almacenadas de manera local en el propio teléfono. Esta mejora también podría aplicarse a las
claves y grupos de claves.

Utilizar la aplicación para acceder a servicios de transporte, control de accesos,


cerraduras y otros elementos de la vida cotidiana, haciendo que los usuarios no requieran
llevar consigo los elementos que actualmente son imprescindibles para estas tareas.

Que la aplicación interactúe con tarjetas a través del protocolo 14443-4, lo que
permitiría leer y emular pasaportes electrónicos y tarjetas de crédito. Esta sería una ampliación
interesante ya que los pasaportes y tarjetas de crédito son utilizados en el día a día y así serían
usados sin necesidad de llevarlos.

Las dos anteriores mejoras requerirían almacenar la información como elemento


seguro para que ningún usuario no deseado pudiera acceder a ella y utilizarla de una manera
inadecuada.

Hacer la aplicación más accesible para personas con discapacidades, por ejemplo,
reconocer los comandos leer y escribir vocalizando las palabras “leer” y “escribir”,
respectivamente, pronunciar el nombre con el que se almacenaría la tarjeta, la información a
escribir en una tarjeta, etc. De la misma manera la propia aplicación también iría explicando
verbalmente la situación en la que se encuentra, cuando termina de realizar una acción, la lista
de tarjetas almacenadas, etc.

Francisco Fernández Díaz 136 | P á g i n a


Referencias Proyecto Fin de Carrera

REFERENCIAS

Francisco Fernández Díaz 137 | P á g i n a


Referencias Proyecto Fin de Carrera

Las referencias consultadas son las siguientes:

[1] RAE. www.rae.es

[2] Google App Engine. https://developers.google.com/appengine/


https://appengine.google.com/

[3] Google Cloud Platform: https://cloud.google.com/

[4] Google Wallet. http://googleblog.blogspot.com/2011/09/launching-google-wallet-


on-sprint-and.html
[5] Wikipedia. http://es.wikipedia.org

[6] Java. http://www.java.com

[7] C++. http://www.cplusplus.com

[8] Oracle Corporation. http://www.oracle.com

[9] Wordreference. http://www.wordreference.com

[10] Microsoft Office 2010. http://office.microsoft.com/es-es/

[11] Visual paradigm. http://www.visual-paradigm.com/

[12] Eclipse. http://www.eclipse.org

[13] Ubuntu. http://www.ubuntu.com

[14] Windows 7. http://windows.microsoft.com/es-ES/windows7/products/home

[15] Asus. http://www.asus.com

[16] Android. https://www.android.com

[17] Open Handset Alliance. http://www.openhandsetalliance.com

[18] Android Developers. http://developer.android.com

[19] Samsung. http://www.samsung.com

[20] Proxmark3. http://proxmark.org, www.proxmark3.com

[21] Proxmark3 Manual de Referencia.


https://code.google.com/p/proxmark3/wiki/HomePage

Francisco Fernández Díaz 138 | P á g i n a


Referencias Proyecto Fin de Carrera

[22] USB Host Controller.


https://play.google.com/store/apps/details?id=hu.sztupy.android.usbhostcontrolle
r&hl=en

[23] Complete Linux Installer.


https://play.google.com/store/apps/details?id=com.zpwebsites.linuxonandroid&fe
ature=search_result#?t=W251bGwsMSwxLDEsImNvbS56cHdlYnNpdGVzLmxpbnV
4b25hbmRyb2lkIl0.

[24] Android Terminal Emulator.


https://play.google.com/store/apps/details?id=jackpal.androidterm

[25] Root Explorer.


https://play.google.com/store/apps/details?id=com.speedsoftware.rootexplorer

[26] LibNFC. http://nfc-tools.org/index.php?title=Libnfc


http://code.google.com/p/libnfc/

[27] RFIDIOt. http://rfidiot.org/

[28] Android CyanogenMod. http://www.cyanogenmod.org

[29] VMWare Player. https://www.vmware.com/es/products/player

[30] Crapto1. http://code.google.com/p/crapto1/


[31] Mfoc. https://code.google.com/p/mfoc/

[32] Mfoc GUI. https://github.com/Huuf/OV-mfoc-GUI/tree/master/mfocGUI

[33] Camtasia Studio. http://www.techsmith.com/camtasia.html

[34] Andy Rubin. Where's my Gphone?.


http://googleblog.blogspot.com.es/2007/11/wheres-my-gphone.html

[35] NFC fórum. http://www.nfc-forum.org/aboutnfc/nfc_and_contactless

[36] Cyclopaedia. http://www.cyclopaedia.es/

[37] Seas. http://www.seas.es/blog/

[38] Stackoverflow. http://stackoverflow.com/

Francisco Fernández Díaz 139 | P á g i n a


Referencias Proyecto Fin de Carrera

[39] Bueno Delgado, Mª Victoria. Pavón Mariño, Pablo. De Gea García, Alfonso. La
tecnología NFC y sus aplicaciones en un entorno universitario, Universidad
Politécnica de Cartagena, 2011

[40] Ceballos Villach, Jordi. NFC Fundamentos y Aplicaciones, Universidad Oberta de


Cataluña, 2013

[41] Antipolis, Sophia. NFCIP-1 Security Standard Protects Near Field Communication,
4th ETSI Security Workshop, 2009

[42] Flavio D. Garcia, Gerhard de Koning Gans, Ruben Muijrers, Peter van Rossum, Roel
Verdult, Ronny Wichers Schreur, and Bart Jacobs. Dismantling MIFARE Classic,
Instituto de Informática y Ciencias de la Información - Universidad de Radboud
Nijmegen, 2008.

[43] Flavio D. Garcia, Peter van Rossum, Roel Verdult, Ronny Wichers Schreur.
Wirelessly Pickpocketing a Mifare Classic Card, Universidad de Radboud
Nijmegen, 2009.

[44] Pedro Peris-López, Agustín Orfila, Julio C. Hernández-Castro and Jan C. A. van der
Lubbe. Flaws on RFID grouping-proofs. Guidelines for future sound protocols,
Journal Network and Computer Applications, 2009.

[45] Karsten Nohl, David Evans, Starbug Starbug, Henryk Plötz. Reverse-Engineering a
Cryptographic RFID Tag, Departamento de Ciencias de la Computación –
Universidad de Virginia y Chaos Computer Club, 2008

[46] Karsten Nohl. Cryptanalysis of Crypto1, Universidad de Virginia


[47] NXP. MIFARE Classic EV1 1K – Main stream contactless smart card IC for fast and
easy solution development, Rev. 3.0, 2014
[48] NXP. MIFARE Ultralight contactless single-ticket IC, Rev. 3.9, 2014
[49] Gerhard de Koning Gans, Jaap-Henk Hoepman, Flavio D. Garcia. A Practical Attack
on the Mifare Classic, Instituto de Informática y Ciencias de la Información –
Universidad de Radboud Nijmegen, 2008
[50] Wee Hon Tan. Practical Attacks on the MIFARE Classic, Departamento de
Informática – Escuela Imperial de Londres, 2009
[51] Mifare.net. http://www.mifare.net

Francisco Fernández Díaz 140 | P á g i n a


Referencias Proyecto Fin de Carrera

[52] NXP. PN532 User Manual Rev. 02

[53] NXP. PN533 User Manual Rev. 03

[54] NXP. http://www.nxp.com

[55] Compatibility Issues with Mifare Classic 1K NFC Tags. http://www.rfid-


blog.com/?p=2247

[56] Online Hex Editor. http://www.onlinehexeditor.com/

Francisco Fernández Díaz 141 | P á g i n a


Anexos Proyecto Fin de Carrera

ANEXOS

Francisco Fernández Díaz 142 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

ANEXO I:
Acrónimos y Definiciones

Francisco Fernández Díaz 143 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

En el presente apartado se van a mostrar los acrónimos y definiciones que se van a usar
a lo largo de toda la memoria.

1. Acrónimos

Acrónimo Significado
AC Anticollision Command
ACID Atomic, Consistent, Isolated, and Durable
ADT Android Developer Tools
AES Advanced Encryption Standard
API Application Programming Interface
APK Android Package
ATQA Answer To reQuest Type A
AVD Android Virtual Device
BSD Berkeley Software Distribution
CU Caso de Uso
DES Data Encryption Standard
DEX Dalvik Executables
EAL Evaluation Assurance Level
ECJ Eclipse Compile for Java
GAE Google App Engine
GPS Global Positioning System
GUI Graphic User Interface
HCE Host Card Emulation
HF High Frequency
IDE Integrated Development Environment
JDT Java Development Toolkit
JVM Java Virtual Machine
LFSR Linear Feedback Shift Register
MFOC MiFare classic Offline Cracker
MVC Modelo Vista Controlador
NDEF NFC Data Exchange Format
NFC Near Field Communication
NFCIP NFC Interface and Protocol
PC Personal Computer
PCD Proximity Coupling Devices
POR Power On Reset
REQA REQuest command Type A
RF Requisito Funcional
RFID Radio Frequency Identificator
RNF Requisito No Funcional
RNG Random Number Generation
RTD Record Type Definition
RUC Requisito de Usuario de Capacidad

Francisco Fernández Díaz 144 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

RUR Requisito de Usuario de Restricción


SDK Software Development Kit
SGL Scalable Graphics Library
SSL Secure Sockets Layer
TISC Tarjetas inteligentes sin contacto
UID Identificador único
UML Unified Modeling Language
URI Uniform Resource Identifier
USB Universal Serial Bus
USB OTG USB On-The-Go
VCD Vicinity Coupling Devices
WUPA Wake UP command Type A

Tabla 243: Acrónimos

2. Definiciones

 AES: algoritmo para cifrar información que utiliza el cifrado por bloques.
 Android: sistema operativo basado en Linux para dispositivos móviles, tales como
teléfonos inteligentes o tablets. Fue desarrollado inicialmente por Android Inc.,
una firma comprada por Google en 2005. Es el principal producto de la Open
Handset Alliance.
 API: consiste en un conjunto de llamadas que ofrecen acceso a funciones y
procedimientos representando una capa de abstracción para el desarrollador.
 App: Abreviatura de aplicación, muy utilizada cuando se refiere a aplicaciones en
terminales móviles.
 Bytecode: es un código intermedio más abstracto que el código máquina.
 Crapto1: implementaciones abiertas de ataques contra el sistema de cifrado
Crypto1.
 Crypto1: algoritmo utilizado por las tarjetas RFID de tipo Mifare Classic para
encriptar su información.
 Dalvik: es la máquina virtual que utiliza la plataforma para dispositivos móviles
Android. Dalvik ha sido diseñada por Dan Bornstein con contribuciones de otros
ingenieros de Google. Dalvik está optimizada para requerir poca memoria y está
diseñada para permitir ejecutar varias instancias de una máquina virtual
simultáneamente, delegando en el sistema operativo subyacente el soporte de
aislamiento de procesos, gestión de memoria e hilos.
 DES: algoritmo para cifrar información.

Francisco Fernández Díaz 145 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

 Framewok: término con el que se define un amplio conjunto de elementos que


permite el desarrollo y organización de software utilizando un determinado
lenguaje o tecnología.
 Google App Engine: servicio de alojamiento web que presta Google de forma
gratuita hasta determinadas cuotas.
 GPS: es un sistema de navegación que mediante satélites permite ubicar un
elemento en una latitud y longitud con un pequeño error de precisión.
 GUI: se denomina así a la parte del software que mediante el uso de elementos
gráficos ofrece al usuario la posibilidad de interactuar con el sistema.
 HCE: herramienta de Android que permite emular la norma ISO/IEC 7816 basado
en tarjetas inteligentes que utilizan el protocolo ISO/IEC 14443-4.
 Java: es un lenguaje de programación orientado a objetos, desarrollado por Sun
Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de
su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina
herramientas de bajo nivel, que suelen inducir a muchos errores, como la
manipulación directa de punteros o memoria.
 JVM: es una máquina virtual de proceso nativo, es decir, ejecutable en una
plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en
un código binario especial (el Java bytecode), el cual es generado por el compilador
del lenguaje Java.
 Kernel: núcleo de un sistema operativo y por lo tanto, pieza clave para el
funcionamiento del mismo. Responsable de dar acceso al hardware, gestionar
recursos y hacer llamadas al sistema.
 Lector RFID: dispositivo con tecnología RFID que permite leer tarjetas con su
misma tecnología.
 LFSR: registro de desplazamiento en el cual la entrada es un bit proveniente de
aplicar una función de transformación lineal a un estado anterior.
 Man-In-The-Middle: tipo de ataque informático en el que el atacante se posiciona
entre el emisor y el receptor de la información y puede escuchar e incluso
modificar la información que intercambian.
 Máquina Virtual: en informática una máquina virtual es un software que emula a
una computadora y puede ejecutar programas como si fuese una computadora real.
Este software en un principio fue definido como “un duplicado eficiente y aislado
de una máquina física”.

Francisco Fernández Díaz 146 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

 Microsoft Excel: es una aplicación distribuida por Microsoft Office para hojas de
cálculo. Este programa es desarrollado y distribuido por Microsoft, y es utilizado
normalmente en tareas financieras y contables.
 Microsoft Office: es una suite de oficina que abarca e interrelaciona aplicaciones
de escritorio, servidores y servicios para los sistemas operativos Microsoft
Windows y Mac OS X.
 Mifare: es la tecnología de tarjetas inteligentes sin contacto (TISC) más
ampliamente instalada en el mundo con aproximadamente 250 millones de TISC y
1.5 millones de módulos lectores vendidos. Es equivalente a las 3 primeras partes de
la norma ISO 14443 Tipo A de 13.56 MHz con protocolo de alto nivel. La distancia
típica de lectura es de 10 cm (unas 4 pulgadas). La distancia de lectura depende de
la potencia del módulo lector, existiendo lectores de mayor y menor alcance.
 Modelo Vista Controlador: es un patrón o modelo de abstracción de desarrollo
de software que separa los datos de una aplicación, la interfaz de usuario, y la
lógica de negocio en tres componentes distintos.
 NFC: tecnología de comunicación inalámbrica, de corto alcance y alta frecuencia
que permite el intercambio de datos entre dispositivos a menos de 10cm. Es una
simple extensión del estándar ISO 14443 (RFID).
 NFC Forum: se creó en 2004 por las tres compañías pioneras de la tecnología NFC:
Philips, Sony y Nokia, para avanzar en las especificaciones de esta tecnología.
Actualmente, cuenta con más de 160 miembros que representan a fabricantes,
desarrolladores de aplicaciones software, vendedores, instituciones financieras,
agencias gubernamentales, consorcios de transporte y organizaciones sin ánimo de
lucro.
 Open Headset Alliance: es una alianza comercial de 78 compañías para
desarrollar estándares abiertos para dispositivos móviles.
 Plugin: pieza de software que se relaciona y ejecuta con otro para aportarle una
función nueva y especifica.
 Proceso: un proceso es un programa en ejecución, y representa la unidad de
procesamiento básica gestionada por el sistema operativo.
 Proxmark3: herramienta de tecnología RFID diseñada para espiar, escuchar y
emular tarjetas RFID.
 RFID: es un sistema de almacenamiento y recuperación de datos remotos que usa
dispositivos denominados etiquetas, tarjetas, transpondedores o tags RFID.

Francisco Fernández Díaz 147 | P á g i n a


Anexo I: Acrónimos y Definiciones Proyecto Fin de Carrera

 SDK: es un conjunto de elementos para el desarrollo de aplicaciones de software.


 Sistema Operativo: Software cuya finalidad principal es simplificar el manejo de
un elemento con capacidad computacional, gestionando sus recursos, ofreciendo
servicios y ejecutando mandatos del usuario.
 Smartphone: es un término comercial para denominar a un teléfono móvil que
ofrece más funciones que un teléfono celular común.
 Tarjeta RFID: dispositivos que contienen antenas para permitirles recibir y
responder a peticiones por radiofrecuencia desde un lector RFID.

Francisco Fernández Díaz 148 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

ANEXO II:
Gestión del Proyecto

Francisco Fernández Díaz 149 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

1. Planificación del Proyecto

El proyecto se comenzó el día 27 de Junio del 2014 y ha finalizado el día 4 de Enero del
2015, una duración de 137 días sin tener en cuenta los fines de semana pero sí los días festivos
entre semana.

Se debe señalar que durante este periodo no se ha mantenido una jornada de trabajo
estable ya que por motivos laborales el tiempo de trabajo ha ido variando según la
disponibilidad que se ha tenido, la mayoría de las semanas se empleaba una jornada de dos
horas diarias, algunas de 4 ó 1 hora y en ocasiones era imposible realizar tarea alguna.

A continuación se muestra el diagrama de Gantt del proyecto, incluyendo las


subtareas de cada fase con sus respectivas duraciones y periodos de tiempo:

Francisco Fernández Díaz 150 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

Ilustración 32: Diagrama de Gantt

Francisco Fernández Díaz 151 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

2. Presupuesto del Proyecto

En este apartado se detalla el presupuesto que cubre todos los costes y las necesidades
que se plantean a lo largo de la evolución del proyecto.

2.1. Coste del personal


A continuación se calculará el coste del personal con una dedicación de un solo hombre
al mes.

Fase Rol Coste (€/hora) Horas/día Días Coste total (€)


Investigación Analista 40 2 16 1280
Análisis Analista 40 2 6 480
Diseño Analista 40 2 5 400
Configuración del
Programador 35 2 16 1120
entorno de desarrollo
Implementación Programador 35 2 73 5110
Pruebas Programador 35 2 12 840
Documentación Analista 40 2 121 9680
TOTAL 18910
Tabla 244: Coste del personal

2.2. Coste de equipos


A continuación se mostrará una tabla en la que se detallarán los costes de los equipos
informáticos empleados para el proyecto así como otros dispositivos electrónicos.

Periodo de Duración Coste


Coste (€)/ Coste
Descripción Unidades amortización proyecto asociado
Unidad total (€)
(meses) (meses) (€)
Portátil Asus
869,00 1 869,00 24 6 217,25
N53S
Touchatag 19,99 1 19,99 24 6 5,00
Proxmark3 183,94 1 183,94 24 6 45,99
Tarjetas RFID 0,52 4 2,08 24 6 0,52
Samsung
300,00 1 300,00 24 6 75,00
Galaxy Nexus
USB OTG 1,99 1 1,99 24 6 0,50
Antena HF 47,39 1 47,39 24 6 11,85
TOTAL 356,10
Tabla 245: Coste del equipo

Francisco Fernández Díaz 152 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

2.3. Coste de software


En la tabla siguiente se mostrará en detalle los costes del software adquirido para este
proyecto.

Coste Coste Periodo de Duración Coste


Descripción (€)/ Unidades total amortización proyecto asociado
Unidad (€) (meses) (meses) (€)
Eclipse 0,00 1 0,00 24 6 0,00
Android CyanogenMod 0,00 1 0,00 24 6 0,00
Android SDK 0,00 1 0,00 24 6 0,00
USB Host Controller 0,00 1 0,00 24 6 0,00
Complete Linux Installer 0,00 1 0,00 24 6 0,00
Android Terminal
0,00 1 0,00 24 6 0,00
Emulator
Explorer 0,00 1 0,00 24 6 0,00
LibNFC 0,00 1 0,00 24 6 0,00
Licencia de Microsoft
Office 2010 Hogar y 119,00 1 119,00 24 6 29,75
Estudiantes
Licencia de Microsoft
Windows 7 Home 349,00 1 349,00 24 6 87,25
Premium
Visual paradigm
0,00 1 0,00 24 6 0,00
Community Edition
VMware Player 0,00 1 0,00 24 6 0,00
MiFare classic Offline
0,00 1 0,00 24 6 0,00
Cracker
Camtasia Studio 8 0,00 1 0,00 24 6 0,00
Mifare Classic Offline
0,00 1 0,00 24 6 0,00
Cracker GUI
TOTAL 117,00
Tabla 246: Coste del software

2.4. Material fungible


A continuación se muestra el presupuesto dedicado al material de oficina de este
proyecto.

Descripción Coste total (€)


Material de papelería 40,00
TOTAL 40,00
Tabla 247: Coste del material fungible

2.5. Costes directos totales


A continuación se detallan los costes totales del proyecto.

Francisco Fernández Díaz 153 | P á g i n a


Anexo II: Gestión del Proyecto Proyecto Fin de Carrera

Descripción Coste total (€)


Personal 18910,00
Equipo 356,10
Software 117,00
Material fungible 40,00
TOTAL 19423,10

Tabla 248: Costes totales

2.6. Costes indirectos


A continuación aparece reflejado los costes indirectos con un margen del 2%.

Gastos totales (€) Margen de costes indirectos Total de riesgos (€)


19423,10 2% 388,46

Tabla 249: Coste indirectos

2.7. Beneficio
Al ser un proyecto académico no se realiza con ánimo de lucro, por lo que el beneficio
será de 0€.

2.8. Margen de riesgo


A continuación aparece reflejado los costes del margen de riesgo de un 15%.

Gastos totales (€) Coste de margen de riesgo Total de riesgos (€)


19423,10 15% 2913,46

Tabla 250: Coste del margen de riesgo

2.9. Presupuesto total


Por último, se va a mostrar un resumen del presupuesto con la suma de todos los costes
asociados al proyecto. Destacar que el IVA aplicado al presupuesto del proyecto es del 21%.

Descripción Coste sin IVA (€) IVA (€) Coste con IVA (€)
Costes totales 19423,10 4078,85 23501,95
Costes indirectos 388,46 81,58 470,04
Beneficio 0 0,00 0,00
Riesgos 2913,46 611,83 3525,29
TOTAL 22725,02 4772,26 27497,28

Tabla 251: Resumen del presupuesto del proyecto

El coste total del proyecto es de 27.497,28 € (VEINTISIETE MIL CUATROCIENTOS


NOVENTA Y SIETE CON VEINTIOCHO EUROS).

Francisco Fernández Díaz 154 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

ANEXO III:
Manual de Usuario

Francisco Fernández Díaz 155 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Este manual de usuario es una guía para utilizar la aplicación NFC en cualquier
dispositivo móvil que contenga la tecnología NFC.

Nota1: es recomendable la lectura íntegra del manual para comprender mejor el sistema.

Nota2: es recomendable no remover la tarjeta RFID una vez que la operaciones de lectura
y escritura han sido iniciadas para evitar daños en la propia tarjeta.

1. Acceso Inicial

Se debe acceder al menú de aplicaciones del dispositivo móvil y localizar el icono de la


aplicación llamado NFC como se muestra en la siguiente imagen.

Ilustración 33: Manual de usuario – Acceso inicial

Al pinchar sobre el icono se abrirá la pantalla inicial de la aplicación.

2. Pantalla Principal

En la pantalla inicial se pueden seleccionar cinco opciones: Leer, Escribir, Ver tarjetas
escaneadas, Claves y Estadísticas, las cuales están explicadas en los apartados 3, 4, 5, 6 y 7,
respectivamente, de este manual.

Francisco Fernández Díaz 156 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 34: Manual de usuario – Pantalla inicial

Nota: sólo se podrá leer o escribir una tarjeta RFID si la tecnología NFC del dispositivo
está activada.

3. Leer

Esta funcionalidad consiste en leer el contenido de una tarjeta RFID, y si se desea,


guardar su contenido en el dispositivo móvil.

Para leer una tarjeta hay que pinchar sobre el icono de la operación leer.

Ilustración 35: Manual de usuario – Acceder a leer

Francisco Fernández Díaz 157 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Posteriormente es necesario seleccionar las claves con las que la tarjeta será
autenticada y hacer click sobre el botón Leer. Existen tres opciones en la selección de claves:

 Sin claves: no se utilizará ninguna clave.


 Todas las claves: se utilizarán todas las claves almacenadas en el dispositivo
móvil.
 Grupos de claves: únicamente se utilizaran las claves pertenecientes a los grupos
de claves seleccionados.

Ilustración 36: Manual de usuario – Selección de claves en lectura

Por último hay que acercar la tarjeta RFID a leer a la parte posterior del dispositivo
móvil, aparecerá el mensaje “Leyendo tag. Por favor espere…” mientras la lectura continúe.
Cuando termine aparecerá la información leída en formato hexadecimal.

Francisco Fernández Díaz 158 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 37: Manual de usuario – Leer tarjeta

Si el contenido de un bloque puede ser autenticado pero no leído se mostrará con 32


guiones (--------------------------------).

Una vez que la tarjeta ha sido leída existe la posibilidad de borrar el contenido leído o
almacenarla en el dispositivo móvil.

Para borrar el contenido hay que hacer click sobre la opción Limpiar en el menú de
opciones y la pantalla volverá a encontrarse en la situación anterior de acercar la tarjeta RFID
al dispositivo móvil.

Ilustración 38: Manual de usuario – Limpiar lectura

Francisco Fernández Díaz 159 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Para ello se debe rellenar la siguiente información:

 Nombre: contendrá el nombre de la tarjeta. Este campo será único e irrepetible de


entre todas las tarjetas almacenadas en el dispositivo.
 Tipo: valor de clasificación de la tarjeta dentro del dispositivo móvil. Por defecto la
aplicación solo tiene “Control de acceso”, “Pasaporte” y “Transporte”.
 Contenido de la tarjeta: corresponde con el contenido de la tarjeta RFID. Por
defecto es el resultado de la lectura de la tarjeta. Cada bloque debe contener 32
caracteres hexadecimales (del 0 al 9 y ABCDEF).

Ilustración 39: Manual de usuario – Contenido tarjeta a guardar

Si se quiere seleccionar un tipo de tarjeta diferente existe la opción “--Nuevo tipo--”


entre las opciones por defecto. Al seleccionar esta opción aparecerá un diálogo donde escribir
el nombre del nuevo tipo y posteriormente aceptar la operación.

Francisco Fernández Díaz 160 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 40: Manual de usuario – Nuevo tipo de tarjeta

Una vez que el nombre, tipo y contenido de la tarjeta han sido rellenados se hace click
en la opción Guardar del menú de opciones.

Ilustración 41: Manual de usuario – Guardar tarjeta

Si la tarjeta ha sido almacenada correctamente aparecerá el mensaje “Tag almacenado”,


sino un mensaje con el error producido.

Cuando se intenta almacenar una tarjeta puede ocurrir que ya exista una guardada con
ese mismo nombre. En este caso aparecerá un diálogo ofreciendo dos opciones:

 Renombrar tarjeta: se renombrará la tarjeta que se desea guardar.

Francisco Fernández Díaz 161 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

 Reemplazar tarjeta: la tarjeta antigua será sustituida por la nueva.

Ilustración 42: Manual de usuario – Tarjeta repetida

Si se escoge la opción Renombrar aparecerá otro diálogo solicitando el nuevo nombre


de la tarjeta y una vez introducida se almacenará la tarjeta. Si se escoge Reemplazar la tarjeta
será almacenada sustituyendo a la anterior.

3.1. Ver como transporte


Una vez que la tarjeta ha sido leída (ver apartado 3 Leer) o abierta para edición (ver
apartado 5.2 Editar tarjeta) se puede ver su contenido de transporte si la tarjeta lo posee.

Para ello hay que hacer click sobre la opción “Ver como tarjeta de transporte”.

Francisco Fernández Díaz 162 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 43: Manual de usuario – Ver como transporte – Opción menú

Si la tarjeta no fuera de transporte aparecería el mensaje “Este tag no es de transporte”.

La vista de transporte posee tres secciones:

 General: contiene información de tipo genérico: identificador interno, tipo,


producto al que pertenece y el importe disponible en la tarjeta.

Ilustración 44: Manual de usuario – Ver como transporte - General

 Historial: muestra la información de los viajes que el usuario ha hecho con esta
tarjeta de transporte. Contiene el identificador, fecha y hora, compañía, vehículo,
máquina, importe y la estación del viaje.

Francisco Fernández Díaz 163 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 45: Manual de usuario – Ver como transporte - Historial

 Subscripciones: enseña las subscripciones a las que el usuario se ha registrado


con esta tarjeta. Contiene el identificador, compañía, fecha inicio, fecha fin y la
descripción de la subscripción.

Ilustración 46: Manual de usuario – Ver como transporte - Subscripciones

3.2. Ver como ASCII


Una vez que la tarjeta ha sido leída (ver apartado 3 Leer) o abierta para edición (ver
apartado 5.2 Editar tarjeta) su contenido puede ser visto con formato legible haciendo click
sobre la opción “Ver como ASCII”.

Francisco Fernández Díaz 164 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 47: Manual de usuario – Ver como ASCII – Opción menú

Con esta opción la pantalla sigue teniendo la misma estructura pero el contenido de la
tarjeta es legible.

Ilustración 48: Manual de usuario – Ver como ASCII – Contenido en ASCII

Para volver a ver el contenido en hexadecimal hay que seleccionar la opción “Ver como
HEX” en el menú de opciones.

Francisco Fernández Díaz 165 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 49: Manual de usuario – Ver como ASCII – Contenido en ASCII

3.3. Ver condiciones de acceso


Una vez que la tarjeta ha sido leída (ver apartado 3 Leer) o abierta para edición (ver
apartado 5.2 Editar tarjeta) se pueden ver sus condiciones de acceso haciendo click sobre la
opción “Ver condiciones de acceso”.

Ilustración 50: Manual de usuario – Ver condiciones de acceso – Opción menú

Esta pantalla muestra el tipo de clave (A, B, ambas o ninguna) que se necesita para
realizar una operación sobre cada bloque de la tarjeta.

Francisco Fernández Díaz 166 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 51: Manual de usuario – Ver condiciones de acceso

4. Escribir

Esta funcionalidad consiste en escribir el contenido de una tarjeta RFID almacenada en


el dispositivo móvil en una tarjeta RFID real.

Para escribir una tarjeta hay que pinchar sobre el icono de la operación escribir.

Ilustración 52: Manual de usuario – Acceder a escribir

Aparecerá un listado con todas las tarjetas almacenadas en el teléfono ordenadas en


orden alfabético y clasificadas según el tipo de tarjeta. Hay que seleccionar la que se desea
escribir.

Francisco Fernández Díaz 167 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 53: Manual de usuario – Seleccionar tarjeta a escribir

Posteriormente es necesario seleccionar las claves con las que la tarjeta será
autenticada y hacer click sobre el botón Escribir. Existen tres opciones en la selección de
claves:

 Sin claves: no se utilizará ninguna clave.


 Todas las claves: se utilizarán todas las claves almacenadas en el dispositivo
móvil.
 Grupos de claves: únicamente se utilizaran las claves pertenecientes a los grupos
de claves seleccionados.

Ilustración 54: Manual de usuario – Selección de claves en escritura

Francisco Fernández Díaz 168 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

A continuación hay que acercar la tarjeta RFID donde se va a escribir.

El dispositivo comprueba si todos los bloques pueden ser autenticados y escritos, y si la


tarjeta posee suficiente tamaño y la información a escribir es compatible mientras aparece el
mensaje “Comprobando tag. Por favor espere…”. Si es así aparecerá un diálogo indicando que la
escritura está preparada para realizarse y hacer click sobre el botón Escribir para finalizar la
operación.

Ilustración 55: Manual de usuario – Confirmación escritura

Si algún bloque no puede ser escrito aparecerá un diálogo indicandolo junto con su
motivo y dando la opción de cancelar la operación o de escribir todos los bloques que sean
posibles.

Francisco Fernández Díaz 169 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 56: Manual de usuario – Escribir todos los bloques posibles

5. Ver tarjetas escaneadas

Esta funcionalidad consiste ver y gestionar todas las tarjetas que han sido almacenadas
en el dispositivo móvil.

Para acceder a esta opción hay que pinchar sobre el icono Ver escaneados.

Ilustración 57: Manual de usuario – Acceder a escaneados

Francisco Fernández Díaz 170 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Aparecerá un listado con todas las tarjetas almacenadas en el teléfono, ordenadas


alfabéticamente y clasificadas según el tipo de tarjeta. También aparecerá la categoría “Todos”
donde se listan todas las tarjetas junto con el tipo al que pertenece.

Ilustración 58: Manual de usuario – Lista de tarjetas

5.1. Crear tarjeta


Esta función permite crear el contenido de una tarjeta nueva con todo su contenido
vacío. Para ello hay que acceder al listado de tarjetas almacenadas (ver apartado 5 Ver tarjetas
escaneadas) y hacer click sobre la opción “Crear tag” del menú de opciones.

Ilustración 59: Manual de usuario – Crear tarjeta

Francisco Fernández Díaz 171 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

A continuación hay que indicar el tipo de tarjeta que se desea crear: Mifare Ultralight,
MIfare Classic Mini, Mifare Classic 1K o Mifare Classic 4K.

Ilustración 60: Manual de usuario – Seleccionar tipo de tarjeta a crear

Al pulsar sobre un tipo se rellenará todo su contenido con caracteres con valor 0. A
continuación se muestra la apariencia de una tarjeta creada del tipo Mifare Ultralight
(izquierda) y Mifare Classic (derecha).

Ilustración 61: Manual de usuario – Tarjeta Mifare Ultralight creada (izquierda); Tarjeta Mifare Classic Mini, 1K y
4K creada (derecha)

Francisco Fernández Díaz 172 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

5.2. Editar tarjeta


Esta función permite modificar una tarjeta que ya haya sido almacenada en el
dispositivo móvil. Para ello hay que acceder al listado de tarjetas almacenadas (ver apartado 5
Ver tarjetas escaneadas) y hacer click sobre la tarjeta a modificar.

Ilustración 62: Manual de usuario – Editar tarjeta

Posteriormente se realizan las modificaciones deseadas (nombre, tipo o contenido de la


tarjeta) y se pulsa sobre el botón Guardar del menú de opciones.

5.3. Borrar tarjeta


Esta función permite eliminar una tarjeta que ya haya sido almacenada previamente en
el dispositivo móvil. Para ello hay que acceder al listado de tarjetas almacenadas (ver apartado
5) y mantener pulsada la tarjeta a eliminar.

Aparecerá un diálogo en el que hay que pulsar sobre el botón Aceptar para confirmar la
acción.

Francisco Fernández Díaz 173 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 63: Manual de usuario – Eliminar tarjeta

Volverá a mostrarse el listado de tarjetas almacenadas pero sin la tarjeta eliminada.

5.4. Importar tarjetas


Esta función permite importar el contenido de tarjetas desde ficheros ubicados en el
dispositivo móvil. Para ello hay que acceder al listado de tarjetas almacenadas (ver apartado 5
Ver tarjetas escaneadas) y hacer click sobre la opción “Importar tags” del menú de opciones.

Ilustración 64: Manual de usuario – Importar tarjetas

A continuación aparecerá un diálogo donde se debe indicar la siguiente información y


pulsar sobre el botón Aceptar:

Francisco Fernández Díaz 174 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

 Ruta: ruta de la carpeta donde están almacenadas las tarjetas a importar. Si se


indica el nombre de un fichero solo se importará esa tarjeta y si se indica la ruta de
una carpeta se importarán todas las tarjetas que haya en ese directorio.
 Importar claves: si se marca esta opción las claves de la tarjeta serán almacenadas
en el dispositivo móvil.

Ilustración 65: Manual de usuario – Importar tarjetas – Configuración

Si la importación termina correctamente aparecerá el mensaje “Tags almacenados”,


sino el mensaje de error correspondiente.

Nota: el nombre de los ficheros a importar deben tener el formato NOMBRE_TIPO.dmp,


donde:

 Nombre: corresponde al nombre que se le asignará a la tarjeta cuando se almacene


en el dispositivo.
 Tipo: corresponde al tipo de tarjeta. Puede ser mfu (Mifare Ultralight), mfcm (Mifare
Classic Mini), mfc1k (Mifare Classic 1K) y mfc4k (Mifare Classic 4K).

6. Claves

Esta funcionalidad consiste en la gestión de las claves almacenadas en el dispositivo


móvil.

Para acceder a esta opción hay que pinchar sobre el icono Claves.

Francisco Fernández Díaz 175 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 66: Manual de usuario – Acceder a claves

Aparecerá una pantalla con dos secciones:

 Todos: muestra las claves almacenadas en el dispositivo móvil. Existen dos tipos:
o Sistema: claves por defecto del sistema y que no pueden ser modificadas ni
eliminadas.
o Personalizada: claves insertadas o importadas por el usuario. Estas claves
pueden ser modificadas y eliminadas.
 Grupos: muestra todos los grupos de claves almacenados en el dispositivo móvil.

Ilustración 67: Manual de usuario – Lista de claves (izquierda) y grupos de claves (derecha)

Francisco Fernández Díaz 176 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

6.1. Crear clave


Esta función permite crear una nueva clave. Para ello hay que acceder al listado de
claves almacenadas (ver apartado 6 Claves) y hacer click sobre la opción “Nuevas claves” del
menú de opciones.

Ilustración 68: Manual de usuario – Crear clave

Aparecerá un diálogo solicitando que se introduzca la nueva clave. Para introducir


varias claves al mismo tiempo cada una de ellas debe ir escrita en una línea diferente.

Ilustración 69: Manual de usuario – Crear una clave (izquierda); varias claves (derecha)

Francisco Fernández Díaz 177 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Por último hacer click en el botón Aceptar para confirmar la acción. Si las claves son
almacenadas correctamente aparecerá el mensaje “Claves almacenadas”, sino el mensaje de
error correspondiente.

Nota: las claves deben contener 12 caracteres hexadecimales (del 0 al 9 y ABCDEF).

6.2. Editar clave


Esta función permite modificar una clave ya almacenada. Para ello hay que acceder al
listado de claves almacenadas (ver apartado 6 Claves) y hacer click sobre la clave a editar.

Aparecerá un diálogo solicitando introducir la nueva clave.

Ilustración 70: Manual de usuario – Editar clave

Por último hacer click en el botón Aceptar para confirmar la acción. Si las claves son
almacenadas correctamente aparecerá el mensaje “Clave modificada”, sino el mensaje de error
correspondiente.

Nota: las claves deben contener 12 caracteres hexadecimales (del 0 al 9 y ABCDEF).

6.3. Borrar clave


Esta función permite eliminar una clave ya almacenada. Para ello hay que acceder al
listado de claves almacenadas (ver apartado 6 Claves) y mantener pulsada la clave a eliminar.

Aparecerá un diálogo en el que hay que pulsar sobre el botón Aceptar para confirmar la
acción.

Francisco Fernández Díaz 178 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 71: Manual de usuario – Eliminar clave

Volverá a mostrarse el listado de claves almacenadas pero sin la clave eliminada.

6.4.Importar claves
Esta función permite importar claves desde ficheros ubicados en el dispositivo móvil.
Para ello hay que acceder al listado de claves almacenadas (ver apartado 6 Claves) y hacer click
sobre la opción “Importar claves” del menú de opciones.

Ilustración 72: Manual de usuario – Importar claves

A continuación aparecerá un diálogo donde se debe indicar la ruta donde se encentran


los ficheros de claves a importar.

Francisco Fernández Díaz 179 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 73: Manual de usuario – Importar claves – Configuración

Si la importación termina correctamente aparecerá el mensaje “Claves almacenadas”,


sino el mensaje de error correspondiente.

Nota: los ficheros deben tener extensión .txt y los claves que posea deben estar formadas
por 12 caracteres hexadecimales (del 0 al 9 y ABCDEF).

6.5. Grupos de claves


Los grupos de claves son conjuntos de claves ya almacenadas en el teléfono.

2.3.1. Crear grupo de claves


Esta función permite crear un nuevo grupo de claves. Para ello hay que acceder al
listado de claves almacenadas (ver apartado 6 Claves) y hacer click sobre la opción “Crear
grupo de claves” del menú de opciones.

Francisco Fernández Díaz 180 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 74: Manual de usuario – Crear grupo de claves

Aparecerá un diálogo solicitando que se introduzca:

 Nombre: nombre del grupo de claves a crear. Este nombre es único por lo que no
podrá existir otro grupo con este nombre.
 Claves: seleccionar las claves que van a componer este grupo de claves.

Ilustración 75: Manual de usuario – Crear grupo de claves

Por último hacer click en el botón Aceptar para confirmar la acción. Si el grupo de
claves es almacenado correctamente aparecerá el mensaje “Grupo de claves almacenado”, sino
el mensaje de error correspondiente.

Francisco Fernández Díaz 181 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Nota: las claves utilizadas para crear el grupo de claves deben haber sido almacenadas
previamente.

2.3.2. Editar grupo de claves


Esta función permite modificar un grupo de claves ya almacenado. Para ello hay que
acceder al listado de claves almacenadas (ver apartado 6 Claves), acceder a la sección de grupos
de claves y hacer click sobre el grupo de claves a modificar.

Aparece una nueva pantalla listando las claves que forman el grupo de claves.

Ilustración 76: Manual de usuario – Claves de grupo de claves

A continuación hay que hacer click sobre la opción “Editar” del menú de opciones.

Francisco Fernández Díaz 182 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 77: Manual de usuario – Editar grupo de claves – Opción menú

Posteriormente aparecerá un diálogo solicitando que se modifique la información


deseada (nombre o claves del grupo de claves).

Ilustración 78: Manual de usuario – Editar grupo de claves

Por último hacer click en el botón Aceptar para confirmar la acción. Si el grupo de
claves es almacenado correctamente aparecerá el mensaje “Grupo de claves modificado”, sino
el mensaje de error correspondiente.

Nota: las claves utilizadas para editar el grupo de claves deben haber sido almacenadas
previamente.

Francisco Fernández Díaz 183 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

2.3.3. Borrar grupo de claves


Esta función permite eliminar un grupo de claves ya almacenado. Para ello hay que
acceder al listado de claves almacenadas (ver apartado 6 Claves), acceder a la sección de grupos
de claves y mantener pulsado el grupo de claves a eliminar.

Aparecerá un diálogo en el que hay que pulsar sobre el botón Aceptar para confirmar la
acción.

Ilustración 79: Manual de usuario – Eliminar grupo de claves

Volverá a mostrarse el listado de grupos de claves almacenados pero sin el grupo


eliminado.

7. Ver estadísticas de uso

Esta funcionalidad consiste en visualizar las estadísticas de uso de las claves utilizadas
para las operaciones con las tarjetas RFID.

Para ver las estadísticas hay que pinchar sobre el icono de la operación estadísticas.

Francisco Fernández Díaz 184 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

Ilustración 80: Manual de usuario – Acceder a escribir

Aparecerá un listado con todas las claves que se han utilizado en algún momento para
la lectura o escritura de tarjetas RFID.

Este listado está compuesto por 4 campos:

 Clave: clave con la que se ha realizado la operación.


 Nº Lecturas: indica el número de veces que la clave ha sido utilizada para leer una
tarjeta RFID.
 Nº Escrituras: indica el número de veces que la clave ha sido utilizada para
escribir una tarjeta RFID.
 Porcentaje: indica el porcentaje del número total de veces que se ha utilizado la
clave (lectura y escritura) con respecto a todos los usos de todas las claves. Las
claves son ordenadas de mayor a menor según el valor de este campo.

Ilustración 81: Manual de usuario – Seleccionar tarjeta a escribir

Francisco Fernández Díaz 185 | P á g i n a


Anexo III: Manual de Usuario Proyecto Fin de Carrera

8. Activar tecnología NFC

Este es un mecanismo que cada vez que la aplicación es iniciada comprueba si el


dispositivo posee tecnología NFC, y si es así comprueba si está activada. En caso de que no esté
activada muestra un diálogo ofreciendo acceder a la sección “Conexiones inalámbricas” de los
ajustes del dispositivo móvil y activarla.

Ilustración 82: Manual de usuario – Activar tecnología NFC

Francisco Fernández Díaz 186 | P á g i n a


Anexo IV: Scripts y Modificaciones de Aplicaciones Proyecto Fin de Carrera

ANEXO IV:
Scripts y Modificaciones de
Aplicaciones

Francisco Fernández Díaz 187 | P á g i n a


Anexo IV: Scripts y Modificaciones de Aplicaciones Proyecto Fin de Carrera

Para el desarrollo de este proyecto se ha visto necesario crear una serie de scripts y
modificar el código de otras aplicaciones. En este anexo se indican dichos elementos.

Scripts de instalación

En este punto se especifican los scripts en lenguaje BASH utilizados para las reiterativas
instalaciones del software LibNFC y Mfoc en PC y el dispositivo móvil, y Proxmark3 en el
dispositivo móvil. En ambos máquinas la instalación se ha hecho sobre una máquina virtual
Linux.

Script de instalación Proxmark3 en dispositivo móvil

#! /bin/bash

su

mount

mount -o remount /dev/block/platform/omap/omap_hsmmc.0/by-name/system /system

cd system

chmod 777 lib

chmod 777 bin

dd if=/sdcard/libusb.so of=/system/lib/libusb.so

dd if=/sdcard/libreadline.so of=/system/lib/libreadline.so

dd if=/sdcard/libtermcap.so of=/system/lib/libtermcap.so

dd if=/sdcard/proxmark3 of=/system/bin/proxmark3

Script de instalación LibNFC y Mfoc en PC y dispositivo móvil

#! /bin/bash

#-----------------------------------

#LibNFC

#-----------------------------------

sudo apt-get install build-essential subversion automake autoconf libusb-dev


libpcsclite-dev libusb-0.1-4 libpcsclite1 pcscd pcsc-tools libtool flex
libccid libacsccid1

wget http://libnfc.googlecode.com/files/libnfc-1.7.0-rc7.tar.gz

tar -xvzf libnfc-1.7.0-rc7.tar.gz

Francisco Fernández Díaz 188 | P á g i n a


Anexo IV: Scripts y Modificaciones de Aplicaciones Proyecto Fin de Carrera

rm libnfc-1.7.0-rc7.tar.gz

cd libnfc-1.7.0-rc7

autoreconf -vis

./configure --with-drivers=acr122_pcsc && make clean all

sudo make install

cd ..

sudo ldconfig

#-----------------------------------

#Mfoc

#-----------------------------------

wget https://mfoc.googlecode.com/files/mfoc-0.10.6.tar.gz

tar xvf mfoc-0.10.6.tar.gz

cd mfoc-0.10.6/

autoreconf -vis

automake

autoconf

./configure

make all

sudo make install

Modificación de LibNFC

Debido a que LibNFC posee escasa documentación se ha visto necesario realizar una
serie de modificaciones en el código fuente para entender su funcionalidad.

Estas modificaciones han consistido en añadir mensajes de depuración para saber cuál
es la situación de la aplicación en cada momento. Además estos mensajes han servido para
conocer la información y los comandos enviados entre el lector y la tarjeta RFID, tanto en
formato hexadecimal como ASCII.

Estas modificaciones se han hecho en lenguaje C.

Francisco Fernández Díaz 189 | P á g i n a


Anexo IV: Scripts y Modificaciones de Aplicaciones Proyecto Fin de Carrera

Modificación de Proxmark3 para el dispositivo móvil

Esta aplicación solo se ha modificado para que las claves obtenidas sean legibles para el
usuario ya que inicialmente eran codificadas en base octal.

Estas modificaciones se han hecho en lenguaje C.

Modificación de programa Mfoc GUI

Este programa se ha modificado únicamente para obtener la base de datos utilizada


para decorar la información de una tarjeta de transporte y así poder utilizarla desde el
dispositivo móvil.

Estas modificaciones se han hecho en lenguaje C#.

Francisco Fernández Díaz 190 | P á g i n a


Proyecto Fin de Carrera

Francisco Fernández Díaz 191 | P á g i n a

También podría gustarte