Введення пароля шляхом сканування qr-коду веб-камерою
Я досить ледачий і люблю всякі зручності, навіть якщо вони не завжди безпечні. Нижче я розповім, як можна змусити веб-камеру ноутбука їсти QR-коди і вводити паролі самостійно.
Рецепт моїх паролів завжди простий - head -c 12 / dev / urandom | base64 Однак, вводити його руками часто досить болісно: або розкладка не та, або промахнувся, або Caps Lock включив випадково. Мені це набридло. Спочатку я став користуватися баркод-сканером на роботі. Все б добре, але не завжди зручно тягати разом з ноутом досить габаритний девайс. Зовсім недавно мене наштовхнули на думку використання вебкамери в якості сканера. Я почав шукати відповідні утиліти для здійснення бажаного. zbarcam і zbarimg з БАРКОД справлялися погано, а ось QR-коди з'їли за милу душу. Я був окрилений натхненням і негайно сів писати чарівні милиці.
Танцювати, як то кажуть, прийнято від грубки, а грубкою був Crunchbang Linux, мій улюблений дистрибутив. Насамперед мені необхідно було згодовувати пароль всяким веб-формах і sudo. Як виявилося, немає нічого простішого:
Зберігши цей скрипт, я повісив його на хоткей Super-Z в OpenBox:
Далі, необхідно було протягнути якось зчитування коду в lightdm. Оскільки запуск команд по хоткей в ньому не підтримується, мені довелося розпалювати конфиг. І там я побачив щось цікаве:
Він є обв'язкою для запуску в тлі циклічного сканування до тих пір, поки не буде лічений пароль (без цієї обв'язки greeter lightdm 'а не хотів запускатися). Сам "сканер" виглядає так:
Варто зауважити, що lightdm запускає ці скрипти від імені root.
На закуску у нас XScreensaver. Він теж не дозволяє запускати команди за допомогою хоткея, але що заважає запустити описаний вище сканер разом з охоронцем екрану? нічого:
В скрипті ми описуємо запуск скрінсейвера:
Ось і все, пані та панове. Тепер можна показати веб-камері папірець з кодом і комп'ютер слухняно розблокується. Так, це не так і безпечно, та й в напівтемряві працює трохи краще ніж ніяк, але, спробувавши один раз, я вже не можу собі відмовляти в подібному задоволенні.
P.S. Так, я знаю про PAM. Мені ліньки було розбиратися з pam-script, бо документації як кіт наплакав.
P.P.S. / Tmp / завчасно перемістив в RAM.
P.P.P.S. Як виявилося, zbarimg досить вибагливий, тому зображення для нього потрібно готувати. Після зйомки кадру за допомогою fswebcam картинку потрібно перетворити:
Рецепт я підібрав майже випадково, поліпшення вітаються.