Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 1000 руб.
Radio-Sale
2. Регулируемый паяльник 60 Вт
Паяльник
3. 600 руб.
От пользователей
4. Тестер компонентов LCR-T4
Паяльник

USB Password Keeper

После разработки клавиатуры наткнулся на мысль о том, что человек существо по своей природе ленивое все-таки. Просто на сегодняшний день современному человеку приходится иметь достаточно много онлайн-сервисов. Ну а естественно каждый сервис имеет защиту от доступа постороннего человека, а именно куда ни глянь, нужно вводить логин и пароль. А так как я подметил и ленивой сущности человека, то наверняка каждый из нас не отличается в разнообразии в своих паролях, есть, конечно, и исключения. Так вот к чему все это я клоню – а ведь по нажатию кнопки 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 представлена ниже:

Схема 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-бит
AT90USB162
1 Поиск в FivelВ блокнот
C1, C6 Конденсатор1 мкФ2 1206Поиск в FivelВ блокнот
C2 Конденсатор100 нФ1 1206Поиск в FivelВ блокнот
C5 Конденсатор10 мкФ1 1206Поиск в FivelВ блокнот
C3, C4 Конденсатор22 пФ2 1206Поиск в FivelВ блокнот
Z1 Кварцевый резонатор16 МГц1 Поиск в FivelВ блокнот
R1 Резистор
1.5 кОм
1 1206Поиск в FivelВ блокнот
R2, R3 Резистор
22 Ом
2 1206Поиск в FivelВ блокнот
R4 Резистор
1 кОм
1 1206Поиск в FivelВ блокнот
R5, R6 Резистор
10 кОм
2 1 - 0805, 1 - выводнойПоиск в FivelВ блокнот
LED1 СветодиодКрасный1 1206Поиск в FivelВ блокнот
LED2 СветодиодЗеленый1 1206Поиск в FivelВ блокнот
S1, S2 Тактовая кнопкаIT-1127-5-160G-G2 smdПоиск в FivelВ блокнот
X1 РазъемminiUSB1 smdПоиск в FivelВ блокнот
Jmp1, Jmp2 ПеремычкаДжемпер2 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 4
Я собрал 0 5
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 5 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
Илья #
Интересно было бы реализовать данную схему для нескольких паролей.
Ответить
0

[Автор]
Gauss #
При достаточном интересе и развернутых отзывах в будущем тема может развиваться, причем и на других МК
Ответить
0
Tig #
Так а исходник есть, вроде не трудно
Ответить
0
ivan-durnev #
Отличная статья. Обязательно соберу. Автору совет. Вместо кнопки подцепить датчик ds1990a, в итоге какой датчик такой и пароль. Получится как раз то, что в банке! Я,наверно, так для себя и сделаю.
Ответить
0

[Автор]
Gauss #
Кстати да, натолкнули мысль на использование чего-то типа DS2401 - будет компактнее (может только не так удобно), а вообще RFID рулит по сравнению с ibutton, мне кажется
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Arduino UNO Лазерный модуль 650нм 5мВт
вверх