Pull to refresh

Беспарольная аутентификация с помощью телефона

Несколько лет назад на работе приходилось решать вопрос интеграции linux-машин в структуру домена active directory. Именно тогда я познакомился с такой замечательной вещью как PAM (Pluggable Authentication Modules). Это система подключаемых модулей аутентификации. Возможности этой библиотеки может использовать любое приложение. Для реализации аутентификации на linux-машине с помощью пароля, хранящегося в AD, я и использовал специальный модуль pam_winbind, для кэширования пароля на машине и последующей оффлайн авторизации pam_ccreds и pam_mount для монтирования сетевых «дисков».
Меня очень впечатлила такая гибкость системы аутентификации в Linux. Довольно много времени я потратил на игры с различными модулями. В этой заметке я расскажу, как сделать беспарольную аутентификацию с использованием Bluetooth.

Для начала установим необходимый модуль
sudo apt-get install libpam-blue
Теперь создадим файл конфигурации /etc/security/bluescreen.conf
general {
timeout = 3;
}
NAVIdendi = {
name = Galaxy;
bluemac = 00:1B:12:C6:4D:98;
timeout = 5;

Здесь NAVIdendi это имя пользователя, а name и bluemac соответственно имя устройства и его mac адрес. Их можно посмотреть с помощью утилиты hcitool:
$ hcitool scan
Scanning…
00:1B:12:C6:4D:98 Galaxy

Вместо имени пользователя можно указать и название целой группы через символ «@».
Теперь необходимо лишь добавить в начало конфига /etc/pam.d/common-auth строчку «auth sufficient pam_blue.so».
Все, на этом настройка закончится. Как вы видите, все элементарно. Теперь можно входить в систему введя только имя пользователя, если у вас с собой есть телефон. В противном случае можно по-прежнему ввести пароль.
Заинтересовавшиеся могут еще реализовать блокировку экрана при отдалении телефона от компьютера. Это можно сделать с помощью программы blueproximity, которая имеет простой gui-интерфейс.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.