Динамика нажатия клавиш в Linux - PullRequest
3 голосов
/ 18 января 2009

Я подумываю о внедрении приложения динамики нажатия клавиш (аутентификации людей на основе их шаблонов набора) для Linux. На мой взгляд, у меня есть две альтернативы:

  1. Расширение входа в Linux для поддержки динамики нажатия клавиш
  2. Создание программы для блокировки рабочего стола, которая «блокирует» экран и может быть разблокирована только машинисткой с определенным шаблоном печати

Возможна ли альтернатива 1? Windows поддерживает расширение процесса входа в систему с помощью msgina.dll, поддерживает ли Linux что-то подобное?

Для альтернативы 2 возможно ли отключить мышь и клавиатуру?

Ответы [ 4 ]

3 голосов
/ 18 января 2009

libpam имеет возможность плагинов. так что да, вполне возможно, как (в) знаменитой msgina:)

блокировка экрана довольно обидчива - кто за это отвечает? Диспетчер окон, X-сервер, Диспетчер сеансов, процесс заставки,?

Боюсь, что разные среды рабочего стола (Gnome, KDE ...) могут иметь разные мнения. Хотя в настоящее время я уверен, что все они будут использовать какой-то интерфейс dbus FreeDesktop для координации этого типа функций.

2 голосов
/ 19 января 2009

Предполагая, что это больше, чем просто игрушка (другими словами, если вы планируете распространять), убедитесь, что вы думаете о том, как обойти анализ шаблонов печати, когда что-то идет не так. Мои модели печати, вероятно, со временем меняются, так как у меня проблемы с запястьями, которые вспыхивают время от времени. Когда они это сделают, мой набор текста, вероятно, заметно изменится. Я не был бы слишком удивлен, если бы мое печатание изменилось с утра до ночи, даже если я более или менее устал и / или с кофеином.

0 голосов
/ 18 января 2009

Правильный способ сделать это, вероятно, через модуль аутентификации PAM. Ознакомьтесь с руководством по написанию модулей здесь: http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_MWG.html

По сути, вы можете просто добавить свой модуль в стек PAM, выполнить его анализ нажатия клавиш, а затем передать в систему либо успех, либо сбой. Это позволяет вам интегрировать его с процессом входа в консоль и даже SSH, если там включен PAM. Я не совсем уверен, как это будет работать с графическим логином, таким как KDM или GDM. Я знаю, что вы можете использовать модули PAM с ними, но, конечно, взаимодействие осуществляется через текстовое поле GUI.

0 голосов
/ 18 января 2009

Эй, Linux с открытым исходным кодом, вы можете делать все что угодно: -)

Весьма вероятно, что вам не нужно изменять ядро. Например, вход в терминал контролируется программой login. Изменение источника и его восстановление определенно позволит вам делать то, что вам нужно, хотя насколько это сложно, я понятия не имею: -)

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

РЕДАКТИРОВАТЬ: Если подумать, я не уверен, что login выполняется достаточно рано, чтобы уловить динамику нажатия клавиш. Кроме того, это немного рискованно, потому что если ваша версия входа в систему не удастся, это может затруднить вход в систему и решить проблему. Возможно, вам придется взглянуть на getty и посмотреть, как он вызывает login. Если вы делаете это в графическом интерфейсе, это может быть проще, так как вы всегда можете обратиться к текстовому терминалу, чтобы решить любую проблему.

...