Post on 31-Oct-2021
SISTEMA DE VALIDACIÓN WEB DE DOCUMENTOS MEDIANTE ESCANEO DE
CÓDIGOS QR HACIENDO USO DE DISPOSITIVOS MÓVILES
FERNANDO ALONSO MUNEVAR BEJARANO
Cód. 20152678030
JOHN KENEDY CHAVARRO MUÑOZ
Cód. 20152678024
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA
BOGOTÁ D.C.
2018
2
SISTEMA DE VALIDACIÓN WEB DE DOCUMENTOS MEDIANTE ESCANEO DE
CÓDIGOS QR HACIENDO USO DE DISPOSITIVOS MÓVILES
FERNANDO ALONSO MUNEVAR BEJARANO
Cód. 20152678030
JOHN KENEDY CHAVARRO MUÑOZ
Cód. 20152678024
Proyecto de grado para optar al título de:
Ingenieros en Telemática
DIRECTOR INTERNO:
MIGUEL ÁNGEL LEGUIZAMÓN PÁEZ
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA
BOGOTÁ D.C.
2018
3
Nota de aceptación:
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________ Firma del Tutor
______________________________ Firma del Jurado
Bogotá, D.C. 8 de agosto de 2018
4
TABLA DE CONTENIDO
INTRODUCCIÓN ................................................................................................... 12
1. DEFINICIÓN DEL PROYECTO ....................................................................... 14
1.1. TÍTULO ..................................................................................................... 14
1.2. PLANTEAMIENTO DEL PROBLEMA ....................................................... 14
1.3. FORMULACIÓN DEL PROBLEMA .......................................................... 15
1.4. JUSTIFICACIÓN ....................................................................................... 15
1.5. ALCANCES Y DELIMITACIONES ............................................................ 18
1.6. OBJETIVOS .............................................................................................. 20
1.6.1. Objetivo general ................................................................................. 20
1.6.2. Objetivos específicos ......................................................................... 20
1.7. MARCO TEÓRICO ................................................................................... 20
1.7.1. PHP .................................................................................................... 20
1.7.2. Android ............................................................................................... 21
1.7.3. Código QR ........................................................................................ 21
1.7.4. Encriptación ...................................................................................... 30
1.7.5. Función Hash ..................................................................................... 31
1.7.6. SHA .................................................................................................... 32
1.7.7. Vector de inicialización ...................................................................... 34
1.8. MARCO HISTÓRICO................................................................................ 35
1.9. METODOLOGÍA ....................................................................................... 37
1.9.1. PHVA ................................................................................................ 38
1.9.2. FACTIBILIDAD ECONÓMICA ............................................................ 41
1.10. CRONOGRAMA .................................................................................... 43
2. CONSULTA Y VALIDACIÓN DE DOCUMENTOS MEDIANTE CÓDIGOS QR
Y SERVICIOS WEB ............................................................................................... 44
2.1. ANTECEDENTES ..................................................................................... 44
2.2. VALIDACIÓN POR CÓDIGO QR ............................................................. 46
5
3. APLICACIÓN DE TÉCNICAS DE CIFRADO EXISTENTES EN CÓDIGOS QR
50
3.1. TÉCNICAS DE CIFRADO ........................................................................ 50
3.2. FUNCIONES HASH .................................................................................. 52
3.3. DESCRIPCIÓN DEL PROCESO .............................................................. 54
3.3.1. Limitaciones ....................................................................................... 54
3.3.2. Cifrado ................................................................................................ 55
3.3.3. Descifrado .......................................................................................... 57
4. DESARROLLO E IMPLEMENTACIÓN DE LA APLICACIÓN MÓVIL ............. 59
4.1. DESCRIPCIÓN DE LA APLICACIÓN MÓVIL ........................................... 59
4.2. HERRAMIENTAS DE DESARROLLO ...................................................... 59
4.3. PROCESO DE DESCIFRADO DE UN CÓDIGO QR MEDIANTE LA
APLICACIÓN MÓVIL .......................................................................................... 60
4.4. PROCESO DE VALIDACIÓN DE UN DOCUMENTO MEDIANTE LA
APLICACIÓN MÓVIL .......................................................................................... 61
5. DESARROLLO E IMPLEMENTACIÓN DE LA PLATAFORMA WEB .............. 63
5.1. DESCRIPCIÓN APLICACIÓN WEB ......................................................... 63
5.2. HERRAMIENTAS UTILIZADAS ................................................................ 64
5.3. FUNCIONEs ............................................................................................. 64
5.3.1. Generación de diplomas nuevos ........................................................ 65
5.3.2. Modificación de datos a diplomas nuevos .......................................... 65
5.3.3. Generación de stickers para diplomas existentes .............................. 66
5.3.4. Generación de claves ............................................................................ 67
6. CONSULTA DE INFORMACIÓN ACTUALIZADA MEDIANTE CONEXIÓN A
BASE DE DATOS .................................................................................................. 68
7. CONCLUSIONES ............................................................................................ 75
8. BILIOGRAFÍA .................................................................................................. 77
6
TABLA DE ILUSTRACIONES
Ilustración 1. Estructura del código QR .................................................................. 22
Ilustración 2. Patrón de búsqueda ......................................................................... 23
Ilustración 3. Patrón de tiempo .............................................................................. 23
Ilustración 4. Corrección del error .......................................................................... 25
Ilustración 5. Flexibilidad en códigos QR ............................................................... 26
Ilustración 6. Patrones de enmascaramiento ......................................................... 27
Ilustración 7. Enmascaramiento de códigos QR .................................................... 28
Ilustración 8. Localización de los patrones de búsqueda ....................................... 29
Ilustración 9. Cálculo del tamaño del módulo ........................................................ 29
Ilustración 10. Información del formato .................................................................. 30
Ilustración 11. Decodificación QR .......................................................................... 30
Ilustración 12. Ciclo PHVA ..................................................................................... 38
Ilustración 13. Fases del método RUP ................................................................... 39
Ilustración 14. Cronograma del proyecto ............................................................... 43
Ilustración 15. Verificación de diplomas por el ICFES ........................................... 45
Ilustración 16. Verificación de diplomas por el CPNAA .......................................... 46
Ilustración 17. Proceso de descifrado simétrico ..................................................... 50
Ilustración 18. Proceso de descifrado asimétrico ................................................... 52
Ilustración 19. Niveles de corrección de error (ECC) ............................................. 54
Ilustración 20. Creación de hash a partir de un texto ............................................. 56
Ilustración 21. Cifrado de la información de los códigos QR .................................. 57
Ilustración 22. Proceso de descifrado de la información de un código QR ............ 58
Ilustración 23. Proceso de descifrado de códigos QR ........................................... 60
Ilustración 24. Proceso completo de validación de documento desde la app ........ 62
Ilustración 25. Componentes del servicio web ....................................................... 66
Ilustración 26. Llaves del usuario. .......................................................................... 67
Ilustración 27. Distribución Bases de Datos ........................................................... 69
Ilustración 28. Método que inicia el timer para el test en aplicación móvil ............. 71
Ilustración 29. Método de impresión del tiempo requerido para la validación ........ 71
Ilustración 30. Inicialización del timer de prueba .................................................... 72
Ilustración 31. Detención del timer e impresión en pantalla del tiempo requerido . 72
Ilustración 32. Tiempo requerido para establecer la conexión y consulta en la base
de datos ................................................................................................................. 73
7
TABLAS
Tabla 1. Recursos humanos. ................................................................................. 42
Tabla 2. Recursos técnicos. ................................................................................... 42
Tabla 3. Gastos necesarios. .................................................................................. 42
Tabla 4. Comparación entre procesos de verificación de documentos. ................. 49
8
RESUMEN
La falsificación de documentos es un tema que hay que tomar muy en serio. Sin
embargo, cuando se trata de temas académicos, este problema es mucho más
común de lo que pensamos. En Colombia existen empresas que se especializan en
la falsificación de documentos y ofrecen sus servicios por internet con diferentes
“planes” o “paquetes”. Esto es un problema muy grave cuando se trata de
contratación de personal, pues las empresas están contratando personas con
documentos académicos falsos.
Uno de los mayores problemas con la falsificación de documentos es que las
personas están pagando sumas altísimas para falsificar diplomas o actas de grado
de diferentes colegios e incluso universidades para poder acceder a ciertos puestos.
Esto es más grave cuando se trata de contratación de profesionales de la salud
donde es un campo cuya falsificación de diploma es también se lleva a cabo y,
según Jairo Cifuentes, secretario General de la Universidad Javeriana, es en el área
donde más falsificación de diplomas hay.
Además se sabe que no solo hay empresas que falsifican documentos, como
diplomas de grado, sino que además hay personas al interior de las universidades
que están falsificando información dentro de las mismas bases de datos de las
universidades, lo que lo que agrava el problema porque este tipo de corrupción está
permeando las áreas administrativas de estas instituciones.
A partir de esto, la presente propuesta quiere contribuir a la solución de este
problema de falsificación de documentos mediante la implementación de una
aplicación web y de la utilización de códigos QR (enfocada hacia los diplomas de
grado) que permita, a través del escaneo de un código QR incrustado en el diploma,
validar que la información contenida en un diploma sea acorde a las bases de datos
9
de las instituciones; esto, implementando técnicas de cifrado que aseguren la
información contenida en los códigos QR y a su vez, la creación de los diplomas.
Este prototipo comprende dos elementos principales: uno, que es una aplicación
web que permite la generación de diplomas, y dos, una aplicación móvil desarrollada
para sistemas Android que permite escanear con la ayuda de la cámara de un
celular los códigos QR de los documentos y así validar que la información contenida
el documento corresponde a las bases de datos de las instituciones.
Para el desarrollo de este prototipo se ha optado por la implementación de
criptografía asimétrica (con los pares de llaves pública y privada) con el fin de
mejorar la seguridad a la hora de cifrar la información.
10
ABSTRACT
The falsification of documents is a matter that must be taken very seriously.
However, when it comes to academic topics, this problem is much more common
than we think. In Colombia there are specialized companies in falsifying documents
and offer their services over internet with different "plans" or "offers". This is a very
serious problem when it comes to hiring personnel, because companies are hiring
people with false academic documents.
One of the biggest problems with falsifying documents is that people are paying lots
of money to falsify diplomas or degree certificates from different schools and even
universities to be able to access certain positions. This is more serious when it
comes to hiring health professionals where it is a field whose counterfeit diploma is
also carried out and, according to Jairo Cifuentes, General Secretary of the
Javeriana University, is in this area where more falsification of diplomas there are.
In addition it is known that not only there are companies that falsify documents, such
as diplomas of degree. There are people inside the universities who are falsifying
information within the same data bases of the universities, which aggravates the
problem because this kind of corruption is permeating the administrative areas of
these institutions.
From this, the present proposal wants to contribute to the solution of this problem of
forgery of documents through the implementation of a web application and the use
of QR codes (focused on the degree diplomas) that allows, through the scanning of
a QR code embedded in the diploma, validate that the information contained in a
diploma is in accordance with the databases of the institutions; this, implementing
encryption techniques that ensure the information contained in QR codes and in turn,
the creation of diplomas.
11
This prototype includes two main elements: one, which is a web application that
allows the generation of diplomas, and two, a mobile application developed for
Android systems that allows scanning the QR codes of documents with the help of
a cell phone camera thus validate that the information contained in the document
corresponds to the databases of the institutions.
For the development of this prototype, we have opted for the implementation of
asymmetric cryptography (with public and private key pairs) in order to improve
security when encrypting information.
12
INTRODUCCIÓN
El desarrollo de las tecnologías de la información junto con la posibilidad de
adquisición (a bajos costos) de cualquier dispositivo de impresión y/o escaneo ha
permitido que personas con conocimientos realicen copias idénticas de documentos
académicos tales como diplomas, actas de grado, certificados de estudio, etc.,
haciendo que la falsificación de documentos académicos vaya en aumento.
En Colombia, por ejemplo, existen empresas dedicadas a la fabricación y expedición
de diplomas falsos que tienen en alerta a las universidades y área de recursos
humanos de las empresas, las cuales reciben documentos falsos para las
solicitudes de empleo. Según Edgar Zamudio, director de procesos académicos del
Politécnico Grancolombiano, de cien solicitudes de verificación de documentos, 35
resultan falsas.1
Esto, ha traído consigo una serie de retos para las instituciones académicas que les
sugiere desarrollar métodos de verificación de la autenticidad de documentos
expedidos, que son solicitados por terceros para actividades como la contratación
de personal en organizaciones, entre otros.
Si bien es cierto que el desarrollo tecnológico permite que el ser humano realice
tareas de forma ágil y precisa, es necesario que la verificación de autenticidad de
documentos sea realizada de esta misma forma.
Por lo anterior, el presente proyecto ofrece una propuesta de un sistema telemático
que realiza la validación de documentos mediante el uso de códigos de respuesta
1Forero, Oriana. Mafia de falsificación de diplomas se infiltra en las universidades. (2014). [online] Disponible
en: http://www.eltiempo.com/archivo/documento/CMS-13475997 [Fecha de consulta: 18 Feb. 2018].
13
rápida o QR (Quick Response) permitiendo de forma rápida y precisa verificar la
autenticidad de un documento expedido por una institución académica.
Un código QR es un código de barras de dos dimensiones diseñado para decodificar
su contenido a una alta velocidad. Tiene la capacidad de almacenar hasta 7.089
caracteres numéricos y 4.296 caracteres alfanuméricos. Está definido por el
estándar ISO/IEC 18004:2006. Puede ser leído con la ayuda de un dispositivo móvil
que posea un cámara y un software de lectura de códigos QR que decodifica la
información contenida en éste y, una vez leído, puede realizar acciones: desde
mostrar un simple texto plano hasta redireccionar a una página web.2
Este sistema está basado en una aplicación web que permite la generación e
inserción de un código QR tanto a imágenes como a archivos en formato PDF
implementando técnicas de cifrado existentes que garanticen la seguridad y
confiabilidad de la información contenida en el código y a su vez, evite la falsificación
de los mismos.
El sistema está apoyado en una aplicación móvil que realiza el escaneo óptico
(mediante la cámara del dispositivo) de los códigos QR generados y, con una
conexión a internet, presente la información contenida en el documento a validar.
La aplicación web del sistema está desarrollado bajo el lenguaje PHP en su versión
7.0, base de datos en MySQL 5.7. La aplicación móvil está desarrollada en lenguaje
Android.
2 About QR-Codes (2018). [online] Disponible en: http://www.mobile-barcodes.com/about-qr-codes/ [Fecha
de consulta: 18 Feb. 2018].
14
1. DEFINICIÓN DEL PROYECTO
1.1. TÍTULO
Sistema de validación web de documentos mediante escaneo de códigos QR
haciendo uso de dispositivos móviles.
1.2. PLANTEAMIENTO DEL PROBLEMA
Actualmente la validación de documentos tiene un papel importante en cualquier
organización sin importar su naturaleza, y es que es totalmente normal ver que una
organización expida un documento ya sea para certificar o validar que una persona
u organización tiene algún tipo de relación con ésta. Sin embargo, esto ha traído
consigo una serie de prácticas que afectan este proceso como lo es la falsificación;
es allí donde las organizaciones han venido investigando y aplicando diferentes
técnicas de autenticación para sus documentos, de tal manera que la información
en el momento en el que llegue a un tercero sea tomada de forma veraz.
Por ejemplo, los colegios, universidades y demás entidades manejan diferentes
documentos importantes como actas de grado, boletines, diplomas, carnés, entre
otros; que debido a su importancia dentro de diferentes trámites legales, son
muchas veces falsificados por personas inescrupulosas con el objetivo de adquirir
cualquier beneficio.
Estos documentos muchas veces son requeridos por otras entidades para constatar
la veracidad de la información presentada por una persona dentro de un
procedimiento legal, un ejemplo de esto es la solicitud por parte de una empresa del
diploma o acta de grado para verificar los estudios que un candidato a un trabajo
posee. Un problema presente en la actualidad es la falsificación de estos
15
documentos, que es usada por incautos que los presentan como prueba legal para
tales trámites.
Para evitar esta falsificación, las entidades generan sus propios sistemas de
verificación (ya sea de forma manual o digital). Es el caso, por ejemplo, de
instituciones educativas cuyo personal humano es el encargado de constatar la
validez de sus documentos. Para este caso, muchas veces los empleadores envían
personal o realizan llamadas a las instituciones relacionadas en los documentos
para cotejar la información presentada por las personas, lo cual requiere más tiempo
de lo que debería ser y solamente para conocer si la documentación es real o no.
Las entidades estatales, por su parte, poseen sistemas personalizados de
verificación (como el portal de validación de documentos generados por el Sistema
de Información DACN) para tal fin; sin embargo, la validación se realiza desde un
portal web al que se debe ingresar y luego digitar el número del documento. Esto
hace engorroso el sistema de validación de documentos digitales debido a que se
debe contar con un equipo de cómputo e ingresar manualmente la información a
buscar. Por otra parte, las entidades que no posean un sistema de validación están
supeditadas a que el personal humano verifique su autenticidad.
1.3. FORMULACIÓN DEL PROBLEMA
¿De qué manera verificar la autenticidad de certificados académicos de forma ágil?
1.4. JUSTIFICACIÓN
La falsificación de documentos es un problema que ha aquejado no solo a Colombia
sino al mundo entero, sin embargo, basta con levantar la cabeza y observar lo que
ha sucedido en nuestro país con temas de falsificación para lograr darse cuenta que
esta es una práctica muy común en nuestra sociedad, esta mala práctica ha
ocasionado problemas graves en el país y ha llegado a comprometer muchas vidas,
16
es lo que ha salido a la luz en muchos noticieros nacionales y de lo que ha llegado
a hablar Jairo Cifuentes, secretario General de la Universidad Javeriana en un
diálogo con KyenYKe medio digital de información “Esto se convierte en un gran
inconveniente, sobre todo por personas que falsifican títulos en el sector salud, que
es en el que más casos hay… por eso es que las IPS y EPS deben ser muy rigurosos
en los procesos de verificación”3.
Según una investigación realizada por este mismo medio, existen varios sitios web
que ofrecen sus servicios de falsificación de títulos de diferentes carreras y
universidad, todo a elección del cliente, sin embargo, todo apunta a que es una red
organizada de falsificadores, pues en varias páginas web se muestran los mismos
ejemplos de los cartones que pueden llegar a imprimir con el objetivo de demostrar
su calidad de impresión y junto a éstos muestran algunas de las impresoras que son
utilizadas para llevar a cabo este proceso.
Otro dato curioso es que ofrecen además distintos paquetes según las necesidades
del clientes, llegando a ofrecer así un primer paquete básico que tiene un valor de
aproximadamente un millón de pesos y otro más completo que tiene un valor poco
mayor a los dos millones de pesos; en el primero de éstos entregan al cliente
únicamente el diploma y acta de grado, mientras que en el segundo paquete ofrecen
todos los documentos requeridos que certifiquen frente a cualquier órgano de
control cualquier estudio realizado, los documentos en este paquete según el
vendedor son totalmente verificables en la institución académica, de tal forma que
se creará un registro con toda la información académica del cliente como si éste
hubiera realizado realmente todos sus estudios en la institución, aseguran los
vendedores que cuentan con tramitadores que tienen relación con las instituciones
las cuales les permiten registrar toda la información requerida de su cliente y así
3 Chacón, Mateo (2016). Así funciona el mercado negro de los diplomas falsos en Colombia.
[online] Disponible en: https://www.kienyke.com/historias/diplomas-falsos-colombia [Fecha de consulta 15 Feb. 2018].
17
puede llegar a ofrecer lo que ellos llaman “diplomas legales”, de esta forma y según
este vendedor existen varios testimonios de sus clientes, los cuales afirman que
gracias a sus “títulos legales” han podido acceder a puestos de trabajo sin que las
empresas se hayan dado cuenta de la falsificación de los títulos presentados. Los
precios según información de este portal web pueden llegar a variar según el título
y la universidad de la cual se quiera “certificar” el cliente.
La falsificación de títulos ha sido una gran fuente de ingresos para toda red de
falsificadores, ya que hay títulos de las más prestigiosas universidades del país que
pueden llegar a costar unos nueve millones de pesos, sin embargo existen otros
lugares que falsifican y ofrecen títulos por un valor más asequible, en Bogotá por
ejemplo, es posible dirigirse al centro de la ciudad por los alrededores de la carrera
9 con calle 11 y encontrar multitud de sitios que ofrecen estos servicios, el cliente
podrá adquirir títulos desde cuatrocientos mil pesos y llegan a ofrecer títulos de
maestría por valores que no superan los dos millones de pesos.
En Colombia existe una ley que busca controlar la falsificación de documentos, pero
esta ley tiene algunos huecos que permiten que las falsificaciones se sigan creando
día tras día, pues el artículo 289 de la ley 599 del 2000 dice:
“ARTÍCULO 289. FALSEDAD EN DOCUMENTO PRIVADO. El que falsifique
documento privado que pueda servir de prueba, incurrirá, si lo usa, en prisión de
uno (1) a seis (6) años.”4
A partir del artículo citado se puede analizar que para que se configure el delito,
primero que todo se debe presentar el documento falsificado como prueba y
segundo debe ser utilizado el documento falsificado para un fin. En conclusión si se
4 Corte constitucional de Colombia (2009). Sentencia C-637/09.- Demanda de inconstitucionalidad
por omisión legislativa relativa [online] Disponible en: http://www.corteconstitucional.gov.co/RELATORIA/2009/C-637-09.htm [Fecha de consulta 15 Feb. 2018].
18
obtiene un falso título en una de estas organizaciones y nunca es utilizado, no podrá
ser procesada la persona por falsificación.5 Esto conlleva a que las falsificaciones
de documentos se sigan creando y ya será el cliente quien determine si va a utilizar
o no el título que ha adquirido de forma fraudulenta.
Según el diario El País en el Valle del Cauca hay decenas de denuncias por falsos
ingenieros que están ejerciendo sus supuestas profesiones, según cifras en las
universidades, instituciones de formación y fiscalía en el año 2014, se descubrieron
allí más de 1200 profesionales de papel6.
A raíz de esta problemática empresas de seguridad como el Grupo Atlas Seguridad
Integral, diseñó un servicio en el cuál se encargan de la verificación de hojas de
vida, el jefe del área de investigaciones de esta empresa en un diálogo con el diario
El País dijo “Hemos encontrado en hojas de vida que no sólo falsifican títulos, sino
el lugar de residencia y los antecedentes laborales. Encontramos casos como el de
una empresa constructora muy importante del Valle que tenía un ingeniero al frente
de una obra y resulta que solo estudió el primer semestre en Manizales y no volvió;
o un administrador de un hotel que le hicieron el título en San Nicolás. También
varios casos de médicos que llegan del exterior y no son ciertos sus títulos y varias
enfermeras falsas”.
1.5. ALCANCES Y DELIMITACIONES
Debido a su forma de implementación (web) el sistema para la generación de los
códigos QR puede ser accedido desde cualquier lugar con acceso a internet. Así
5 Gerencie (2017). ¿Cuándo se configura el delito de falsificación de documento privado? [online]
Disponible en: https://www.gerencie.com/cuando-se-configura-el-delito-de-falsificacion-de-documento-privado.html [Fecha de consulta 15 Feb. 2018]. 6 El País de Cali (2015). En el Valle ya han descubierto a más de 1.200 profesionales con título
falso. [online] Disponible en http://www.elpais.com.co/cali/exclusivo-en-el-valle-ya-han-descubierto-a-mas-de-1-200-profesionales-con-titulo-falso.html [Fecha de consulta 15 Feb. 2018].
19
mismo, la lectura y descifrado de estos debe hacerse mediante un dispositivo móvil
que incorpore cámara y un software de lectura de códigos QR.
Por su parte, este sistema está enfocado en instituciones académicas quienes son
las principales afectadas en la falsificación de documentos, y específicamente en la
generación de diplomas de grado. Sin embargo, el uso de los códigos QR para la
validación de documentos puede aplicarse a diferentes sectores (como entidades
gubernamentales) por su facilidad de lectura y la versatilidad en su configuración,
siendo esto último, junto con la popularidad que los códigos QR poseen, la razón
por la cual este tipo de código ha sido seleccionado entre los demás tipos de código
de dos dimensiones (2D) (como TrillCode, BeeTagg, ShotCode, entre otros) para
que sirva de apoyo en la validación de documentos.
Así mismo, la aplicación móvil está desarrollada en lenguaje Android, debido a su
amplia difusión y popularidad. Según Gartner (2017) el sistema operativo Android
alcanza el 82% del total del mercado.7
Para la instalación del sistema, se requiere PHP en su versión 7.0 y motor de bases
de datos PosgreSQL. La aplicación móvil requiere de sistema operativo Android 4.1
o mayor.
7Gartner (2017). Fierce Battle Between Apple and Samsung to Hold the No. 1 Global Smartphone
Ranking. [online] Disponible en: https://www.gartner.com/newsroom/id/3609817 [Fecha de consulta 16 Feb. 2018].
20
1.6. OBJETIVOS
1.6.1. Objetivo general
Desarrollar un sistema telemático basado en un servicio web que permita validar la
autenticidad de certificados académicos mediante el escaneo de un código QR con
la ayuda de una plataforma móvil, asegurando la información contenida en el código
mediante técnicas de cifrado.
1.6.2. Objetivos específicos
● Agilizar la consulta y validación de certificados académicos mediante servicios
web a partir de la lectura de un código QR.
● Implementar técnicas de cifrado existentes para garantizar la seguridad de la
información contenida en el código QR.
● Desarrollar una plataforma móvil que permita hacer lectura y descifrado de un
código QR cuyo resultado sea la presentación de información específica de una
persona.
● Desarrollar un servicio web que permita generar e integrar códigos QR a
imágenes o documentos académicos en PDF.
● Establecer una conexión con la base de datos que permita obtener información
en tiempo real sobre los datos a consultar.
1.7. MARCO TEÓRICO
1.7.1. PHP
PHP es el acrónimo de "PHP: Hypertext Preprocessor", es un lenguaje de 'scripting'
de propósito general y de código abierto que está especialmente pensado para el
desarrollo web y que puede ser embebido en páginas HTML. Su sintaxis recurre a
21
C, Java y Perl, siendo así sencillo de aprender. El objetivo principal de este lenguaje
es permitir a los desarrolladores web escribir dinámica y rápidamente páginas web
generadas.8
1.7.2. Android
Es una pila de software para dispositivos móviles compuesto por: Sistema
Operativo, Middleware, y Aplicaciones clave. Es un sistema operativo basado en
Linux diseñado para dispositivos móviles touchscreen como teléfonos inteligentes y
tabletas. Es una tecnología de código abierto que permite al software ser modificado
y distribuido libremente por fabricantes y desarrolladores. Fue dado a conocer a lo
largo del 2007 con la inauguración del Open Handset Alliance, quienes son los
encargados de sistema operativo.9
1.7.3. Código QR 10
Es el acrónimo de Quick Response (respuesta rápida). Un código QR es código de
barras de dos dimensiones cuya lectura se debe hacer por lectores de código QR
(como las cámaras de celulares). Son similares a los códigos de barras usados en
inventarios y en productos vendidos al por menor, con la excepción que pueden
contener más información. De hecho, los códigos QR pueden contener miles de
caracteres alfanuméricos (hasta 4000 caracteres en un solo código) haciéndolos
muy útiles para cualquier organización. Generalmente, consisten en cuadrados de
color negro organizados en un fondo blanco. Sin embargo, los cuadros pueden ser
de colores diferentes al negro, y el fondo no debe ser necesariamente blanco.11
8 PHP (2018). Prefacio. [online] Disponible en http://php.net/manual/es/preface.php [Fecha de
consulta 16 Feb. 2018]. 9 Prassana Kumar Dixit. Android. India: Vikas. 2014 10 Kato, Hiroko. Tan, Keng. Chai Douglas. Barcode for Mobile Devices. UK. Cambridge University
Press. 2010. 11 Price, Kella. INFOLINE: QR Codes for trainers. Estados Unidos: ASTD. 2013.
22
Fue desarrollado por Denso Wave en 1994. El código QR consta de una matriz de
dos dimensiones que posee patrones de detección de posición en tres esquinas.
Como su nombre indica, fue diseñado para ser leído rápidamente en cualquier
dirección. Así pues, el código QR fue desarrollado para mejorar la velocidad de
lectura de códigos de barra de dos dimensiones (2D). Entre otras características del
código QR está la alta capacidad de información contenida y la habilidad de
seleccionar diferentes niveles para corrección de errores.
El código QR ha sido aprobado como un estándar internacional, el ISO/IEC 18004.
1.7.3.1. Estructura
El código QR consiste en siete elementos conocidos como: patrón de búsqueda,
patrón de tiempo, patrón de alineamiento, zona reservada, información de formato,
área de información y separador, como se muestra en la Ilustración 1.
Ilustración 1. Estructura del código QR
Fuente: Barcode for Mobile Devices
1.7.3.1.1. Patrón de búsqueda
Está localizado en tres esquinas (Ilustración 2). Cuando el código es escaneado,
estos patrones son los primeros en ser localizados por por el lector (cámara de
dispositivo móvil), que localiza la posición del código muy rápidamente. Los radios
de los espacios en blanco y negro en una línea que atraviesa el centro del patrón
23
son 1 : 1 : 3 : 1 : 1, en cualquier ángulo. Este conjunto de radios permite la rápida
detección de los tres patrones de búsqueda. Una vez la posición del código es
encontrada, el tamaño L, el ángulo y la orientación son calculados a partir de la
posición de los tres patrones de búsqueda. Esto permite que el código QR sea leído
en cualquier dirección.
Ilustración 2. Patrón de búsqueda
Fuente: Barcode for Mobile Devices
1.7.3.1.2. Patrón de tiempo
Consiste en un par de bordes (horizontal y vertical) ubicados entre los patrones de
búsqueda (Ilustración 3). Dichos bordes se usan para calcular el centroide de cada
celda y modificarlo cuando se encuentren distorsiones en el código QR o cambios
en el campo de la celda.
Ilustración 3. Patrón de tiempo
Fuente: Barcode for Mobile Devices
24
1.7.3.1.3. Patrón de alineamiento
Permite la corrección de cualquier distorsión. Esto es posible determinando las
coordenadas centrales de cada patrón de alineamiento y ajustando los centroides
de las celdas. La celda negra aislada dentro de cada patrón de alineamiento permite
calcular rápidamente la coordenada central del patrón.
1.7.3.1.4. Información de formato
Indica la versión de código QR, el nivel de corrección de error y la máscara usada
para el código QR. Además, ésta área es la primera en ser leída en el proceso de
decodificación.
1.7.3.1.5. Área de información
Aquí es donde la información original y el código Reed-Solomon son codificados. El
código Reed-Solomon es método matemático de corrección de errores desarrollado
inicialmente para sondas planetarias y satélites artificiales como una medida para
mitigar el ruido en las comunicaciones. Tiene la capacidad de hacer corrección a
nivel de byte.
1.7.3.1.6. Zona Reservada
El código QR requiere una zona reservada o margen. Ésta zona permite que el
código sea distinguido de su color de fondo, lo cual produce una lectura precisa de
forma rápida.
25
1.7.3.2. Corrección del error
El código QR tiene la capacidad de corrección del error, restaurando la información
original si el código está sucio o dañado. Hasta el 30% del código puede ser
restaurado incluso si el código QR está dañado como lo muestra la ilustración 4.
Ilustración 4. Corrección del error
Fuente: Barcode for Mobile Devices
La corrección de errores se realiza mediante la implementación del código Reed
Solomon a la información original. Hay cuatro niveles de corrección de error:
● L, aproximadamente el 7%
● M, aproximadamente el 15%
● Q, aproximadamente el 25%
● H, aproximadamente el 30%
El usuario puede seleccionar esta opción de acuerdo a sus necesidades. Entre más
alta sea la corrección de error más incrementa la cantidad de información a ser
codificada, lo cual implica un código QR más grande. La opción M es la más usada.
El nivel de corrección de error debe ser escogido de acuerdo a la cantidad de
información que lo necesita. Por ejemplo, por cada 50 de 100 palabras (en código)
que necesitan corrección, se requieren 100 palabras del código Reed Solomon. Por
lo tanto, el número total de palabras es de 200. Quiere decir que 50 palabras (en
26
código) de 200 pueden ser corregidas. Esto es una tasa del 25% de corrección de
error en relación con el total de palabras, que corresponde al nivel de corrección de
error Q.
1.7.3.3. Ventajas
● Flexibilidad en el formato del símbolo: una funcionalidad de color inverso
permite que los símbolos sean impresos de la forma blanco en negro, o negro
en blanco. Además, el código QR puede codificar y decodificar celdas redondas.
Esto es una gran ventaja para impresión en materiales que no necesariamente
tienen un color de fondo (o blanco). En algunos casos, dependiendo de la
técnica implementada, las celdas pueden aparecer redondas. Cuando el código
QR es impreso en material como vidrio, puede ser decodificado desde color
negro, para verlo más claramente remitirse a la ilustración 5.
Ilustración 5. Flexibilidad en códigos QR
Fuente: Barcode for Mobile Devices
● Enmascaramiento: Como se muestra en las ilustraciones 6 y 7 es una técnica
usada para permitir la lectura fácil y rápida del código. Esta técnica asigna
puntos blancos y negros de forma uniforme y ayuda a prevenir la duplicación de
patrones. Así mismo, ayuda a prevenir que el área de información tenga los
mismos patrones en blanco y negro como el patrón de búsqueda, ya que puede
confundir el programa de lectura y afectar su rendimiento. Existen ocho patrones
de enmascaramiento que son escogidos por el codificador, quién selecciona
27
cuál es el mejor de acuerdo a la salida (seleccionando la mejor distribución
posible).
Ilustración 6. Patrones de enmascaramiento
Fuente: Barcode for Mobile Devices
28
Ilustración 7. Enmascaramiento de códigos QR
Fuente: Barcode for Mobile Devices
● Función de adición estructurada: mejora la escalabilidad del código QR
dividiéndolo hasta en 16 áreas. De esta forma, un código QR muy grande puede
ser dividido en pequeñas partes, así el tamaño de la celda (símbolo) y la
capacidad de información puede ser manipulada para manejar restricciones de
espacio y limitaciones de las aplicaciones del dispositivo móvil. Un software
lector puede reconstruir la información almacenada en varios códigos QR como
una sola.
29
1.7.3.4. Decodificación
El proceso de decodificación se compone de cuatro pasos:
a. Se localizan los patrones de búsqueda, y se calcula el centro de cada uno
(Ilustración 8).
Ilustración 8. Localización de los patrones de búsqueda
Fuente: Barcode for Mobile Devices
b. Se determina el tamaño del módulo del símbolo mediante la medición de Wul y
Wur; y se determina el tamaño del símbolo mediante el cálculo del tamaño de
D (Ilustración 9).
Ilustración 9. Cálculo del tamaño del módulo
Fuente: Barcode for Mobile Devices
c. La información de formato es decodificada y se definen el nivel de corrección
de error y el patrón de enmascaramiento a usar (Ilustración 10).
30
Ilustración 10. Información del formato
Fuente: Barcode for Mobile Devices
d. Se detecta el bloque de información y las palabras usadas para la corrección de
error son removidas. La información no procesada es decodificada de acuerdo
al nivel de corrección de error y al patrón de enmascaramiento definidos. Como
resultado, se obtiene el texto en plano (Ilustración 11).
Ilustración 11. Decodificación QR
Fuente: Barcode for Mobile Devices
1.7.4. Encriptación 12
Es el proceso por el cual se puede transformar un mensaje en texto normal o
plaintext en texto encriptado o codificado, lo que asegura que dicho texto no puede
ser leído sin utilizar un proceso contrario denominado desencriptación que da lugar
12 Picouto, F. Lorente, Iñaki. García-Moran, J. Ramos, A. Hacking y Seguridad en Internet. Madrid:
Alfaomega. 2008.
31
a la conversión del texto encriptado en texto normal. Para realizar estos procesos
es requerido un algoritmo de encriptación (función matemática), llaves de
encriptación (contraseña de encriptación) y la longitud de la llave. Esto, debería
usarse para conseguir cosas como: protección de datos que se transmiten a través
de redes de comunicaciones, para que éstos no puedan ser interceptados, leídos o
manipulados; detectar alteraciones que se puedan producir en los datos; verificar la
autenticidad de una transacción, documento o mensaje; entre otras.
1.7.5. Función Hash
Es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en
una nueva serie de caracteres con una longitud fija. Independientemente de la
longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma
longitud.13
A diferencia de las claves públicas o las contraseñas, una función hash no posee
clave, pues es una encripción en una sola dirección. La principal aplicación de las
funciones hash en criptografía es la integridad de los mensajes. El valor hash
proporciona una huella digital del contenido de un mensaje, la cual asegura que el
mensaje no ha sido alterado por algún intruso, virus u otros medios.
Los algoritmos hash son efectivos debido a que existe una muy baja probabilidad
que existan dos mensajes (en texto plano) con el mismo hash resultante.
Funciones hash que más se usan actualmente:14
● HMAC (Hashed Message Authtentication Code)
● MD2 (Message Digest 2)
13 Kaspersky (2014). ¿Qué Es Un Hash Y Cómo Funciona? [online] Disponible en
https://latam.kaspersky.com/blog/que-es-un-hash-y-como-funciona/2806/ [Fecha de consulta 17 Feb. 2018]. 14 Northcutt, Stephen (2008). Hash Functions [online] Disponible en https://www.sans.edu/cyber-
research/security-laboratory/article/hash-functions [Fecha de consulta: 17 Feb. 2018].
32
● MD4 (similar a MD2)
● MD5 (similar a MD4)
● SHA (Secure Hash Algorithm)
1.7.6. SHA
La familia SHA es un sistema de funciones hash criptográficas relacionadas con la
Agencia de Seguridad Nacional de los Estados Unidos y publicadas por el National
Institute of Standards and Technology (NIST). Presenta una metodología de
operación muy similar a la de MD5, aunque con la variación de ofrecer un resumen
de 160 bits, lo que lo hace más robusto. El primero en salir fue SHA (posteriormente
renombrado SHA-0 para evitar confusiones). Dos años más tarde el primer sucesor
de SHA fue publicado con el nombre de SHA-1. Hoy en día existen cuatro variantes
más publicadas bajo el nombre de SHA-2, cuyas diferencias se basan en un diseño
algo modificado y rangos de salida incrementados: SHA-224, SHA-256, SHA-384,
y SHA-512. En la actualidad empieza a dibujarse el SHA-3 15
SHA-1:
Fue creado por la NSA (US National Security Agency) en 1995, después de la
primera versión de SHA (que también se conoció como SHA-0) en 1993, y es parte
del DSS (Digital Signature Standard).
Produce un hash de 160 bits de la entrada seleccionada, que se asemeja al hash
del algoritmo MD5. Usa 80 rondas de operaciones criptográficas para cifrar y
asegurar un objeto de información. Algunos de los protocolos que usan SHA-1 son:
15 Paths. Eleven (2013) MD5: vulnerabilidades y evoluciones. [online] Disponible en http://blog.elevenpaths.com/2013/11/md5-vulnerabilidades-y-evoluciones-i.html [Fecha de consulta: 17 Feb. 2018].
33
● TLS (Transport Layer Security)
● SSL (Secure Socket Layer)
● PGP (Pretty Good Privacy)
● SSH (Secure Shell)
● S/MIME (Secure/Multipurpose Internet Mail Extensions)
● IPSec (Internet Protocol Security)
SHA-1 suele usarse en aplicaciones criptográficas y entornos que requieren una
integridad de datos alta. También es usado para identificar errores en la transmisión
de datos y errores en suma de verificación.
SHA-2: 16
Al igual que SHA-1, fue creado por la NSA (US National Security Agency) en
colaboración con el NIST (National Institute of Science and Technology) como una
mejora al algoritmo SHA-1. SHA-2 tiene seis variantes, las cuales difieren en
proporción con el tamaño del bit usado para cifrar la información:
● SHA-224
● SHA-256
● SHA-284
● SHA-512
● SHA-512/224
● SHA-512/256
El número en cada variante representa el valor del bit. SHA-2 proporciona mejor
prevención frente a colisiones, lo que significa que la misma información siempre
16 Techopedia (2018).Secure Hash Algorithm 2 (SHA-2) [online]. Disponible en
https://www.techopedia.com/definition/30571/secure-hash-algorithm-2-sha-2 [Fecha de consulta: 18 17 Feb. 2018]
34
tiene un hash diferente. SHA-2 usa de 64 a 80 rondas de operaciones criptográficas,
y suele usarse para validar y firmar certificados de seguridad digital y documentos.
SHA-3:
Es el último de toda la familia de algoritmos SHA, lanzado por la NIST (National
Institute of Science and Technology) el 5 de agosto de 2015. Aunque pertenece a
la misma familia SHA, es muy diferente de la estructura de SHA-1 y SHA-2.
SHA-3 es un subconjunto de la familia criptográfica Keccak (algoritmo seleccionado
por la NIST en una competición de algoritmos criptográficos).17
SHA-3 consiste en cuatro funciones hash criptográficas:18
● SHA3-224
● SHA3-256
● SHA3-384
● SHA3-512
1.7.7. Vector de inicialización 19
Es un número arbitrario que puede ser usado junto con una clave secreta para el
cifrado de información. Este número es implementado una única vez en una sesión.
17 Wikipedia.Secure Hash Algorithm 3 [online]. Disponible en https://en.wikipedia.org/wiki/SHA-3
[Fecha de consulta: 18 Feb. 2018] 18 Information Technology Laboratory (2015). SHA-3 Standard: Permutation-Based Hash and
Extendable-Output Functions [online] Disponible en https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf [Fecha de consulta: 18 Feb. 2018] 19 Techtarget (2011). Initialization Vector. [online] Disponible
http://whatis.techtarget.com/definition/initialization-vector-IV [Fecha de consulta 20 Feb. 2018]
35
El uso de un vector de inicialización previene la repetición en el cifrado de
información, lo que hace que sea más difícil vulnerarlo mediante ataques de
diccionario que permitan encontrar patrones y se rompa el cifrado. Por ejemplo, una
secuencia puede aparecer dos o más veces dentro del cuerpo de un mensaje. Si
hay secuencias repetidas en la información cifrada, un atacante puede asumir que
las secuencias correspondientes en el mensaje también fueron idénticas. El vector
de inicialización previene que aparezcan secuencias de caracteres duplicadas en el
texto cifrado.
El vector de inicialización ideal es que sea un número aleatorio que sea conocido
por el destinatario para facilitar el descifrado de información cuando ésta sea
recibida. El vector de inicialización puede transmitirse de forma independiente,
tramitarse por adelantado o ser incluido como parte de la sesión antes de
intercambiar la información. El tamaño del vector de inicialización (el número de bits
o de bytes que contiene) depende del método de cifrado. Usualmente, el vector de
inicialización se compara con el tamaño de la clave de cifrado o del bloque de cifrado
en uso.
1.8. MARCO HISTÓRICO
El código QR ha tenido una amplia difusión debido a la facilidad de uso y las
diferentes aplicaciones que se le han dado. En el momento de su lanzamiento, en
1994, su propósito era ayudar a rastrear vehículos durante su fabricación. Desde
ahí se empezó a implementar en otros sectores (alimentario, farmacéutico, etc.) y
se convirtió en un elemento indispensable en la sociedad japonesa para almacenar
información.
En el año 2002, su tendencia y distribución se facilitó gracias a los dispositivos
móviles con función de lectura de códigos QR y acceso a internet.
En 2012, el código QR ganó el premio al mejor diseño otorgado por el "Japan
36
Institute of Design" mediante votación de los Medios de Comunicación sobre
Asuntos Industriales de Japón.20
En lo concerniente a la validación de documentos, varias instituciones han
implementado diferentes métodos que ayudan a verificar la autenticidad de
documentos. Sin embargo, en este campo la implementación de códigos QR no ha
tenido una amplia difusión.
La Registraduría Nacional del Estado, por ejemplo, realiza la validación de la cédula
cuando se encuentra en trámite mediante haciendo uso de un código QR, siendo
implementado en las contraseñas de duplicados de cédulas, con el objetivo de
validar que la persona se encuentra realizando el trámite de duplicado.
El INVIMA por su parte, no implementa códigos QR en la validación de documentos,
pero tiene en su página web un servicio para la consulta y verificación de
documentos firmados. Tal servicio funciona para Certificados de Inspección
Sanitaria en Puerto y documentos con firma digital. Para el primer caso, se debe
contar con el número de documento y número de radicado, dirigirse a una
determinada página web y efectuar la consulta llenando el formulario con los dos
números descritos anteriormente; para el segundo caso, se debe ingresar el número
de documento y seguir una serie de pasos para verificar la firma digital (a partir de
certificados digitales).
La Superintendencia De Notariado y Registro hace uso de códigos QR para la
validación de papel de seguridad de los instrumentos públicos sometidos a registro.
Esto con el fin de confirmar la validez de un documento pasado por papel de
seguridad dentro del proceso de validación del papel de seguridad de escrituras
públicas.
20 QR Question (2015). Historia Código QR. [online]. Disponible en
http://www.qrquestion.info/historia-codigo-qr/ [Fecha de consulta: 20 Feb. 2018]
37
Desde el 2013, la alcaldía municipal de Barrancabermeja implementa códigos QR
para garantizar la validez del certificado de territorialidad. Esto, a causa de
manipulaciones fraudulentas de este tipo de documento.
Para el año 2015, un artículo publicado por en la IEEE titulado “Real-time Printed
Document Authentication Using Watermarked QR Code” presenta una propuesta
técnica de autenticación de documentos impresos mediante el uso de códigos QR
con una marca de agua.
Los anteriores son algunos de los casos que muestran uno de los usos útiles que
puede darse a los códigos QR. Así mismo, se evidencia en cada uno la necesidad
de validar diferentes tipos de documento a causa de la importancia de la información
tratada y de su riesgo de falsificación.
1.9. METODOLOGÍA
El desarrollo del proyecto se llevará a cabo siguiendo una serie de fases
determinadas por el ciclo de mejora continua PHVA, el cual permitirá mantener de
forma constante un progreso positivo para el proyecto, pues se estará verificando
cada actividad o fase realizada para detectar los posibles problemas y luego se
realizarán los ajustes necesarios para cubrir los posibles problemas encontrados en
la verificación.
En relación al desarrollo propio de la plataforma web, se llevará a cabo siguiendo
los parámetros de la metodología RUP y el desarrollo de la aplicación móvil se
realizará aplicando la metodología Mobile-D.
38
1.9.1. PHVA 21
El ciclo PHVA (Planear, Hacer, Verificar, Actuar), que también es conocido como
Ciclo de mejora continua o Círculo de Deming, describe los cuatro pasos esenciales
que se deben llevar a cabo de forma sistemática para lograr la mejora continua,
entendiendo como tal al mejoramiento continuado de la calidad (disminución de
fallos, aumento de la eficacia y eficiencia, solución de problemas, previsión y
eliminación de riesgos potenciales, etc.).
Está compuesta de cuatro etapas cíclicas, de forma que una vez acabada la etapa
final se debe volver a la primera y repetir el ciclo de nuevo, de forma que las
actividades son reevaluadas periódicamente para incorporar nuevas mejoras.22
Ilustración 12. Ciclo PHVA
Fuente: Calidad - El ciclo PHVA
21 Jimeno, Jorge (2013). Ciclo PDCA (Planificar, Hacer, Verificar y Actuar): El círculo de Deming
de mejora continua. [online] Disponible en https://www.pdcahome.com/5202/ciclo-pdca/ [Fecha de consulta: 20 Feb. 2018] 22 Blog-Top. (2014). El ciclo PHVA Ejemplo de Aplicación de esta Herramienta de Calidad. [online]
Disponible en http://www.blog-top.com/el-ciclo-phva-ejemplo-de-aplicacion-de-esta-herramienta-de-calidad/ [Fecha de consulta: 20 Feb. 2018]
39
Enfocadas en el actual proyecto, las cuatro etapas describen:
● Planear: inicialmente, se establecerán las metas propuestas y el dominio que
tendrá el sistema de validación de documentos, permitiendo conocer así cuáles
serán las posibles aplicaciones para el sistema que se desarrollará, qué se
espera como resultado del sistema de validación y cuáles y cómo se realizarán
cada uno de los procesos que intervienen en la validación de documentos tanto
en la plataforma web como en los dispositivos móviles.
● Hacer: en esta fase se iniciará con el desarrollo del sistema de validación. Con
base en la fase anterior se crearán las interfaces para los usuarios tanto móviles
como web, se realizará el desarrollo del core del sistema de tal forma que se
cumplan los objetivos planteados en la fase inicial y se hará uso de la tecnología
necesaria para que el código QR pueda ser leído por móviles y se logre
establecer la comunicación entre los clientes y el servidor, quien consultará a
su vez la base de datos para realizar la validación y responder a los clientes con
toda la información relacionada al documento validado. El desarrollo del sistema
se llevará a cabo siguiendo la metodología RUP (Proceso Unificado Racional)
y cumpliendo con cada una de sus fases:23
Ilustración 13. Fases del método RUP
Fuente: dtyoc.com – Modelo RUP – Luis Catellanos
23 Castellanos, Luis (2016). Modelo RUP – IBM [online] Disponible en
https://dtyoc.com/2016/06/07/modelo-rup-ibm/ [Fecha de consulta 21 Feb, 2018]
40
○ Inicio: se realiza el levantamiento de información, con el objetivo de determinar
el alcance del proyecto teniendo en cuenta factores como: concurrencia de
usuarios, tecnologías a implementar (S.O. móvil), mecanismos de seguridad
(algoritmos de cifrado), presentación de la información, entre otros.
○ Elaboración: se realizan todos los casos de uso y diagramas necesarios para
poder establecer cada uno de los actores y procesos de la plataforma WEB y la
plataforma móvil.
○ Construcción: se desarrolla la funcionalidad del sistema, ultimando todos los
requerimientos establecidos en la fase inicial.
○ Transición: se realiza el despliegue del sistema y se realizan pruebas en la
plataforma WEB y la plataforma móvil para, posteriormente, hacer las
correcciones requeridas.
Para realizar el desarrollo de la aplicación móvil se aplicará la metodología Mobile-
D, siguiendo las siguientes fases:
o Exploración: Se realiza la planeación de la aplicación móvil para verificar los
códigos QR, definiendo las características que tendrá, los dispositivos para los
cuales será creada la aplicación y los procesos que será capaz de realizar.
o Iniciación: Se establecen los recursos físicos y técnicos necesarios para
desarrollar y poner en funcionamiento la aplicación móvil lectora de códigos QR,
además se establecen los días en los que se realizarán las pruebas iniciales y
pruebas finales.
o Producción: Se pone en marcha el desarrollo de la aplicación según los
requerimientos y la planificación realizada, se llevarán a cabo tantos ciclos como
sean necesarios de planificación, trabajo y liberación (con la realización de
pruebas de la integración), hasta que se dé por finalizado el desarrollo de la
aplicación.
41
o Estabilización: Se lleva a cabo la integración total de todos los avances en
desarrollo y se realizan todas las pruebas de funcionamiento necesarias para
asegurar que la aplicación es capaz de leer lo códigos QR y realizar la validación
de los documentos con ayuda de la aplicación web desarrollada.
o Prueba y reparación del sistema: Después de tener todos los avances de
desarrollo integrados, se realizan las pruebas finales y las correcciones de los
errores encontrados, el objetivo será obtener una versión estable y que cumpla
con todos los requerimientos, en este caso que sea capaz de llevar a cabo la
lectura de los códigos QR, descifrar la información capturada y establecer la
comunicación con el servidor web para realizar la validación de los documentos.
● Verificar: después de lograr avances en el desarrollo del sistema de validación,
se realizan pruebas periódicas en el servidor y los dispositivos móviles, tanto
estáticas como dinámicas. Se realizan pruebas de rendimiento, carga, estrés y
usabilidad, de tal forma que el sistema de validación reciba todas las
correcciones necesarias para su optimización.
● Actuar: a partir de la información recolectada en la fase anterior, se realizan las
correcciones necesarias para que el sistema de validación quede finalmente
optimizado, que realice la validación de forma correcta desde diferentes
dispositivos móviles, que la base de datos y el servidor tengan un buen
rendimiento y que el sistema en general funcione de forma adecuada.
1.9.2. FACTIBILIDAD ECONÓMICA
Para la ejecución del proyecto, se debe contar con los recursos humanos y técnicos
descritos en las tablas 1 y 2:
42
Tabla 1. Recursos humanos
Fuente: Propia
Tabla 2. Recursos técnicos
Fuente: Propia
La tabla 3 muestra el total de gastos incluyendo gastos de papelería e imprevistos
que se deben tener en cuenta en cualquier proyecto.
Tabla 3. Gastos necesarios
Fuente: Propia
43
Ilustración 14. Cronograma del proyecto Fuente: Propia
1.10. CRONOGRAMA
44
2. CONSULTA Y VALIDACIÓN DE DOCUMENTOS MEDIANTE CÓDIGOS QR
Y SERVICIOS WEB
2.1. ANTECEDENTES
La validación de documentos cuya verificación es requerida por diferentes entidades
pasa por procesos que, en ocasiones, requiere un tiempo largo de espera
dependiendo de la institución de la cual proceda dicho documento.
En los casos más comunes, el proceso de validación consiste en que, la entidad
que requiere verificar la autenticidad de un documento, realiza una llamada (la vía
más rápida) a la institución que lo expidió esperando obtener información acerca de
la persona cuyos datos están contenidos en dicho documento (graduando). Esto a
su vez requiere que la persona que recibió la llamada tenga autorización para
revisar el folio y libro donde está la información del graduando (de forma física o
digital), o tenga autorización de ingreso a las bases de datos de estudiantes que
pertenecieron y se graduaron en dicha institución. Este proceso puede demorar
algunos minutos o hasta días, dependiendo de los procesos internos de cada
institución.
Esta situación es común principalmente en colegios, donde no cuentan con
sistemas de validación electrónicos que faciliten esta tarea. La secretaría
académica es la encargada de la verificación manual. Por otra parte, en el mejor de
los casos, los documentos a verificar cuentan con un código único de seguridad
que, para su validación, se requiere de acceso a internet e ingresar a una página
web y, posteriormente, ingresar dicho código en un formulario. Si bien comparado
con el caso anterior hay una mejora significativa en el proceso, requiere pasos
adicionales que pueden volver engorroso el procedimiento, pues los pasos de
verificación en el formulario pueden incluir validaciones, errores humanos en
digitación, entre otros.
45
Esto, por ejemplo, es realizado por la plataforma del ICFES (Ilustración 15) para
verificación de títulos expedidos por esta entidad (aplica para títulos expedidos del
año 2006 en adelante).24
Ilustración 15. Verificación de diplomas por el ICFES
Fuente: www.icfesintersactivo.org
Así mismo, instituciones como el CPNAA (Consejo Profesional Nacional de
Arquitectura y sus profesiones Auxiliares) cuentan con un formulario digital de
validación de autenticidad del certificado de vigencia profesional (Ilustración 16). 25
24 ICFES (2018). Verificador académico.[online]. Disponible en
http://www2.icfesinteractivo.gov.co/resultados-saber2016-web/pages/publicacionResultados/validantes/verificadorDiplomas.jsf#No-back-button 25 CPNAA (2018). Validación de autenticidad del certificado de vigencia profesional digital.
Disponible en https://cpnaa.gov.co/es/content/validacion-de-autenticidad-del-certificado-de-vigencia-profesional-digital
46
Ilustración 16. Verificación de diplomas por el CPNAA
Fuente: cpnaa.gov.co
2.2. VALIDACIÓN POR CÓDIGO QR
La propuesta presentada en este proyecto hace uso de la versatilidad y popularidad
de los códigos QR (así como la masificación de dispositivos móviles que cuentan
con cámara fotográfica) para realizar la validación de documentos de forma ágil. El
prototipo presentado incluye una aplicación móvil que permite hacer decodificación
de un código QR que cuenta con dos fases de verificación: una, mediante la
información presentada en la aplicación móvil (cuyo acceso a internet no es
requerido) y otra que requiere acceso a internet y permite validar o constatar que el
documento, en efecto, pertenece a una institución académica y los datos que éste
contiene son correctos.
Después de tener la aplicación instalada en el dispositivo móvil, solo son necesarios
unos segundos para hacer verificación de un documento que contenga el código
QR impreso. Esto es posible gracias al servicio web que, junto con mecanismos de
seguridad implementados, permite consultar en tiempo real las bases de datos que
almacenan la información de los graduados, cotejando que tanto la información
47
contenida en la base como en el documento sean iguales. A partir de los procesos
utilizados en los diferentes escenarios, podemos evidenciar una mejora en los
tiempos de verificación de documentos con la implementación de códigos QR.
Agilizar la consulta en la validación de este tipo de documentos puede ayudar a que,
por ejemplo, se incentive un proceso de contratación de personal en las empresas
más transparente y se normalice la validación de documentos, generando un gran
impacto en el mercado laboral.
En un ejercicio comparativo a partir de los antecedentes, se tomaron tres escenarios
posibles de verificación de documentos: la verificación manual, ingreso de datos en
una página web, lectura de un código QR.
En el primer escenario, existen diferentes factores que pueden hacer mucho más
demorado el proceso de validación, desde permisos de acceso a la información,
hasta el día de la semana en que se realice el proceso (en días feriados o
vacaciones del personal encargado no podría llevarse a cabo); por tal motivo este
escenario, que aún se lleva a cabo principalmente en instituciones de educación
secundaria, es el que más tiempo puede tomar, desde minutos hasta días.
El segundo escenario, que ya hace uso de tecnologías de la información, mejora
sustancialmente los tiempos de validación de documentos con respecto al primer
escenario. Sin embargo, existen algunos factores que pueden retrasar este proceso,
que incluyen el ingreso al sitio web de la institución que permita esta validación, así
como ingresar los datos en el formulario: ambos procesos sujetos a errores de
digitación. Así mismo, este proceso tiene diferentes tiempos de demora
dependiendo de las medidas de seguridad implementadas en el formulario de
validación. Por ejemplo, para la validación de autenticidad del certificado de vigencia
profesional digital del Consejo Profesional Nacional de Arquitectura y sus
Profesionales Auxiliares – CPNAA un usuario debe realizar las siguientes acciones:
48
a. Ingresar en un navegador web a la página https://cpnaa.gov.co/.
b. Buscar la opción “TRÁMITES Y SERVICIOS”.
c. Buscar la opción “CERTIFICADO DE VIGENCIA PROFESIONAL”.
d. Ingresar a la opción “VALIDACIÓN DE AUTENTICIDAD”.
e. Ingresar en el formulario la información de “Código único de seguridad”, “Tipo
Documento” y “Número de Identificación”.
f. Validar el sistema de validación CAPTCHA.
El proceso anterior toma alrededor de 30 a 40 segundos sin error de digitación de
datos. Pero, por otra parte, ¿qué ocurre cuando la validación debe hacerse de
múltiples documentos? En un caso como este se puede evidenciar con más detalle
los tiempos de demora en la validación de documentos.
El tercer escenario, que es tratado en esta propuesta y que hace uso de tecnologías
de la información, cuenta con mejoras en los tiempos de respuesta de validación
frente a los escenarios anteriores. Si bien las implicaciones de este escenario
(requiere un dispositivo móvil con cámara y, en lo posible, con acceso a internet)
son similares al anterior (requiere de un dispositivo con un navegador web instalado
y con acceso a internet), en este escenario la mejora en los tiempos de respuesta
es notoria: de 0.3 segundos a 1 segundo. Esto, incluso, en la validación de múltiples
documentos, presenta una mejora sustancial en el proceso.
Proceso Implicaciones Tiempo estimado
Verificación
manual
- Búsqueda manual
- Disponibilidad de personal
- Horario de oficina
- Permisos (según procedimiento
Minutos, horas o
días
49
interno)
- Dificultad en validación de
múltiples documentos
Formulario web - Computador con acceso a
internet
- Sujeto a errores de digitación
- Procesos de validación
adicionales (ej, captcha)
- Dificultad en validación de
múltiples documentos
30 a 40 segundos
Lectura código
QR
- Dispositivo móvil con cámara
- Aplicación instalada
- Facilidad en validación de
múltiples documentos
0.3 segundos a 1
segundo
Tabla 4. Comparación entre procesos de verificación de documentos
Fuente: Propia
50
3. APLICACIÓN DE TÉCNICAS DE CIFRADO EXISTENTES EN CÓDIGOS QR
3.1. TÉCNICAS DE CIFRADO 26
Existen dos técnicas básicas para el cifrado de información: cifrado simétrico
(también llamado “cifrado de clave secreta”) y cifrado asimétrico (también llamado
“cifrado de clave pública”).
El cifrado simétrico es la técnica de cifrado más antigua y más conocida. Consiste
en la aplicación de una clave secreta, que puede ser un número, una palabra, o una
cadena de caracteres aleatorios, al texto de un mensaje para cambiar el contenido
de forma particular. Mientras el emisor y el receptor conozcan la clave secreta,
pueden cifrar y descifrar todos los mensajes que usen dicha clave, como se muestra
en la lustración 17.
Blowfish, AES, RC4, DES, RC5, y RC6 son ejemplos de cifrados simétricos. El
cifrado simétrico más usado es AES-128, AES-192, y AES-256.
Ilustración 17. Proceso de descifrado simétrico
Fuente: https://www.ssl2buy.com
26 SSLTOBUY (2018). Symmetric vs. Asymmetric Encryption – What are differences?. [online]
Disponible en https://www.ssl2buy.com/wiki/symmetric-vs-asymmetric-encryption-what-are-differences [Fecha de consulta: 22 Feb. 2018]
51
El cifrado asimétrico es relativamente nuevo en comparación con el cifrado
simétrico. Usa dos claves para cifrar un texto plano. Las claves secretas pueden ser
intercambiadas en una red abierta como internet, así se asegura que delincuentes
no hagan mal uso de éstas. Es importante tener en cuenta que cualquier persona
con una clave secreta puede descifrar el mensaje. Siendo ésta la razón por la que
el cifrado asimétrico utiliza dos claves relacionadas para aumentar la seguridad.
Una clave pública se puede hacer disponible para todo aquel que desea enviar un
mensaje. La clave privada es secreta, por lo cual solo la persona receptora del
mensaje la posee.
Un mensaje que se cifra usando la clave pública sólo puede ser descifrado usando
la clave privada. Del mismo modo, un mensaje cifrado usando la clave privada
puede ser descifrado usando la clave pública. La clave pública no requiere de
seguridad debido a que puede ser compartida en internet. El cifrado asimétrico
brinda mayor seguridad en la información transmitida durante una comunicación.
Así mismo, la técnica de cifrado de clave pública puede usarse mediante el
mecanismo de Firma Digital. Éste también cuenta con dos claves: la privada, que
en este caso permite cifrar o firmar un mensaje (contrario al método normal de clave
pública); y un algoritmo público de verificación (clave pública) el cual permite a
cualquier persona verificar que la firma es auténtica (descifrar el mensaje).27
El cifrado asimétrico es la técnica más usada en los canales de comunicación hoy
en día, especialmente en internet. Los algoritmos de cifrado asimétrico más
comunes incluyen ElGamal, RSA, DSA, técnicas de curvas elípticas, PKCS, la
ilustración 18 ejemplifica su funcionamiento.
27 University of Colorado Denver (2018). Digital Signature Schemes. [online] Disponible en
http://www-math.ucdenver.edu/~wcherowi/courses/m5410/dss.pdf [Fecha de consulta: Feb. 23 2018]
52
Ilustración 18. Proceso de descifrado asimétrico
Fuente: https://www.ssl2buy.com
3.2. FUNCIONES HASH
Un hash es un algoritmo matemático que transforma cualquier bloque arbitrario de
datos en una nueva serie de caracteres con una longitud fija (Ver Marco teórico).
Existen varias funciones hash usadas en la actualidad, dentro de las cuales (y
quizás las más populares) se incluyen MD5 y SHA.28
MD5 es un algoritmo un poco más lento que su antecesor (MD4) pero es más
“conservativo” en su diseño. Produce un valor único de 128 bits. Se usa para
autenticar la originalidad de un mensaje. Fue diseñado para ser usado como
algoritmo de seguridad para autenticar firmas digitales. A pesar de esto, MD5 no es
considerado seguro para usarse como suma de verificación criptográfica debido a
que se ha demostrado que existen técnicas capaces de generar colisiones en el
algoritmo, lo que permite obtener tokens ilegítimos que resultan ser auténticos. Los
expertos no recomiendan su uso criptográfico.29
28 TechTarget (2017). MD5. Definition.[online]. Disponible en
http://searchsecurity.techtarget.com/definition/MD5 [Fecha de consulta: Feb. 23 2018] 29Software Engineering Institute. MD5 vulnerable to collision attacks. [online]. Disponible en
https://www.kb.cert.org/vuls/id/836068 [Fecha de consulta: Feb. 24 2018]
53
Debido a lo anterior, actualmente el algoritmo se usa como suma de verificación no
criptográfica para verificar la integridad de la información y detectar daños no
intencionales en los datos. Por otra parte, SHA es una familia de funciones hash
criptográficas más robustas que MD5. Cuenta con tres variantes: SHA1, SHA2 y
SHA3. Cada una de estas, cuenta con un grupo de funciones cuya principal
diferencia radica en la cantidad de bits de salida. Es el caso, por ejemplo, de SHA2
con las funciones SHA-224, SHA-256, SHA-284, SHA-512, SHA-512/224 y SHA-
512/256
En la primera versión, SHA1, fueron descubiertos problemas de seguridad
relacionados con colisiones en el algoritmo tanto en 2005 30 como en 201231 que
hicieron necesario el desarrollo de una función más fuerte, cuyo resultado fue SHA2.
SHA2 es de uso más generalizado, principalmente en su versión SHA-256, por
muchas aplicaciones, protocolos y certificados digitales. Los expertos creen que su
ciclo de vida será similar a SHA1, pero por ahora no se ha encontrado debilidades
significativas en este algoritmo.
El algoritmo SHA3, que no es precisamente un reemplazo de SHA2, tendrá que
pasar por un largo proceso hasta que sea difundido y usado ampliamente pues, en
la actualidad, muchas aplicaciones no son aún compatibles con este algoritmo.32
30 Schneier, Bruce. (2005). Cryptanalysis of SHA-1. [online]. Disponible en
https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html [Fecha de consulta: 25 Feb. 2018] 31 Trendmicro. (2017). SHA1 Collision Signals the End of the Algorithm’s Viability [online].
Disponible en https://www.trendmicro.com/vinfo/us/security/news/vulnerabilities-and-exploits/sha-1-
collision-signals-the-end-of-the-algorithm-s-viability [Fecha de consulta: 25 Feb. 2018] 32 Rimes, Roger (2017). All you need to know about the move from SHA-1 to SHA-2
encryption.[online] Disponible en https://www.csoonline.com/article/2879073/encryption/all-you-need-to-know-about-the-move-from-sha1-to-sha2-encryption.html [Fecha de consulta: 26 Feb. 2018]
54
3.3. DESCRIPCIÓN DEL PROCESO
3.3.1. Limitaciones
Los códigos QR cuentan con una limitación de espacio que se debe tener en cuenta
a la hora de almacenar información en ellos (ver Marco Teórico). Es importante
resaltar que entre mayor sea la información contenida en el código QR y el nivel de
corrección de error (ECC por sus siglas en inglés “Error Correction Code”) se
acerque a H, mayor será la concentración de símbolos (cuadrados blancos y
negros) y, por consiguiente, se dificultará tanto la impresión en papel (sería
necesario imprimir el código en gran tamaño) como la lectura (requiere de más
precisión) un ejemplo de ello se puede observar en la ilustración 19.
L
M
Q
H
Ilustración 19. Niveles de corrección de error (ECC)
Fuente: Propia
Nótese como el máximo nivel de error H tiene mayor concentración de símbolos lo
cual, en una cantidad importante de información contenida en el código QR, puede
dificultar su impresión y lectura.
Dado que los códigos a implementar en la presente propuesta requieren de un
tamaño no mayor a 3,5 cm x 3,5 cm y debido a la información que será almacenada
en el código QR, se limitará la cantidad de caracteres a un máximo de 216
(resultante del proceso de cifrado propuesto).
55
Frente a las técnicas de cifrado mencionadas se ha optado por la implementación
de un algoritmo de criptografía asimétrica usando el mecanismo de Firma Digital:
RSA. Esto debido a:
● Entre los algoritmos asimétricos, RSA es uno de los más usados en la
actualidad.33
● La técnica de cifrado asimétrico de clave pública/clave privada (usada con el
mecanismo de Firma Digital) permite tener una mayor seguridad a la hora de
cifrar información, pues al requerir de una clave para cifrar y otra distinta para
descifrar, impide que se pueda falsificar información.
En relación con la función hash, la propuesta se da con el algoritmo SHA2 puesto
que su facilidad de implementación junto con su amplia difusión permite tener un
alto grado de confiabilidad
3.3.2. Cifrado
El proceso de cifrado está dado por dos subprocesos descritos a continuación:
a. Resumen de datos (hash):
La información de estudiantes y diplomas está almacenada en una base de datos.
Ésta es la fuente de la cual se sustraen todos los campos detallados en el diploma
a generar. Debido a que la información de un estudiante contenida en la base debe
ser igual a la información plasmada en el diploma, se ha decidido usar funciones
hash o funciones resumen que permitan comparar de forma segura la información
33 Rouse, Margaret (2016).asymmetric cryptography (public key cryptography) [online] Disponible
en http://searchsecurity.techtarget.com/definition/asymmetric-cryptography [Fecha de consulta: 26 Feb. 2018]
56
de ambas partes. Para esto, se ejecuta la función (SHA-256) a la información del
estudiante en la base de datos y se obtiene su hash (Ilustración 20).
Ilustración 20. Creación de hash a partir de un texto
Fuente: Propia
Posteriormente, este hash es almacenado en la base de datos y concatenado a
información preliminar y básica del estudiante de la forma “Documento-Nombres-
Apellidos-Hash”.
b. Cifrado de datos preliminares:
Los datos preliminares se refieren a la información presentada en la aplicación móvil
una vez escaneado el código QR, de forma que exista una vista previa y offline de
los datos básicos del estudiante: documento, nombres y apellidos. Los datos
preliminares están concatenados junto con el hash resultante de la función
ejecutada sobre la información de un estudiante de la base de datos.
Esta cadena de información está cifrada bajo una clave privada que posteriormente
es descifrada con una clave pública incluida en la aplicación móvil.
Como resultado de este proceso, se obtiene una cadena alfanumérica que será la
contenida en el código QR. Todo este proceso se puede evidenciar en la ilustración
21.
57
Ilustración 21. Cifrado de la información de los códigos QR
Fuente: Propia
3.3.3. Descifrado
El proceso de descifrado de la cadena alfanumérica comienza con la clave pública
contenida en la aplicación móvil. Ésta permite descifrar el contenido de la cadena y
hacer su división a partir de un caracter definido, quedando así:
● Documento
● Nombres
● Apellidos
● Hash
Los tres primeros valores serán presentados como vista preliminar offline en la
pantalla de la aplicación móvil. Posteriormente, y bajo la instrucción del usuario
(requiere conexión a internet) se hace la validación de que la información que está
contenida en el diploma sea la misma contenida en la base de datos mediante un
cotejamiento de los hashes (Ilustración 22).
58
Ilustración 22. Proceso de descifrado de la información de un código QR
Fuente: Propia
59
4. DESARROLLO E IMPLEMENTACIÓN DE LA APLICACIÓN MÓVIL
En este capítulo se describen las herramientas utilizadas para la creación de la
aplicación móvil y se lista cada uno de los procesos realizados para realizar la
validación de un documento, mediante la conexión a la plataforma web.
4.1. DESCRIPCIÓN DE LA APLICACIÓN MÓVIL
La aplicación móvil está desarrollada y orientada al sistema operativo Android, esto
debido a que es el sistema operativo más usado por dispositivos móviles, con esto
se asegura que la compatibilidad de la aplicación esté orientada a la gran mayoría
de dispositivos móviles del mercado. La aplicación ha sido diseñada y desarrollada
para ser utilizada por los usuarios que deseen realizar la validación de un
documento de forma rápida y segura, el manual de usuario de la aplicación podrá
ser consultado en el Anexo 2.
4.2. HERRAMIENTAS DE DESARROLLO
Para el desarrollo de la aplicación móvil se utilizó el entorno de desarrollo Android
Studio, mediante el cual se estableció que la aplicación estará dirigida a la versión
Android 4.0.3 (Icre Cream Sandwich), siendo esta una versión estandarizada en la
gran mayoría de dispositivo Android antiguos.
Se debe tener en cuenta que la aplicación esta optimizada para que funcione
también en sistemas operativos Android con versiones superiores, con esto y según
la información presentada en Android Studio, IDE desarrollado creado por el mismo
Google, la aplicación estará en la capacidad de ser instalada y utilizada por el 99,8%
de dispositivos móviles Android.
60
Como lenguaje de desarrollo se utilizó Java, siendo éste el lenguaje “puro” para el
desarrollo de aplicaciones Android.
Mediante el entorno de desarrollo Android Studio, se creó una serie dispositivos
móviles virtuales, los cuales contaban con diferentes versiones de sistema operativo
Android, de tal forma que la aplicación se pudiera evaluar en diferentes entornos,
con dispositivos de diferentes especificaciones en cuanto software y hardware,
además se utilizaron dispositivos físicos reales como celulares y tablets, los cuales
a su vez contaban con diferentes versiones, lo que permitió no solo realizar pruebas
sino los ajustes necesarios para obtener como resultado una aplicación rápida,
confiable y compatible con casi cualquier dispositivo móvil Android.
4.3. PROCESO DE DESCIFRADO DE UN CÓDIGO QR MEDIANTE LA
APLICACIÓN MÓVIL
El proceso de validación de un documento debe pasar por una etapa inicial en la
cual y con ayuda de una aplicación móvil desarrollada inicialmente para dispositivos
Android, se escanea un código QR, se lee la información contenida en éste y se
descifra la información capturada con ayuda de una llave pública que ha sido
almacenada previamente en la aplicación; esto se realiza para aumentar el nivel de
seguridad, ya que al estar cifrada la información de los códigos QR, no será legible
ante cualquier escáner de códigos QR (Ilustración 23).
Ilustración 23. Proceso de descifrado de códigos QR
Fuente: Propia
61
4.4. PROCESO DE VALIDACIÓN DE UN DOCUMENTO MEDIANTE LA
APLICACIÓN MÓVIL
1. La aplicación hace uso de la cámara, con la cual se escanea el código QR del
documento a validar y captura la información contenida en el código.
2. La información capturada se encuentra cifrada, por lo que mediante el uso de
una llave pública contenida en la aplicación móvil descifra la información y la
muestra en pantalla, entre los datos descifrados se encuentran el número de
identificación, nombres y apellidos de la persona a la cual pertenece el
documento. En caso de escanear un código que no contiene la información con
las características establecidas en los códigos, se mostrará un mensaje
indicando que el QR no es válido.
3. La aplicación establecerá una conexión con el servidor web, al cual enviará el
hash capturado y descifrado del documento para su validación.
4. Al obtener respuesta del servidor, descifrará el contenido de la respuesta a partir
de la llave pública almacenada en la aplicación, luego mostrará el resultado al
usuario y en caso de ser válido mostrará de forma detallada la información del
documento, de lo contrario informará que el documento no es válido.
Para comprender mejor el proceso general de validación, observar la ilustración 24.
62
Ilustración 24. Proceso completo de validación de documento desde la app
Fuente: Propia
63
5. DESARROLLO E IMPLEMENTACIÓN DE LA PLATAFORMA WEB
En este capítulo se describen las herramientas utilizadas para el desarrollo de la
plataforma web junto con la propuesta de funcionamiento de la misma para la
generación de diplomas o documentos académicos con códigos QR.
5.1. DESCRIPCIÓN APLICACIÓN WEB
La aplicación web es un prototipo que permite generar de forma individual o masiva
diplomas cuyo contenido incluye un código QR cifrado, para que posteriormente
éste sea escaneado mediante la aplicación móvil y permita validar la autenticidad
de dicho documento. Así mismo, el prototipo permite generar stickers QR cuyo
propósito es que puedan ser adheridos a diplomas ya existentes y que, al igual que
los diplomas generados, permitan ser validados con la aplicación móvil. El prototipo
cuenta con un editor de código html que facilita la creación de los diplomas y cuenta
además con un procedimiento que permite a una institución autorizar los diplomas
generados, evitando así la crear diplomas de personas ajenas a la institución.
El prototipo cuenta con tres componentes principales:
● Generación de diplomas nuevos.
● Modificación de datos a diplomas nuevos.
● Creación o generación de stickers para diplomas existentes.
Para el funcionamiento de este prototipo se cuentan con dos roles principales:
generador y validador. El generador es quién tiene permitido crear y descargar
diplomas para impresión. El validador es quién tiene permitido autorizar los diplomas
creados por el generador.
64
Cada componente cuenta con un protocolo compuesto de tres pasos: solicitud,
autorización y descarga. La solicitud es el procedimiento que el generador realiza
en el momento de crear un diploma; esto es, solicitar que sea autorizada la descarga
de un diploma luego de realizar la verificación de los datos. Esta solicitud llega al
validador dando paso al siguiente procedimiento, la autorización. En este paso, el
validador revisa que la información de cada uno de los diplomas sea la misma que
se concertó inicialmente con el generador; esto se hace con el fin de prevenir que
por parte de este último se generen diplomas no concertados o que se altere la
información de alguno de los diplomas. Una vez autorizado el diploma, llega el tercer
paso que es la descarga. En esta, el generador se encarga de hacer la descarga de
los diplomas por una única vez.
Se realizaron pruebas de estrés al servidor para lograr medir y evaluar el
desempeño del servidor web, estos se hace teniendo en cuenta que el servidor
podrá recibir múltiples solicitudes de forma constante, las pruebas realizadas se
encuentran en el Anexo 3.
5.2. HERRAMIENTAS UTILIZADAS
La plataforma web ha sido desarrollada bajo el lenguaje de programación PHP en
su versión 7.0 y, para el manejo de la base de datos se ha optado por MySQL en
su versión 5.7.
5.3. FUNCIONES
La plataforma o servicio Web cuenta con una serie de funciones que son las que
permiten ejecutar una serie de procesos que en conjunto conforman una completa
herramienta para la administración de documentos como certificados de
instituciones académicas. Entre estas funciones se pueden encontrar:
65
5.3.1. Generación de diplomas nuevos
La generación de diplomas nuevos es el proceso mediante el cual el generador crea
un nuevo diploma a partir de la información enviada (por la parte contratante, puede
ser el mismo validador). Este diploma incluye, además de la información común
encontrada en un diploma de grado, el código QR cifrado.
1. El generador crea el diploma y solicita autorización (revisión) para su descarga.
En este paso, la solicitud se realiza en texto plano.
2. El validador recibe la solicitud y cifra la autorización de creación del diploma con
llave privada (ver apartado 3.3).
3. La solicitud autorizada es enviada al generador y una vez se active la descarga
del diploma, es descifrada mediante llave pública contenida en el servidor.
4. Como resultado al descifrado, se obtiene información de los datos contenidos
en el diploma que se comparan a sí mismos con el fin de prevenir alteraciones
intencionales en la base de datos. Si la comparación resulta correcta, se permite
la descarga del diploma.
5.3.2. Modificación de datos a diplomas nuevos
La modificación de datos a diplomas nuevos es el proceso mediante el cual el
generador realiza cambios a la información contenida en un diploma a partir de la
información enviada (por la parte contratante, puede ser el mismo validador). El
cambio de alguno de los registros del diploma implica un nuevo código QR y, por
consiguiente, una nueva autorización.
1. El generador busca el diploma y realiza la modificación a alguno de los campos
permitidos y solicita autorización (revisión) para su nueva descarga. Al igual que
la creación de diplomas, la solicitud se realiza en texto plano.
2. El validador recibe la solicitud de modificaciones y cifra la autorización de la
nueva descarga del diploma con llave privada (ver apartado 3.3).
66
3. La solicitud de modificación de datos autorizada es enviada al generador y una
vez se active la nueva descarga del diploma, es descifrada mediante llave
pública contenida en el servidor. Al igual que la creación de diplomas, el
descifrado permite obtener la información modificada del contenido de los
diplomas y hace una comparación que, de ser positiva, permite la descarga del
diploma modificado.
5.3.3. Generación de stickers para diplomas existentes
La generación de stickers es el proceso mediante el cual el generador crea un
código QR a partir de la información contenida en un diploma ya existente y del que
se quiere hacer una autenticación mediante estos códigos (Ilustración 24).
1. El generador crea un nuevo sticker a partir de información existente de un
diploma y genera la solicitud de autenticación. Este proceso también se realiza
en texto plano.
2. El validador recibe la solicitud de nuevo sticker y cifra la autorización de
descarga con llave privada (ver apartado 3.3).
3. La autorización de nuevo sticker es enviada al generador y una vez se active su
descarga, es descifrada mediante llave pública contenida en el servidor. Al igual
que la creación de diplomas, el descifrado permite obtener la información
modificada del contenido de los códigos QR y hace una comparación que, de
ser positiva, permite su descarga.
Ilustración 25. Componentes del servicio web
Fuente: Propia
67
5.3.4. Generación de claves
El par de claves pública y privada que se usan para el cifrado y descifrado de las
solicitudes se generan para cada usuario con perfil de validador en el sistema. Una
vez el administrador del sistema cree un nuevo usuario con este perfil, se crearán
su par de llaves. La llave privada debe ser descargada ya que le permitirá al usuario
validador cifrar las solicitudes que sean realizadas por parte del usuario generador.
La llave pública es almacenada en el servidor y permitirá descifrar las solicitudes
autorizadas posteriormente.
Este proceso de cifrado con llave privada y descifrado con llave pública se hace
intencionalmente debido a que la llave privada, en el momento de su creación, es
cifrada con la contraseña propia de cada usuario, lo que permite aumentar la
seguridad en el archivo generado y que es usado para el cifrado de la solicitud.
Ilustración 26. Llaves del usuario.
Fuente: propia
68
6. CONSULTA DE INFORMACIÓN ACTUALIZADA MEDIANTE CONEXIÓN A
BASE DE DATOS
La aplicación móvil cuenta con dos momentos diferentes para la consulta y
presentación de información de un estudiante: En primer lugar, la información que
se encuentra contenida dentro del código QR, una vez descifrado, permite obtener
una vista previa de la información básica que debe estar almacenada dentro del
diploma o dentro del documento académico. Esto, ya permite que exista una forma
de conocer la información contenida en el código QR y de validar a su vez que esta
información sea acorde a la que está en el documento, de una forma inmediata.
Por otra parte, la aplicación web cuenta con un pequeño servicio que permite hacer
consultas a la base de datos de forma directa y distribuida. Esto es: el servicio es
consultado desde la aplicación móvil y realiza una consulta de un índice que indica
la ruta de conexión a la base de datos (propia) de la institución. Esto permite verificar
los estudiantes (leer QR) directamente en la base de datos de la institución y permite
reducir la carga de consultas en el servidor central. El servidor a su vez retorna la
información solicitada cifrada en un texto plano, que no representa mayor carga
para la transmisión de los datos ni para la presentación de estos en la interfaz del
móvil.
69
Ilustración 27. Distribución Bases de Datos Fuente: Propia
En la ilustración 27 se puede observar cómo están distribuidas las bases de datos
de las instituciones, la base de datos central y la aplicación. De esta manera la
información se encontrará distribuida y a la hora de realizar la validación de un
documento se deberá establecer conexión con bases de datos externas, en las
cuales se harán las respectivas consultas de forma directa según la institución a la
cual pertenece el código QR, esto con el objetivo de mantener la información
distribuida y que se realice la consulta en una base de datos específica, dejando así
las demás bases de datos libres de consultas innecesarias. Con este modelo se
puede evidenciar el componente telemático, el cual entra a jugar un papel
importante a la hora de establecer conexión con bases de datos externas,
manteniendo la información de las instituciones de forma distribuida y además como
se ha documentado anteriormente en este documento, cada una de las peticiones
y respuestas entre el cliente y el servidor siempre están cifrados, con el objetivo de
mantener un nivel de seguridad alto en la transmisión de la información.
70
Dentro de la aplicación móvil se han efectuado diferentes pruebas que han permitido
constatar que la consulta de información a la base de datos no tiene periodos
mayores a un segundo, por lo cual, es lo suficientemente veloz para que se envíe
la consulta y se retorne la información casi de forma inmediata.
La plataforma web ha sido instalada en un servidor web de Amazon yallí está
alojada la base de datos en la cual se almacenan todos los registros de la aplicación,
la razón por la que se realizó la instalación en un servidor externo como lo es
Amazon, es que, es común tener las bases de datos alojadas en servidores en la
nube, lo que conlleva a requerir de más tiempo para realizar procesos como
consultas y el objetivo es realizar pruebas y demostraciones de la manera más real
posible.
A partir de esto, todas las peticiones realizadas desde la aplicación móvil para
realizar la validación de un documento o certificado académico, van dirigidas hacia
la plataforma web, por lo tanto se implementó un código fuente en la aplicación móvil
que mostrará el tiempo requerido para la validación desde el momento en que se
comunicó con el servidor, hasta que obtuvo una respuesta del mismo, de esta forma
se puede conocer el tiempo necesario para la consulta en la base de datos.
En la ilustración 28 se puede apreciar el código en la aplicación móvil, siendo este
un método que permite iniciar un timer, el cual aumenta cada vez que pasa un
milisegundo.
71
Ilustración 28. Método que inicia el timer para el test en aplicación móvil Fuente: Propia
Existe otro método encargado de imprimir el tiempo total, el cual se puede apreciar
en la ilustración 29:
Ilustración 29. Método de impresión del tiempo requerido para la validación Fuente: Propia
Como se aprecia en la ilustración 30, el timer es iniciado cuando se establece la
conexión con la plataforma web, la cual a su vez está comunicada con la base de
datos de forma local.
72
Ilustración 30. Inicialización del timer de prueba Fuente: Propia
Cuando el servidor responde a partir de la consulta realizada en la base de datos,
se ejecuta un método que valida la información recibida, pues la respuesta viene
cifrada, dentro de esto método se detiene el timer y se imprime en pantalla el tiempo
requerido para la validación del documento mediante la conexión a la base de datos
que se encuentra en un servidor externo, este proceso se puede apreciar en la
ilustración 31.
Ilustración 31. Detención del timer e impresión en pantalla del tiempo requerido Fuente: Propia
73
Es de esta manera como se puede apreciar en la aplicación móvil el tiempo
necesario para establecer conexión con la base de datos y realizar la consulta, el
tiempo necesario para este caso de prueba y teniendo en cuenta que la base de
datos está en un servidor web externo, pues está alojado en Ohio Estados Unidos
es de 276 milisegundos, como se puede observar en la ilustración 32.
Ilustración 32. Tiempo requerido para establecer la conexión y consulta en la base de datos Fuente: Propia
Estas pruebas demuestran que la conexión con la base de datos es lo
suficientemente rápida para brindar información almacenada en ésta, en el
momento en que un usuario lo requiera, aun cuando la información haya sido
modificada en la base y deba ser consultada de nuevo.
74
Así mismo, la tabla de la base de datos que involucra la consulta desde la aplicación
móvil (que maneja los índices) está configurada con el motor de almacenamiento
MyISAM, el cual permite que las consultas sean hechas más rápidamente que las
realizadas con el motor de almacenamiento InnoDB. Las demás tablas que
involucran la inserción masiva de información están configuradas con el motor de
almacenamiento InnoDB. Hay que tener en cuenta que las bases de datos
configuradas con MyISAM cuentan con velocidades de lectura mayores que
configuradas con InnoBD34. Esto permite a su vez que las consultas a los índices
sean mucho más veloces, y el servidor se encargará de retornar la información
cifrada.
34 (2016). MyISAM vs InnoDB [online] Disponible en http://b2evolution.net/man/myisam-vs-innodb [Fecha de consulta 2 Ago, 2018]
75
7. CONCLUSIONES
La seguridad en el transporte de información es hoy en día un punto que está
tomando fuerza y no es algo que se deba dejar a un lado, pues es de gran
importancia que la comunicación establecida entre un punto A y un punto B siempre
esté blindada de intrusos, sin embargo y aunque son muchos los casos que se
presentan de intrusión en diferentes situaciones, se dejan brechas que piratas
informáticos saben aprovechar.
En el mercado existen un sin número de tecnologías desarrolladas que no se han
aprovechado del todo y con el aumento de ataques cibernéticos, es necesario
conocer las tecnologías y saberlas aplicar, un ejemplo de ello es un código QR, que
para muchos es un simple elemento que transporta información, pero lo que no se
aprecia a simple vista es que este tipo de elementos son legibles hoy en día casi
por cualquier persona que cuente con un Smartphone, es entonces necesario
analizar y comprender que aunque sea este un elemento semejante a una caja llena
de datos, siempre se podrá salvaguardar la información y evitar intrusiones.
A partir de este trabajo, se ha demostrado que la seguridad en la transferencia de
información es algo que está al alcance de todos, pues existen diferentes tipos de
cifrados que tienen un alto nivel de seguridad y que al aplicarlos, permiten que se
realice un proceso de forma segura.
Esto aplica no solamente a información que se almacena en códigos QR u otros
elementos de este tipo, es aplicable a los canales de información que son utilizados
en todo momento, es decir a la transmisión de datos, pues enviar un dato de una
lugar a otro hoy en día es bastante fácil, pero se desconoce si entre el emisor y
receptor hay intrusos y es allí donde aparecen los diferentes métodos de cifrado que
han ido mejorando en el transcurso del tiempo.
76
En el presente proyecto se decidió hacer uso de una serie de tecnologías básicas
que en conjunto han llegado a formar un sistema con alto nivel de seguridad y se
ha aplicado al sector educativo para la validación de documentos o certificados
académicos, se ha demostrado que mediante el uso de un código QR con
información cifrada, se puede llegar a validar un documento en cuestión de
segundos, de forma segura y automatizando así procesos que hoy en día se llevan
a cabo en cuestión de minutos, a veces horas y podrían llegar a ser días, pues son
procesos que dependen de la intervención de múltiples personas y así como fue
aplicado al sector educativo podrá ser aplicado en cualquier sector comercial, en
cualquier tipo de documento y por qué no, en cualquier transmisión de datos.
77
8. BILIOGRAFÍA
Forero, Oriana. Mafia de falsificación de diplomas se infiltra en las
universidades. (2014). [online] Disponible en:
http://www.eltiempo.com/archivo/documento/CMS-13475997 [Fecha de
consulta: 18 Feb. 2018].
About QR-Codes (2018). [online] Disponible en: http://www.mobile-
barcodes.com/about-qr-codes/ [Fecha de consulta: 18 Feb. 2018].
Chacón, Mateo (2016). Así funciona el mercado negro de los diplomas falsos
en Colombia. [online] Disponible en:
https://www.kienyke.com/historias/diplomas-falsos-colombia [Fecha de
consulta 15 Feb. 2018].
Corte constitucional de Colombia (2009). Sentencia C-637/09.- Demanda de
inconstitucionalidad por omisión legislativa relativa [online] Disponible en:
http://www.corteconstitucional.gov.co/RELATORIA/2009/C-637-09.htm
[Fecha de consulta 15 Feb. 2018].
Gerencie (2017).¿Cuándo se configura el delito de falsificación de
documento privado? [online] Disponible en:
https://www.gerencie.com/cuando-se-configura-el-delito-de-falsificacion-de-
documento-privado.html [Fecha de consulta 15 Feb. 2018].
El País de Cali (2015). En el Valle ya han descubierto a más de 1.200
profesionales con título falso. [online] Disponible en
http://www.elpais.com.co/cali/exclusivo-en-el-valle-ya-han-descubierto-a-
mas-de-1-200-profesionales-con-titulo-falso.html [Fecha de consulta 15 Feb.
2018].
Gartner (2017). Fierce Battle Between Apple and Samsung to Hold the No. 1
Global Smartphone Ranking. [online] Disponible en:
https://www.gartner.com/newsroom/id/3609817 [Fecha de consulta 16 Feb.
2018].
PHP (2018). Prefacio. [online] Disponible en
http://php.net/manual/es/preface.php [Fecha de consulta 16 Feb. 2018].
Prassana Kumar Dixit. Android. India: Vikas. 2014.
78
Kato, Hiroko. Tan, Keng. Chai Douglas. Barcode for Mobile Devices. UK.
Cambridge University Press. 2010.
Price, Kella. INFOLINE: QR Codes for trainers. Estados Unidos: ASTD. 2013.
Picouto, F. Lorente, Iñaki. García-Moran, J. Ramos, A. Hacking y Seguridad
en Internet. Madrid: Alfaomega. 2008.
Kaspersky (2014). ¿Qué Es Un Hash Y Cómo Funciona? [online] Disponible
en https://latam.kaspersky.com/blog/que-es-un-hash-y-como-funciona/2806/
[Fecha de consulta 17 Feb. 2018].
Northcutt, Stephen (2008). Hash Functions [online] Disponible en
https://www.sans.edu/cyber-research/security-laboratory/article/hash-
functions [Fecha de consulta: 17 Feb. 2018].
Paths. Eleven (2013) MD5: vulnerabilidades y evoluciones. [online]
Disponible en http://blog.elevenpaths.com/2013/11/md5-vulnerabilidades-y-
evoluciones-i.html [Fecha de consulta: 17 Feb. 2018].
Techopedia (2018).Secure Hash Algorithm 2 (SHA-2) [online]. Disponible en
https://www.techopedia.com/definition/30571/secure-hash-algorithm-2-sha-2
[Fecha de consulta: 18 17 Feb. 2018]
Wikipedia.Secure Hash Algorithm 3 [online]. Disponible en
https://en.wikipedia.org/wiki/SHA-3 [Fecha de consulta: 18 Feb. 2018]
Information Technology Laboratory (2015). SHA-3 Standard: Permutation-
Based Hash and Extendable-Output Functions [online] Disponible en
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf [Fecha de
consulta: 18 Feb. 2018]
Techtarget (2011). Initialization Vector. [online] Disponible
http://whatis.techtarget.com/definition/initialization-vector-IV [Fecha de
consulta 20 Feb. 2018].
79
QR Question (2015). Historia Código QR. [online]. Disponible en
http://www.qrquestion.info/historia-codigo-qr/ [Fecha de consulta: 20 Feb.
2018].
Jimeno, Jorge (2013). Ciclo PDCA (Planificar, Hacer, Verificar y Actuar): El
círculo de Deming de mejora continua. [online] Disponible en
https://www.pdcahome.com/5202/ciclo-pdca/ [Fecha de consulta: 20 Feb.
2018].
Blog-Top. (2014). El ciclo PHVA Ejemplo de Aplicación de esta Herramienta
de Calidad. [online] Disponible en http://www.blog-top.com/el-ciclo-phva-
ejemplo-de-aplicacion-de-esta-herramienta-de-calidad/ [Fecha de consulta:
20 Feb. 2018].
Castellanos, Luis (2016). Modelo RUP – IBM [online] Disponible en
https://dtyoc.com/2016/06/07/modelo-rup-ibm/ [Fecha de consulta 21 Feb,
2018].
ICFES (2018). Verificador académico.[online]. Disponible en
http://www2.icfesinteractivo.gov.co/resultados-saber2016-
web/pages/publicacionResultados/validantes/verificadorDiplomas.jsf#No-
back-button [Fecha de consulta 22 Feb, 2018].
CPNAA (2018). Validación de autenticidad del certificado de vigencia
profesional digital. Disponible en https://cpnaa.gov.co/es/content/validacion-
de-autenticidad-del-certificado-de-vigencia-profesional-digital[Fecha de
consulta 22 Feb, 2018].
SSLTOBUY (2018). Symmetric vs. Asymmetric Encryption – What are
differences?. [online] Disponible en https://www.ssl2buy.com/wiki/symmetric-
vs-asymmetric-encryption-what-are-differences [Fecha de consulta: 22 Feb.
2018].
University of Colorado Denver (2018). Digital Signature Schemes. [online]
Disponible en http://www-
math.ucdenver.edu/~wcherowi/courses/m5410/dss.pdf [Fecha de consulta:
Feb. 23 2018].
80
TechTarget (2017). MD5. Definition.[online]. Disponible en
http://searchsecurity.techtarget.com/definition/MD5 [Fecha de consulta: Feb.
23 2018].
Software Engineering Institute. MD5 vulnerable to collision attacks. [online].
Disponible en
https://www.kb.cert.org/vuls/id/836068 [Fecha de consulta: Feb. 24 2018].
Schneier, Bruce. (2005). Cryptanalysis of SHA-1. [online]. Disponible en
https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html
[Fecha de consulta: 25 Feb. 2018].
Trendmicro. (2017). SHA1 Collision Signals the End of the Algorithm’s
Viability [online]. Disponible en
https://www.trendmicro.com/vinfo/us/security/news/vulnerabilities-and-
exploits/sha-1-collision-signals-the-end-of-the-algorithm-s-viability [Fecha de
consulta: 25 Feb. 2018].
Rimes, Roger (2017). All you need to know about the move from SHA-1 to
SHA-2 encryption.[online] Disponible en
https://www.csoonline.com/article/2879073/encryption/all-you-need-to-know-
about-the-move-from-sha1-to-sha2-encryption.html [Fecha de consulta: 26
Feb. 2018].
Rouse, Margaret (2016).asymmetric cryptography (public key cryptography)
[online] Disponible en
http://searchsecurity.techtarget.com/definition/asymmetric-cryptography
[Fecha de consulta: 26 Feb. 2018].
(2016). MyISAM vs InnoDB [online] Disponible en
http://b2evolution.net/man/myisam-vs-innodb [Fecha de consulta 2 Ago,
2018].
81
ANEXOS