like-all 14.03.2013 03:02
Tips & tricks — Ввод пароля путём сканирования QR-кода веб-камерой.
Я достаточно ленив и люблю всякие удобства, даже если они не всегда безопасны. Ниже я расскажу, как можно заставить веб-камеру ноутбука кушать QR-коды и вводить пароли самостоятельно.Рецепт моих паролей всегда прост - head -c 12 /dev/urandom | base64
Однако, вводить его руками часто довольно мучительно: либо раскладка не та, либо промахнулся, либо Caps Lock включил случайно. Мне это надоело. Сначала я стал пользоваться баркод-сканером на работе. Всё бы хорошо, но не всегда удобно таскать вместе с ноутом довольно габаритный девайс. Совсем недавно меня натолкнули на мысль использования вебкамеры в качестве сканера. Я начал искать подходящие утилиты для осуществления желаемого. zbarcam и zbarimg с баркодами справлялись плохо, а вот QR-коды слопали за милую душу. Я был окрылён вдохновением и тотчас сел писать волшебные костыли.
Плясать, как говорится, принято от печки, а печкой был Crunchbang Linux, мой любимый дистрибутив. Перво-наперво мне необходимо было скармливать пароль всяким веб-формочкам и sudo. Как оказалось, нет ничего проще:
Сохранив этот скрипт, я повесил его на хоткей Super-Z в OpenBox:
1 |
|
Далее, необходимо было протащить как-то считывание кода в lightdm. Поскольку запуск команд по хоткею в нём не поддерживается, мне пришлось раскуривать конфиг. И там я увидел нечто интересное:
1 |
|
Запускаемый скрипт:
1 |
|
Он является обвязкой для запуска в фоне циклического сканирования до тех пор, пока не будет считан пароль(без этой обвязки greeter lightdm'а не хотел запускаться). Сам "сканер" выглядит так:
Стоит заметить, что lightdm запускает эти скрипты от имени root.
На закуску у нас XScreensaver. Он тоже не позволяет запускать команды посредством хоткея, но что мешает запустить описанный выше сканер вместе с хранителем экрана? Ничего:

В скрипте мы описываем запуск скринсейвера:
1 |
#!/usr/bin/env bash
|
Вот и всё, господа и дамы. Теперь можно показать веб-камере бумажку с кодом и компьютер послушно разблокируется. Да, это не так и безопасно, да и в полумраке работает чуть лучше чем никак, но, попробовав один раз, я уже не могу себе отказывать в подобном удовольствии.
P.S.: Да, я знаю про PAM. Мне лень было разбираться с pam-script, ибо документации с гулькин нос.
P.P.S.: /tmp/ заблаговременно переместил в RAM.
P.P.P.S.: Как оказалось, zbarimg довольно привередлив, поэтому изображения для него нужно подготавливать. После съёмки кадра с помощью fswebcam картинку нужно преобразовать:
1 |
convert /tmp/printcode.png -colorspace Gray -normalize -equalize -depth 50 -white-threshold 20000 /tmp/printcode.png
|
Рецепт я подобрал почти случайно, улучшения приветствуются.

+ 1 -
Пароль записанный на бумажке? Нет уж, увольте.
Как вариант на брелке с остальными ключами. Для не самых важных паролей — почему нет?
Если в системе все пароли разные, что по-идее и должно быть, то придётся таскать целый блокнот с QR-картинками :)
Сегодня я подумал и немного модифицировал код. Дописал туда невообразимую комбинацию из base64 и unireverse. Теперь можно не бояться, что какой-нибудь хипстор в кафе прочитает пароль.
напомнило Джони-мнемоник с 3мя фотографиями :)
а идея хороша. можно продолжить- например на визитках, рекламках и тп есть qr-коды, можно использовать для гостевого доступа на спецразделы внутренней сети, сайты ("предъявителю визитки с QR-кодом скидки, акции, купоны и тп"..) как-то так.
а идея хороша. можно продолжить- например на визитках, рекламках и тп есть qr-коды, можно использовать для гостевого доступа на спецразделы внутренней сети, сайты ("предъявителю визитки с QR-кодом скидки, акции, купоны и тп"..) как-то так.
Пароль на бумажке - не слишком секурно. Но... но за идею + решение ловите заслуженный плюс
Кастую в тред отпечатки пальцев. до 21 пароля можно носить и не палиться
Эээ… Насчитал у себя 20 пальцев. Где 21-й? Или имеется в виду что-то неприличное?…
Вот это крутота!
Кстати, а что мешает в телефон картинки с qr-кодами залить?
Я вот для хранения паролей по-старинке пользую keepasx с дропбоксом.
Кстати, а что мешает в телефон картинки с qr-кодами залить?
Я вот для хранения паролей по-старинке пользую keepasx с дропбоксом.