Чиндогу на Arduino Pro Micro или зачем просто когда можно сложно!


Данный обзор я хочу посвятить конструкции PasswordKeeper на модуле Aruino Pro Micro (ATmega32U4). Проект предназначен для хранения, выбора и ввода в комп одного из множества паролей.
Про саму плату сложно что-то необычное сказать. Пришла быстро, упакована хорошо, монтаж аккуратный, работает без замечаний.



Основная проблема с микроконтроллерами для энтузиаста — это придумать, для чего их применить :)
Я давно хотел собрать что-нибудь мелкое и относительно полезное в хозяйстве. А тут коллега по работе подкинул интересную идею — ему лень было каждый день вводить пароль для входа в свой компьютер и он собрал на плате DigiSpark (ATTiny85) приспособу, которая отправляет имя и пароль в комп при нажатии на кнопку.
Получилось у него вот что:
Upd: Коллега выложил свой проект сюда.



Отличная идея — подумал я. Почему бы ее не позаимствовать и творчески переработать. Пересобирать и перезагружать проект Arduino каждый раз при смене пароля — это неспортивно.
Кроме того, один пароль — это мало. Ведь можно сделать все гораздо сложнее и запутаннее! Игрушка должна показывать, как она работает. Но трех штатных светодиодов для этого явно мало, пусть их будет 4099! Так в проект добавился маленький дисплей OLED 128X32.
Я все никак не мог придумать, куда его можно приспособить. А тут он идеально подошел по размеру и назначению. Еще потребуется пара кнопок — для управления.
Ресурсов ATTiny85 явно не хватало для проекта — добавление дисплея потянуло за собой графическую библиотеку+шрифты и все это в DigiSpark не влезало. Но поиск обнаружил подходящую платформу: Arduino Pro Micro.

Смысл проекта в том, что Aruino Pro Micro по умолчанию прикидывается USB клавиатурой и USB COM портом. Драйверы для этих устройств уже присутствуют в операционной системе — и ничего дополнительно устанавливать не надо. Конечно существуют всякие программы, которые где-то хранят в себе пароли, но они не могут их передать на экран логина тк пользователь еще не вошел в систему. Предлагаемое вашему вниманию чиндогу PasswordKeeper имитирует нажатия кнопок клавиатуры и может передать логин и пароль в любом режиме компа. Даже Ctrl-Alt-Del послать может нажатием 1 кнопки вместо 3!

Формфактор выбранных модулей оказался очень удобным и компактным.
Можно с минимальными усилиями собрать маленькое и относительно полезное устройство.
Схема получается — проще некуда.



Быстро рукожопим макет и отлаживаем на нем скетч.



Но в таком виде пользоваться им неудобно, поэтому в Sketchup проектируем маленький корпус.



И печатаем его на таком на 3D принтере



Как водится, поспешность нужна при ловле блох. В первый вариант корпуса плата не лезет!
Промахнулся с размерами и выбрал слишком маленькие зазоры. Исправляем чертеж, перепечатываем и получаем второй вариант. Уже лучше — плата входит тик-в-тик.



Нажимаем на контроллер и с характерным хрустом он встает на место.
Примеряем кнопочки — входят без проблем.



Далее вставляем толкатели, припаиваем кнопочки и дисплей.



Кстати, я долго искал удобный монтажный провод для макетирования. Наш МГТФ конечно хорош, но не всегда удобен.В результате сейчас я пользуюсь присутствующем на предыдуших фото проводом 30AWG от все тех же китайцев. Цветными проводами удобно выделять цепи по смыслу. Провод тонкий, изоляция хорошо держит температуру паяльника.
Не так как МГТФ конечно, но вполне прилично. Обычная ПВХ изоляция расползается при пайке сразу, а эта размягчается, но держит форму и выдерживает случайные прикосновения паяльником без проплавления до жилы. Единственный недостаток — многоцветная катушка сильно дороже при меньшем количестве провода.
Собираем все вместе и получаем маленький токен, который подключается к компу и позволяет управлять и пользоваться достаточно большим количеством логинов и паролей.



Число логинов ограничено размером памяти EEPROM (1024 байта) и длиной паролей.
Дисплей позволяет выбирать по комментарию нужную пару логин/пароль, а так же редактировать данные в токене. Редактировать пароли можно двумя кнопками. Редактор я к токену прикрутил, но пользоваться им — сущий мазохизм. Поэтому для редактирования данных пришлось написать программу для PC (если вдруг будете пользоваться — не забудьте перевести токен в режим работы с USB в его меню).



Общая идея устройства такая: Есть 1024 байта EEPROM. В этой области хранятся записи с данными — их число ограничено местом. Каждая запись состоит из отображаемого на дисплее комментария и 8 полей. Каждое поле может содержать в себе символы и коды нажатия спец кнопок (Ctrl,Shift,Del итд). Две записи условно названы Login и Password. По нажатию кнопки токен отправляет поочередно все поля записи в USB как будто они введены с клавиатуры. В полях вы можете разместить не только логин и пароль но и команды на запуск каких-либо программ.
Но основной режим — это все-таки имя и пароль.

Тк в плате у нас хранятся пароли надо хоть чуть-чуть позаботится о их безопасности.
Забота о безопасности поможет усложнить проект и придаст ему серьезности.
Для этого был добавлен пароль на разблокировку токена. Он представляет собой
задаваемую пользователем последовательность одиночных и двойных нажатий на кнопки.



Теоретически, можно еще зашифровать данные в EEPROM с помощью какого-либо криптоалгоритма — место под код еще есть. Но снаружи эти потуги незаметны и поэтому с криптографией я заморачиваться не стал.

Токен в обычном состоянии недоступен с компьютера. Для перевода его в режим редактирования необходимо физически выбрать соответствующий пункт в меню кнопками. Точно так же для отправки пароля требуется физически нажать кнопку. Так что злой хакер до ваших паролей в токене не доберется!
Он перехватит их c USB порта, когда вы будете их посылать как с USB клавиатуры ;)

В результате получилась штуковина, в которой я храню пароли для входа на сайты банков и форумы.

Специально для коллеги все оставшиеся выводы платы запрограммировал для подключения кнопок быстрого доступа.При нажатии на такую кнопку происходит переход к логину с соответствующим номером (если он есть). И для отправки его на комп остается только нажать кнопку подтверждения. Или подержать кнопку быстрого доступа подольше.

Завершив этот проект я предлагаю всем желающим повторить это замечательное устройство,
которое позволит вам потерять все ваши пароли совершенно новым способом!
Потерять бумажку может каждый, а сделать для этого специальное устройство и потерять его или пароль к нему — это внушает уважение!

Перед выходом на публику PwKeeper прошел тщательный выходной контроль:



Главинспектор был только что разбужен, но он все равно недоумЯвает — почему аудитории предлагается явно недоделанное устройство. Мои слова о том, что надо проверить правильность и качество монтажа (а при закрытой крышке это затруднительно) его не убедили.



Тем не менее (после шантажа сосиской) удалось убедить его выдать мне сертификат соответствия:
Одобренные исполняемые и загрузочные файлы выложил сюда.

Планирую купить +55 Добавить в избранное +95 +182
+
avatar
+7
Кот чудный, что за порода?
+
avatar
  • Leon54
  • 10 ноября 2016, 21:08
+1
А где можно купить такой свитер на кота? моя третий год у батареи спит зимой +)
+
avatar
  • DenW
  • 10 ноября 2016, 21:41
0
Hi!
Посмотрите в Бетховене, Ашане.
+
avatar
  • aksinit
  • 11 ноября 2016, 00:07
+2
Он не спить, рабочее место его там! :)
+
avatar
  • AJACKS
  • 10 ноября 2016, 21:15
+2
Ориентал
+
avatar
+1
А есть ли ардуинки с позолоченными штырьками?
+
avatar
  • ploop
  • 10 ноября 2016, 21:08
+4
А вы с какой целью интересуетесь?
+
avatar
0
Чтобы легко припаялись
+
avatar
  • ploop
  • 11 ноября 2016, 20:20
0
Ну, при должной сноровке и ржавый гвоздь легко припаивается, а уж обычная медь и подавно.
+
avatar
+1
Флюс ЛТИ-120, жидкий на основе канифоли + активаторы.
Флюс ФТС водосмываемый, жидкий
Канифоль гель, лютая хрень, доолго отмывать
И так далее, вам поможет любой безкислотный флюс, жидкий или гель, в котором есть намек на активные компоненты. Советую пользоваться ФТС или ЛТИ, после пайки плату промывать в спирте или бензине «калоша», ацетоном травиться не стоит.
Паяльную кислоту не используйте, при плохой отмывке окисляет все что только можно. Через год-два окисленные контакты превращаются в труху.
+
avatar
  • ploop
  • 12 ноября 2016, 12:24
+1
Паяльную кислоту не используйте, при плохой отмывке окисляет все что только можно. Через год-два окисленные контакты превращаются в труху.
Кислоту при пайке электроники ещё с детства понял, что использовать нельзя. Паяется отлично с ней, но потом и правда — труха. Потом, в училище (гражданской авиации), где на практике паять учили народ, вообще под страхом анальной кары запрещали использовать кислотные флюсы. Максимум — стандартная канифоль.

Кстати, тот же ЛТИ-120 может и поудобней канифоли, но с последнюю тоже со счетов списывать не стоит: она вполне актуальна, особенно для любительской деятельности. Для профессионалов уже полно других флюсов и по другим ценам, но тем объяснять не стоит.
+
avatar
  • DenW
  • 10 ноября 2016, 21:45
+1
CineeseGold!
Но я сомневаюсь, что это золото. Наверняка сплав какой-то.
+
avatar
  • ploop
  • 11 ноября 2016, 20:19
0
Золото уж лет 30-40 как не используется в электронике (за исключением военки/космоса). А этот желтый сплав вполне его заменяет, при том дешевле в разы.
+
avatar
+2
Как то не понятно сразу, что делает девайс. Может подправить начало обзора. Сначала подумал, что один пароль на вход в OS и все. Отпугиваете часть аудитории.

А так идея шикарная, очень понравилась. Особенно если не помнишь и нужно перебрать с десяток.
+
avatar
  • DenW
  • 10 ноября 2016, 22:17
0
Hi!
Подправил.
+
avatar
0
Оригинальное и свежее решение.
Респект!
+
avatar
  • Djovani
  • 10 ноября 2016, 21:04
+1
Супер!
Особенно кот!
У меня леонардо в обычном формфакторе.
Можно его приспособить?
На работе есть проблема с логином в систему.
Блочится комп корпоративной политикой.
Есть программный обход, но это не наш метод, да? ;-)
+
avatar
  • DenW
  • 10 ноября 2016, 21:50
0
Hi!
Конечно можно.
Загрузите прошивку, подсоедините кнопки и все будет работать.
Можете еще 12 кнопок для доступа к первым 12 паролям подсоединить — еще одна клавиатура будет :)
Доп кнопки должны на землю замыкать контакты.
+
avatar
  • vasilio
  • 10 ноября 2016, 23:01
+13
Блочится комп корпоративной политикой.
У нас тоже так. Я собрал таймер на 555, подключил к нему вибромотор и вставил все это в мышь. Теперь она у меня раз в 10 минут вздрагивает, и ничего не блокируется :)
+
avatar
0
запустить встроенный медиаплеер и крутить mp3 из стандартных по кругу, не? :)
+
avatar
  • DenW
  • 11 ноября 2016, 09:42
0
Это не спортивно!
Зачем просто, когда можно сложно? Задача-то руки приложить а не блокировку обойти.
А так почти живая мышь получается.
+
avatar
0
зачем второй раз изобретать велосипед, есть же токены и сертификаты…
+
avatar
+3
На торрент и почту у вас тоже токен и сертификат?
Я понимаю, что на mysku у вас точно есть сертификат, но как же с остальными сайтами, банками, почтой, играми и прочим?
+
avatar
  • ploop
  • 11 ноября 2016, 21:02
0
но как же с остальными сайтами, банками, почтой, играми и прочим?
KeePass, если требуется реальная необходимость :)
+
avatar
  • CuMr
  • 11 ноября 2016, 22:34
+1
мастерпасс кортогрого вводится этой приблудой. ;)
+
avatar
  • ploop
  • 11 ноября 2016, 22:37
0
Ну или так :)
+
avatar
0
Если чужой комп?
Если запрет на установку программ?
Если…
Я думаю этот девайс все же может занять свою нишу.
+
avatar
  • ploop
  • 12 ноября 2016, 21:18
0
Может. Я вроде не спорил…
+
avatar
0
> Если чужой комп?

Вводить свои пароли на чужом компе противопоказано, если вы ими хотя бы немного дорожите.
+
avatar
+1
Для души
+
avatar
  • DenW
  • 10 ноября 2016, 21:51
+1
Hi!
С одной стороны — да.
С другой — это же чиндогу!
Ну и вдруг кому еще пригодится…
Я сам пользуюсь :)
+
avatar
+2
Ссылку где брали OLED дайте, пожалуйста.
+
avatar
  • DenW
  • 10 ноября 2016, 21:53
+5
Hi!
Так в тексте на OLED ткните — это и есть ссылка.
Она же синяя.

Эти дисплеи еще вот такие бывают. Я их часто в конструкциях использую.

Бывают SPI и I2C — не промахнитесь! Мне I2C больше нравятся — проводов меньше.
+
avatar
0
Которые вторые — стандартные, действительно часто используются.

Ваш просто понравился, т.к. маленький. Раньше не попадался или не обращал внимание.
+
avatar
0
del
+
avatar
0
Чиндога это Chain Dongle что ли?
+
avatar
+6
Чиндога это китайская собака ;)
+
avatar
  • DenW
  • 10 ноября 2016, 21:54
0
Hi!
Так в тексте ссылка есть: чиндогу

www.netlore.ru/chindogu-ili-durackie-izobreteniya
+
avatar
  • Samaron
  • 10 ноября 2016, 21:38
0
Провода не ломаются в местах пайки?
+
avatar
  • DenW
  • 10 ноября 2016, 21:56
0
Hi!
В данной конструкции — нет.
Корпус же жесткий и дисплей не двигается.
А вообще против физики не попрешь — Этот провод одножильный. Для макетных плат и не слишком подвижных соединений. Зато очень тонкий.
+
avatar
0
проводки в катушке одножильные? второй день сижу облизываюсь, хочу заказать 24-26awg, многожильный. мне кажется 30awg не всегда применим.
+
avatar
  • DenW
  • 10 ноября 2016, 22:11
+1
Hi!
Провод одножильный.
Для монтажа цифровой техники очень удобный. Тонкий, изоляция достаточно тугоплавкая. Легко чистится.
Надо будет его в отдельный обзор вынести.

24-26awg это уже серьезно — для моторчиков.
С многожильным в макетировании одна мука. Отслоится жила на соседний контакт -упаришься искать сбой.
Но и 100500 ампер на него подавать не надо :)
+
avatar
0
ну питание ардуинки, тот же sim800 или neoway m590 жрут в пике по 2А. мало ли какие задачи будут. я 30awg в руках не держал, слабо себе представляю диаметр жилки. как волосок, страшно в руки взять.
+
avatar
  • DenW
  • 10 ноября 2016, 22:48
+1
Ну на питание ставить его и не надо — если на чипе WiFi есть.
Но он не такой уж и тонкий — то что надо для монтажа слаботочки.
Сечение AWG30 сравнимо с размером ноги ATmega32U4.
Не ставить же на кнопку, подключенную к выводу микропроцессора провод сечением 1mm2 :)
25AWG — это примерно диаметр провода в витой паре. Те 24 — это еще толще ~0.5mm.
Монтировать таким проводом сигнальные цепи мне неудобно.

Соответствие калибров AWG диаметру провода
+
avatar
0
У одножильных механическая прочность слабая на излом. Так провод пару раз подергал и он отвалился в месте пайки. Я иногда использую провода из старых LPT кабелей. Внутри такого кабеля куча мелких проводов, они многожильные т.е. гибкие и мягкие )) изоляция кончно подплавляется при залуживании, но не сильно.
+
avatar
0
не согласен. попробуйте посгибать приличный UTP cat5 до излома
а если нужен многожильный, тогда уж ide хорошо подходит, у многих его залежи
+
avatar
  • DenW
  • 12 ноября 2016, 21:02
0
Все IDE кабеля, что у меня есть, отвратно лудятся.
Пока залудится — изоляция в хлам.
И очень любят распушится и залезть на соседний контакт.
Посмотрите мой топик по проводу — вот там уже нафлудили :)
+
avatar
0
почему бы не использовать по одному проводки из хорошей витой пары?
там те же толщины, в кабеле гарантировано пять разных цветов провода, причём белого больше всех — разумно использовать для земли )
+
avatar
  • DenW
  • 12 ноября 2016, 21:04
0
Только суровые сибирские парни собирают макетки на микроконтроллерах проводом 0.5 ;)
Я не настолько крут. Не говоря уже о том что изоляция витой пары на это не рассчитана — посмотрите фото в моем топике по проводам.
+
avatar
  • CuMr
  • 12 ноября 2016, 22:26
0
Зато в бредборду жилы из витухи — самое оно.
+
avatar
+5
Эх… Сколько проектов так и осталось на монтажках, макетках, картонках… из-за отсутствия нормального корпуса для поделки. Про 3Д принтер молчу…
+
avatar
+2
Аналогично )) Порой сделать устройство проще, чем придумать и сделать корпус так, чтобы видуха была.
+
avatar
+3
С первым обзором! Блин не вышел комом. Познавательно и несложно. Взял на заметку. Плюс.
Отдельный плюсик за котейку. )))
+
avatar
  • DenW
  • 10 ноября 2016, 22:12
+1
Благодарю!
+
avatar
  • Gektor
  • 10 ноября 2016, 22:11
+2
Отличная статья, читая забыл, что на Муске думл Geektimes. Пока не наткнулся на Главинспектора. ))) + Вам.
+
avatar
  • DenW
  • 13 ноября 2016, 17:41
0
По зрелому размышлению — действительно надо и там разместить.
Как раз в тему устройство.
+
avatar
0
Чисто для занудства немного уточню. Эта плата — не Arduino Leonardo. Это ее уменьшенная версия — Pro Micro (китайский вариант Arduino Micro).
+
avatar
  • DenW
  • 10 ноября 2016, 22:25
0
Hi!
Исправил. Благодарю за уточнение.
+
avatar
  • Samman
  • 10 ноября 2016, 22:46
0
Эта плата — не Arduino Leonardo
В данном случае важно, чтобы плата определялась как USB HID устройство, а для этого требуется контроллер ATmega32U4.
+
avatar
  • av71966
  • 10 ноября 2016, 23:26
0
Для сборки девайса с USB UID использовал в свое время digispark. Отличная штука, только памяти в контроллере мало, придется оптимизировать.
aliexpress.com/item/Free-shipping-CJMCU-Digispark-kickstarter-miniature-for-Arduino-usb-development-board/2040316744.html
+
avatar
  • Samman
  • 11 ноября 2016, 00:22
0
USB UUID не равно USB HID
Или всё-таки HID делали на тини? Я как-то не решился, мне проще купить платку с 32u4.
+
avatar
  • stail
  • 10 ноября 2016, 23:15
+1
Хороший обзор, автор молодец, плюсую. Все подробно раскрыл, вот только это не чиндогу, я так думаю. Это реально полезный девайс, и полностью отсутствует прикольная и бесполезная составляющая. А устройство можно повторить
+
avatar
+1
Пароль, пароль, а меня куда как сильнее бесит что нажимаются всякие локи типа CAPS LOCK, NUM LOCK, SCROLL LOCK. При этом на клавиатуре есть индикация только на капсе, а кнопками этими я вообще не пользуюсь.
В общем сбацал на LUFA доп клаву которая возбуждается на соответствующие лампочки и автоматом выдаёт нажатия отключающие их появление. Стало гораздо удобнее.
+
avatar
+1
А я вытащил caps, положил под него кусок жвачки, поставил обратно. Жвачка высохла, затвердела и caps больше не нажимается ))
+
avatar
  • s0me0ne
  • 11 ноября 2016, 00:00
+1
прикольная штука — однозначно соберу себе.
+
avatar
  • ACE
  • 11 ноября 2016, 00:25
+1
Главное сидя в каком-нибудь чатике-контактике кнопку отправки пароля не задеть случайно :)
+
avatar
  • DenW
  • 11 ноября 2016, 00:30
0
Hi!
Там все продумано :)
Требуется DoubleClick или LongClick — случайно не нажмешь :)
+
avatar
  • ACE
  • 11 ноября 2016, 00:48
0
Да я и не удивлен, что у вас всё продумано :)
+
avatar
  • CuMr
  • 11 ноября 2016, 22:39
0
И что оно даст той стороне?
Держите один из моих основных пассов: $6mcb02dg4d!@m
сильно помогло? ;)
+
avatar
  • ACE
  • 11 ноября 2016, 22:57
0
Тут и логин и пароль высылается разом (ну настраиваемо, конечно, да). Мало ли. Да и вообще, это ж шутка была.
Напомнили старый анекдот:
Мне сказали, что использовать имя моей кошки в качестве пароля к «root» — плохой тон. Не буду менять! Я так привык к qZ!813_gg1…

А, и да, на тему паролей конечно же есть xkcd.
+
avatar
+1
на многоцветную катушку продавец злостно недомотал провода. Одноцветная катушка весит ~170 грамм а на многоцветную намотали всего 109 грамм при бОльшей цене.
Что соответствует характеристикам товара в описании лота:

Cable Length(Approx.): 656Ft
против
Wrap 1000Ft
+
avatar
  • DenW
  • 11 ноября 2016, 09:50
0
Слона-то я и не приметил…
Наезд исправил.
+
avatar
0
Пароль на вход в токен? Не комильфо, нужен сканер отпечатка :) И «генератор супер-пупер пароля», с одновременной привязкой к логину. Т.е. по политике пора менять пароль — три прихлопа, два притопа и новый пароль сгенерировался и улетел в домен, заодно и на токене пересохранился. Вот только с его просмотром на экранчике без сканера отпечатка пИчаль :) А обзор интересный.
+
avatar
0
а потом токен теряется и всё, здравствуй пушистый зверёк
+
avatar
0
Ну бэкап же :) По таймеру — слив полного дампа, запароливание его 100500 символьным паролем и сброс в облако :)
+
avatar
  • geldiev
  • 11 ноября 2016, 07:11
0
DenW, спасибо за обзор!

Как вы думаете, можно ли передавать клавиши-модификаторы и функциональные клавиши?
Хочется сделать матрицу, например, из 8х8 клавиш для шорткатов в адобовских продуктах…
+
avatar
  • serenya
  • 11 ноября 2016, 09:40
0
Можно, виндовс таб и ctrl я передаю, есть и другие клавиши. На счет F1-12 не помню.
+
avatar
  • geldiev
  • 11 ноября 2016, 09:49
0
Спасибо!
+
avatar
  • DenW
  • 11 ноября 2016, 10:00
+2
Можно все! (почти)
Скачайте файлы по ссылке внизу — там есть файл в котором определены поддерживаемые модификаторы. Можно отдельно передавать нажатие и освобождение кнопки.
F1-F10 поддерживается. F11-F12 можно добавить.
А вообще вам надо посмотреть в сторону проектов самодельных клав на Arduino.
К сожалению не могу найти точной ссылки. Но помню, что недавно натыкался на довольно раскрученный проект на базе которого делают разные полнофункциональные клавы.

Мою штуковину можно использовать как расширитель на 12 кнопок с программируемыми последовательностями. Подключите ко всем свободным входам по кнопке на землю — и при их нажатии будет выбираться один из 12 первых паролей.

Если вам нужно фиксированные шорткаты передавать — то там вообще все просто как мычание будет. Прямо в коде один раз последовательности заведете и все.
Вам же не надо их часто менять. А при редких изменениях вполне можно пересборкой обойтиcь.
+
avatar
  • geldiev
  • 11 ноября 2016, 10:08
0
Отлично, большое спасибо!
пойду изучать…

Шорткаты действительно фиксированные.
+
avatar
  • Samman
  • 12 ноября 2016, 00:09
+1
можно ли передавать клавиши-модификаторы и функциональные клавиши
Да
+
avatar
  • serenya
  • 11 ноября 2016, 10:18
0
Тоже недавно озадачился похожим устройством, дисплейчик такой же подобрал и джойстик мелкий. Но подумав отказался от реализации. Показалось довольно трудоемким для меня. Основная цель была ввод пароля к удаленке (безопасность, мать ее). Но аппетит приходит во время еды и сделал полный запуск удаленки. Вместо кнопки прикрутил тач сенсор. Сейчас все это на проводах болтается на столе и ожидает заказа ПП сенсора, как закажу и приедет буду собирать в корпус, какой пока не решил.
Вашу конструкцию обязательно повторю.
+
avatar
  • DenW
  • 11 ноября 2016, 10:31
0
У меня, кстати, запуск приложений тоже поддерживается. :)
Скачайте файлы — там есть примеры.
Смысл конструкции таков: Есть EEPROM размером 1024 байт. В ней хранятся записи — пока места хватит. Каждая запись содержит отображаемый комментарий и к нему 8 полей. А в поле можете писать все что захотите. Нажатие и отпускание спец кнопок, символы. Данные из всех полей по очереди передаются как будто введенные с клавиатуры.
2 поля условно называются имя и пароль — для облегчения управления.

Кнопки еще вот такие любопытные есть. Я сначала хотел их использовать — но что-то пакет долго идет. Поэтому прикрутил обычные.
+
avatar
  • serenya
  • 11 ноября 2016, 15:02
0
А исходники не дадите? Хотел бы посмотреть как у Вас реализован запуск программ (а то у меня костыль на костыле, через win и поиск), да и не только. Возможно допилил бы что-то под себя.
+
avatar
  • DenW
  • 11 ноября 2016, 20:20
-1
Ну почему же сразу костыли.
Иначе сделать и не получится — это ведь клавиатура. Она ничего другого не умеет.
У меня точно так же реализовано.
Посылаем код Win далее имя программы и Enter.
Теоретически можно и мышь посылать — но для записи много места надо. А EEPROM всего 1К.
Его можно расширить — но это уже усложнение, а мне хотелось сделать легко повторяемую вещь.
+
avatar
0
вообще просится отказ от eeprom и сохранение на внешнюю sd, заодно и бэкапить
+
avatar
  • DenW
  • 12 ноября 2016, 21:09
0
Ну это уже серьезное усложнение.
Я хотел сделать легкое в повторении устройство.
Потом не забывайте — приложив еще чуть-чуть усилий вы можете запретить запись скетчей в процессор. И тогда достать содержимое EEPROM будет нетривиальной задачей. Тут поможет только терморектальный криптоанализ.
Считать же внешнее хранилище гораздо проще.
+
avatar
  • CuMr
  • 11 ноября 2016, 22:47
+1
Есть ведь Win+R, а чтобы не писать полный путь к проге и тем самым экономить еепром, можно в одном из каталогов в Path просто положить симлинки на нужные проги. Или набор батников c короткими именами. Или вообще нечто типа proga1.cmd, proga2.cmd,… progaN.cmd и в них уже прописывать нужные проги — не нужно будет каждый раз перезаливать скетч.
+
avatar
0
Классный девайс, давно хотелось что-то подобное, но своего мозга не хватает, попробую повторить Качество корпуса, на мой взгляд, не очень, но важна не внешность, важно содержание, а за содержание плюс без вариантов.
+
avatar
  • DenW
  • 11 ноября 2016, 14:22
0
Повторить должно с полпинка получится — там всего 12 паек относительно крупных точек.

Корпус грубоват — это да. Можно еще с режимами печати повозится.
Для красивого вида народ советует сделать дополнительный шаг — обработка парами ацетона.
Но мне возится-вонять пока лень.
+
avatar
  • prom77
  • 11 ноября 2016, 13:36
0
Инопланетянин у Вас зачетный! что за порода?
+
avatar
  • DenW
  • 11 ноября 2016, 14:23
0
Ориентал.
Жаль только раскраска помоечная.
+
avatar
  • prom77
  • 11 ноября 2016, 14:52
0
то Вы привыкли, шикарно смотрится
+
avatar
0
Отличная статья, спасибо, очень интересно
+
avatar
  • larDm
  • 12 ноября 2016, 21:55
0
доброго. в начале статьи есть простенькое устройство от DigiSpark Attyni85 вашего коллеги, а на него не поделитесь кодом. а то руки прям зачесались. или где подсмотреть:)
+
avatar
  • DenW
  • 12 ноября 2016, 22:54
0
Поищите по форумам DigiSpark usb keyboard.
Вот например.
+
avatar
  • larDm
  • 13 ноября 2016, 00:59
0
спасибо DenW, блин работает!
+
avatar
  • DenW
  • 13 ноября 2016, 10:07
0
Ура первому Левше!
К PwKeeperPc подсоединили?
Есть ли предложения\замечания по функциям?
+
avatar
  • larDm
  • 13 ноября 2016, 10:51
0
нет, сделал так же примитивненько — четыре кнопки и внутри прописал пароли и логины. на работе есть 3 сервисных сайта которые постоянно выбрасывают. а пароли задолбаешься вводить и запомнить не реал.
вашу схемку однозначно буду повторять и рекламировать. заказал плату и дисплей.
еще раз блг!!!
+
avatar
  • DenW
  • 13 ноября 2016, 12:19
0
Так вы внешний редактор PwKeeperPc подключите. Я специально его писал.
Как попали в список паролей жмите долго нижнюю кнопку
потом пункт USB
и на PwKeeperPc считать-записать
+
avatar
0
так я главного не понял: допустим я девайс где-то оброню, что мешает нашедшему к нему подключиться напрямую (в обход пароля на разблокировку) и всю информацию считать?
+
avatar
  • DenW
  • 13 ноября 2016, 12:25
0
По хорошему надо заблокировать запись в контроллер соответствующими фьюзами
Но это пока не сделано — проект еще в режиме отладки. Если будет интерес — допишу инструкцию.
Если это сделать — вытащить EEPROM будет оч тяжело. Тут поможет только терморектальный криптоанализ.
Стойкость определяется паролем на вход. А его вы фиг обойдете.
При первой загрузке основной пароль не установлен. А как установите — его будут спрашивать.

Ну и потом — я же написал, что это новый способ потерять пароли по сравнению с листом бумаги :)
Кого можно удивить потерей листка бумаги? А тут — ого-го!

По хорошему надо еще загрузчик подправить — чтобы комп не пытался искать драйвера Leonardo а работал только с клавиатурой и СОМ.
Если народ проявит интерес — сделаю.
+
avatar
  • ScheD
  • 09 мая 2017, 19:12
0
Понравилось, собрал, работает. Если не трудно можно поправить загрузчик? На работе по безопасности посторонние USB устройства кроме мышей, клавиатур заблокированы, логиниться по 100 раз на день реально достало, а это очень бы помогло…
+
avatar
  • DenW
  • 09 мая 2017, 20:50
0
А что не так?
Нужно чтобы при подключении сразу как клавиатура определялась без драйвера Arduino?
+
avatar
  • ScheD
  • 09 мая 2017, 21:07
0
да, как клавиатура
+
avatar
  • DenW
  • 09 мая 2017, 21:19
0
Ясно
Посмотрю, но в ближайшее время не обещаю.
Много работ на даче да еще 2 проекта закончить надо.
+
avatar
  • ScheD
  • 10 мая 2017, 00:05
0
Спасибо, буду ждать
+
avatar
0
+
проект\идея понравились
+
avatar
0
можно исходный файл прошивки?
+
avatar
  • yurakim
  • 26 февраля 2017, 06:32
0
С точки зрения безопасности толку в таком железном решении не слишком много.
Если на компе сидит троян, то скорее всего он будет перехватывать ввод с клавиатуры.

Вот круто будет, если сделать устройство, куда заливается код от google authenticator. И потом оно через клавиатуру кидает one time password в поля ввода в браузере. Такой вариант реализации 2-х факторной авторизации будет очень полезен!
+
avatar
  • DenW
  • 26 февраля 2017, 21:56
+1
Hi!
Посмотрю.
Может и сделаю.
Надо проверить сколько код занимает — контроллер мелкий. В него может и не влезть алгоритм google.
Возможно надо будет что-то выкидывать.

Сперва очередной crazy проект доделаю и выложу — программируемая гирлянда на WS2812 с управлением через Web.
+
avatar
  • Mr_Snake
  • 26 февраля 2017, 14:25
0
Отличная реализация, заказал собрал, только прошу перевести редмишку. Немного помучался с первой разблокировкой.
И еще заметил, что после ввода пароля по кнопкам я те же самые в проге ввожу (вниз вверх вниз вверх, 4 нажатия на кнопки) но синхронизироваться не могу, пишет пароль не подходит.
+
avatar
  • DenW
  • 26 февраля 2017, 21:52
0
Hi!
1) На github есть 2 версии дока — русская и английская
2) По поводу пароля — проверьте повнимательнее плз.
Там вводятся одинарные и двойные клики верхней и нижней кнопки. Они отображаются тонкой и толстой чертой около цифры. Может с кликами что-то неточно ввели в PwKeeperPc? Если ошибка подтвердится — плз сообщите — исправлю.
+
avatar
0
Повторил, все работает прекрасно, но не запускается программа Password Keeper v 1.04 в виндовсе хр, а также не работает связь по тту. Помогите ответом, если кто знает. Спасибо.
+
avatar
  • DenW
  • 08 января 2018, 22:35
0
Hi!
Для виндовой программы нужны .Net 4.0 если не ошибаюсь
Что при запуске пишет?

По ТТУ надо зайти в настройки токена и оттуда активировать TTY
После этого можно обращаться к токену по виртуальному COM порту (Ctrl-Shift-M из Ардуино).
До выбора пункта TTY токен не виден по ком порту.

Можно еще разные скорости в консоли попробовать.

Кстати, чтобы программа на PC увидела токен нужно в настройках USB выбрать.
+
avatar
0
Спасибо за ответ,,,, пробовал с .NET4.0 в винд хр… нет запуска, пишет — не является приложением Win32, но попробовал у друга на винд 10 — все пошло как по маслу!!! Спасибо.