RSS блога
Подписка
Устройство ввода логинов и паролей одной кнопкой.
Устройство аппаратно эмулирует USB клавиатуру поэтому в отличие от программных аналогов, работает и в BIOS и при входе в ОС, и в остальных сложных случаях — там, где запрещены вставки из буфера обмена или программные эмуляторы.
Вообще такие устройства существуют уже давно. Но на Али я ничего подходящего не нашёл.
В большинстве найденных вариантов либо ничего не указано про максимальную длину последовательности символов на одну кнопку, либо указано, что память всего 34 бита.
С описанием более-менее подходящей длины последовательности на одной клавише и относительно вменяемой ценой нашёл такую клавиатуру:
Тут прямо указано ограничение на 18 символов в одной клавише. Это приемлемо, но всё же хотелось бы побольше.
Кроме того, клавиатура большая, слишком много кнопок и крутилок. А мне хватило бы и пары кнопок и нужно покомпактнее.
Поэтому, решил сделать подходящий диайвайс сам. Тем более, что это очень просто, да и заметно дешевле найденного готового варианта.
Для этого мне понадобится плата Arduino на ATmega32U4. Там аппаратный USB HID, поэтому клавиатуры делать на этом контроллере очень просто.
Для моей задачи вполне подошла бы и в два раза более дешёвая плата Digispark на ATtiny85. Или ещё более дешёвые CH55x. Но я всё же выбрал ATmega32U4. Гулять, так гулять.
Ещё нужна пара кнопок, и собственно, всё.
При нажатии первой кнопки устройство передаёт логин, Tab, пароль, Enter.
Т.е. вся авторизация происходит нажатием всего одной кнопки — ночной кошмар безопасника :)
При нажатии второй кнопки передаётся только пароль и Enter. Это для ситуаций, когда есть только пароль или логин уже запомнен системой.
В процессе размышлений решил, что всё же пары кнопок маловато, хотелось бы хранить два комплекта логинов и паролей, поэтому добавил ещё пару кнопок.
Скетч для микроконтроллера такой же простой, как и само устройство. Под спойлером базовый вариант для одной кнопки. Аналогично делается для произвольного количества кнопок.
Теперь всё это надо засунуть в корпус:
Электрическую схему не рисую, она вся на фото. Четыре провода на четыре кнопки и общий на них же. Фсё.
Ну и корпус в сборе:
Высота корпуса получилась больше, чем необходимо, потому что сначала хотел запаять гребёнку и использовать «обычные» провода, которые толще, чем МГТФ, но потом перехотел, а корпус уже распечатал. Следующая версия будет меньше.
Но и этот экземпляр получился вполне компактным:
Целевое назначение этого девайса — это замена листикам с логинами и паролями, наклеенными на монитор. В плане безопасности оно не хуже их, зато гораздо удобнее :)
Вообще такие устройства существуют уже давно. Но на Али я ничего подходящего не нашёл.
В большинстве найденных вариантов либо ничего не указано про максимальную длину последовательности символов на одну кнопку, либо указано, что память всего 34 бита.
С описанием более-менее подходящей длины последовательности на одной клавише и относительно вменяемой ценой нашёл такую клавиатуру:
Тут прямо указано ограничение на 18 символов в одной клавише. Это приемлемо, но всё же хотелось бы побольше.
Кроме того, клавиатура большая, слишком много кнопок и крутилок. А мне хватило бы и пары кнопок и нужно покомпактнее.
Поэтому, решил сделать подходящий диайвайс сам. Тем более, что это очень просто, да и заметно дешевле найденного готового варианта.
Для этого мне понадобится плата Arduino на ATmega32U4. Там аппаратный USB HID, поэтому клавиатуры делать на этом контроллере очень просто.
Для моей задачи вполне подошла бы и в два раза более дешёвая плата Digispark на ATtiny85. Или ещё более дешёвые CH55x. Но я всё же выбрал ATmega32U4. Гулять, так гулять.
Ещё нужна пара кнопок, и собственно, всё.
При нажатии первой кнопки устройство передаёт логин, Tab, пароль, Enter.
Т.е. вся авторизация происходит нажатием всего одной кнопки — ночной кошмар безопасника :)
При нажатии второй кнопки передаётся только пароль и Enter. Это для ситуаций, когда есть только пароль или логин уже запомнен системой.
В процессе размышлений решил, что всё же пары кнопок маловато, хотелось бы хранить два комплекта логинов и паролей, поэтому добавил ещё пару кнопок.
Скетч для микроконтроллера такой же простой, как и само устройство. Под спойлером базовый вариант для одной кнопки. Аналогично делается для произвольного количества кнопок.
Скетч
#include "Keyboard.h"
#define LOGIN1 "login1"
#define PASSWORD1 "password1"
#define BUTTON_LOGIN1 2
void setup() {
pinMode(BUTTON_LOGIN1, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
if (digitalRead(BUTTON_LOGIN1) == LOW) {
Keyboard.print(LOGIN1);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.print(PASSWORD1);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(1000);
}
}
Теперь всё это надо засунуть в корпус:
Электрическую схему не рисую, она вся на фото. Четыре провода на четыре кнопки и общий на них же. Фсё.
Ну и корпус в сборе:
Высота корпуса получилась больше, чем необходимо, потому что сначала хотел запаять гребёнку и использовать «обычные» провода, которые толще, чем МГТФ, но потом перехотел, а корпус уже распечатал. Следующая версия будет меньше.
Но и этот экземпляр получился вполне компактным:
Целевое назначение этого девайса — это замена листикам с логинами и паролями, наклеенными на монитор. В плане безопасности оно не хуже их, зато гораздо удобнее :)
Самые обсуждаемые обзоры
+57 |
2907
73
|
+24 |
2244
26
|
Аффтар, я бы посоветовал в подобное устройство добавить микро-SD с несколькими паролями и скажем по кнопкам выбирать 4 из них… или вообще сделать крутилку и микро-дисплей вроде SSD1306 показывающий какой пароль выбран. А использование SD позволит легко менять их, эти «пароли».
Безопансники конечно достали, я записывал пароли на бумажке в несколько столбиков с датами — так вот, повторяться можно только начиная с третьего года! Причем ладно бы только пароль на вход в комп, так еще десяток для разных других программ/мест — естественно файлик (ну не набирать же вручную) внутри и бумажка снаружи для компа.
«Ваш пароль должен содержать минимум одну цифру, заглавную букву, символ, иероглиф, коловрат, число зверя и кровь девственницы.»
P.S. Чиндоу из ссылки собрал, но у меня вылезала ошибка заливки программы, разобраться не смог. Буду этот делать.
краснойкнопке.Вот только само назначение… Высокотехнологичный аналог бумажки на мониторе, где сложность пароля компенсируется действиями сотрудника.
Понятно, что в данном случае это как аналог смарт-карты или аппаратного ключа, но все же.
У меня макропад есть как на фотке сверху, никогда не пытался забить пароли.
Где надо помнить длинные мастер-пароли, использую пассфразы.
Может кто сталкивался?
Понятно что по отдельности да, вопрос — есть ли howto как реализовать хотелку топикстартера в таком случае?
Защищается вводом пина — это гораздо безопаснее
Ввести при включении один раз пин — совершенно не гемморой…
На Андройде прекрасно можно использовать общение по NFC для своих задач, именно общение, со своим сервисом на смарте где ты можешь передавать что хочешь, это просто один из каналов связи, и если что никакие руты не нужны. Подсказка, но это не взять раскиданный по всему инету код МК для чтения mifare карт, т.к. Андройд это не mifare, как и не прокатит просто считать UID, т.к. он каждый раз новый в целях безопасности.
Я сам себе как то сделал замок, и именно потому что смарт всегда рядом, то и один из вариантов его открытия сделал прикладыванием смарта (NFC) и ничего не нужно на смарте запускать и нажимать, потратив 200р на NFC приемопередатчик, но весь код я написал сам управившись с NFC за несколько дней изучая эту тему с нуля, есть ли такое в инете готовое не в курсе.
Оно от лени просто.
И естесвенно там дофига разных варинатов, включая на проводке, и куда более солидная.
Ну и на ВТ, и на Али тоже есть. Этот правда с доставкой из Китая, но не суть
P.S. Во многих ноутах есть такой встроенный.
Сейчас перепроверять не буду по функционалу, и могу помнить не верно. Но кому надо — можно поискать, возможно сторонние прошивки будут.
У меня в голове есть инфомрация, что оно так может, но откуда она и насколько достоверна — я не знаю.
но у меня прокатило)
выбешивает, да
У них то в лучшем случае десяток паролей и полупаролей (это когда пароль нужно вдвоем вводить)
Вот только в озвученном «пароли в биос» работать не будет. Как и разные логины в аккаунт.
зы. У меня на бесплатном «всегда бесплатном» сервере от Оракл крутится ваултварден (сервер для битвардена). Всем рекомендую.
Сервер как-бы есть, но в личный кабинет не пускает.
Когда-то делал свою клавиатуру PS/2, тогда еще USB-клавиатур не существовало:
Ой, не туда
Я уже название подзабыл. Засомневался и не стал писать
А вот если хранить пароль в nvram, которая специально предназначена для такого использования, то пароль можно безопасно менять хоть по 10 раз на дню.
Сколько. И каких.
Atmel даёт некие рекомендации по выравниванию износа, но это уже программные костыли, а самое главное зачем? При её же утверждениях, что каждая ячейка памяти рассчитана на 100000 циклов записи, при той интенсивности смен пароля, которые планируются для этого устройства, ресурс перезаписей тут исчерпается примерно никогда. Даже если я буду перезаписывать не маленький скетч, а всю память. Даже если утверждения Atmel по ресурсу ошибочны раз в 100.
Хотя в целом согласен — вопрос надуманный. Пароль лучше просто никогда не менять, и нет проблем!
Но типичная форма смены пароля «введите текущий пароль и два раза новый»
Сама концепция ввода пароля с помощью устройства уже подразумевает некую рабочую среду — вряд ли вы сами себе установите сложный пароль, который потом будете вводить аппаратным девайсом (для остального есть KeePass). А в рабочей среде перепрошивать контроллер перекомпиляцией исходников — идея не очень хорошая, т.к. требует наличия много чего лишнего.
Поэтому тут оптимально было бы усложнить программу, чтобы она позволяла менять пароль «на лету» с помощью минимального приложения на ПК или даже выводом специальной строки в последовательный порт.
В рабочей среде часто вообще запрещена установка любого софта, я уж не говорю про «рабочую среду» в виде BIOS, какой софт вы туда поставите?
Поэтому смена пароле здесь предусматривает в любом случае отдельный компьютер.
Я предлагаю гораздо более простой метод — в программе МК сделать поддержку команд из ком-порта, с помощью одной из которых можно будет задавать пароль. А сам пароль хранить, соответственно, в EEPROM. Тогда его сменить можно будет даже в командной строке:
Очевидно же, что так проще.
Именно поэтому вариант с ком-портом рулит.
Причем тут биос? Вам надо менять сохраненный пароль, находясь при этом в BIOS? Вот это точно ерунда.
Именно. Я же предлагаю вариант, как это можно сделать без отдельного компьютера.
Очевидно, что у на разные понятия о простоте.
Мне как раз не надо. Это вам почему то понадобилось менять пароль в «рабочей среде».
Это же ваши слова:
Я привёл в качестве рабочей среды работу в биос и поинтересовался, как ваши великие предложения помогут сменить пароль в этой рабочей среде?
И вот наступает время очередной смены пароля, вы придумываете новый, соответствующий всем требованиям, меняете, дальше вам надо как-то заменить его в устройстве. В вашем случае устройство отключается от рабочего ПК, подключается к «домашнему», где перепрошивается. А если рабочий ПК в офисе, а домашний дома?
Я же предлагаю процедуру смены, которую можно выполнить на любом ПК, если там только порты не заблокированы (а если заблокированы, то и устройство вы не подключите).
Понимаю, что соглашаться с замечаниями больно, но перестаньте бороться с ветреными мельницами.
Зато клавиатуру (или её аналог, как у автора) подключить можно в любой порт, и она будет работать.
Всё зависит от политики безопасности. Есть организации, где и ком-порт добавить возможно, есть и такие, где HID-устройства можно подключать только с заданными ID. Для R&D зачастую нужны права локального админа, их дают, и подключать всякие ком-порты тоже можно, но парольная политика может быть очень строгой.
Понятно, что если ком-порт заблокирован, обновлять пароль надо как-то иначе. Ниже рекомендовали устройство на ESP, где обновление делается по вайфай (например, со смартфона). Возможно, можно делать обновление и по протоколу HID — в таком случае, это будет наиболее предпочтительный вариант. Но и наиболее трудоемкий, как я понимаю.
Можно оставлять воткнутым в комп на работе — в устройстве нет паролей.
Саму NFC-метку записывать/перезаписывать телефоном, поддерживающим NFC.
Запросила программа пароль — приложил одну из меток, собранных на кольцо для ключей.
Уходя от компа уносить только метки.
А что касается смены пароля — с пульта ДУ это будет просто квест. Лучше всего делать это отправкой специальной строки в ком-порт ардуины.
Но поскольку не умею и пароли вводить не сто раз в день, то выбрал следующий метод. Например: «Однажды в студёную зимнюю пору яйца лошадки примерзли к забору. Лошадке не больно, лошадке приятно и дергает их туда и обратно». Берем пару слов и вот он пароль, в следующий месяц следующую пару слов. Если писать на олбанском, то и никакой генератор по словарю с подбором не справится.
Или просто нужно что-то написать, даже если это будет глупостью?
Хоть бы для приличия сначала почитали, что в вашей же ссылке написано.
Возможно, комментатор не разобрался в софте настройки.
А вам советую снизить градус желчи)
А вот эти особенности в ней действительно есть?
У меня была «клавиатура» в своё время — там нажималась кнопка записи, вбивалась последовательность кнопок, нажималась кнопка сохранения.
И потом макрос хранился в памяти клавиатуры и работал где угодно. Хоть в биосе, хоть в досе, хоть в линуксе.
Но там колхозное решение было, с отдельным контроллером, который втыкался в разрыв между обычной клавиатурой и компьютером.
У клавиатур 8bitdo, по-моему, можно макросы как с клавиатуры писать, так и через софт.
Правда, там макрокнопок только две, так что не самая удачная вещь, если хочется активно макросы использовать. Впрочем, пару паролей забить вполне хватит. :)
www.8bitdo.com/retro-mechanical-keyboard/
Хрень вроде как раз отдельно софтом настраивается.
Проще китайский клон ардуино взять. Типа LGT8F328p.
Подключение Type-C — Type-C не работает ни на компьютере, ни на смартфоне.
Но через USB-A и OTG переходник работает на смартфоне — в редакторе данные вводятся без проблем, но пароль на экране блокировки толком не проверил — там как-то по одному символу вводится — либо из-за быстрого ввода символов, либо из-за наличия букв в пароле, скорее надо задержку между символами ставить, по умолчанию они очень быстро вводятся.
Но для меня это не целевое использование, дальше рыть не стал.
PS недавно плученный WemosD1 с typeC удивил и «изкаропки» заработал от быстрозарядки, хотя я уже хотел ему эти резисторы впаять, но получилось лучше, теперь это гирлянда на «wled»)
практическинеограниченоогромно.А если еще и слои сделать и световую индикацию слоя чтобы в памяти было побольше паролей :)
Программируемая клавиатура SrachMaster
Но на самом деле, ничего страшного не будет, пароль ведь не выбит в камне, можно тут же сменить, благо напрягаться, чтобы запоминать каждый новый пароль теперь не надо, благодаря этой коробочке :)
Фактически, просто голая TTGO t-display, с припаянным аккумом и распечатанным корпусом.
Пароли уже перестал запоминать — генерация и ввод ваултварденом. Твой вариант выглядит офигенным. А как к нему интернет раздаёшь? Безопасники не лютуют?
Так что бумажка с паролем — наше всё. )
Тогда все мониторы обвешаны желтыми бумажками. Особенно если кто-то в отпуске.
Microsoft вот давно пишет что практика ротации паролей «древняя и бесполезная»:
learn.microsoft.com/en-us/archive/blogs/secguide/security-baseline-final-for-windows-10-v1903-and-windows-server-v1903
Треть не задумывается и делает по методичкам.
Оставшиеся всё понимают, но таковы требования регулятора и они сами страдают.
Есть такая девайсина:
www.inputstick.com
Она может сопрягаться с Keepas для андроида:
www.inputstick.com/kp2a-plugin/
Работает как юсб-клавиатура, с телефоном по блютузу.
Возможно, есть вариант что-то похожего сделать самому, вряд ли там бином ньютона.
Спасибо автору за его вариант реализации!
Ну и в комментах идеи с Блютус соединением, действительно можно было бы с телефона подключаться терминалкой и менять пароль или комбинации клавиш или время работы устройства и т.п.
Мне не надо, у меня лет 5 ноутбук HP с вводом отпечатка пальца. А сам пароль меняется каждые 3 месяца, но я его делают однотипным, меняя небольшую его часть. К примеру 6gZGSV$%zQ я запомнил на всякий случай, а в конце дописываю 1 символ. Похожесть к счастью не проверяется.
любой проходящий мимо запускает блокнот и нажимая кнопки на этом устройстве видит каждый пароль :)
а на клавиатуре хз на какой кнопке и в каком слое оно привязано, спец софта не нужно, можно и в браузере все прописать прямо в мозги клавиатуре или кейпада, на который я писал обзор в этом году…
и хранится в памяти устройства, то есть, настроил один раз и можно носить с собой…
а для особо скрытных можно прописать фразу на «другом» языке. То есть в софте она будет скажем написана кирилицей, а вводится будет на английском при включенной английской раскладке :)
ссылка
2) адрес сайта VIA можно и в хостах заблочить
3) фразы пароля могут храниться на «неправильном» языке / «раскладке» клавиатуры (соответственно, сразу не «подойдут» и будут отброшены как «обманки»).
ну и клавиатуры/нампады вызывают меньше подозрений чем то, что получилось у автора.
пункт 2 легко решается подключением к другому компьютеру телефону
пункт 3 есть всего два языка и два статуса Капс лока.
умный человек всегда найдет способ «улучшить»/«доработать» любой метод…
азиаты например любят хранит основную часть пароля отдельно и вводят его через буфер(и без разницы он в текстовом файле, менеджере паролей или VIA), а первый и/или последний символ дописывают вручную… в итоге они помнять только «дополнение» к паролю.
Не говоря уже про злок.
Это защита от Bad USB.
И да, это правильно с точки зрения безопасности.
Увы. Они слишком легко разрушаются в условиях «офиса»
Такие жёсткие требования бывают в некоторых конторах…
Автор, умоляю, расскажи для чего ты это делал?
Ну сами посудите — логин/пароль придётся использовать везде одни и те же. Если они утекли — надо везде менять. Значит нужно где-то хранить список сайтов где этот пароль использовался. Но это не сложно — можно этот список вести в программе KeePass. Стоп. А нахрена тогда эта девайсина нужна? В KP можно и логины/пароли на каждую учётку разные заводить. И не надо напрягать фантазию — есть генератор паролей. А ещё не надо эту приблуду постоянно держать подключённой к компу с риском ненароком слить всё в сеть на первом же попавшемся форуме (аля mysku) — нажал случайно на кнопочку, а оно . И привет. Если фокус по дефолту на поле ввода комментария, а ввод на Enter — будет казус. И придётся опять менять все пароли…
А если надо на другом устройстве пароль ввести?
За DYI автор конечно молодец, но имхо это какой-то троллейбус из булки хлеба.
Воткнуть диск и запустить оттуда произвольный софт — это прям первое что стоит запретить юзеру.
Приблуда же прикидывается hid-устройством, редко где запрещено подключать больше одной клавиатуры )
А вводить один и тот же пароль по надцать раз на день — это самое оно. Причем много где даже без доступа к буферу обмена.
во-первых, если админы это обнаружат, у них могут возникнуть неприятные вопросы. Во-вторых, в «корпоративной среде» полно «друзей» которые рано или поздно сдадут автора админам. В-третьих, самый худший вариант — «добрый коллега» воспользуется чудо-девайсом пока автор отлучился в туалет попить кофе. А дальше под его кредами может творить всякое вплоть до криминала.
в корпоративной среде я бы тем более такое делать не стал.
Думаю простым решением будет банальная последовательность кнопок, которая вводится при подключении питания, в течение определенного времени, а если последовательность неверная или не была введена то коробка прикидывается ничем, ну вот вообще, даже в системе не определяется(если это возможно).
P.S. Ну если вам не нужно, то это не значит что никому не нужно.
Да. И две мышки рано или поздно тоже не останутся незамеченными.
Я смотрю вы любитель острых рабочих отношений.
А на рабочем столе у меня уже давно три мышки и все подключены — одна штатная, дешёвенькая, выданная с компом, которой пользоваться можно, но не удобно поэтому просто лежит на всякий случай, иногда даю коллегам, когда у них возникают проблемы с мышами, вторая навороченная, красивая, с кучей кнопок и горящая как новогодняя ёлка, с внутренним литиевым аккумом..., но неудобная, а третья на коврике, рабочая, под мою руку и ровно с тем количеством кнопок и функций, которые нужны, купленная много лет назад и у которой всего один недостаток — пальчиковая батарейка, которая иногда сдыхает и вот в этот момент приходится пользоваться второй, навороченной.
P.S. И видимо скоро появится четвёртая мышка.
Есть вот такая клавиатурка, ищется на али по запросу SayoDevice.
Имеет свою память, подсветку, клавиши можно купить любые, хоть котиков вместо клавиш. Я просто карандашом подписал клавиши. Настройка через браузер, через их сайт, либо у себя запускаете. Ну и можно навесить пароли, тексты, комбинации, скрипты вплоть до сколько мс будут клавиши нажаты отжаты, ну и конечно всякие комбинации типа «логин таб пароль энтер».
Кстати на фоне мышка, которая тоже так умеет, попроще конечно, но тоже на ней можно хранить пароли, комбинации. Причем все это пишется в память мышки и работает без ПО. ПО на винде нужно для настройки, а потом работает хоть на Мас. Палец привык, мышка даже удобнее чем отдельная клава.
Конечно же надо понимать что это не секурно, дома как вариант можно использовать. Не забывайте про парольные менеджеры.
Кнопка одна, три варианта поведения по количеству нажатий.
Win + D
Win + L
ESC, пауза (что-бы тачка прочухалась), BACKSPACE (стереть мусор в поле пароль), ПАРОЛЬ, ENTER.
Вполне хватает, чтобы не раздражать внезапно влетевшего в кабинет руковводителя.