Чиндогу на Aruino Leonardo или зачем просто когда можно сложно!
Данный обзор я хочу посвятить конструкции на модуле Aruino Leonardo (ATmega32U4). Про саму плату сложно что-то необычное сказать. Пришла быстро, упакована хорошо, монтаж аккуратный, работает без замечаний. Если требуется контроллер с поддержкой USB - вполне достойный вариант.
Основная проблема с микроконтроллерами - это придумать, для чего их применить :) Я давно хотел собрать что-нибудь относительно полезное в хозяйстве. А тут коллега по работе подкинул интересную идею - ему лень было каждый день вводить пароль для входа в свой компьютер и он собрал на плате DigiSpark (ATTiny85) приспособу, которая отправляет имя и пароль в комп при нажатии на кнопку.
Получилось у него вот что:
Отличная идея - подумал я. Почему бы ее не позаимствовать и творчески переработать. Пересобирать и перезагружать проект Arduino каждый раз при смене пароля - это неспортивно. Ведь можно сделать все гораздо сложнее и запутаннее!
Игрушка должна показывать, как она работает. Но трех штатных светодиодов для этого явно мало, пусть их будет 4099! Так в проект добавился маленький дисплей OLED 128X32.
Я все никак не мог придумать, куда его можно приспособить. А тут он идеально подошел по размеру и назначению. Еще потребуется пара кнопок - для управления.
Ресурсов ATTiny85 явно не хватало для проекта - добавление дисплея потянуло за собой графическую библиотеку+шрифты и все это в DigiSpark не влезало. Но поиск обнаружил подходящую платформу: Arduino Leonardo.
Смысл проекта в том, что Aruino Leonardo по умолчанию прикидывается USB клавиатурой и USB COM портом. Драйверы для этих устройств уже присутствуют в операционной системе - и ничего дополнительно устанавливать не надо. Конечно существуют всякие программы, которые где-то хранят в себе пароли, но они не могут их передать на экран логина тк
пользователь еще не вошел в систему.
Предлагаемое вашему вниманию чиндогу PasswordKeeper имитирует нажатия кнопок клавиатуры и может передать логин и пароль в любом режиме компа. Даже Ctrl-Alt-Del послать может нажатием 1 кнопки вместо 3!
Формфактор выбранных модулей оказался очень удобным и компактным. Можно с минимальными усилиями собрать маленькое и относительно полезное устройство.
Схема получается - проще некуда.
Пока не выдохлось вдохновение быстро рукожопим макет и отлаживаем на нем скетч.
Но в таком виде пользоваться им неудобно, поэтому в Sketchup проектируем маленький корпус.
И печатаем его на вот таком 3D принтере
Как водится, поспешность нужна при ловле блох. В первый вариант корпуса плата не лезет!
Промахнулся с размерами и выбрал слишком маленькие зазоры. Исправляем чертеж, перепечатываем и получаем второй вариант. Уже лучше - плата входит тик-в-тик.
Нажимаем на контроллер и с характерным хрустом он встает на место.
Примеряем кнопочки - входят без проблем.
Далее вставляем толкатели, припаиваем кнопочки и дисплей.
Кстати, я долго искал удобный монтажный провод для макетирования. Наш МГТФ конечно хорош, но не всегда удобен. В результате сейчас я пользуюсь присутствующем на предыдущих фото проводом 30AWG от все тех же китайцев. Цветными проводами удобно выделять цепи по смыслу. Провод тонкий, изоляция хорошо держит температуру паяльника. Не так как МГТФ конечно, но вполне прилично. Обычная ПВХ изоляция расползается при пайке сразу, а эта размягчается, но держит форму и выдерживает случайные прикосновения жала без проплавления до жилы. Единственный недостаток - на многоцветную катушку продавец злостно недомотал провода. Одноцветная катушка весит ~170 грамм а на многоцветную намотали всего 109 грамм при бОльшей цене.
Собираем все вместе и получаем маленький токен, который подключается к компу и позволяет управлять и пользоваться достаточно большим количеством логинов и паролей.
Число логинов ограничено размером памяти EEPROM (1024 байта) и длиной паролей.
Дисплей позволяет выбирать по комментарию нужную пару логин/пароль, а так же редактировать данные в токене. Редактировать пароли можно двумя кнопками. Редактор я к токену прикрутил, но пользоваться им - сущий мазохизм. Поэтому для редактирования данных пришлось написать программу для PC.
Тк в поделке у нас хранятся пароли надо хоть чуть-чуть позаботится о их безопасности.
Забота о безопасности поможет усложнить проект и придаст ему серьезности. Для этого был добавлен пароль на разблокировку токена. Он представляет собой задаваемую пользователем последовательность одиночных и двойных нажатий на кнопки.
Теоретически, можно еще зашифровать данные в EEPROM с помощью какого-либо криптоалгоритма - место под код еще есть. Но снаружи эти потуги незаметны и поэтому с криптографией я заморачиваться не стал.
Токен в обычном состоянии недоступен с компьютера. Для перевода его в режим редактирования необходимо физически выбрать соответствующий пункт в меню кнопками. Точно так же для отправки пароля требуется физически нажать кнопку. Так что злой хакер до ваших паролей в токене не доберется! Он перехватит их c USB порта, когда вы будете их посылать как с USB клавиатуры ;)
В результате получилась штуковина, в которой я храню пароли для входа на сайты банков и другие места.
Специально для коллеги все оставшиеся выводы платы запрограммировал для подключения кнопок быстрого доступа. При нажатии на такую кнопку происходит переход к логину с соответствующим номером (если он есть). Для отправки его на комп остается только нажать кнопку подтверждения. Или подержать кнопку быстрого доступа подольше.
Завершив этот проект я предлагаю всем желающим повторить это замечательное устройство, которое позволит вам потерять все ваши пароли совершенно новым способом!
Потерять бумажку может каждый, а сделать для этого специальное устройство и потерять его или пароль к нему - это внушает уважение!
Перед выходом на публику PwKeeper прошел тщательный выходной контроль:
Главинспектор был только что разбужен, но он все равно недоумЯвает - почему аудитории предлагается явно недоделанное устройство. Мои слова о том, что надо проверить правильность и качество монтажа (а при закрытой крышке это затруднительно) его не убедили.
Тем не менее (после шантажа сосиской) он выдал мне сертификат соответствия:
Исполняемые и загрузочные файлы выложил сюда.
http://www.taker.im/review/13155-chindogu-na-Aruino-Leonardo-ili-zachem-prosto-kogda
|