После разработки клавиатуры наткнулся на мысль о том, что человек существо по своей природе ленивое все-таки. Просто на сегодняшний день современному человеку приходится иметь достаточно много онлайн-сервисов. Ну а естественно каждый сервис имеет защиту от доступа постороннего человека, а именно куда ни глянь, нужно вводить логин и пароль. А потому что я подметил и ленивой сущности человека, то наверняка каждый из нас не отличается в разнообразии в своих паролях, есть, конечно, и исключения. Так вот к чему все это я клоню – а ведь по нажатию кнопки HID клавиатуры можно организовать передачу не одного символа, а нескольких и даже множества их, хоть целую страницу мелким шрифтом. И вот сегодня мне хотелось бы представить первую версию Password Keeper’a. Главной фишкой будет реализация идеи и ее обкатка. В этом варианте пароль задается лишь при прошивке (микроконтроллер используется AT90USB162, поэтому не потребуется даже программатор, а изменить сам пароль в исходнике не потребуется никаких знаний в программировании на языке Си, кроме как знания где расположена кнопочка, чтобы скомпилировать прошивку) и в памяти будет храниться всего один пароль (хотя нет никаких вообще ограничений, чтобы сделать 20 кнопок и хранить 20 паролей).
Для загрузки прошивки в микроконтроллер будем использовать USB интерфейс и программу Flip. В этом случае нам не нужен программатор, а контроллер программируется напрямую при подключению к порту компьютера. Прошивка осуществляется посредством bootloadera микроконтроллера. Он отбирает 4 кб памяти, однако остается ещё 12 кб, которых на данном этапе нам хватает с головой.
Как это будет работать? Итак, пароль придуман, записан, прошивка скомпилирована и записана в микроконтроллер. В системе Password Keeper определится как HID клавиатура, но в отличие от обычной клавиатуры Password Keeper в активное окно выдаст пароль. При этом пароль не нужно вводить вручную и запоминать его, поэтому пароли можно использовать любой длинны и сложности, не опасаясь неправильно ввести один символ или ошибиться в нем. Думаю, это может подойти не лишь под концепцию для ленивых, но и повысить безопасность своих сервисов и аккаунтов. Из возможного развития проекта можно написать софт для Windows для записи паролей в Password Keeper без программирования микроконтроллера, ну и расширить количество паролей, либо повысить уровень защиты несколькими уровнями – получим аналог ключей (в виде флешки, используются в банковских системах в основном) для цифровой подписи (криптографическое программное обеспечение). В принципе вещь надежная. В общем развиваться есть куда и равняться на устройства, выполняющие похожие функции. При должном подходе в будущем можно будет если не превзойти, то хотя бы сравняться с функционалом, а скорее с защищенностью подобных устройств. Но это все задумки. Вернемся к текущей первой версии устройства.
В предоставленной версии используется отладочная плата для микроконтроллера AT90USB162, а прошивка написана таким образом, что для активации пароля используется кнопка для загрузки bootloader’a. При активной прошивке Password Keeper эта кнопка (HWB) никаким образом не мешает (имеется ввиду bootloader при помощи этой кнопки будет активирован лишь в связке с нажатием кнопки Reset).
Кроме всего прочего, Password Keeper первой версии не отслеживает текущий язык раскладки клавиатуры, поэтому с этим нужно быть чуть-чуть внимательными, а то пароль, введенный латиницей и кириллицей не взаимозаменяемы и может получиться так, что введенный пароль будет неверным, нужно всего лишь изменить язык раскладки.
Схема Password Keeper’a на микроконтроллере AT90USB162 представлена ниже:
В схеме устройства используется не очень много радиоэлементов и при применении элементов для поверхностного монтажа (наиболее мелкого размера) можно всю схему уместить в объем корпуса флешки, а то ещё и меньше. Схема построена на микроконтроллере AT90USB162, питание которого берется от порта 5 вольт. Микроконтроллер внутри содержит стабилизатор на 3,3 вольта для питания линий USB (которые как раз и работают именно на таком напряжении). Конденсатор C6 выполняет функцию фильтра для этого внутреннего стабилизатора напряжения. Номинал можно увеличить. Резисторы R2, R3 необходимы для корректной работы по линиям данных USB порта. Кварц используется номиналом 16 МГц, потому что микроконтроллер питается от 5 вольт, что позволяет поставить кварцевый резонатор на более высокую частоту. При питании 3,3 вольта, согласно даташиту, максимальная частота кварца для этого микроконтроллера составила бы 8 МГц. Резисторы R5 и R6 подтягивают 5 вольт к линиям микроконтроллера для правильной работы кнопок и исключения воздействия помех на этих линиях. Резисторы R1 и R4 ограничивают ток, протекающий через светодиоды, чтобы исключить их выход из строя. Светодиоды используются в SMD исполнении сверх яркие, что позволяет завысить номиналы этих резисторов и получить более безопасный режим. Для таких светодиодов достаточно подать небольшой ток, чтобы они светились. Конденсаторы C1, C2, C5 необходимы для фильтрации напряжения питания микроконтроллера. Все радиоэлементы, используемые при изготовлении устройства используются для поверхностного монтажа кроме кварцевого резонаторы (а при использовании паты AT90USB162 также ещё один резистор используется в выводном варианте, подробнее в списке деталей в конце статьи).
В схеме красный светодиод выполняет функцию индикации напряжения питания на плате от USB порта, а зеленый выполняет функцию индикации работы Password Keeper’a. После загрузки устройства в Windows этот светодиод несколько раз моргнет, а во время ввода пароля будет просто гореть (потому что процесс занимает небольшой промежуток времени, то и светодиод горит не многим больше). В режиме ожидания он не горит.
При наличии отладочной платы для микроконтроллера AT90USB162 необходимость в дополнительной сборке устройства отсутствует. Так как все необходимое уже присутствует на этой плате и необходимо лишь загрузить прошивку и можно использовать устройство:
Для перепрошивки микроконтроллер AT90USB162 на отладочной плате необходимо активировать bootloader (нажать и удерживать кнопку Reset, далее нажить и удерживать кнопку HWB, потом отпустить сначала Reset, а следом HWB, в диспетчере устройств появится микроконтроллер), и загрузить новую прошивку через Flip.
При дальнейшем развитии проекта можно получить полноценный USB ключ наподобие тех, что используются в системах интернет-клиент для работы с банковскими счетами.
К статье прилагается прошивка микроконтроллера AT90USB162 Password Keeper на один пароль, исходный код прошивки в компиляторе CodeVisionAVR, печатная плата для сборки устройства, а также небольшое демонстрационное видео.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
МК AVR 8-битAT90USB1621
C1, C6
Конденсатор1 мкФ2
1206C2
Конденсатор100 нФ1
1206C5
Конденсатор10 мкФ1
1206C3, C4
Конденсатор22 пФ2
1206Z1
Кварцевый резонатор16 МГц1
R1
Резистор1.5 кОм1
1206R2, R3
Резистор22 Ом2
1206R4
Резистор1 кОм1
1206R5, R6
Резистор10 кОм2
1 — 0805, 1 — выводнойLED1
СветодиодКрасный1
1206LED2
СветодиодЗеленый1
1206S1, S2
Тактовая кнопкаIT-1127-5-160G-G2
smdX1
РазъемminiUSB1
smdJmp1, Jmp2
ПеремычкаДжемпер2
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- PasswordKeeper.hex (9 Кб)
- исходник.rar (96 Кб)
- AT90USB162_final_v_2_0(2).lay6 (91 Кб)