Оглавление:
- Шаг 1. Идея
- Шаг 2: идея и проводка
- Шаг 3: приготовление
- Шаг 4: Создание дела
- Шаг 5: 3D-печать
- Шаг 6: дело готово
- Шаг 7: примерка кейса
- Шаг 8: Пайка. Провода
- Шаг 9: PwKeeper готов
- Шаг 10: PwKeeperPc - простое редактирование данных в токене
- Шаг 11: PwKeeper запускается
- Шаг 12: поток мыслей
- Шаг 13: Осмотр-1
- Шаг 14: Осмотр-2
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Похоже, что основная проблема с микроконтроллерами для любителей электроники (особенно начинающих) - это выяснить, где их применить:) В наши дни электроника, особенно цифровая, все больше похожа на черную магию. Только волшебники 80-го уровня могут что-то делать с крошечными компонентами. По этой причине платы Arduino становятся очень популярными. Они заключают в себе черную магию и немного дыма;) в доску с управляемыми людьми булавками.
Этот пост я хочу посвятить довольно простому проекту под названием PasswordKeeper на базе платы Aruino Pro Micro. На этой плате размещен чип ATmega32U4.
Шаг 1. Идея
Давно хотел сделать что-нибудь простое и полезное с каким-нибудь контроллером. И тут мой коллега подкинул интересную идею - ему лень каждый день вводить логин и пароль в свой компьютер. Поэтому он взял крошечную плату DigiSpark (ATTiny85) и создал устройство, которое отправляет логин + пароль на компьютер при нажатии кнопки. Вот эта штуковина.
Шаг 2: идея и проводка
Отличная идея, - подумал я. Почему бы не позаимствовать его и не применить к нему безумное творчество.
Пересборка проекта Arduino и загрузка его в плату каждый раз при смене пароля - «Вы ищете не дроидов» [волна]. Это слишком просто. Мы бы пошли по гораздо более запутанному маршруту!
Устройство должно показать, как оно работает. Но всего три штатных светодиода на плате - для этого слишком мало. Поднимем количество светодиодов до 4099! Поэтому к проекту был добавлен небольшой дисплейный модуль OLED 128X32. Я довольно долго не мог придумать, где его размять. И это прекрасно вписалось в этот проект. Еще пара кнопок - и все готово!
В микросхеме ATTiny85 не хватило места для проекта - добавление вытянутого дисплея под графическую библиотеку + шрифты. Так что все это просто не влезло в память DigiSpark. Быстрый поиск осуществляется с подходящей платформой: Arduino Pro Micro.
Основная идея проекта заключается в том, что ATmega32U4 по умолчанию выдает себя за HID-устройство - USB-клавиатуру и USB-COM-порт. Драйверы для этих устройств уже предустановлены в большинстве операционных систем, и больше ничего настраивать не нужно.
Предлагаемый вашему вниманию PasswordKeeper - это чиндогу, имитирующий нажатие кнопок на клавиатуре. Эти клики могут передавать на компьютер логин и пароль. Даже вездесущие Ctrl-Alt-Del могут быть отправлены нажатием 1 кнопки вместо 3. Или любой другой последовательности клавиш в зависимости от вашего вкуса.
Форм-фактор выбранных модулей очень компактен, но, тем не менее, с ними легко связываться. С минимальными усилиями можно собрать небольшой и весьма полезный прибор. Электромонтаж просто не может быть проще.
Шаг 3: приготовление
Ингредиенты для хитрости:
1) Aruino Pro Micro - 1 шт.
2) OLED-дисплей 128x32 - 1 шт.
3) Пуговицы - 2 штуки (или любые другие - по дефектам).
4) Разъемы DuPont - 7 штук (или какой-нибудь провод для пайки - по вкусу).
Выложите все это в небольшой контейнер для еды и тщательно встряхните. Согласно теории вероятности, в конечном итоге предметы правильно соединяются между собой.
Ой, подожди! Это статья не о кулинарии! Мои извинения.
Лучше соединить все это вручную - по схеме подключения и сэкономить пару эонов тряски.
Итак, прототип для отладки / тестирования скетча готов.
Шаг 4: Создание дела
Скетч вроде работает. Но пользоваться устройством в таком виде неудобно. Итак, небольшая работа в Sketchup дает нам небольшую оболочку.
Upd: Идея по делу.
Можно взять любую подходящую небольшую прозрачную пластиковую коробку.
Или возьмите тонкий прозрачный пластик из какой-нибудь упаковки. Согните его по геометрии устройства. Поместите электронику внутрь и заполните все свободное пространство прозрачным силиконом. Это должно дать вам довольно красивое устройство.
Шаг 5: 3D-печать
Закинул в ближайший 3д принтер.
Шаг 6: дело готово
И, как обычно, при ловле блох необходима поспешность.
Первый вариант корпуса маловат и плата не подходит!
Акела промазал, оставив несколько пробелов. Так рисунок исправлен и перепечатан.
Второй проход был лучше - доска подошла идеально.
Шаг 7: примерка кейса
Вставить доску внутрь, надавить на нее и с характерным хрустом зафиксировать на месте.
Примеряем пуговицы - тоже подходят.
Шаг 8: Пайка. Провода
Кстати, долго искал хороший провод для прототипирования.
В результате я теперь использую в своих проектах провод 30AWG. Вы можете увидеть их на фото. Обматывает проволоку.
Мало кто сейчас помнит, для чего он нужен.
Но он отлично подходит и для пайки на плате. Цветные провода хороши для наведения порядка в обычном беспорядке, назначая разные цвета функциям проводов. Проволока тонкая. Изоляция хорошо выдерживает температуру паяльника. Типичная ПВХ изоляция сразу плавится во время пайки. Он размягчается, но сохраняет форму и позволяет время от времени касаться жала паяльника, не оплавляя его.
Шаг 9: PwKeeper готов
Таким образом, если собрать все это вместе, мы получим небольшой токен, который подключается к компьютеру и позволяет вам управлять и использовать
довольно большое количество логинов и паролей.
Шаг 10: PwKeeperPc - простое редактирование данных в токене
Количество входов ограничено объемом встроенной памяти EEPROM (1024 байта) и длиной паролей.
В памяти EEPROM хранится ряд записей.
Каждая запись содержит поле для комментариев и до 8 текстовых полей.
Два текстовых поля с названиями «Имя» и «Пароль» - просто для удобства управления.
Дисплей позволяет вам выбрать желаемый логин с полями для комментариев.
Он также позволяет редактировать данные в токене. Данные можно редактировать с помощью всего двух кнопок. Втиснул в токен какой-то Редактор. Но, честно говоря, вы должны быть мазохистом, чтобы использовать это.
Поэтому, чтобы упростить управление паролями, мне пришлось написать специальную программу для ПК (кстати - не забудьте переключить токен в режим USB при использовании этой программы).
Upd: Для людей * nix я добавил последовательную консоль TTY в прошивку PwKeeper v1.4. Эта консоль активируется из меню устройства. Подключитесь к нему с помощью любой подходящей терминальной программы - и вы сможете редактировать данные в PwKeeper с помощью нескольких команд, подобных VI. Консоль можно использовать и на платформе Windows. Просто нажмите Ctrl-Shift-M в Arduino IDE, и вы на месте (не забудьте предварительно активировать TTY в PwKeeper). Но мне кажется, что PwKeeperPc намного удобнее.
Шаг 11: PwKeeper запускается
Токен содержит очень конфиденциальные данные, поэтому следует приложить некоторые усилия для обеспечения безопасности.
Основной пароль для разблокировки токена существует.
По умолчанию он пуст, но поскольку вы устанавливаете его в токене, вы должны вводить его каждый раз после включения.
Основной пароль - это определяемая пользователем последовательность одинарных и двойных щелчков кнопок вверх и вниз.
Шаг 12: поток мыслей
Теоретически можно зашифровать данные в EEPROM с помощью некоторого криптографического алгоритма - некоторое пространство все еще остается во флеш-памяти, но эти усилия не будут видны извне, поэтому я не стал беспокоиться.
Токен в нормальном состоянии не виден компьютеру. Чтобы перевести его в режим редактирования USB, вы должны сделать это физически, нажимая на нем кнопки. Аналогичным образом, чтобы отправить пароль, вы должны физически нажать кнопку ВВЕРХ. Чтобы злонамеренный хакер не украл ваши пароли с токена. Он бы поймал их на USB-порт, когда вы отправляете их с токена;)
Результатом этого проекта стала хитрость, в которой я храню пароли от своих банковских счетов и форумов. Также мои родители сочли это полезным для входа в веб-почту и несколько других сайтов.
Специально для своего коллеги я запрограммировал все остальные входы платы как кнопки быстрого доступа. От оставшихся входных контактов к земле можно подключить до 12 кнопок. Нажимая на одну из этих кнопок, вы переходите к соответствующему логину (если он существует). Таким образом, вам нужно только нажать кнопку ВВЕРХ, чтобы отправить его. Или удерживайте кнопку быстрого доступа немного дольше.
Шаг 13: Осмотр-1
Прежде чем стать публичным, PwKeeper прошел тщательную проверку.
Шаг 14: Осмотр-2
Начальник инспекции только что проснулся и не в настроении.
Но он всегда хмурится - почему публике предлагается явно недоделанный девайс.
Мои слова о том, что ему нужно проверять качество продукта, и это сложно сделать с закрытым делом, он просто проигнорировал.
Новерлесс (после взятки колбасой) выдал свидетельство о допущении.