Защита доступа в системе онлайн тестирования/экзаменации студентов?
Добрый день.
Вот уже довольно долгое время я занимаюсь разработкой и поддержкой системы онлайн тестирования/экзаменации студентов для нескольких московских ВУЗов.
В настоящий момент доступ к прохождению теста или экзамена выдается в виде пары логин/пароль каждому студенту непосредственно перед началом тестирования. Такая система имеет свои недостатки (например, карточки с логином и паролем необходимо заранее распечатать и нарезать - при этом нет никакой гарантии, что логин и пароль не передадут какому-нибудь студенту заранее, что бы он в назначенное время мог пройти тест из дома. Это остается на совести проводящих тестирование, которые отнюдь не всегда являются профессорами - очень часто им помогают лаборанты, которые суть те же студенты).
Поэтому было решено подобную систему модифицировать.
Первое, что мне пришло в голову - это интеграция самого экзамена с личным кабинетом, доступ в который выдается каждому студенту один раз, с проверкой, находится ли студент в экзаменационной аудитории с помощью SSL сертификата (если на клиентской машине сертификат не установлен, студенту будет предложено пройти в соответствующую аудиторию для начала тестирования).
Такая система была бы довольно удобна как для студентов (нужно один раз запомнить свой логин/пароль), так и для преподавателей (список экзаменационных аудиторий устанавливается администрацией, можно выбрать конкретную аудиторию, студент заранее видит в своем аккаунте, в какой аудитории и когда будет проходить тест). Плюс играет простота развертывания такой системы.
Однако, SSL сертификат с десктопа можно экспортировать и вынести. И вот тут становится не очень понятно, как от этого защищаться.
Проверять IP адрес, безусловно, можно, но исключительно как добавление к сертификату, и то это не будет стопроцентной гарантией того, что студент находится в аудитории N. Плюс, для этого необходима плотная интеграция с IT-отделами, что может быть проблемно.
Была мысль организовать след. образом - как-нибудь подключить рабочие станции через сервер в аудитории, и проверять уже этот сервер. Но опять же, непонятно, как это реализовывать на практике, плюс опять же, нет никакой гарантии того, что сертификат/токен не украдут/вынесут.
Что посоветуете? Сталкивался кто-нибудь с подобной задачей? Есть ли что почитать на эту тему? Любым ответам или просто мыслям на тему буду рад.
Заранее спасибо!
К сожалению, не могу. Во-первых, я банально не знаю даже примерно (за это отвечает it отдел), а во-вторых, решение должно быть как можно более универсальным и развертываться как можно проще (мы не можем каждому вузу предложить перестроить их сеть, максимум - в пределах аудитории).
Но в любом случае, спасибо за ответ, и я буду благодарен, если вы разовьете свою мысль дальше.