SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne

Resumen— El presente proyecto cubre el desarrollo de un
prototipo de Sistema de cómputo que permite realizar la firma
digital de calificaciones de estudiantes por parte del docente
encargado de una asignatura y la posterior verificación de la
calificación por parte de los estudiantes de dicha asignatura desde
sus dispositivos móviles Android, con esto se trata el
establecimiento de una infraestructura de llave pública para una
institución educativa.
Palabras Clave— Android, Infraestructura de llave pública,
Java, RSA, Seguridad.
I. INTRODUCCION
La idea del presente proyecto surge como un control escolar
basado en arquitectura de servidores Apache y OpenSSL, pero
ante la inquietud de implementar la opción de firmado digital
de calificaciones de estudiantes y verificación desde
dispositivos móviles, una gran parte del proyecto fue
desarrollada utilizando el lenguaje de programación Java y las
interfaces de programación Bouncy Castle1
, manteniendo la
compatibilidad con OpenSSL. Siendo Java el lenguaje de
programación utilizado en los dispositivos Android, nos pareció
una buena alternativa para realizar el proyecto.
Como se mostrará en la arquitectura del proyecto, se
desarrollaron 3 módulos:
 Una aplicación Java Swing para la generación de la llave
privada del docente y generación y exportación de una
solicitud de firma de certificado digital que contiene la
llave pública del docente, para firma por parte de una
autoridad certificadora y la firma digital de las
calificaciones de los estudiantes.
 Una aplicación móvil Android (compatible con API 14
o superior) que permite la consulta y verificación de la
firma digital de las notas por parte de los estudiantes.
 Un módulo WEB de ingreso de notas y consultas WEB,
simulando un módulo preexistente de control escolar al
que se le está agregando la capacidad de firma digital de
calificaciones.
II. OBJETIVO DEL PROYECTO
Crear una infraestructura de llave pública para la firma
digital de calificaciones de estudiantes de una institución
educativa.
III. ALCANCES Y LIMITACIONES
A. Alcances:
 El docente encargado de la asignatura podrá generar
su llave privada y solicitud de firma de certificado
digital haciendo uso de la herramienta desarrollada,
en un equipo de confianza y en ningún momento
tendrá que transmitir o movilizar la llave privada.
 Los estudiantes utilizarán una aplicación Android
para consultar las notas y poder verificar la firma
digital realizada por el docente.
B. Limitaciones:
 El prototipo trabajará con una pequeña base y control
de notas diseñado específicamente para este proyecto.
IV. ARQUITECTURA Y DISEÑO DEL PROTOTIPO
La figura 1. Muestra la arquitectura del prototipo
desarrollado, unas secciones requieren el desarrollo de una
herramienta o aplicación mientras otras requieren la
configuración de un servidor con sus respectivos servicios
(OpenSSL, Base de Datos, Apache Web Server)
Figura 1. Arquitectura del Sistema Desarrollado
1
https://www.bouncycastle.org/
Sistema de Control Escolar con Firma Digital de
Calificaciones y Verificación de Firma Digital
desde dispositivos Móviles
David E. Martínez, Boris A. Martínez
Para la implementación del punto 1 requiere la configuración
de un servidor Linux para funcionar con Autoridad
Certificadora.
El punto 2 del diagrama requiere la configuración de un
servidor Linux para funcionar como servidor de aplicaciones.
Aquí residirá un sistema de control de notas elaborado para este
ejercicio.
El punto 3 representa la herramienta que se le proporcionará a
los docentes usuarios del sistema para que puedan generar de
forma autónoma sus pares de llaves RSA y una solicitud de
firma de certificado digital para ser presentada ante la autoridad
certificadora.
El punto 4 es una aplicación móvil a ser utilizada por los
estudiantes interesados en consultar sus notas y que además
permite la verificación de las notas del estudiante a partir del
certificado digital del docente.
V. DISEÑO DEL PROTOTIPO
La especificación del diseño del sistema se presenta a través de
los diagramas de secuencias para las actividades realizadas por
los actores involucrados en el sistema así como el modelo de la
base de datos que le daría soporte al sistema.
La figura 2. Muestra la interacción del docente con la
herramienta que se le proporcionará para generación del par de
llaves RSA y su almacenamiento en formatos compatibles con
OpenSSL.
Figura 2. Creación de par de llaves RSA.
La figura 3 representa la interacción del docente con la
autoridad certificadora, en este punto se le solicita al docente
presentar en persona su solicitud de firma de certificado digital,
de tal forma que se pueda garantizar la fuente de dicha solicitud
de certificación.
Figura 3. Creación del Certificado digital del docente (Firma
por parte de autoridad certificadora)
En la figura 4 se presenta el procedimiento de reporte de
notas y por parte del docente, este procedimiento se realiza en
dos fases, una que es simplemente cargar las notas y
posteriormente la firma digital de las calificaciones de cada
estudiante haciendo uso de la herramienta desarrollada con este
propósito.
Figura 4. Registro de notas y firma digital.
El procedimiento de consulta de notas y verificación se presenta
en la figura 5.
Creación de llaves Publico/Privadas del Profesor
Carga llaves del profesor(CSR)
archivo CSR:= Crear llaves(datos
generales del profesor)
Profesor
UDB Sec (BouncyCastle) Autoridad certificadora (Openssl)
Carga llaves del profesor(CSR)
archivo CSR:= Crear llaves(datos
generales del profesor)
Creación de certificado digital del profesor
certificado digital
Archivo CRT:= Crear certificado digital
del profesor(CSR)
Envia solicitud de certificación(archivo
CSR)
Profesor
Autoridad certificadora (
Openssl)
Servidor de Aplicaciones y
Certificados
certificado digital
Archivo CRT:= Crear certificado digital
del profesor(CSR)
Envia solicitud de certificación(archivo
CSR)
Registro de Notas
Genera un hash (md5 o sha) y
cifra con RSA cada nota de los
alumnos y alamcena en bd la
firma digital.
firma digital por alumno
firma guardada
Registrar firma digital
Firmar digitalmente las notas
Firmar Notas
Notas grabadas
Guardar Notas(alumno, notas)
usuario logeado
validar usuario
Registro de notas(alumno, notas)
Iniciar sesión(usuario, clave)
Profesor
AppWeb Notas UDB Sec (BouncyCastle) MySql
firma digital por alumno
firma guardada
Registrar firma digital
Firmar digitalmente las notas
Firmar Notas
Notas grabadas
Guardar Notas(alumno, notas)
usuario logeado
validar usuario
Registro de notas(alumno, notas)
Iniciar sesión(usuario, clave)
Figura 5. Consulta de notas y verificación de firma digital
Para el prototipo, la base de datos del sistema es simple
conteniendo solamente 4 tablas: Roles, Usuarios, Notas y
Materias. El diagrama de la base de datos se muestra en la figura
6.
Figura 6. Diagrama de la base de datos del sistema.
VI. DESCRIPCION DEL PROTOTIPO DESARROLLADO
Para el desarrollo del prototipo del sistema se configuraron dos
equipos virtuales Linux Ubuntu 12.04 sobre el software de
virtualización Oracle Virtual Box. Uno de los equipos para
funcionar con entidad certificadora [OpenSSL] y el otro para
funcionar como servidor de aplicaciones [Apache Web Server,
PHP, MySQL Database Server].
La configuración de la autoridad certificadora incluye la
creación del certificado raíz y la configuración de OpenSSL a
través del archivo de configuración /etc/ssl/openssl.conf. La
figura 7 muestra la configuración de openssl.conf en el equipo
a funcionar como entidad certificadora.
Figura 7. Configuración de la Autoridad Certificadora.
La aplicación Web para el registro de las notas simula un
sistema preexistente, en el cual solamente se registran las notas
de los estudiantes, la figura 8 muestra la pantalla de registro de
notas desde la aplicación Web.
Figura 8. Ingreso de calificaciones en sistema tradicional de
control de notas.
La herramienta para la generación de llaves de solicitud de
firma de certificado digital fue desarrollada en el lenguaje de
programación Java con interfaz gráfica Swing y utiliza la
librería Bouncy Castle para los servicios criptográficos. Esta
herramienta se distribuye como un archivo jar ejecutable. El
esfuerzo de desarrollar esta herramienta es para brindar la
facilidad de generación de la llaves RSA a los docentes y que
estas sean generadas en equipos de confianza del docente y la
llave privada no tenga que ser transportada y menos expuesta.
Esta herramienta permite la generación de la llave privada
cifrada, la generación de una solicitud de firma de certificado
digital, permite exporta esta solicitud con la idea de evitar
confusiones a la hora de llevar dicho certificado ante la
autoridad certificadora y una pantalla para realizar la firma
digital de las notas de los estudiantes. La firma digital se realiza
en la aplicación de escritorio siempre con el propósito de evitar
que la llave privada sea transferida de lugar en cualquier
momento. La figura 9 muestra la herramienta desarrollada, la
figura 10 muestra la pantalla de firma de calificaciones.
Verificación de Notas
Notas certificadas
verificación de llaves
certificado
Descargar certificado del profesor
Consultar Notas(alumno)
usuario logeado
Validar usurio(usuario, clave)
Iniciar sesion(usuario, clave)
Alumno
App Movil Notas
Servidor de Aplicaciones y
Certificados
Notas certificadas
verificación de llaves
certificado
Descargar certificado del profesor
Consultar Notas(alumno)
usuario logeado
Validar usurio(usuario, clave)
Iniciar sesion(usuario, clave)
Usuarios
LoginUsuario
IdRol
Nombres
Apellidos
Email
...
varchar(25)
int
varchar(50)
varchar(50)
varchar(100)
<pk>
<fk>
Roles
IdRol
Descripcion
int
varchar(50)
<pk>
Materias
IdMateria
Nombre
int
varchar(50)
<pk>
Notas
LoginUsuario
IdMateria
Nota1
Nota2
Nota3
FirmaDigital
...
varchar(25)
int
decimal(10,2)
decimal(10,2)
decimal(10,2)
varchar(500)
<pk,fk1>
<pk,fk2>
Figura 9. Herramienta de Generación de Llaves RSA,
exportación de solicitud de firma de certificado digital y firma
de calificaciones de los estudiantes.
Figura 10. Pantalla de firma de calificaciones.
La comunicación de esta aplicación y el servidor de
aplicaciones es por medio del protocolo http, quedando
pendiente la implementación a través https para la siguiente
versión. La firma digital se realiza sobre el registro de cada
estudiante, para esto el registro se codifica como una cadena
JSON y se firma utilizando SHA1 con RSA y proveedor de
seguridad Bouncy Castle. La firma se almacena en la base de
datos para luego ser consultada por los estudiantes como parte
del proceso de verificación.
La aplicación móvil fue desarrollada utilizando Android
Studio como herramienta de desarrollo, este es el entorno de
desarrollo oficial para aplicaciones Android. El desarrollo de
aplicaciones Android se realiza principalmente en Java y se
utiliza XML para la definición de elementos visuales. Por ser
lenguaje de programación Java esperabamos compatibilidad
con la librería Bouncy Castle. Luego de unos conflictos entre
cating de objetos se logró hacer funcionar la App móvil sin
problemas. De forma similar a la aplicación Desktop, la
comunicación de esta aplicación con el servidor de aplicaciones
es a través de http. La Figura 11 muestra la captura de pantalla
del dispositivo móvil ejecutando la aplicación, en este caso es
un Motorola E, Android 4.4.4 (KitKat) Se muestran las notas
registradas y la firma digital, la cual se almacena como una
cadena de texto en base 64.
Figura 11. Aplicación móvil para la consulta y verificación de
firma digital de calificaciones.
Para el prototipo, asumimos que el docente del grupo distribuye
su certificado firmado por la autoridad certificadora a los
estudiantes ya sea por correo electrónico o cualquier otro medio
y que dicho certificado se encuentra en la memoria SD del
dispositivo. Al presionar el botón se presentará una actividad
Android (Android Activity) para la selección de certificado
digital de profesor y posterior verificación de las calificaciones.
(Figura 12)
Figura 12. Selección del certificado para la verificación de la
firma digital.
Luego de seleccionar el archivo del certificado del profesor,
se realizará la verificación y se presentará un mensaje Android
TOAST indicando si la firma se acepta o rechaza y cambiará el
color del a firma a verde si se acepta o rojo si se rechaza, lo cual
se ilustra en la figura 13.
Figura 13. Aceptación de la firma digital de las calificaciones
de un estudiante.
VII. PUNTOS A MEJORAR
Debemos mencionar los puntos importantes que deben
mejorarse en el prototipo, pero que no pudimos realizar en el
tiempo que estaba establecido para la realización del proyecto.
El primer punto es la verificación del certificado del profesor
ante la autoridad certificadora al momento de realizar la
verificación de las notas y la consulta de la lista de revocación,
aunque el servidor configurado como autoridad certificadora
quedó con la configuración completa de OpenSSL, la
aplicación Android requiere que se agregue el procedimiento de
esta verificación. El segundo punto es implementar el uso de
SSL en la aplicación Java y Android, aunque se generó el
certificado del servidor y se realizó la configuración del
servidor Web Apache para utilizar SSL, los programas Java
requieren una modificación para poder comunicarse vía https,
esta comunicación es factible ya que se utiliza Apache
Commons HttpClient para la comunicación, pero de igual
forma, queda pendiente la implementación.
VIII. CONCLUSIONES
El modelo utilizado de firma digital puede ser aplicado a
otros procesos que requieran una capa adicional de seguridad y
verificación de identidad por lo tanto, las herramientas
desarrolladas o el código fuente de dichas herramientas puede
llegar a ser de utilidad en una situación real y no sólo de ámbito
académico.
El desarrollo del proyecto ha sido una gran experiencia y una
gran oportunidad de aprendizaje. Nos encontramos con varias
dificultades, principalmente de documentación y
correspondencia entre las versiones de las librerías y la
documentación y los ejemplos de uso de las APIs.
REFERENCIAS
Infraestructura de Llave Pública
http://en.wikipedia.org/wiki/Public_key_infrastructure
The Legion of The Bouncy Castle
https://www.bouncycastle.org/
Android Developers
http://developer.android.com/index.html

Contenu connexe

Similaire à Sistema de Control Escolar con Firma Digital de Calificaciones y Verificación de Firma Digital desde Dispositivos Móviles

Certificacion en java
Certificacion en javaCertificacion en java
Certificacion en javaErickArturo23
 
Desarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónDesarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónYesith Valencia
 
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de CriptografíaDavid Eliseo Martinez Castellanos
 
Anteproyecto
AnteproyectoAnteproyecto
AnteproyectoUAN
 
Jhon Cabana
Jhon CabanaJhon Cabana
Jhon Cabanajacksito
 
Presentacion Capaintermedia
Presentacion CapaintermediaPresentacion Capaintermedia
Presentacion CapaintermediaJhon Zuluaga
 
Desarrollo de una aplicacion web
Desarrollo de una aplicacion webDesarrollo de una aplicacion web
Desarrollo de una aplicacion webRuthReyes71
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAdrian Diaz Cervera
 
Modelo Qfd
Modelo QfdModelo Qfd
Modelo Qfdutsjr
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
Ingeniería en sistemas computacionales carpeta
Ingeniería en sistemas computacionales carpetaIngeniería en sistemas computacionales carpeta
Ingeniería en sistemas computacionales carpetaPablo Martínez
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
Informe general de proyecto imes
Informe general de proyecto imesInforme general de proyecto imes
Informe general de proyecto imesimes2011
 
Sílabo de herramientas de desarrollo de software
Sílabo de herramientas de desarrollo de softwareSílabo de herramientas de desarrollo de software
Sílabo de herramientas de desarrollo de softwareWILDER VILCAHUAMAN
 
Tecnoadvance
TecnoadvanceTecnoadvance
Tecnoadvancecaosorio3
 

Similaire à Sistema de Control Escolar con Firma Digital de Calificaciones y Verificación de Firma Digital desde Dispositivos Móviles (20)

Certificacion en java
Certificacion en javaCertificacion en java
Certificacion en java
 
Desarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónDesarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales Introducción
 
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía
2015 en Desarrollo de Aplicaciones Móviles haciendo uso de Criptografía
 
SECUC- SOFTWARE INNOVADOR
SECUC- SOFTWARE INNOVADORSECUC- SOFTWARE INNOVADOR
SECUC- SOFTWARE INNOVADOR
 
Reto certificacion
Reto certificacionReto certificacion
Reto certificacion
 
Taller de Facturación Electrónica
Taller de Facturación ElectrónicaTaller de Facturación Electrónica
Taller de Facturación Electrónica
 
Anteproyecto
AnteproyectoAnteproyecto
Anteproyecto
 
Defensa Final PFC
Defensa Final PFCDefensa Final PFC
Defensa Final PFC
 
Jhon Cabana
Jhon CabanaJhon Cabana
Jhon Cabana
 
Presentacion Capaintermedia
Presentacion CapaintermediaPresentacion Capaintermedia
Presentacion Capaintermedia
 
Desarrollo de una aplicacion web
Desarrollo de una aplicacion webDesarrollo de una aplicacion web
Desarrollo de una aplicacion web
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un Avenger
 
Modelo Qfd
Modelo QfdModelo Qfd
Modelo Qfd
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
Ingeniería en sistemas computacionales carpeta
Ingeniería en sistemas computacionales carpetaIngeniería en sistemas computacionales carpeta
Ingeniería en sistemas computacionales carpeta
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Extranet Mapa Mental
Extranet Mapa MentalExtranet Mapa Mental
Extranet Mapa Mental
 
Informe general de proyecto imes
Informe general de proyecto imesInforme general de proyecto imes
Informe general de proyecto imes
 
Sílabo de herramientas de desarrollo de software
Sílabo de herramientas de desarrollo de softwareSílabo de herramientas de desarrollo de software
Sílabo de herramientas de desarrollo de software
 
Tecnoadvance
TecnoadvanceTecnoadvance
Tecnoadvance
 

Plus de David Eliseo Martinez Castellanos

Taller Comparativo y Diseño de una Política de Seguridad de la Información
Taller Comparativo y Diseño de una Política de Seguridad de la InformaciónTaller Comparativo y Diseño de una Política de Seguridad de la Información
Taller Comparativo y Diseño de una Política de Seguridad de la InformaciónDavid Eliseo Martinez Castellanos
 
GIS Services development using CloudEO platform data and Tools
GIS Services development using CloudEO platform data and ToolsGIS Services development using CloudEO platform data and Tools
GIS Services development using CloudEO platform data and ToolsDavid Eliseo Martinez Castellanos
 
Implementación de Algoritmos Criptográficos y de Digestión de Mensajes
Implementación de Algoritmos Criptográficos y de Digestión de MensajesImplementación de Algoritmos Criptográficos y de Digestión de Mensajes
Implementación de Algoritmos Criptográficos y de Digestión de MensajesDavid Eliseo Martinez Castellanos
 
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...Diseño de herramienta de evaluación de la seguridad de la información y mapa ...
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...David Eliseo Martinez Castellanos
 
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...David Eliseo Martinez Castellanos
 
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality Control
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality ControlArcGIS Add-in Development In Python and C# for LIDAR Product Quality Control
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality ControlDavid Eliseo Martinez Castellanos
 
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...David Eliseo Martinez Castellanos
 
MARN Experience on the Development of Notification & Alert Systems
MARN Experience on the Development of Notification & Alert SystemsMARN Experience on the Development of Notification & Alert Systems
MARN Experience on the Development of Notification & Alert SystemsDavid Eliseo Martinez Castellanos
 

Plus de David Eliseo Martinez Castellanos (15)

2015 on Spatial Development (Personal Projects)
2015 on Spatial Development (Personal Projects)2015 on Spatial Development (Personal Projects)
2015 on Spatial Development (Personal Projects)
 
Taller Comparativo y Diseño de una Política de Seguridad de la Información
Taller Comparativo y Diseño de una Política de Seguridad de la InformaciónTaller Comparativo y Diseño de una Política de Seguridad de la Información
Taller Comparativo y Diseño de una Política de Seguridad de la Información
 
GIS Services development using CloudEO platform data and Tools
GIS Services development using CloudEO platform data and ToolsGIS Services development using CloudEO platform data and Tools
GIS Services development using CloudEO platform data and Tools
 
Air Quality Map
Air Quality MapAir Quality Map
Air Quality Map
 
Implementación de Algoritmos Criptográficos y de Digestión de Mensajes
Implementación de Algoritmos Criptográficos y de Digestión de MensajesImplementación de Algoritmos Criptográficos y de Digestión de Mensajes
Implementación de Algoritmos Criptográficos y de Digestión de Mensajes
 
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...Diseño de herramienta de evaluación de la seguridad de la información y mapa ...
Diseño de herramienta de evaluación de la seguridad de la información y mapa ...
 
My Showcase
My ShowcaseMy Showcase
My Showcase
 
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...
CRITERIOS DE SEGURIDAD EN UNA EMPRESA DE SERVICIOS DE VENTAS REGIONALES DE ED...
 
Monitoreo VSM - Apache Cordova Development
Monitoreo VSM - Apache Cordova DevelopmentMonitoreo VSM - Apache Cordova Development
Monitoreo VSM - Apache Cordova Development
 
Alertas @MARN.SV V2.0 Android App
Alertas @MARN.SV V2.0 Android AppAlertas @MARN.SV V2.0 Android App
Alertas @MARN.SV V2.0 Android App
 
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality Control
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality ControlArcGIS Add-in Development In Python and C# for LIDAR Product Quality Control
ArcGIS Add-in Development In Python and C# for LIDAR Product Quality Control
 
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...
Desarrollo de la Estación de Trabajo para el Monitoreo Ambiental y Monitoreo ...
 
Towards A Drought Monitoring System for El Salvador
Towards A Drought Monitoring System for El SalvadorTowards A Drought Monitoring System for El Salvador
Towards A Drought Monitoring System for El Salvador
 
Weather Hazard Mobile Application
Weather Hazard Mobile ApplicationWeather Hazard Mobile Application
Weather Hazard Mobile Application
 
MARN Experience on the Development of Notification & Alert Systems
MARN Experience on the Development of Notification & Alert SystemsMARN Experience on the Development of Notification & Alert Systems
MARN Experience on the Development of Notification & Alert Systems
 

Dernier

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarjosuesj13
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfdaa100407
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdfRodrigo Cerón
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdfRodrigo Cerón
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfLeonardoOa4
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfjuanrubenc78
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfMiSpotify
 

Dernier (9)

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizar
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdf
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdf
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdf
 

Sistema de Control Escolar con Firma Digital de Calificaciones y Verificación de Firma Digital desde Dispositivos Móviles

  • 1.  Resumen— El presente proyecto cubre el desarrollo de un prototipo de Sistema de cómputo que permite realizar la firma digital de calificaciones de estudiantes por parte del docente encargado de una asignatura y la posterior verificación de la calificación por parte de los estudiantes de dicha asignatura desde sus dispositivos móviles Android, con esto se trata el establecimiento de una infraestructura de llave pública para una institución educativa. Palabras Clave— Android, Infraestructura de llave pública, Java, RSA, Seguridad. I. INTRODUCCION La idea del presente proyecto surge como un control escolar basado en arquitectura de servidores Apache y OpenSSL, pero ante la inquietud de implementar la opción de firmado digital de calificaciones de estudiantes y verificación desde dispositivos móviles, una gran parte del proyecto fue desarrollada utilizando el lenguaje de programación Java y las interfaces de programación Bouncy Castle1 , manteniendo la compatibilidad con OpenSSL. Siendo Java el lenguaje de programación utilizado en los dispositivos Android, nos pareció una buena alternativa para realizar el proyecto. Como se mostrará en la arquitectura del proyecto, se desarrollaron 3 módulos:  Una aplicación Java Swing para la generación de la llave privada del docente y generación y exportación de una solicitud de firma de certificado digital que contiene la llave pública del docente, para firma por parte de una autoridad certificadora y la firma digital de las calificaciones de los estudiantes.  Una aplicación móvil Android (compatible con API 14 o superior) que permite la consulta y verificación de la firma digital de las notas por parte de los estudiantes.  Un módulo WEB de ingreso de notas y consultas WEB, simulando un módulo preexistente de control escolar al que se le está agregando la capacidad de firma digital de calificaciones. II. OBJETIVO DEL PROYECTO Crear una infraestructura de llave pública para la firma digital de calificaciones de estudiantes de una institución educativa. III. ALCANCES Y LIMITACIONES A. Alcances:  El docente encargado de la asignatura podrá generar su llave privada y solicitud de firma de certificado digital haciendo uso de la herramienta desarrollada, en un equipo de confianza y en ningún momento tendrá que transmitir o movilizar la llave privada.  Los estudiantes utilizarán una aplicación Android para consultar las notas y poder verificar la firma digital realizada por el docente. B. Limitaciones:  El prototipo trabajará con una pequeña base y control de notas diseñado específicamente para este proyecto. IV. ARQUITECTURA Y DISEÑO DEL PROTOTIPO La figura 1. Muestra la arquitectura del prototipo desarrollado, unas secciones requieren el desarrollo de una herramienta o aplicación mientras otras requieren la configuración de un servidor con sus respectivos servicios (OpenSSL, Base de Datos, Apache Web Server) Figura 1. Arquitectura del Sistema Desarrollado 1 https://www.bouncycastle.org/ Sistema de Control Escolar con Firma Digital de Calificaciones y Verificación de Firma Digital desde dispositivos Móviles David E. Martínez, Boris A. Martínez
  • 2. Para la implementación del punto 1 requiere la configuración de un servidor Linux para funcionar con Autoridad Certificadora. El punto 2 del diagrama requiere la configuración de un servidor Linux para funcionar como servidor de aplicaciones. Aquí residirá un sistema de control de notas elaborado para este ejercicio. El punto 3 representa la herramienta que se le proporcionará a los docentes usuarios del sistema para que puedan generar de forma autónoma sus pares de llaves RSA y una solicitud de firma de certificado digital para ser presentada ante la autoridad certificadora. El punto 4 es una aplicación móvil a ser utilizada por los estudiantes interesados en consultar sus notas y que además permite la verificación de las notas del estudiante a partir del certificado digital del docente. V. DISEÑO DEL PROTOTIPO La especificación del diseño del sistema se presenta a través de los diagramas de secuencias para las actividades realizadas por los actores involucrados en el sistema así como el modelo de la base de datos que le daría soporte al sistema. La figura 2. Muestra la interacción del docente con la herramienta que se le proporcionará para generación del par de llaves RSA y su almacenamiento en formatos compatibles con OpenSSL. Figura 2. Creación de par de llaves RSA. La figura 3 representa la interacción del docente con la autoridad certificadora, en este punto se le solicita al docente presentar en persona su solicitud de firma de certificado digital, de tal forma que se pueda garantizar la fuente de dicha solicitud de certificación. Figura 3. Creación del Certificado digital del docente (Firma por parte de autoridad certificadora) En la figura 4 se presenta el procedimiento de reporte de notas y por parte del docente, este procedimiento se realiza en dos fases, una que es simplemente cargar las notas y posteriormente la firma digital de las calificaciones de cada estudiante haciendo uso de la herramienta desarrollada con este propósito. Figura 4. Registro de notas y firma digital. El procedimiento de consulta de notas y verificación se presenta en la figura 5. Creación de llaves Publico/Privadas del Profesor Carga llaves del profesor(CSR) archivo CSR:= Crear llaves(datos generales del profesor) Profesor UDB Sec (BouncyCastle) Autoridad certificadora (Openssl) Carga llaves del profesor(CSR) archivo CSR:= Crear llaves(datos generales del profesor) Creación de certificado digital del profesor certificado digital Archivo CRT:= Crear certificado digital del profesor(CSR) Envia solicitud de certificación(archivo CSR) Profesor Autoridad certificadora ( Openssl) Servidor de Aplicaciones y Certificados certificado digital Archivo CRT:= Crear certificado digital del profesor(CSR) Envia solicitud de certificación(archivo CSR) Registro de Notas Genera un hash (md5 o sha) y cifra con RSA cada nota de los alumnos y alamcena en bd la firma digital. firma digital por alumno firma guardada Registrar firma digital Firmar digitalmente las notas Firmar Notas Notas grabadas Guardar Notas(alumno, notas) usuario logeado validar usuario Registro de notas(alumno, notas) Iniciar sesión(usuario, clave) Profesor AppWeb Notas UDB Sec (BouncyCastle) MySql firma digital por alumno firma guardada Registrar firma digital Firmar digitalmente las notas Firmar Notas Notas grabadas Guardar Notas(alumno, notas) usuario logeado validar usuario Registro de notas(alumno, notas) Iniciar sesión(usuario, clave)
  • 3. Figura 5. Consulta de notas y verificación de firma digital Para el prototipo, la base de datos del sistema es simple conteniendo solamente 4 tablas: Roles, Usuarios, Notas y Materias. El diagrama de la base de datos se muestra en la figura 6. Figura 6. Diagrama de la base de datos del sistema. VI. DESCRIPCION DEL PROTOTIPO DESARROLLADO Para el desarrollo del prototipo del sistema se configuraron dos equipos virtuales Linux Ubuntu 12.04 sobre el software de virtualización Oracle Virtual Box. Uno de los equipos para funcionar con entidad certificadora [OpenSSL] y el otro para funcionar como servidor de aplicaciones [Apache Web Server, PHP, MySQL Database Server]. La configuración de la autoridad certificadora incluye la creación del certificado raíz y la configuración de OpenSSL a través del archivo de configuración /etc/ssl/openssl.conf. La figura 7 muestra la configuración de openssl.conf en el equipo a funcionar como entidad certificadora. Figura 7. Configuración de la Autoridad Certificadora. La aplicación Web para el registro de las notas simula un sistema preexistente, en el cual solamente se registran las notas de los estudiantes, la figura 8 muestra la pantalla de registro de notas desde la aplicación Web. Figura 8. Ingreso de calificaciones en sistema tradicional de control de notas. La herramienta para la generación de llaves de solicitud de firma de certificado digital fue desarrollada en el lenguaje de programación Java con interfaz gráfica Swing y utiliza la librería Bouncy Castle para los servicios criptográficos. Esta herramienta se distribuye como un archivo jar ejecutable. El esfuerzo de desarrollar esta herramienta es para brindar la facilidad de generación de la llaves RSA a los docentes y que estas sean generadas en equipos de confianza del docente y la llave privada no tenga que ser transportada y menos expuesta. Esta herramienta permite la generación de la llave privada cifrada, la generación de una solicitud de firma de certificado digital, permite exporta esta solicitud con la idea de evitar confusiones a la hora de llevar dicho certificado ante la autoridad certificadora y una pantalla para realizar la firma digital de las notas de los estudiantes. La firma digital se realiza en la aplicación de escritorio siempre con el propósito de evitar que la llave privada sea transferida de lugar en cualquier momento. La figura 9 muestra la herramienta desarrollada, la figura 10 muestra la pantalla de firma de calificaciones. Verificación de Notas Notas certificadas verificación de llaves certificado Descargar certificado del profesor Consultar Notas(alumno) usuario logeado Validar usurio(usuario, clave) Iniciar sesion(usuario, clave) Alumno App Movil Notas Servidor de Aplicaciones y Certificados Notas certificadas verificación de llaves certificado Descargar certificado del profesor Consultar Notas(alumno) usuario logeado Validar usurio(usuario, clave) Iniciar sesion(usuario, clave) Usuarios LoginUsuario IdRol Nombres Apellidos Email ... varchar(25) int varchar(50) varchar(50) varchar(100) <pk> <fk> Roles IdRol Descripcion int varchar(50) <pk> Materias IdMateria Nombre int varchar(50) <pk> Notas LoginUsuario IdMateria Nota1 Nota2 Nota3 FirmaDigital ... varchar(25) int decimal(10,2) decimal(10,2) decimal(10,2) varchar(500) <pk,fk1> <pk,fk2>
  • 4. Figura 9. Herramienta de Generación de Llaves RSA, exportación de solicitud de firma de certificado digital y firma de calificaciones de los estudiantes. Figura 10. Pantalla de firma de calificaciones. La comunicación de esta aplicación y el servidor de aplicaciones es por medio del protocolo http, quedando pendiente la implementación a través https para la siguiente versión. La firma digital se realiza sobre el registro de cada estudiante, para esto el registro se codifica como una cadena JSON y se firma utilizando SHA1 con RSA y proveedor de seguridad Bouncy Castle. La firma se almacena en la base de datos para luego ser consultada por los estudiantes como parte del proceso de verificación. La aplicación móvil fue desarrollada utilizando Android Studio como herramienta de desarrollo, este es el entorno de desarrollo oficial para aplicaciones Android. El desarrollo de aplicaciones Android se realiza principalmente en Java y se utiliza XML para la definición de elementos visuales. Por ser lenguaje de programación Java esperabamos compatibilidad con la librería Bouncy Castle. Luego de unos conflictos entre cating de objetos se logró hacer funcionar la App móvil sin problemas. De forma similar a la aplicación Desktop, la comunicación de esta aplicación con el servidor de aplicaciones es a través de http. La Figura 11 muestra la captura de pantalla del dispositivo móvil ejecutando la aplicación, en este caso es un Motorola E, Android 4.4.4 (KitKat) Se muestran las notas registradas y la firma digital, la cual se almacena como una cadena de texto en base 64. Figura 11. Aplicación móvil para la consulta y verificación de firma digital de calificaciones. Para el prototipo, asumimos que el docente del grupo distribuye su certificado firmado por la autoridad certificadora a los estudiantes ya sea por correo electrónico o cualquier otro medio y que dicho certificado se encuentra en la memoria SD del dispositivo. Al presionar el botón se presentará una actividad Android (Android Activity) para la selección de certificado digital de profesor y posterior verificación de las calificaciones. (Figura 12) Figura 12. Selección del certificado para la verificación de la firma digital.
  • 5. Luego de seleccionar el archivo del certificado del profesor, se realizará la verificación y se presentará un mensaje Android TOAST indicando si la firma se acepta o rechaza y cambiará el color del a firma a verde si se acepta o rojo si se rechaza, lo cual se ilustra en la figura 13. Figura 13. Aceptación de la firma digital de las calificaciones de un estudiante. VII. PUNTOS A MEJORAR Debemos mencionar los puntos importantes que deben mejorarse en el prototipo, pero que no pudimos realizar en el tiempo que estaba establecido para la realización del proyecto. El primer punto es la verificación del certificado del profesor ante la autoridad certificadora al momento de realizar la verificación de las notas y la consulta de la lista de revocación, aunque el servidor configurado como autoridad certificadora quedó con la configuración completa de OpenSSL, la aplicación Android requiere que se agregue el procedimiento de esta verificación. El segundo punto es implementar el uso de SSL en la aplicación Java y Android, aunque se generó el certificado del servidor y se realizó la configuración del servidor Web Apache para utilizar SSL, los programas Java requieren una modificación para poder comunicarse vía https, esta comunicación es factible ya que se utiliza Apache Commons HttpClient para la comunicación, pero de igual forma, queda pendiente la implementación. VIII. CONCLUSIONES El modelo utilizado de firma digital puede ser aplicado a otros procesos que requieran una capa adicional de seguridad y verificación de identidad por lo tanto, las herramientas desarrolladas o el código fuente de dichas herramientas puede llegar a ser de utilidad en una situación real y no sólo de ámbito académico. El desarrollo del proyecto ha sido una gran experiencia y una gran oportunidad de aprendizaje. Nos encontramos con varias dificultades, principalmente de documentación y correspondencia entre las versiones de las librerías y la documentación y los ejemplos de uso de las APIs. REFERENCIAS Infraestructura de Llave Pública http://en.wikipedia.org/wiki/Public_key_infrastructure The Legion of The Bouncy Castle https://www.bouncycastle.org/ Android Developers http://developer.android.com/index.html