Комментарии 168
И плюс в LPC нормальный usb стек. Там обычный EHCI.
Сделал себе такой www.themooltipass.com но не очень удобно.
Посмотрю Ваш. Спасибо за github!
Тогда уже придется писать софт по мобильные оси.
Про беспроводные интерфейсы в статье упоминается. В данном случае — это неконтролируемая среда и лишняя возможность для перехвата информации.
Учитывая, что многие сейчас если и не используют Ноутбук, то у большего числа пользователей стал наблюдать беспроводные девайсы.
Как быть в таком случае?
Несколько вопросов:
- В перспективе какова будет стоимость не OpenSource решения «в розницу»?
- будут «демпинговые» варианты продукта для «поиграть со студентами»?
- вы продаете устройство? Или устройство + софт?
- не рассматривали ли вариант «встраивания» в клавиатуру?
- рассматриваете ли иностранные рынки?
- Думаю, в районе 30$, может, меньше — пока не ясны масштабы
- Давайте свяжемся, обсудим конкретные потребности
- Софт и железо открытое, мы можем продавать готовые устройства. Вообще, мы занимаемся контрактной разработкой электроники.
- У нас был опыт разработки корабельной (qwerty + специальный блок) клавиатуры, массовую клавиатуру самостоятельно делать не планируем
- Мы открыты любым предложениям
У меня в текущей версии KeePassX2 более 250 учетных записей с разбивкой на группы, щёлкать стрелками при таком раскладе не очень удобно, возможна ли реализация какого-то поиска?
Придумали давать возможность ввода имени записи, с подсказкой
Из характеристик:
«Сейф для паролей»
«Быстрое криптопреобразование»
Я далёк от идей использования подобных девайсов, но как по мне, так это именно тема этой статьи.
- Необходимость отдельного ПО на машине
- Закрытый код
- Здоровенная
- «Сертификация ФСБ»
Собственно, для того ссылку и давал.
По поводу ПО: какой-то инструмент взаимодействия с ключём должен быть, не вижу ничего плохого в ПО, хотя, пару быстрых кнопок можно приделать к брелку. Но вообще, не буду лезть, в вещи которые я не понимаю.
Во-первых, с открытыми исходниками и т.п. — прямая дорога в краудфандинг. Но тут, я думаю, вы и сами уже догадались.
Во-вторых, вопрос: можно ли совместить использование этой одной базы на Пастильде с базами на другом устройстве? К примеру, удобно было бы работать с пастильдой на ноутбуке или компьютере, но переставлять в телефон — не очень. Было бы круто иметь возможность синхронизации.
Вставил свисток в USB, достал телепон, ввёл PIN, выбрал учётную запись, и, о чудо! свисток набрал пароль через HID устройство.
А ещё можно сделать загрузку Linux сервера с USB-пепяки со сквозным шифрованием, аппаратным ключом и подтверждением через телефон. 100% защита от маски-шоу. И секретный пароль для уничтожения мастер-ключа, как защита от маски-шоу,
тем более что многие сайты видят что вы воодите в поля, так что вводить на сайт (даже без отрпавки) свой главный пароль — не секурно.
BT это беспроводной интерфейс, многие переживают, что он недостаточно защищен.
Для работы с базой KeePass, хранящейся в памяти Пастильды, пользователь вводит мастер-пароль, а затем при помощи навигационных клавиш выбирает название интересующего его аккаунта и нажимает ввод.
Если в моей базе keepass около 400 записей и они рассортированы по папкам, то как бы происходил выбор нужной записи в моем случае?
Или здесь подразумевается гораздо меньшее кол-во записей и отсутствие вложенных папок для них?
Сами сайты, а особенно прикрученная аналитика (Яндекс.Метрика точно умеет), записывают всё, что делает пользователь.
Ввели мастер-пароль — прощай мастер-пароль.
Дело в том, что с Пастильдой вы никогда не вводите мастер-пароль куда-либо, кроме неё. Поле ввода получит какое-то количество символов, чтобы вам показать, что пароль вводится. Ведь устройство само решает, что транслировать, а что — нет.
Но всё остальное, что видит пользователь, потенциально видит и враг. По названиям записей вас могут, например, идентифицировать.
Идея с вводом данных в поле без дополнительных организационных мер (например отключение скриптов на сайте) пока слабовата.
Вводить логин и пароль к конкретному сайту вам всё равно придется, с устройством или без, так что тут потери безопасности нет.
Вы же признаёте, что предоставляете в открытом виде то, что должно быть защищено, и никому кроме прошедшего аутентификацию неизвестно. Это дыра в защите. Вектор для построения атаки на ваше устройство.
Аппаратное шифрование, как правило, требуется для обеспечения защиты высокого класса. Ваша концепция, в текущем виде, выглядит как гаджет поиграться.
Можно сделать менее портабельное решение, когда по хоткею всплывает окно — интерфейс к донглу, причём такое, что оно не имеет отношения к сайту и браузеру вообще, там можно и выбор в более удобной форме сделать и ввод мастер-пароля. Главное, что бы управление могло с клавиатуры полностью осуществляться. После выбора, окно закрывается, получает фокус то окно, в котором была нажата комбинация, после чего "клавиатура" генерирует последовательность, которая туда и вставляется. Только подумать как отличать пароль и логин.
Еще можно выводить в блокнот простенький текстовый интерфейс. К примеру пользователь пишет в блокноте «help», нажимает пастильдовский хоткей, и получает подробную справку о хоткеях и текстовых командах.
Можно действительно использовать любой текстовый редактор, чтобы реализовать удобный интерфейс. Открываешь редактор, нажимаешь хоткей и в блокноте быстро печатается интерфейс Пастильды с блэкджеком и псевдографикой. На несколько строчек со структурой, подсказками и пр.
1) сделать поиск логинов по уже введёному префиксу (вроде как это уже вы сами предложили)
2) подставлять при выборе не просто открытый логин, а логин + домен, на котором он сохранён (если есть). А то как быть с кучей сайтов, где логин = емейл, а он у людей чаще всего один, а пароли разные.
3) как уже заметили выше, немного запикивать то, что подставляется, чтобы скрипты на страницах и вправду не видели весь ваши список логинов пока вы по нему бежите.
4) сделать тайм-аут на ввод мастер-пароля. Пока тайм-аут не наступил, спрашивать что-то более короткое (пин-код, например)
5) сделать какое-нибудь меню, прямо внутри инпута., чтобы быстро прыгать по папкам и логинам (например, зажимая шифт прыгать по папкам, нажав ctrl переходить в режим поиска по домену сайта, и т.д.) И как-нибудь это индицировать на экране, ASCII-символами типа
Теоретически, такое возможно сделать совсем без дополнительного устройства. Но заставить работать смарт HID клавиатурой — достаточно сложно.
Иными словами, реализовать то, что уже сейчас андроидовский KeePass со своим плагином к InputStick умеет делать. Но InputStick — безпроводная. Хочется проводное устройство.
Или однострочное меню — не более чем красивое название для реагирования на горячие клавиши и отсылки в поле редактирования текста, имитирующего навигацию по списку?
Добавить сканер для пальцев и разблокировать базу одноразово по прикосновению? Поставил пользователь курсор в поле для пароля контактика, замигала лампочка на девайсе, дотронулся пользователь и ввелся пароль. Фактически то, что сейчас есть на андроиде для некоторых приложений, только более универсальное.
После этого добавить блютуз и делать вид, что это беспроводная клавиатура с колесиком как уже думаете. Это мгновенно станет полезно для мобильных девайсов.
Каким-то образом сообщать девайсу о том, для чего пароль сейчас требуется (софт на целевой машине нужен дополнительный, который будет как раз нажимать заветную комбинацию автоматически и выбирать нужный пароль). Сделать открытый API для этого взаимодействия с девайсом и у вас появятся плагины для всего.
Управление, после ввода мастер-пароля, (до пк никакая информация о вводе не долетела, правильность ввода-моргание индикаторы на клавиатуре) через перехват нум-пада. Паролям в базе назначались теги с цифровым номером и вводом этого номера на нум-паде+энтер или * вводится пароль+ логин или просто пароль.
Так же там можно было бы создавать пароли по трем алгоритмам(маскам сохраненные в базе keepass) индикация — лампочки на клавиатуре, правда в том устройстве база хранилась на micro-sd + еще один USB-хост для keyfile на флешке в зашифрованном виде, мб для расшифровки использовались серийный номер флешки и sd-карты.
И если пошла речь о потоковом шифрование флешки, то какие там USB? 2.0 или 1.1
Только запоминать числовые теги будет не очень удобно, имхо, либо я неверно понял Вашу идею.
У KeePass в записях бд есть строковое поле Notes и поле URL, по крайней мере в kbdx. Можно было бы сделать так, что после ввода мастер пароля, пользователь вводил бы, прямо в текущем текстовом поле, строковый тег записи или URL, а уже после нажатия enter Пастильда бы искала в базе соответствующую запись.
Я именно об этом. Запомнить слова гораздо легче, или прямо использовать имя ресурса, на котором данный пароль используется, гораздо удобнее.
Тут уже не будет проблем с извлечением.
Сделать опциональный шнур, типа USB-удлиннитель. Одной стороной втыкаем в компьютер. На другой стороне, вместо одного USB-разъёма, в который можно воткнуть клавиатура, два разъёма — к примеру, с торца и сбоку. Этот двойной разъём кладём перед собой на стол. В торцовый разъём втыкаем клавиатуру, в боковой — девайс с паролями. Когда девайс с паролями не воткнут — всё оставшееся хозяйство работает, как простой удлиннитель, без затей. Когда воткнут — подключается дополнительная функциональность, описываемая в статье. Заодно решается проблема «системник под столом». Девайс на виду и под рукой, хочешь — лампочки смотри, хочешь — колёсико крути. Можно докупить дополнительно таких «удлиннителей» и повтыкать в несколько компьютеров, между которыми ходишь. Можно будет легко носить свой «аппаратный ключ» между ними. По-моему, такой вариант будет гораздо лучше изготовления кастомной клавиатуры, т. к. дешев, можно использовать с любой клавиатурой — хоть эргономичной, хоть китайской, хоть Optimus Gluteus Maximus. И таскать меньше.
Как вариант для бедных, просто взять удлиннитель, вообще любой. Но придётся действовать в два этапа: выдернуть клавиатуру из ключа, выдернуть ключ из удлиннителя, вставить клавиатуру в удлиннитель. Возможно, в некоторых ситуациях клавиатура в процессе может и отвалиться.
STM, похоже, единственный, кто реализовал два аппаратных USB в микроконтроллере
Это ведь чушь, а так статья хорошая.
Правильно ли я понимаю, что устройство использует готовую загруженную в него базу keepass, не предусмотрено ввода паролей непосредственно в устройство?
Пока мы только думали о таком сценарии. Было предложение по специальному сочетанию, либо через меню входить в режим добавления записи, потом вводить логин и пароль как обычно, а устройство всё это пишет в базу.
Если на целевой платформе Type-C only — возьмите переходник.
В данном устройстве, к примеру, пропускной способности больше USB 2.0 (да даже 1.1) не нужно — вы просто с клавиатуры такой траффик не создадите, а делать его, при этом, Type-C, это стрельба из пушки по воробьям, если внутрь впихнуть USB 3.1, либо просто глупость, так как на большей части хостов сейчас Type-C редкость, тогда как Type-A в огромных количествах.
Если же делать образец для потокового шифрования дисков… Ну тогда ещё может быть.
А вообще, до сих пор ещё USB 3.0 хосты что с сырым железом, что с сырыми дровами, Win10 вообще временами отжигает, наиболее адекватна работа только контроллеров Intel. Боюсь представить, что сейчас с 3.1 :-( Мы очень много отгребли на UVC проекте когда начинали хотеть максимума производительности (4K 30 FPS, I420/NV12 или FullHD 60 FPS, YUY2). Причём на ядрах после 4.0 в Linux адекватность работы USB 3.0 значительно выше, нежели в Windows (если сравнивать с 8.0, 8.1 и, особенно, 10). Может получится после выпуска очередного продукта попросить добро на публикацию сравнения производительности стриминга на разных сочетаниях хост-контроллеров и операционных систем. Правда используемый чип тоже не без косяков — Cypress FX3 /ARM926E-JS внутри/.
Как вариант, сделать внутреннее меню (у нас же есть колёсико и экранчик!) в котором можно переключаться между вариантами полностью аппаратного общения с устройством — т.е. на внешней клавиатуре набирать только мастер, а наружу выдавать только выбранный логин и пароль (или вообще только пароль) — и того варианта который описан в статье. Можно ещё промежуточную версию сделать — навигация по базе средствами клавиатуры, а отображение только на встроенном экранчике.
Только сразу закладывайтесь на надёжный вариант этого колёсика (может просто три кнопки?), который легко поменять — доступность альтернатив того-же типоразмера, большие контактные площадки, которые не оторвутся от платы, и вот это всё.
P.S. Сори за много букв.
Я так понимаю, в настоящий момент планируется поддержка ввода значений ключей USERNAME и PASSWORD? Или же кастомными значениями тоже можно будет оперировать? Кастомные аттачменты? Да, я понимаю, что сильно раскатываю губу, но ведь за спрос не бьют?
Если на второй вопрос ответ будет утвердительным, то что по поводу последовательностей автоматического ввода — можно ли и их будет использовать или ручками придется скакать по полям?
Уже на протяжении длительного времени использую на постоянной основе KeePass (правда второй версии, который с kdbx) на нескольких девайсах с синком через облако. Не отказался бы и от надежного хардового варианта :)
Может быть, сделать устройство с возможностью подключить какой-то внешний монитор для выбора пароля. Кому монитор не нужен — будет работать как Вы описали. Заодно решится проблема подключения его же к смартфону или планшету, где выбор пароля Вашим способом может быть затруднён.
Но у меня тоже сомнения в способе выбора учётки: форма ввода логина порой валидируется скриптами на допустимые символы и длину. Может стоить приделать горячие клавиши для ввода «вслепую».
Для работы с базой KeePass, хранящейся в памяти Пастильды, пользователь вводит мастер-пароль, а затем при помощи навигационных клавиш выбирает название интересующего его аккаунта и нажимает ввод. Пастильда вводит нужные логин и пароль в соответствующие поля. При этом расшифровка базы происходит на устройстве, и целевая система не получает доступа к мастер-паролю и ко всей базе. Выход из активного режима происходит либо автоматически, после ввода пароля, либо после повторного нажатия комбинации “Shift + Ctrl + ~”. Да, кстати, комбинации можно придумать свои.
1. Выбираем логин. Вот тут, можно не только навигационные клавиши использовать, но и обычные, чтобы сузить поиск. Выводить логины начинающиеся только с уже введенных клавиш. Введенные клавиши можно подсвечивать.
2. Фиксировать окончание ввода логина также по комбинации клавиш. Что бы была возможность перейти на поле пароля.
3. Ввод пароля по комбинации клавиш. И зразу после этого, перевод в неактивное состояние.
После выдачи пароля, переход в неактивное состояние, обязателен, иначе зло вред всю базу сольет, зная алгоритм работы устройства.
С одной кнопочкой. И тремя лампочками, устройство будет понадежней и практичней в эксплуатации. Кнопочка будет дублировать комбинацию клавиш(вдруг на клаве нет “Shift + Ctrl + ~”). Лампочки отражать состояние.
PS. Повторное нажатие “Shift + Ctrl + ~” передает эту комбинацию, как бы маскирует само себя.
Успехов.
У устройства нельзя попросить пароль иначе, как с клавиатуры или подключенной туда же кнопки. Так что не поможет никакой софт.
Лампочки есть на клавиатуре- для индикации хотим задействовать CapsLock, NumLock и ScrollLock
А если вирус в клавиатуре? :)
для индикации хотим задействовать CapsLock, NumLock и ScrollLock
А как вы будете возвращать их состояние до использования вашего устройства? Разве клавиатура выдает состояние этих лампочек в данный момент? Это где то в драйвере клавиатуры хранится, разве нет? Будете отслеживать их состояние с начала включения ПК?
Кстати, выяснилось, что на ноутах бывает только индикатор капслок, будем выдавать морзянкой…
Попробуйте вытащить и вставить клавиатуру, вы увидите, что она зажжёт именно те индиваторы, которые горели до этого.Ну так правильно. Значение ОС сохранила. И она(ОС) зажжет. Или вы думаете что эти значения хранятся в клавиатуре? ;)
А вы что будете эмулировать отключение клавиатуры, при возврате в пассивный режим?
На ноутах в любом случае только с внешней можно работать, а что там на ноуте вам не все ли, равно?
А как вы будете возвращать их состояние до использования вашего устройства?
я вам на примере ответил, что любое утройство, представившееся клавиатурой, будет знать, какие индикаторы сейчас активны, и может ими управлять.
Может у меня не правильное представление о обмене командами с клавиатурой, вы уж меня простите. И клавиатура умеет отдавать состояние своих лампочек по команде? В этом и вопрос.
Ваше устройство, по идее, должно помогать в таких ситуациях, но чето я не представляю, каким образом я буду «при помощи навигационных клавиш выбирать название интересующего аккаунта» из тысячи возможных, при условии, что вводимые символы на экране не отображаются.
на одной стороне 10 кнопок — выбор цифр
на другой стороне 10 кнопок — выбор букв
Например: B0 — первый банковский пароль
это позволит создать до 100 комбинаций пaролей
на торцевой стороне 4 кнопки
— использовать старый пароль
— использовать новый пароль
— сгенерить новый, при этом старый новый пароль перейдет в «старый»
— принять с клавиатуры новый пароль, при этом старый новый пароль перейдет в «старый»
(это нужно там где навязывают пароль или есть ограничение на размер пароля или маску)
Мне кажется это бы покрыло все жизненные случаи.
Если добавить однострочный LCD можно добавить функцию назначения/показа текста к комбинации клавишь, типа B0 — Sberbank, B1 — Promstrojbank
Кстати, а есть возможность сделать, чтобы это как-то работало со встроенной клавиатурой ноутбука?
С ноутбуком наш фокус не пройдет.
Что, накупить устройств по одному на каждый компьютер, которым пользуешься? С вашей точки зрения, наверное, это отличный маркетинговый план, а с точки зрения пользователя встанет во весь рост проблема синхронизации парольных баз между устройствами :)
- Маркетинговый план совсем не такой, если честно. Устройство открытое, то есть вы можете спаять себе такое сами, без нашей помощи. Также вы можете дописать любой нужный функционал, не забыв всё это опубликовать. То есть мы поделились идеей и реализовали устройство, которое пока даже не продаем.
- Синхронизация базы может быть настроена через облако, в чем сложность?
Допустим, вечером юзер дома меняет пароль на облако, утром приходит на работу и пытается синхронизироваться — сможет?
Запаял. Всё работает (поставил STM32F205RE и 16MHz кварц).
http://akb77.com/g/files/pastilda-1.png
http://akb77.com/g/files/pastilda-2.png
Какую комбинацию клавиш надо нажать чтобы Пастильда вставила только пароль, а не логин и пароль?
Пастильда — открытый аппаратный менеджер паролей