Escuela Superior
de Ingeniería Informática
Universidad
de Málaga - España
El ordenador es una herramienta que está siendo usada cada vez mas para múltiples tareas que hasta hace poco tiempo parecía difícil. Por ejemplo para poder evaluar a los alumnos de todo tipo de materias. Por ejemplo en los institutos de la E.S.O. hay asignaturas de informática donde el examen ha de ser sobre el ordenador, En todas las carreras universitarias a lo largo de los cursos existen asignaturas relacionadas o no con la informática que realizan sus exámenes sobre el ordenador (En la carrera de Turismo existen asignaturas de base de datos, en esta y otras muchas carreras existen asignaturas de Internet). En autoescuelas tanto los test en teoría como las practicas se hacen sobre ordenador o alguna máquina con un ordenador incorporado.
El proyecto que
aquí se presenta intenta dar un paso mas en esta evolución,
un examinador va a poder evaluar a través de Internet de forma integra,
confidencial y fiable. Mientras el examinador se encuentre en una
habitación, los distintas personas que van a ser evaluadas pueden
estar dispersas en distintas aulas y distintos sitios geográficos,
solo con una persona encargada de vigilarlos. Para poder realizar esta
tarea nos encontramos con cuestiones que deben ser resueltas como pueden
ser:
Los principales
objetivos son:
Hardware
Se ha utilizado un Pentium III 450Mhz. Para hacer las veces de servidor, mientras que los ordenadores clientes han sido Pentium 100 y otros Pentium III 450 Mhz. Por supuesto se ha necesitado toda la infraestructura que requiere Internet (Hub, Routers, etc...) Ya que estas máquinas requieren de una comunicación entre si.
Software
| Herramienta Software | Donde se ha aplicado |
| C++ | Generador de Applet,Cifrado DES, Aplicación receptora de los datos enviados a través de CGI, Compilador de múltiples archivos fuentes, etc... |
| Java | ServidorTCP - Aplicación donde el profesor gestiona todo el proceso del examen -, los applets que son generados, Cifrado DES, Creación claves RSA, ETC.. |
| CGI y HTML | Creación de paginas Web, envío de datos al servidor. |
| IAIK | Librería criptográfica usada para el uso de RSA. |
| Servidores de páginas WEB Apache y httpd | Indispensables aplicaciones encargadas de la gestión de páginas WEB y CGI. |
| Windows NT | Como soporte del profesor. - El código puede portarse sin dificultad a otras plataformas -. |
| Windows 95 y 98, y Linux | Para los alumnos. |
| Navegadores Netscape e Internet Explorer | Recepción, navegación y visualización de páginas WEB. |
En un principio
hemos de tener en cuenta que tareas son las que se han de llevar a cabo,
en consecuencia, cada tarea estará destinada a ser implementada
o requerirá aplicaciones para su futuro funcionamiento, estas tareas
son:
Adquisición de datos de los alumnos: Los alumnos deben enviar sus datos al ordenador servidor del profesor, esta tarea también se hace a través de una página Web, por lo tanto el envío de datos se ha de hacer en CGI, mientras que la aplicación que gestiona estos datos por simple rapidez y facilidad de uso es se ha pensado en el lenguaje C.
Aplicación
del profesor: Esta aplicación es la columna vertebral desde el comienzo,
realización y finalización del examen, esto es:
Una parte de
esta aplicación debe dar la orden de comienzo de examen, enviando
la clave particular a cada alumno, la clave se dice particular porque debe
ser distinta en cada examen, y esta aplicación debe distinguir a
los alumnos de forma única para poder discernir que clave corresponde
a cada uno; En cuenta al tipo de clave se ha decidido usar el algoritmo
DES, debido a que la velocidad de codificación/Descodificación
es rápida y el tiempo medio calculado para romper este algoritmo
es muy superior al tiempo de espera de los alumnos para comenzar el examen.
Una segunda parte de esta aplicación debe gestionar los volcados - backup - de exámenes por parte de los alumnos, estos podrán realizar una copia de seguridad cada vez que deseen. La aplicación mantendrá siempre dos copias la ultima enviada y la antepenúltima, de manera que se minimiza los riesgos de pérdida de información. Debido a que las respuestas del alumno a cada pregunta del examen deben llegar a través de Internet hasta el profesor, se debe evitar que cualquier otro alumno pueda capturar esta información en claro, por lo que esta información antes de salir de la aplicación del alumno sé criptografía a través del algoritmo RSA.
Durante el examen es muy normal que los alumnos deseen preguntar al profesor sobre cuestiones del examen, o puede ocurrir que en las preguntas del examen haya cualquier errata, por lo tanto en esta aplicación se podrá atender a preguntas de los alumnos y las respuestas se podrán realizar de forma individualizada - o sea, al alumno que la ha realizado -, o de forma global a todas las personas que estén realizando el examen. Los alumnos podrán decidir si se desean conectar al servidor para hacer preguntas o no.
El profesor podrá
ir eliminando fácilmente el texto de las múltiples preguntas
que va recibiendo a lo largo del examen. Cada pregunta, vendrá
precedida por el identificativo -DNI- de la persona que la realiza.
Tan importante como realizar de forma adecuada el examen, es identificar de forma fiable que la persona que se sienta tras el ordenador, para ello se ha pensado usar criptografía asimétrica o criptografía de clave pública. Se usa el algoritmo RSA ya que el tiempo medio de ruptura de este algoritmo es muy elevada para las posibilidades técnicas actuales.
Se ha creado
una aplicación para la generación de claves - pública
y privada - tanto para los alumnos como para el profesor. Solo con esto
no se puede asegurar que la persona es quien dice ser, para ello
debemos crear certificados que nos darán la veracidad sobre la identidad
de las personas. Estos certificados los debe crear una autoridad superior
también llamadas Autoridades de Certificación.
Esta es la aplicación
principal en el periodo anterior a la realización práctica
del examen; Debido a las múltiples funciones que debe realizar,
se ha dividido es subprogramas, de manera que el seguimiento y la comprensión
del programa sea más fácil.
Antes
de ejecutar el generador de exámenes, se han debido realizar los
siguientes pasos:
Las partes que
voy a dividir la explicación del generador son:
Todas las etiquetas usadas se han de marcar con su principio y su fin, por ejemplo para poner la fecha es:
<F> fecha <\F>
Los tipos de
etiquetas permitidos por el generador son las siguientes:
| Etiqueta | Descripción |
| <T> Texto <\T> | Titulo del examen |
| <F> Texto <\F> | Fecha de realización del examen |
| <PREG> Texto <\PREG> | Enunciado de la pregunta |
| <1> <\1> | Tipo de respuesta escrita mediante explicación |
| <2> Texto <\2> | Respuesta de solución única entre varias posibles (Test) |
| <3> Texto <\3> | Respuesta de solución múltiple entre varias posibles |
El examen debe empezar - de forma opcional - por un título y una fecha, las etiquetas usadas para este fin solo se pueden usar una vez, en caso contrario se producirá un error.
Una vez que aparezca la primera etiqueta de tipo pregunta, las etiquetas de tipo fecha y título, no serán admitidas, originando nuevamente un error.
Las etiquetas de enunciado de preguntas -<PREG>- no se cierran hasta indicar que tipo de respuesta se desea para ella; En cuento al tipo de respuesta se puede poner la combinación que se desee de etiquetas de tipo respuesta, con la única apreciación de las respuestas tipo <2> y tipo <3>, ya que son contradictorias, en caso de mezclar dentro de la misma pregunta, las opciones con etiqueta tipo <3> se podrán seleccionar de forma múltiple y mientras que entre las opciones con etiqueta tipo <2> solo podremos seleccionar una.
Por lo demás
se puede pedir cualquier otra combinación de respuestas. Tras la
última etiqueta de tipo de respuesta se debe cerrar la etiqueta
de enunciado de pregunta (<\PREG>).
Tras introducir
sus datos, cada alumno recibe una página que le lleva directamente
al examen, en el momento de recibir el examen, este se recibe codificado
con su clave particular, y una ventana advierte de este hecho.

Una vez recibida la clave el examen se descodifica automáticamente y el alumno puede proceder a la su realización. Durante el examen el alumno podrar enviar al profesor tantas veces las respuestas, estas se irán copiando en el servidor del profesor (se mantendrán siempre dos copias, una la última realizada y justamente la anterior). En caso de caida accidental del equipo del alumno, al volver a conectarse al servidor del profesor, este le devolvera el contenido de todas las respuestas enviadas por el alumno por última vez (obviamente cada respuesta en su pregunta).
Paralelamente a este proceso los alumnos tendrán otra ventana con la que se podran conectar para realizar preguntas al profesor, este podrá responder particularmente a un alumno o por el contrario podra notificar lo que crea necesario a todos los alumnos que realizan el examen.
Ventana del
alumno para la realización de preguntas.
Interfaz
del profesor