Fondo
Estamos diseñando un sistema de prueba basado en computadora donde los examinados usan sus propias computadoras para escribir sus respuestas. Las computadoras de los examinados se inician en un sistema operativo Linux personalizado desde las unidades USB proporcionadas por el examinador.
Las unidades USB que se utilizan para iniciar las computadoras de los examinados contienen exactamente la misma imagen del sistema operativo.
El examen en sí lo proporciona un servidor central y las respuestas se transfieren nuevamente al servidor central a medida que se escriben. Todas las computadoras involucradas están en una LAN cerrada.
El sistema debe admitir reanudar el examen desde el último estado transferido al servidor en caso de una falla de hardware. La unidad USB utilizada como almacenamiento permanente puede fallar potencialmente, al igual que la computadora portátil del examinado.
Las personas de confianza verifican las identidades de los examinados en algún momento del evento (antes, durante o después de que los examinados realicen el examen). La verificación de identidad debe causar una interrupción mínima para los examinados y un trabajo mínimo para las personas de confianza. Puede haber hasta un par de cientos de personas que toman el examen en el mismo espacio con aproximadamente una persona de confianza por cada 20 examinados.
Diseño actual
Nuestro diseño actual es generar un token fuerte en la computadora del examinado cuando el examinado comienza el examen. El token se calcularía utilizando el SSN provisto por el examinado y algunos UUID de hardware (CPU, unidad USB). Este token se almacenaría en la unidad USB. Cuando el examinado termina el examen, pasaría la unidad a una persona de confianza. La persona de confianza entonces, utilizando una computadora dedicada, verificará la identidad del examinado y el token almacenado en la unidad con el token almacenado en el servidor central.
Las ventajas de este diseño son que es fácil para un grupo de examinados comenzar el examen, y la verificación es una actividad de solo lectura al final del examen. Este diseño tiene al menos una debilidad: en caso de que el hardware utilizado para los tokens de dos o más examinados se rompa simultáneamente, ya no es posible verificar quién tenía el dispositivo. Por ejemplo, una sobrecarga de energía podría causar que varias computadoras portátiles y unidades de disco se descompongan en el mismo momento exacto.
Pregunta
¿Qué otros vectores de ataque vienen a la mente y cómo podrían mitigarse? ¿Algún mejor diseño alternativo?