Слепая печать:
  Championship-Ru
  Championship-En
Список форумов urikor.net urikor.net
Все о слепой машинописи и клавиатурных тренажерах
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

TS как защита от читеров

 
Начать новую тему   Ответить на тему    Список форумов urikor.net -> Typing Statistics - утилита для анализа параметров набора текстов
Предыдущая тема :: Следующая тема  
Автор Сообщение
Dron
Полковник
Полковник


Зарегистрирован: 06.07.2005
Сообщения: 2213
Откуда: Odessa

СообщениеДобавлено: Вт Янв 05, 2010 5:12 pm    Заголовок сообщения: TS как защита от читеров Ответить с цитатой

Давно размышляю о реальности/нереальности использования TS для защиты от читеров в различных онлайн-чемпионатах по набору. Сейчас нет технологии, полностью гарантирующей честность результата. Сломать можно всё, вопрос только во времени. Некоторые настолько просты, что их ломают все кому ни лень, например, Гонки на Клавиатурах ВКонтакте. Клавогонки, наверное, наиболее защищены, но тоже не на 100%.

Как и все серьёзные системы защиты, думаю, стоит обсуждать открыто методы защиты и подделки результатов.

Итак, самый простой способ подтасовки. Текст, который надо набрать - известен. Забиваем его в какую-либо из огромного числа программ с функциями записи макросов и по нажатию одной клавиши скармливаем браузеру. Существующий самый надёжный способ защиты - делать текст неизвестным, либо требующим распознавания. Так делается в Клавогонках, когда текст приходит в виде картинки. Обойти можно, но довольно трудоёмко - вытянуть всю базу текстов, затем - быстрый поиск по первым буквам и подсовывание программе для автоматического набора. Это сравнительно сложно. Ну, или бота для распознавания, как правило, тоже можно написать, хотя это ещё сложнее. В чемпионате Интерстено текст приходит один раз. Это неплохая защита, хотя текст можно перехватить при приходе от сервера или можно узнать у другого участника чемпионата либо через фейковый аккаунт. Но для обычных чемпионатов такое неудобно. В тех же Клавогонках есть туры, где надо набирать по словарю всегда один и тот же текст и там очень просто подсунуть фальшивый результат. Часто хочется набирать один и тот же текст, чтобы видеть свой прогресс (Ежедневочка, например).

Какие ещё есть способы защиты? Программы автонабора выводят текст на огромных скоростях и крайне ритмично. По этим параметрам можно отслеживать "человечность". Конечно читер сможет обойти и эту защиту, специально внеся неравномерность в набор, но это уже сложнее и такая простая защита иногда оправдывает себя.

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

Может ли программа автонабора сгенерировать нажатие, которое нельзя отличить от обычного?

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

Кроме того, программы автонажатий, кажется, обычно не генерируют событий отпускания клавиш. Опять-таки, вопрос к Филу. Могут ли они их сгенерировать так, что не отличить от обычного?

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

Профиль наборщика и профиль клавиатуры.

Эксперты-криминалисты могут по пуле определить, был ли выстрел из данного пистолета или из другого. А нельзя ли по параметрам набора текста определить на какой модели клавиатуры и каким наборщиком он набран, если создать профиль наборщика и профиль клавиатуры? Как уже неоднократно выяснялось, разные параметры набора зависят от клавиатуры и от её драйверов. Минимальное время между двумя нажатиями, минимальное время удержания, время прямого и обратного срабатывания двубуквенного аккорда, кратность задержки некоторому интервалу. Правда, все эти параметры проявляются только на высоких скоростях, но именно высокие скорости обычно и подделывают. Думаю, при детальном изучении вполне можно увидеть подозрительные вещи. Например, интервалы меньше минимального для данного типа клавиатуры.

Профиль наборщика. Тут можно выделить и некоторые общие закономерности и частные. Общие очевидны. Некоторые сочетания невозможно набрать быстро в определённых раскладках и техниках набора. И если мы видим, что ЦИ набрано так же быстро, как и ВА, то есть повод усомниться в результате. Также у каждого пользователя могут быть свои особенности. Тут вообще задача интересная. Может быть эти особенности так же индивидуальны как отпечатки пальцев или хотя бы как почерк.

Какие есть способы обхода такой защиты? Можно записать себя на медленной скорости, потом пропорционально уменьшить все интервалы и подсунуть через специальную программу. В этом случае по профилю наборщика ничего определить нельзя. Но можно по профилю клавиатуры. Крайне вероятно, что задержки нажатий станут нетипичными. Вопрос только, реально ли автоматизировать процесс идентификации и валидации профилей, как клавиатурных, так и пользовательских.

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

Подписанный файл, который генерирует TS - ещё один бастион защиты, так как довольно просто подменить данные, отсылаемые скриптом на сервер. А чтобы изменить подписанный файл нужно, как я понимаю, как минимум декомпилировать TS. Разумеется, валидацию профилей нужно проводить на сервере, получая только защищённый файл с нажатиями. Иначе легко подсунуть поддельные данные.

Кто что думает по этому поводу?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
myst
Подполковник
Подполковник


Зарегистрирован: 05.12.2008
Сообщения: 1332

СообщениеДобавлено: Вт Янв 05, 2010 7:04 pm    Заголовок сообщения: Ответить с цитатой

Dron писал(а):
Может ли программа автонабора сгенерировать нажатие, которое нельзя отличить от обычного?

Через SendInput() нет, но можно сделать драйвер. В конце концов, можно сделать устройство. Wink Помнится, Fil делал такое, и как я понял, делается оно элементарно.
Зачем вообще подделывать результаты, если призов денежных нет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dron
Полковник
Полковник


Зарегистрирован: 06.07.2005
Сообщения: 2213
Откуда: Odessa

СообщениеДобавлено: Вт Янв 05, 2010 7:16 pm    Заголовок сообщения: Ответить с цитатой

myst писал(а):
Зачем вообще подделывать результаты, если призов денежных нет?
А может и денежных призов нет, если можно легко подделать результаты. Подделывают и без призов. Зачем - не знаю, из желания выпендриться, наверное.

Устройство понятно что можно сделать. Поэтому и описал другие способы валидации.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
myst
Подполковник
Подполковник


Зарегистрирован: 05.12.2008
Сообщения: 1332

СообщениеДобавлено: Вт Янв 05, 2010 9:04 pm    Заголовок сообщения: Ответить с цитатой

Dron писал(а):

Профиль наборщика. Тут можно выделить и некоторые общие закономерности и частные. Общие очевидны. Некоторые сочетания невозможно набрать быстро в определённых раскладках и техниках набора. И если мы видим, что ЦИ набрано так же быстро, как и ВА, то есть повод усомниться в результате. Также у каждого пользователя могут быть свои особенности. Тут вообще задача интересная. Может быть эти особенности так же индивидуальны как отпечатки пальцев или хотя бы как почерк.

Я помню, лет 10 назад широко обсуждались возможности дистанционного обучения. В частности как раз ставился вопрос о надёжной идентификации удалённого студента. Если мне не изменяет память, одним из вариантов была фиксация движений указателя мыши. Правда, не знаю, внедрили этот способ или нет, и насколько он надёжен.
Меня в нашем случае смущает то, что никто не помешает создать профиль для программы, а «идеальность» набора программой можно вылечить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
myst
Подполковник
Подполковник


Зарегистрирован: 05.12.2008
Сообщения: 1332

СообщениеДобавлено: Вт Янв 05, 2010 9:10 pm    Заголовок сообщения: Ответить с цитатой

Dron писал(а):

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

А вот такие троянские вещи мне не нравятся. Starforce must die в любой своей реинкарнации. Smile
Любые решения на территории противника ненадёжны. Реверсировать и пропатчить можно всё. Было бы желание. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Fil
major
major


Зарегистрирован: 21.11.2008
Сообщения: 514
Откуда: Россия, Муром

СообщениеДобавлено: Ср Янв 06, 2010 12:57 pm    Заголовок сообщения: Ответить с цитатой

Что касается защиты, то 100% конечно же сделать нельзя. Но сильно усложнить жизнь желающим можно.
Нажатия, генерируемые при помощи стандартных средств Windows (SendInput, например), также перехватываются Ts, как и настоящие, и отличить их от настоящих я могу. Нажатия, которые генерируются PCмом или Punto на клавограмме видно, и они выделяются синим.
Однако если бы я сам захотел взломать собственную защиту и написать программу, которая имитирует нажатия так, что Ts не сможет отличить их от настоящих, то, думаю, что я бы справился. Написать драйвер (или хотя бы фильтр драйвера) - это один из вариантов. Можно и без драйвера, мысли по этому поводу у меня есть. Всё это можно, конечно, попытаться отловить программно, но это, конечно, будет сложно и жутко неэффективно против любого оперативно противодействующего человека с мозгами.
Ну а если сделать железяку, то тут уж никакие программные защиты не помогут. Но это ещё сильнее сужает круг возможных претендентов на взлом, потому как программировать многие могут, хорошо и глубоко - уже немногие, а вот программировать и делать железяки - ещё меньше.

На настоящее время 100% защитой я бы посчитал клавограмму с записанным параллельно видео, хотя этот вариант и без клавограммы часто будет достаточным доказательством. Но этот вариант, конечно же, крайне сложен и неудобен. Для международных соревнований он ещё как-то может быть применён, а для онлайн - вообще нереально по техническим причинам в первую очередь.

Что касается программы, которая имитирует набор человека, то это сложно, конечно же, но в принципе решаемо. Можно взять большую базу клавограмм, хоть своих, хоть чужих, и по ней сделать алгоритм. Для прохождения одного и того же текста - вообще всё просто, можно взять клавограмму, пропорционально ускорить (паузы в большей степени, времена удержания - в меньшей), укоротить значительные паузы, удалить ошибки, и будет уже вполне похоже на правду.
Что же касается практической возможности распознавания человека по его клавиатурному почерку, то это вполне возможно, вероятно, хотя я не знаю, с насколько достоверной вероятностью. Со мной связывался человек (через личку), процитирую немного:
Цитата:
мне для дипломной работы необходимо "вытаскивать" длительности в excel или куда-либо для их анализа(как это можно сделать с паузами), но с длительностями у меня что-то не получается...
подскажите пожалуйста...

И далее:
Цитата:
дипломная работа на тему :"Биометрические системы доступа.
В частности распознавание по клавиатурному почерку" разработка и постановка лабораторной работы...
Если кому интересно, я могу её попросить, возможно она прольёт свет на эту тему, вероятно какие-то результаты исследований уже есть. Да и теоретическая подготовка соответствующая у неё, видимо, имеется, раз она взялась за такую тему.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dron
Полковник
Полковник


Зарегистрирован: 06.07.2005
Сообщения: 2213
Откуда: Odessa

СообщениеДобавлено: Ср Янв 06, 2010 1:23 pm    Заголовок сообщения: Ответить с цитатой

Fil писал(а):
Написать драйвер (или хотя бы фильтр драйвера) - это один из вариантов.
Ну что ж, если для полной имитации нажатий требуется писать драйвер, а все остальные средства автоматизации легко распознаются, то это, пожалуй, уже достаточная защита от 99.99% хакеров.

Вариант с видео плох уже тем, что требует ручного анализа результата, ну и конечно куча технических нюансов. Кроме того, видео ведь тоже ничего не мешает пропорционально ускорить.

Насчёт распознавания по клавиатурному почерку было бы интересно почитать или хотя бы поглядеть соответствующие общедоступные исследования по теме.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
myst
Подполковник
Подполковник


Зарегистрирован: 05.12.2008
Сообщения: 1332

СообщениеДобавлено: Ср Янв 06, 2010 6:52 pm    Заголовок сообщения: Ответить с цитатой

Dron писал(а):

Ну что ж, если для полной имитации нажатий требуется писать драйвер, а все остальные средства автоматизации легко распознаются, то это, пожалуй, уже достаточная защита от 99.99% хакеров.

Зачем же так хакеров обижать? 99 % школьников, да, можно отсеять. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nestor
major
major


Зарегистрирован: 21.12.2008
Сообщения: 638

СообщениеДобавлено: Пт Янв 08, 2010 5:33 am    Заголовок сообщения: Ответить с цитатой

Относительно определения по «почерку» печатающего человека я выкладывал докторскую диссертацию на эту тему. Не помню, вся работа или только её часть посвящена этому моменту. Я её читал по диагонали, и только часть работы. http://urikor.net/phpBB2/viewtopic.php?p=68606#68606 Сейчас посмотрел действительно плохо подписал. Интересно знает ли обращавшийся к вам специалист о эту работу…

Цитата:
Более современные работы:
2009 год Докторская диссертация. Сontinuous Typist Verification using Machine Learning C Новая Зеландия Нужно будет внимательно ознакомиться. Файл в 14 частях...

На первый взгляд работа серьёзная, и вообще там много интересных частей... Нужно найти время и внимательно прочитать её всю... Idea
_________________
Учусь объясняться с компьютером на пальцах.
http://www.klavogonki.ru/profile/76392
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nestor
major
major


Зарегистрирован: 21.12.2008
Сообщения: 638

СообщениеДобавлено: Вт Июн 08, 2010 4:21 am    Заголовок сообщения: Ответить с цитатой

Ага есть подобная диссертация и в отчизне
http://www.abashin.ru/valeriy/chapter1_experimentals/dissertation/avtoreferat.pdf
А ещё есть такая программа этого автора http://www.mficompany.narod.ru/ru/chapter2_programs/handwriting/

Моя оценка тройка! (видимо из-за малого процента перекрытий)
_________________
Учусь объясняться с компьютером на пальцах.
http://www.klavogonki.ru/profile/76392
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов urikor.net -> Typing Statistics - утилита для анализа параметров набора текстов Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Как бесплатно сделать свой сайт    Просто о сложном