Información de Desarrollo

Protocolo de comunicación Moodle-SAMUEL-INGRID

El plugin de Moodle desarrollado muestra información privada de cada usuario por lo que debemos garantizar que la entrega de un modelo de un determinado usuario se realiza realmente a dicho usuario. Para ello, se ha establecido un protocolo de comunicación basado en criptografía asimétrica.

Inicialmente, desde el plugin de Moodle hacemos una petición a un servicio web de SAMUEL, que se encarga de hacer de intermediario con INGRID configurando apropiadamente el modelo del usuario. Como parte de esta petición se proporcionan ciertos parámetros, como el identificador del alumno, la ontología del curso, el recurso que realiza la petición u otras opciones de configuración. La petición se hace de forma interna desde el propio plugin, en PHP, por lo que ni sus parámetros ni la dirección del servicio web son visibles.

No obstante, si alguien conociese estos valores, podría obtener los modelos privados de todos los usuarios. Para evitar esta situación, se proporcionará al servicio web un parámetro adicional: la firma. De esta forma, Moodle firmará cada petición con su clave privada y el servicio web comprobará que la firma corresponde con quien dice ser antes de continuar con la configuración del modelo.

Ilustración 2. Diagrama de secuencia "Ver modelo" desde Moodle

De esta forma, si un usuario malévolo trata de consultar la información de otros usuarios, no podrá hacerlo ya que no conoce la clave privada utilizada por Moodle. Además, como cada sesión de INGRID está identificada con un valor hexadecimal de 32 dígitos, que se van eliminando periódicamente, resulta casi imposible que se pueda acceder a uno de los modelos sin conocer el identificador.

Por otra parte, INGRID permite la propuesta de notas por parte del profesor y del propio alumno. Esta funcionalidad es aún más delicada ya que no podemos permitir que un usuario malévolo se haga pasar por una persona que está proponiendo notas.

De forma similar a lo expuesto anteriormente para la consulta del modelo, Moodle generará una firma que se añadirá a la lista de parámetros enviados tras cada propuesta y SAMUEL verificará, antes de registrar una propuesta, que la firma concuerda con los datos proporcionados.

Para gozar de mayor independencia, el envío de las propuestas en INGRID no se hace a un servidor o dirección predeterminada, sino que se establece a la hora de configurar la sesión del usuario. Por tanto, será en ese instante cuando se añada el parámetro adicional de seguridad, que encriptará tanto el identificador del usuario que envía la propuesta como el tipo de propuesta (de alumno o de profesor, representado mediante un recurso de aprendizaje adicional).

Así, SAMUEL, antes de almacenar la nota del alumno proporcionado en el recurso propuesto, comprobará que la clave concuerda con dichos valores. Para ello, utilizará la clave pública del recurso desde donde se está proponiendo la nota, en este caso Moodle.

Ilustración 3. Diagrama de secuencia "Enviar propuesta"

Obtener fichero para distribuir el plugin

Podemos obtener un fichero distribuible con todos los archivos necesarios para instalar el plugin en una instalación existente de Moodle.

Bajo la carpeta scripts hay un fichero de construcción ant para cada recurso disponible en SAMUEL. Este fichero es el responsable de recopilar las claves y ficheros de configuración apropiados para cada recurso.

Así, si queremos obtener un fichero zip del plugin para el Moodle de Urano, usaremos ant build-urano.xml o el fichero build.xml proporcionándole un parámetro que indica el recurso utilizado: ant build.xml -Dresource=urano

Redmine Appliance - Powered by TurnKey Linux