Objetivo.
Esta página pretende dar información sobre el control de accesos,
mediante el
clauer y el paquete
de
software ClaBlock,
a las aulas de ordenadores de uso libre.
Características principales.
- Autonomía: El sistema no requiere ningún mantenimiento, ni siquiera para
las incidencias, los usuarios gestionan su autorización cooperativamente,
con toda la operativa registrada.
- Simplicidad: El programa puede instalarse en un sistema Windows XP
sin más requerimientos, no interaccionando con Windows en forma alguna.
- Seguridad: No se conoce forma de dejar el programa inoperativo
sin que se detecte y se anule. Si un usuario mata el proceso (posible,
pues corre a nivel de sesión), a los 5 minutos se apaga el ordenador,
después de emitir sonidos de alarma durante un minuto, que sirven
para delatar el intento de vulneración.
Requisitos y procedimiento de instalación.
El programa requiere:
- El soft base del clauer funcionando.
- Que exista un usuario no privilegiado que sea el que los
alumnos utilicen en su trabajo, quedando la cuenta de administrador reservada a los
operadores. Este usuario debe iniciar sesión automáticamente, el cierre e inicio de
sesión debe tardar un máximo de 1 minuto (se cumple en ordenadores muy lentos).
- Para evitar comportamientos improcedentes, es conveniente que esté inaccesible el
administrador de tareas.
- La cuenta de usuario debe estar correctamente securizada. Este requerimiento no se cumple
a fecha de hoy en ningún aula de las que hemos probado.
Para la instalación se facilita un programa
instalador, pero puede realizarse manualmente.
Los ingredientes de la instalación son los siguientes:
- El programa ClaBlock debe instalarse en un directorio donde el usuario no tenga permisos
de escritura, por defecto se instala en Archivos de programa,
donde es esperable que no pueda escribir.
El programa debe iniciarse automáticamente al inicio de sesión, lo que es
realizado por el instalador, modificando el registro.
- El programa usa las variables de registro:
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_AULA
que debe contener un código de ubicación
de 6 letras, por ejemplo MEDIAT .
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_SESION
que contiene los minutos que transcurren desde
que se retira el clauer hasta que se cierra la
sesión si no se introduce otro clauer
(ver apartado correspondiente).
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_HOST
con el nombre del servidor donde conectar por TLS sin autenticación
(explicado en el
apartado correspondiente), por ejemplo clablock.nisu.org.
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_PATH
con el path del script invocado dentro de ese servidor, poe ejemplo /x.php.
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_HOSTSSL
con el nombre del servidor donde conectar con autenticación por certificados.
- HKEY_LOCAL_MACHINE\SOFTWARE\Universitat Jaume I\Projecte Clauer\CLABLOCK_PATHSSL
con el path del script invocado dentro de ese servidor.
Las variables son establecidas por el instalador previa consulta.
- El programa BlockCheck debe instalarse en el mismo directorio donde
se ha instalado ClaBlock. BlockCheck es un Servicio de Windows
y por ello se inicia con el sistema, no con la sesión.
- En el mismo directorio donde se instalan ambos programas, debe encontrarse
una imagen tipo bitmap, que es la imagen que se muestra cuando está el
ordenador bloqueado, es un archivo de nombre insert.bmp.
Funcionamiento.
El programa
ClaBlock se ejecuta como usuario, al inicio de sesión. El programa
intercepta el teclado, bloquea las funciones especiales del teclado y muestra
la imagen que se superpone al escritorio. El usuario no puede trabjar.
Al introducir un
clauer, el programa obtiene
su identificador y consulta a un servidor por la autorización:
- Si el identificador es conocido y le queda tiempo, se elimina la
imagen y se desbloquea gran parte del teclado.
- Si le quedan sólo 5 minutos le avisa, si no le queda tiempo, le imforma y no
desbloquea.
- Si no conoce el identificador, procede a su inserción en la base de datos,
procedimiento que requiere autenticación fuerte contra los certificados.
Si se extrae el
clauer, el bloqueo se activa
de nuevo. El programa permanece en espera un tiempo fijado en la instalación.
Si en ese tiempo, se introduce de nuevo el mismo clauer, se desbloquea y todo
está como antes.
Pero si se introduce otro clauer o se agota el tiempo, la sesión se cierra
incondicionalmente.
El usuario puede matar a
ClaBlock simplemente usando
taskkill.
Es ahí donde interviene
BlockCheck, que cada 3 minutos testea si
ClaBlock está activo. Si no lo está repite el test un poco después y si
la situación persiste, hace sonar una alarma durante un minuto, que puede ser
aprovechada por los responsables de la sala para averiguar que pasa, y
después cierra incondicionalmente el sistema.
Comunicación con el servidor.
ClaBlock se comunica con un servidor web para su funcinamiento.
Si el servidor no responde, se decanta a favor del usuario, desbloqueando
la sesión sin más.
Si el servidor responde, devuelve una serie de códigos de resultado
y
ClaBlock actúa en consecuencia.
La url por defecto es:
https://{CLABLOCK_HOST}{CLABLOCK_PATH}
Es invocada por
ClaBlock cada 5 minutos. Y los parámetros (GET) son:
- ID: Identificación del clauer.
- accion: puede tomar 3 valores:
- ini: un nuevo clauer se ha intertado.
- act: es el mismo clauer.
- aula: ubicación lógica del equipo, que no tiene porqué coincidir
con una ubicación física, puede ser por ejemplo ESTCE1 o MEDIATE. Es un
código de 6 caracteres.
Los códigos esperados por
ClaBlock desde esta url son:
- 0: Quedan 5 minutos de uso.
- 1: Todo OK, podemos continuar.
- 2: Identificador de clauer desconocido.
- 3: Se acabó el tiempo.
- 4: Usuario no autorizado.
Deben ser devueltos como cadena de caracteres (algo como "echo '1'").
Cuando se produce el código 2,
ClaBlock invoca a la url:
https://{CLABLOCK_PATH}{CLABLOCK_PATH}
Esta url
requiere autenticación fuerte por certificados. Nótese que se
usan dos urls por comodidad, pues en los servidores "apache", es fácil indicar
qué urls requieren autenticación SSL/TLS y cuales no.
ClaBlock admite
renegociación, y al ser requerida la autenticación, muestra al usuario
la lista de certificados disponibles, y se realiza la autenticación. La url
recibe los mismos parámetros que la anterior y
ClaBlock espera los códigos:
- 0: Quedan 5 minutos de uso.
- 1: Todo OK, podemos continuar.
- 2: Error accediendo a la base de datos.
- 3: Se acabó el tiempo.
- 4: Usuario no autorizado.
- 5: No se pudo verificar la identidad.
El servidor web extrae el DNI del certificado y si es persona autorizada,
debe insertar el identificador del
clauer
en la base de datos, asociado a esa persona.
Una sencilla
colección de scripts,
implementa un modelo de uso basado en limitación de tiempo.
Créditos.
ClaBlock ha sido programado por Mauro con la colaboración de Paul,
sobre la base de un conjunto de funciones que desarrollaron Lionel y Mathias,
El proyecto ha sido dirigido por el firmante.
Por hacer.
- Red: El hecho que, si no hay red, funcione siempre, puede ser aprovechado
por alguien que no pretenda hacer uso de la red y que no quiera que le cuenten
las horas de uso. Hay que buscar una política que solucione esto.
- Reloj: El programa podría mostrar el tiempo restante (por ejemplo del día y de la semana)
en un reloj discreto.
- Limpieza: El programa actualmente no realiza ninguna función sobre el contenido
del disco duro. Podría revertir todo lo que el usuario ha hecho en la sesión. No es
probable que tengamos tiempo de implementar esto.