kde4 и авторизация пользователя по отпечатку пальца

Сканеры отпечатка пальца уже давно перестали быть новинкой, их есть великое множество и выпускаются они в многочисленных вариантах исполнения. Чаще всего эти устройства встречаются в ноутбуках, хотя ноутбуки далеко не единственная область их применения. Используются эти устройства для авторизации пользователя: поскольку любой отдельно взятый отпечаток пальца является уникальным, то на основании полученного со сканера отпечатка можно сделать вывод о разрешении или запрете запрошенной операции.
Для операционных систем от Microsoft производителями в подавляющем большинстве случаев обеспечена полная поддержка сканеров отпечатка пальца: с их помощью возможно выполнять вход в систему при включении или выходе из режима ожидания. Так же, некоторыми производителями поддерживается авторизация для броузеров и почтовых клиентов.
До недавнего времени автор не очень-то задумывался об описанном выше способе авторизации. Но после приобретения ноутбука, оборудованного соответствующим устройством, решил найти ему применение под операционной системой Gentoo Linux. Это оказалось совсем непросто: оказывается, с поддержкой сканеров отпечатка пальца в Linux дела обстоят довольно грустно. В качестве GUI автор использует KDE4, а с поддержкой таких устройств в KDE дела совсем плохо. После почти двух месяцев поиска варианта применения этого устройства автор смог найти более-менее приемлемый, именно о нем и пойдет речь ниже.

В ОС Linux, к сожалению, нет никакой поддержки для сканеров отпечатка пальца в ядре. Соответственно, драйверов для любого подобного устройства под Linux не существует. Но все же есть способ использовать некоторые модели устройств, с помощью sys-auth/libfprint. Это библиотека, разработанная в Манчестерском университете, которая работает со сканером, не используя никаких специальных модулей ядра, через libusb. Все основные функции для работы с устройствами унифицированы, и для каждого поддерживаемого типа устройства в библиотеке существует собственный модуль, который разработчики называют "драйвером". Для определения подлинности отпечатка пальца разработчики библиотеки создали алгоритм, подробности которого автору неизвестны, но суть примерно такова: изображение преобразуется в векторный формат, потом на преобразованном изображении выделяются точки, характеризующие отпечаток пальца. При проверке происходит такое же преобразование и сравнение полученных точек с сохраненным образцом. Со списком поддерживаемых в настоящий момент моделей устройств можно ознакомиться на сайте проекта libfprint.
Библиотека libfprint сама по себе не имеет никаких функций авторизации пользователей, для обеспечения такой возможности были разработаны несколько модулей PAM, использующих эту библиотеку. Здесь будет рассмотрен только один из них, по скромному мнению автора, лучший для обеспечения авторизации в kde4 по отпечатку пальца. Этот проект называется fingerprint-gui. В состав пакета, кроме модуля PAM, входит программа для сохранения и проверки образцов отпечатков. В этой статье нет нужды описывать настройку fingerprint-gui, на сайте проекта есть подробное и понятное описание. Для пользователей GNOME и XFCE проблем с использованием fingerprint-gui нет. С KDE, как уже было сказано выше, дела обстоят несколько сложнее, и здесь не обойтись без рассмотрения процедуры настройки kdm для нормального использования fingerprint-gui.

Начнем с того, что проблемы с использованием fingerprint-gui вместе с kdm были изначально, и начали обсуждаться на багтрекере kde еще в 2005г. Пользователи просили разработчиков обеспечить возможность использовать альтернативные методы аутентификации в kdm, даже предлагали конкретные решения, а разработчики ответили, что предложенные решения не вписываются в общую концепцию kdm, который имеет модульную структуру, и предложили создать соответствующий плагин, забыв, однако, сообщить некоторые детали, необходимые для его создания.
Вместе с выходом kde-4.1, в состав kdm был включен дополнительный плагин авторизации под названием "generic". Об этом было вскользь упомянуто в одном из сообщений на багтрекере, и автор с его не очень хорошим английским, сначала этого не заметил, и поэтому решил самостоятельно поправить код kdm таким образом, чтобы его было возможно использовать вместе с fingerprint-gui. Патч, хоть и решал проблему с использованием fingerprint-gui вместе с kdm, совершенно не увязывался с концепцией разработчиков, и поэтому был ими отвергнут. Однако, автору было указано на то самое мимолетное упоминание о плагине "generic" и он им воспользовался.
К удивлению и негодованию автора, при использовании kdm c плагином "generic" и fingerprint-gui все отлично работает, причем именно так, как и желал автор: была возможна авторизация в kde4 без каких-либо нажатий клавиш или указания пользователя, вход в сеанс kde4 осуществлялся только проведением пальца по сканеру. Далее, при успешном опознании отпечатка, имя пользователя определялось PAM-модулем fingerprint-gui и kdm в итоге выполнял вход нужного пользователя. Кроме того, с помощью сканера отпечатка пальца возможно выполнить и разблокирование рабочего стола при выходе из ждущего/спящего режимов. Правда, в последнем случае никакой информации о дополнительном методе авторизации нет, но тем не менее, он работает. В документации KDM, а также в README и Changelog, входящих в исходные тексты, никаких упоминаний о плагине "generic" не встречается, разработчики ответили автору на соответствующий вопрос, что этот модуль еще не закончен.

Теперь собственно о самом процессе установки и настройки fingerprint-gui для kde4. К сожалению, на настоящий момент для fingerprint-gui ebuild-ов в основном дереве нет. Автору пришлось делать ebuild самостоятельно, но он не рискует публиковать его здесь, поскольку не уверен в его кошерности, но это не значит, что он жадный и никому его не отдаст.
Перед установкой fingerprint-gui убедитесь, что kde-base/kdm, kde-base/kscreensaver и kde-base/kcheckpass установлены с USE="pam".
1. Настройте fingerprint-gui, как описано в документации на сайте проекта.

2. С помощью GUI-программы, входящей в состав пакета, создайте образцы отпечатков пальцев.

3. Отредактируйте параметр "PluginsLogin" в файле /usr/share/config/kdm/kdmrc, добавив в него строку: PluginsLogin=generic,classic

4. В настройках входа в систему выберите оформление kdm "Oxygen", потому что плагин "generic" не поддерживает новых тем оформления kdm. Автор не может утверждать, что вышеупомянутый плагин не поддерживает абсолютно все отличные от "Oxygen" темы оформления, но "Oxygen-air", используемую в KDE по умолчанию, не поддерживает точно.

Если все сделано правильно - вы можете пользоваться сканером отпечатка пальца для авторизации в сеансе kde4.

В заключение автор хотел бы сказать, что список поддерживаемых устройств libfprint, ссылка на который указана в начале, не совсем верный. Автор владеет ноутбуком, оснащенным сканером отпечатка пальца Egistec SS801U, отсутствующим в списке, и создал "драйвер" этого устройства для libfprint. Пока что он не включен в официальную версию libfprint, но желающие могут взять исходные тексты libfprint-0.3.0 с поддержкой сканера SS801U здесь.

>Автору пришлось делать

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

http://gpo.zugaina.org/sys-auth/fingerprint-gui

Спасибо, этот я видел. Но с

Спасибо, этот я видел. Но с ним есть грабли, связанные с kde-4.6, точнее с polkit-qt. В своем я костыль вставил, и именно он меня смущает. :)

Это действительно круто по

Это действительно круто по отпечатку!

Согласен, что круто, но не

Согласен, что круто, но не практично, имхо

Николай Смолов

.

Автор - молодец

а эта строка - это просто подпись

побольше бы таких упорных,

побольше бы таких упорных, любознательных и отважных хакеров (в истинном понимании этого слова)!!!
респект и уважение!! ;)

:(

Theli - ну зачем отвечать то на посты оленей, которые зашли на форум
чтоб разрекламировать свой сайт. Пишут то они не от души - а от корысти...

Это вообще о чем? И о ком?

Это вообще о чем? И о ком?

:)

alexpro написал(а):
Это вообще о чем? И о ком?

Об mulat (см. выше поста Theli) - и не надо мне говорить что этот чувак что-то шарит в Gentoo,
и зарегался на форуме специально для того, чтоб оставить такой многозначащий камент:)

Вообще честно говоря - достали сеошники-спамеры, едрить их... :)
Надеюсь, в новом форуме будет кнопка "Пожаловаться"?

Мне надо было внимательнее

Мне надо было внимательнее читать. Я под утро смотрел, уже почти спал, наверно не заметил. А теперь тот пост, видимо, удалили.

Да, я его снёс, в первый раз

Да, я его снёс, в первый раз видать пропустил. Но думаю что Agressor ошибся, так как видимо использует плоский вид при просмотре форума, в древовидном было видно что Theli отвечал не на спамерский каментарий.

Agressor написал(а): Theli -

Agressor написал(а):
Theli - ну зачем отвечать то на посты оленей, которые зашли на форум
чтоб разрекламировать свой сайт. Пишут то они не от души - а от корысти...

Стоит добавить фишку :) Мол если кол-во сообщений меньше N или время пребывания на форуме меньше часов M.
Не показывать в профиле ссылку на сайт :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Действительно)) Полностью с

Действительно)) Полностью с вами солидарен

Неплохо было бы узнать о

Неплохо было бы узнать о надежности самой процедуры.
Недавно славный канал "Дискавери" показал одну из серий "мозголомов", которым удалось "вскрыть" супернавороченный сканер отпечатков пальцев с датчиком температуры парадоксальным способом - распечатанный на бумаге отпечаток пальца проложили на "живой" палец. И железка скушала ;)

Никто не говорил о том, что

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

как-то годик назад я

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

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Очень удобная штука

Очень удобная штука

>>Очень удобная штука

Эх, вот если бы ещё удалось прикрутить скроллинг к сканеру отпечатков пальцев, вот это было бы круто...

Кстати, а аутентификацию по отпечатку пальца я пару лет назад на FreeBSD настраивал, правда без гуи.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".