Защита от админов

NiGHT

Новичок
Защита от админов

Мне необходимо реализовать тестовую систему. Впросы и ответы должны хратиться где-то на сервере. Все php скрипты тоже лежат на сервере. Однако админы, обслуживающие сервер, могут скопировать вопросы или всю систему целиком. Тогда актуальность тестовой системы пропадает! Необходимо что то придумать.

Админу достаточно 3 действий для обслуживания: добавить тест, удалить тест, посмотреть тест (например из 1 стандартного вопроса).

Всеми правами должен быть наделен преподаватель, однако преподы сервер не поднимут. Они могут только набирать и наблюдать.


Ломаю голову уже 5 дней. Ничего дельного не придумал. Самая хорошая задумка: ввести код преподавателя, код системы, коды для студентов и спец код для админов. Формируем базу вопросов закодированую преподом из нее формируем несколько тестов и кодируем их кодами студентов и делаем один тест с кодом админов. Но как реализовать это не представляю.
 

SiMM

Новичок
> Однако админы, обслуживающие сервер, могут скопировать вопросы или всю систему целиком. ... Необходимо что то придумать.
Купить собственный сервер.
 

NiGHT

Новичок
Автор оригинала: SiMM
Купить собственный сервер.
Дело в том что сислема будет использоваться в классах университета, а там все компы обслуживают админы. Просто рядовой преподаватель, например истории, обслуживать сервер не сможет! А админы набираются из числа студентов. Например главный админ нашей ветки сети учится в паралельной группе и мы сдаем одинаковые экзамены. Естественно он подсмотрит вопросы (экзамен нахаляву). Конечно может не всем раскажет, но для себя святое дело.

В принципе преподаватель может иметь свой отдельный комп., но только для того чтобы писать на нем вопросы и самому конектится к серверу.
 

nerezus

Вселенский отказник
А разве админ системы не заслуживает хорошей оценки? )

P.S. Он даже может сдавать темт перебором, т.е. все равно сдаст
А данные все-таки как-нибудь пошифруй по легкому, а скрипт зендом покрой ;)
И сделай, чтобы много раз подряд сдавать нельзя было )
 

ksnk

прохожий
SiMM
А сервер кто будет администрить :) Тот-же админ из парралельной группы?
NiGHT
Впросы и ответы должны хратиться где-то на сервере...
Как вариант ответа SiMM - разместить - вопросы-ответы, на стороннем сервере. Есть много в меру халявных серверов с PHP.
А стоит ли публиковать ответы? и что такое - ответ? Вариант из списка возможных (число), одно слово или длинная фраза? В последнем случае для оценки все равно нужно вмешательство преподавателя и публиковать его не нужно...
 

StUV

Rotaredom
NiGHT
а преподы не могут самостоятельно вливать задания с собственного носителя минут за 5 до начала тестирования ? =)

-~{}~ 07.08.06 22:57:

имхо достаточно продумать интерфейс парсера и сделать readme рассчитаный на уровень человека понимающего что такое cdrom =)


зы: вообще говоря админами надо делать преподающих аспирантов...
 

nerezus

Вселенский отказник
зы: вообще говоря админами надо делать преподающих аспирантов...
с нашим уровнем преподавания админы - это те, кто может.
Есть даже школьники, которые разбираются в системе во много раз лучше, чем взрослые дяди )
 

NiGHT

Новичок
Автор оригинала: StUV
nerezus
хм...
а какое направление вуза ? =)))
Всесторонее. Десяток факультетов (био, хим, мат, физ, эконом, истор, иняз, гео, юр, фил и д.р.). Система разрабатывается мной для каф. вычислительных машин, но может потом использоваться хоть где. Но народ из других кафедр тоже может быть админами. Просто туда берут тех, кто хочет заработать немного на карманные расходы. Неделя курсов и вот тебе десяток машин и админские пароли. Нанимать когото со стороны дорого, пусть даже и они и больше знают (винду ставить хоть кто сможет). Сторонние админы держат только Netware сервер и гигабитные каналы связи (просто там деньги вращаются большие).

-~{}~ 08.08.06 11:03:

Автор оригинала: StUV
а преподы не могут самостоятельно вливать задания с собственного носителя минут за 5 до начала тестирования ? =)
Могут. Как вариант я это рассматривал. Мне не нравится только одно: базу с вопросами нельзя использовать повторно. Кроме того админ может просто вскрыть базу с ответами (а без ответов смысла в тестировании нет ведь все вручную проверять) и ответить как надо. Или просто подправить сводную таблицу...
 

denver

?>Скриптер
1. Тесты пусть приносит препод в день экзаменовки.
2. Не надо клиенту (даже если знает пароль админа) давать возможность релогиниться как админ.

что там еще, вроде ничего не сделаешь :)
менять пароли перед экзаменом тоже помогает.

-~{}~ 08.08.06 11:20:

Кроме того админ может просто вскрыть базу
Ну если у админа есть доступ к исходникам (во время экзамена) значит и к БД есть. Значит остается просто не дать ему досту к машине (нонсенс). Или экзаменовку проводить на другом сервере и проблема сводится к стандартной проблеме c админом этого другого сервера.
 

nerezus

Вселенский отказник
хм...
а какое направление вуза ? =)))
политех. На четвертом курсе изучается... не смейтесь.. написание резидентного калькулятора под дос на тасме.
Причем хватают только вершки. Даже основы одного языка не выучили - идем дальше.

А вот кому надо писать калькуляторы по дос, и какая от этого польза - хз.

P.S. А на втором курсе есть HTML. Причем на уровне конца 90х годов.
 

NiGHT

Новичок
Вопрос всеравно остается открытым !!!

Дело в том что у админа права на доступ к серверу не отберешь. Ибо он сам их должен выставить. Поэтому админ может сделать любой конект и получить доступ ко всей папке со скриптами (а если отбирать совсем, то он потом админом сделаться не сможет). В тестовой системе он конечно пользователь и будет работать как все. Физически его можно отсадить от сервера за любую машину. Но ставить ограничения на коннект с ip нельзя т.к. он не сможет сдавать тест. Релогины нужны ибо сетка может глючить (неисключен факт саботажа ибо класс маленький и сдавать приходется в 2 приема т.е. первая половина и вторая половина). Конечно защита от повторного прохождения теста нужна и будет реальзована.

Тут напрашивается какое то шифрование. Простыми ограничениями тут ничего делать. Вот пример на который кажется надо ориентироваться (только доконца не предствляю как): вот есть юзер и админ. Админ устанавливает прогу создающую шифрованный диск. А пользователь используя эту прогу создет сам диск и работает в нем. Админ может удалить файл с диском или прогу, может их скопировать, но данные прочитать и добавить не может. Вот так.

-~{}~ 08.08.06 14:11:

Автор оригинала: nerezus
политех. На четвертом курсе изучается... не смейтесь.. написание резидентного калькулятора под дос на тасме.
Причем хватают только вершки. Даже основы одного языка не выучили - идем дальше.

А вот кому надо писать калькуляторы по дос, и какая от этого польза - хз.

P.S. А на втором курсе есть HTML. Причем на уровне конца 90х годов.
У нас хоть и не политех (а физфак), но образование тоже поверхностное, только основы. Резидентами и тасмом на в 2 курсе страдали, а HTML на 4ом и в школе.
 

Raziel[SD]

untitled00
NiGHT
1. Вопросы не шибко сильно зашифровать(чтобы тупо скопировать нельзя было)
2. Студенты тестируются, ответы сохраняются на сервере
3. После тестирования, препод загружает файл с правильными ответами, после чего получает отчет о том, кто, где, чего, как и сколько ответил, потом все ответы студентов удаляются(бэкап ответов можно отдавать преподу), на сервере опять остаются только зашифрованые вопросы :).
 

php4all

Guest
Думаю что может быть два вариaнта решения:

1. хранить всё на другом бесплатном сервере, таких в нете немало.
2. скрипт распознавания правильности ответов можно оставить на сервере с любым доступом.
вопросы грузить отдельным файлом путём аплода непосредственно перед сдачей экзамена
и не надо их шифровать, хотя если уберегаться посказок со стороны, то лучше шифровать.
А после экзамена грузить файл с ответами.
 

regi

Новичок
if(md5($otvet_ot_polzovatela) == $otvet_iz_bazi) почему бы не хранить в базе хеш ответа - даже если админ посмотрит в базу, увидит кучу крякозябр =)
 

php4all

Guest
regi, потому что админ может в этом случае написать проверку типа:
PHP:
$otvet = 0;
while($otvet < ...)
{
	if(md5($otvet) == $otvet_iz_bazi)
		print "правильный ответ = ".$otvet;
}
 

NiGHT

Новичок
1. Инет подключать нельзя! Ибо это лишние расходы и обслуживать сервер с нашей стороны будут наши админы (ибо кроме них некому).

2. Хеши (CRC) использовать нельзя т.к.
- для ответов, можно поставить перебор или проверку как сказал php4all.
- для вопросов, нельзя восстановить саму их формулировку, ее надо хранить гдето.

3. Нужно шифровать под пароль! При том под пароль препода и/или пароль студентов. А для этого его надо либо раздавать всем, либо постоянно требовать с препода. Это техническая проблема.

4. Грузить ответы под конец можно, но нехотелось бы. Если считать что скрипт перепишут, то тут уже помоему ничего не поможет, кроме компиляции в консольный exe.

Вокруг пункта 3 и надо что то думать.
 

NiGHT

Новичок
Автор оригинала: Wicked
перепиши код на brainfuck :)
Это че за ?@:confused:?@#:confused: #?
Со времен форта ничего такого прогресивно-долбанутого не видел.:)

...но ужасно хотел найти еще такого, только не думал что тут такое получится.
 

StUV

Rotaredom
NiGHT
тогда единственный вариант - распечатывать ответы студентов и пусть препода ручкой на бумаге тестируют

иначе никак
если админы заинтересованы в разглашении "секретной инфы", никем и ничем не ограничены в своих полномочиях и не контролируются никем сверху - защитить информацию почти невозможно ....

единственный вариант - шифровать инфу алгоритмом с закрытым ключем, который хранится на носителе препода, защищенном от копирования, при условия пустой серверной в момент проведения тестов

=)))
 
Сверху